<link rel="alternate" type="application/rss+xml" title="האחיות כהן" href="rss.xml">
no
$:/core/ui/SideBar/Open
below
no
show
show
hide
hide
hide
yes
tc-btn-invisible
no
show
{
    "tiddlers": {
        "$:/Acknowledgements": {
            "title": "$:/Acknowledgements",
            "type": "text/vnd.tiddlywiki",
            "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 © Jeremy Ruston 2004-2007\nCopyright © UnaMesa Association 2007-2016\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or other\nmaterials provided with the distribution.\n\nNeither the name of the UnaMesa Association nor the names of its contributors may be\nused to endorse or promote products derived from this software without specific\nprior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
        },
        "$:/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/advanced-search-button": {
            "title": "$:/core/images/advanced-search-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-advanced-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z\"></path>\n        <circle cx=\"48\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"28\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"68\" cy=\"48\" r=\"8\"></circle>\n    </g>\n</svg>"
        },
        "$:/core/images/auto-height": {
            "title": "$:/core/images/auto-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-auto-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M67.9867828,114.356363 L67.9579626,99.8785426 C67.9550688,98.4248183 67.1636987,97.087107 65.8909901,96.3845863 L49.9251455,87.5716209 L47.992126,95.0735397 L79.8995411,95.0735397 C84.1215894,95.0735397 85.4638131,89.3810359 81.686497,87.4948823 L49.7971476,71.5713518 L48.0101917,79.1500092 L79.992126,79.1500092 C84.2093753,79.1500092 85.5558421,73.4676733 81.7869993,71.5753162 L49.805065,55.517008 L48.0101916,63.0917009 L79.9921259,63.0917015 C84.2035118,63.0917016 85.5551434,57.4217887 81.7966702,55.5218807 L65.7625147,47.4166161 L67.9579705,50.9864368 L67.9579705,35.6148245 L77.1715737,44.8284272 C78.7336709,46.3905243 81.2663308,46.3905243 82.8284279,44.8284271 C84.390525,43.2663299 84.390525,40.7336699 82.8284278,39.1715728 L66.8284271,23.1715728 C65.2663299,21.6094757 62.73367,21.6094757 61.1715729,23.1715729 L45.1715729,39.1715729 C43.6094757,40.73367 43.6094757,43.26633 45.1715729,44.8284271 C46.73367,46.3905243 49.26633,46.3905243 50.8284271,44.8284271 L59.9579705,35.6988837 L59.9579705,50.9864368 C59.9579705,52.495201 60.806922,53.8755997 62.1534263,54.5562576 L78.1875818,62.6615223 L79.9921261,55.0917015 L48.0101917,55.0917009 C43.7929424,55.0917008 42.4464755,60.7740368 46.2153183,62.6663939 L78.1972526,78.7247021 L79.992126,71.1500092 L48.0101917,71.1500092 C43.7881433,71.1500092 42.4459197,76.842513 46.2232358,78.7286665 L78.1125852,94.6521971 L79.8995411,87.0735397 L47.992126,87.0735397 C43.8588276,87.0735397 42.4404876,92.5780219 46.0591064,94.5754586 L62.024951,103.388424 L59.9579785,99.8944677 L59.9867142,114.32986 L50.8284271,105.171573 C49.26633,103.609476 46.73367,103.609476 45.1715729,105.171573 C43.6094757,106.73367 43.6094757,109.26633 45.1715729,110.828427 L61.1715729,126.828427 C62.73367,128.390524 65.2663299,128.390524 66.8284271,126.828427 L82.8284278,110.828427 C84.390525,109.26633 84.390525,106.73367 82.8284279,105.171573 C81.2663308,103.609476 78.7336709,103.609476 77.1715737,105.171573 L67.9867828,114.356363 L67.9867828,114.356363 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n</svg>"
        },
        "$:/core/images/blank": {
            "title": "$:/core/images/blank",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"></svg>"
        },
        "$:/core/images/bold": {
            "title": "$:/core/images/bold",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-bold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.1456583,51.8095238 L41.1456583,21.8711485 L67.4985994,21.8711485 C70.0084159,21.8711485 72.4285598,22.0802967 74.7591036,22.4985994 C77.0896475,22.9169022 79.1512515,23.6638602 80.9439776,24.7394958 C82.7367036,25.8151314 84.170863,27.3090474 85.2464986,29.2212885 C86.3221342,31.1335296 86.859944,33.5835518 86.859944,36.5714286 C86.859944,41.9496067 85.2465147,45.8337882 82.0196078,48.2240896 C78.792701,50.614391 74.6694929,51.8095238 69.6498599,51.8095238 L41.1456583,51.8095238 Z M13,0 L13,128 L75.0280112,128 C80.7647346,128 86.3519803,127.28292 91.789916,125.848739 C97.2278517,124.414559 102.068139,122.203563 106.310924,119.215686 C110.553709,116.22781 113.929959,112.373506 116.439776,107.652661 C118.949592,102.931816 120.204482,97.3445701 120.204482,90.8907563 C120.204482,82.8832466 118.262391,76.0411115 114.378151,70.3641457 C110.493911,64.6871798 104.607883,60.7133634 96.719888,58.442577 C102.456611,55.6937304 106.788968,52.1680887 109.717087,47.8655462 C112.645206,43.5630037 114.109244,38.1849062 114.109244,31.7310924 C114.109244,25.7553389 113.123259,20.7357813 111.151261,16.6722689 C109.179262,12.6087565 106.400578,9.35201972 102.815126,6.90196078 C99.2296739,4.45190185 94.927196,2.68908101 89.907563,1.61344538 C84.8879301,0.537809748 79.3305627,0 73.2352941,0 L13,0 Z M41.1456583,106.128852 L41.1456583,70.9915966 L71.8011204,70.9915966 C77.896389,70.9915966 82.7964334,72.3958776 86.5014006,75.2044818 C90.2063677,78.0130859 92.0588235,82.7039821 92.0588235,89.2773109 C92.0588235,92.6237329 91.4911355,95.3725383 90.3557423,97.5238095 C89.2203491,99.6750808 87.6965548,101.378145 85.7843137,102.633053 C83.8720726,103.887961 81.661077,104.784311 79.1512605,105.322129 C76.641444,105.859947 74.0121519,106.128852 71.2633053,106.128852 L41.1456583,106.128852 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/cancel-button": {
            "title": "$:/core/images/cancel-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n\t<g fill-rule=\"evenodd\">\n\t    <path d=\"M64,76.3137085 L47.0294734,93.2842351 C43.9038742,96.4098343 38.8399231,96.4084656 35.7157288,93.2842712 C32.5978915,90.166434 32.5915506,85.0947409 35.7157649,81.9705266 L52.6862915,65 L35.7157649,48.0294734 C32.5901657,44.9038742 32.5915344,39.8399231 35.7157288,36.7157288 C38.833566,33.5978915 43.9052591,33.5915506 47.0294734,36.7157649 L64,53.6862915 L80.9705266,36.7157649 C84.0961258,33.5901657 89.1600769,33.5915344 92.2842712,36.7157288 C95.4021085,39.833566 95.4084494,44.9052591 92.2842351,48.0294734 L75.3137085,65 L92.2842351,81.9705266 C95.4098343,85.0961258 95.4084656,90.1600769 92.2842712,93.2842712 C89.166434,96.4021085 84.0947409,96.4084494 80.9705266,93.2842351 L64,76.3137085 Z M64,129 C99.346224,129 128,100.346224 128,65 C128,29.653776 99.346224,1 64,1 C28.653776,1 1.13686838e-13,29.653776 1.13686838e-13,65 C1.13686838e-13,100.346224 28.653776,129 64,129 Z M64,113 C90.509668,113 112,91.509668 112,65 C112,38.490332 90.509668,17 64,17 C37.490332,17 16,38.490332 16,65 C16,91.509668 37.490332,113 64,113 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-down": {
            "title": "$:/core/images/chevron-down",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 40.500000) rotate(-270.000000) translate(-64.000000, -40.500000) translate(-22.500000, -26.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/chevron-left": {
            "title": "$:/core/images/chevron-left",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" version=\"1.1\">\n    <g fill-rule=\"evenodd\" transform=\"translate(92.500000, 64.000000) rotate(-180.000000) translate(-92.500000, -64.000000) translate(6.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-right": {
            "title": "$:/core/images/chevron-right",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-right tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-48.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-up": {
            "title": "$:/core/images/chevron-up",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-up tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 89.500000) rotate(-90.000000) translate(-64.000000, -89.500000) translate(-22.500000, 22.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/clone-button": {
            "title": "$:/core/images/clone-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-clone-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M32.2650915,96 L32.2650915,120.002359 C32.2650915,124.419334 35.8432884,128 40.2627323,128 L120.002359,128 C124.419334,128 128,124.421803 128,120.002359 L128,40.2627323 C128,35.8457573 124.421803,32.2650915 120.002359,32.2650915 L96,32.2650915 L96,48 L108.858899,48 C110.519357,48 111.853018,49.3405131 111.853018,50.9941198 L111.853018,108.858899 C111.853018,110.519357 110.512505,111.853018 108.858899,111.853018 L50.9941198,111.853018 C49.333661,111.853018 48,110.512505 48,108.858899 L48,96 L32.2650915,96 Z\"></path>\n        <path d=\"M40,56 L32.0070969,56 C27.5881712,56 24,52.418278 24,48 C24,43.5907123 27.5848994,40 32.0070969,40 L40,40 L40,32.0070969 C40,27.5881712 43.581722,24 48,24 C52.4092877,24 56,27.5848994 56,32.0070969 L56,40 L63.9929031,40 C68.4118288,40 72,43.581722 72,48 C72,52.4092877 68.4151006,56 63.9929031,56 L56,56 L56,63.9929031 C56,68.4118288 52.418278,72 48,72 C43.5907123,72 40,68.4151006 40,63.9929031 L40,56 Z M7.9992458,0 C3.58138434,0 0,3.5881049 0,7.9992458 L0,88.0007542 C0,92.4186157 3.5881049,96 7.9992458,96 L88.0007542,96 C92.4186157,96 96,92.4118951 96,88.0007542 L96,7.9992458 C96,3.58138434 92.4118951,0 88.0007542,0 L7.9992458,0 Z M19.0010118,16 C17.3435988,16 16,17.336731 16,19.0010118 L16,76.9989882 C16,78.6564012 17.336731,80 19.0010118,80 L76.9989882,80 C78.6564012,80 80,78.663269 80,76.9989882 L80,19.0010118 C80,17.3435988 78.663269,16 76.9989882,16 L19.0010118,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-all-button": {
            "title": "$:/core/images/close-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-close-all-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-23.000000, -23.000000)\">\n        <path d=\"M43,131 L22.9976794,131 C18.5827987,131 15,127.418278 15,123 C15,118.590712 18.5806831,115 22.9976794,115 L43,115 L43,94.9976794 C43,90.5827987 46.581722,87 51,87 C55.4092877,87 59,90.5806831 59,94.9976794 L59,115 L79.0023206,115 C83.4172013,115 87,118.581722 87,123 C87,127.409288 83.4193169,131 79.0023206,131 L59,131 L59,151.002321 C59,155.417201 55.418278,159 51,159 C46.5907123,159 43,155.419317 43,151.002321 L43,131 Z\" transform=\"translate(51.000000, 123.000000) rotate(-45.000000) translate(-51.000000, -123.000000) \"></path>\n        <path d=\"M43,59 L22.9976794,59 C18.5827987,59 15,55.418278 15,51 C15,46.5907123 18.5806831,43 22.9976794,43 L43,43 L43,22.9976794 C43,18.5827987 46.581722,15 51,15 C55.4092877,15 59,18.5806831 59,22.9976794 L59,43 L79.0023206,43 C83.4172013,43 87,46.581722 87,51 C87,55.4092877 83.4193169,59 79.0023206,59 L59,59 L59,79.0023206 C59,83.4172013 55.418278,87 51,87 C46.5907123,87 43,83.4193169 43,79.0023206 L43,59 Z\" transform=\"translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) \"></path>\n        <path d=\"M115,59 L94.9976794,59 C90.5827987,59 87,55.418278 87,51 C87,46.5907123 90.5806831,43 94.9976794,43 L115,43 L115,22.9976794 C115,18.5827987 118.581722,15 123,15 C127.409288,15 131,18.5806831 131,22.9976794 L131,43 L151.002321,43 C155.417201,43 159,46.581722 159,51 C159,55.4092877 155.419317,59 151.002321,59 L131,59 L131,79.0023206 C131,83.4172013 127.418278,87 123,87 C118.590712,87 115,83.4193169 115,79.0023206 L115,59 Z\" transform=\"translate(123.000000, 51.000000) rotate(-45.000000) translate(-123.000000, -51.000000) \"></path>\n        <path d=\"M115,131 L94.9976794,131 C90.5827987,131 87,127.418278 87,123 C87,118.590712 90.5806831,115 94.9976794,115 L115,115 L115,94.9976794 C115,90.5827987 118.581722,87 123,87 C127.409288,87 131,90.5806831 131,94.9976794 L131,115 L151.002321,115 C155.417201,115 159,118.581722 159,123 C159,127.409288 155.419317,131 151.002321,131 L131,131 L131,151.002321 C131,155.417201 127.418278,159 123,159 C118.590712,159 115,155.419317 115,151.002321 L115,131 Z\" transform=\"translate(123.000000, 123.000000) rotate(-45.000000) translate(-123.000000, -123.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-button": {
            "title": "$:/core/images/close-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M65.0864256,75.4091629 L14.9727349,125.522854 C11.8515951,128.643993 6.78104858,128.64922 3.65685425,125.525026 C0.539017023,122.407189 0.5336324,117.334539 3.65902635,114.209145 L53.7727171,64.0954544 L3.65902635,13.9817637 C0.537886594,10.8606239 0.532659916,5.79007744 3.65685425,2.6658831 C6.77469148,-0.451954124 11.8473409,-0.457338747 14.9727349,2.66805521 L65.0864256,52.7817459 L115.200116,2.66805521 C118.321256,-0.453084553 123.391803,-0.458311231 126.515997,2.6658831 C129.633834,5.78372033 129.639219,10.8563698 126.513825,13.9817637 L76.4001341,64.0954544 L126.513825,114.209145 C129.634965,117.330285 129.640191,122.400831 126.515997,125.525026 C123.39816,128.642863 118.32551,128.648248 115.200116,125.522854 L65.0864256,75.4091629 L65.0864256,75.4091629 Z\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/close-others-button": {
            "title": "$:/core/images/close-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-others-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z M64,96 C81.673112,96 96,81.673112 96,64 C96,46.326888 81.673112,32 64,32 C46.326888,32 32,46.326888 32,64 C32,81.673112 46.326888,96 64,96 Z M64,80 C72.836556,80 80,72.836556 80,64 C80,55.163444 72.836556,48 64,48 C55.163444,48 48,55.163444 48,64 C48,72.836556 55.163444,80 64,80 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/delete-button": {
            "title": "$:/core/images/delete-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\" transform=\"translate(12.000000, 0.000000)\">\n        <rect x=\"0\" y=\"11\" width=\"105\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"28\" y=\"0\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"112\" width=\"88\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"56\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"32\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/done-button": {
            "title": "$:/core/images/done-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M3.52445141,76.8322939 C2.07397484,75.3828178 1.17514421,73.3795385 1.17514421,71.1666288 L1.17514421,23.1836596 C1.17514421,18.7531992 4.75686621,15.1751442 9.17514421,15.1751442 C13.5844319,15.1751442 17.1751442,18.7606787 17.1751442,23.1836596 L17.1751442,63.1751442 L119.173716,63.1751442 C123.590457,63.1751442 127.175144,66.7568662 127.175144,71.1751442 C127.175144,75.5844319 123.592783,79.1751442 119.173716,79.1751442 L9.17657227,79.1751442 C6.96796403,79.1751442 4.9674142,78.279521 3.51911285,76.8315312 Z\" id=\"Rectangle-285\" transform=\"translate(64.175144, 47.175144) rotate(-45.000000) translate(-64.175144, -47.175144) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/down-arrow": {
            "title": "$:/core/images/down-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <path d=\"M109.35638,81.3533152 C107.923899,82.7869182 105.94502,83.6751442 103.759224,83.6751442 L24.5910645,83.6751442 C20.225873,83.6751442 16.6751442,80.1307318 16.6751442,75.7584775 C16.6751442,71.3951199 20.2192225,67.8418109 24.5910645,67.8418109 L95.8418109,67.8418109 L95.8418109,-3.40893546 C95.8418109,-7.77412698 99.3862233,-11.3248558 103.758478,-11.3248558 C108.121835,-11.3248558 111.675144,-7.78077754 111.675144,-3.40893546 L111.675144,75.7592239 C111.675144,77.9416955 110.789142,79.9205745 109.356651,81.3538862 Z\" transform=\"translate(64.175144, 36.175144) rotate(45.000000) translate(-64.175144, -36.175144) \"></path>\n</svg>"
        },
        "$:/core/images/download-button": {
            "title": "$:/core/images/download-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-download-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path class=\"tc-image-download-button-ring\" d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"/><path d=\"M34.3496823,66.4308767 L61.2415823,93.634668 C63.0411536,95.4551107 65.9588502,95.4551107 67.7584215,93.634668 L94.6503215,66.4308767 C96.4498928,64.610434 96.4498928,61.6588981 94.6503215,59.8384554 C93.7861334,58.9642445 92.6140473,58.4731195 91.3919019,58.4731195 L82.9324098,58.4731195 C80.3874318,58.4731195 78.3243078,56.3860674 78.3243078,53.8115729 L78.3243078,38.6615466 C78.3243078,36.0870521 76.2611837,34 73.7162058,34 L55.283798,34 C52.7388201,34 50.675696,36.0870521 50.675696,38.6615466 L50.675696,38.6615466 L50.675696,53.8115729 C50.675696,56.3860674 48.612572,58.4731195 46.0675941,58.4731195 L37.608102,58.4731195 C35.063124,58.4731195 33,60.5601716 33,63.134666 C33,64.3709859 33.4854943,65.5566658 34.3496823,66.4308767 L34.3496823,66.4308767 Z\"/></g></svg>"
        },
        "$:/core/images/edit-button": {
            "title": "$:/core/images/edit-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M116.870058,45.3431458 L108.870058,45.3431458 L108.870058,45.3431458 L108.870058,61.3431458 L116.870058,61.3431458 L116.870058,45.3431458 Z M124.870058,45.3431458 L127.649881,45.3431458 C132.066101,45.3431458 135.656854,48.9248678 135.656854,53.3431458 C135.656854,57.7524334 132.07201,61.3431458 127.649881,61.3431458 L124.870058,61.3431458 L124.870058,45.3431458 Z M100.870058,45.3431458 L15.6638275,45.3431458 C15.5064377,45.3431458 15.3501085,45.3476943 15.1949638,45.3566664 L15.1949638,45.3566664 C15.0628002,45.3477039 14.928279,45.3431458 14.7913977,45.3431458 C6.68160973,45.3431458 -8.34314575,53.3431458 -8.34314575,53.3431458 C-8.34314575,53.3431458 6.85614548,61.3431458 14.7913977,61.3431458 C14.9266533,61.3431458 15.0596543,61.3384973 15.190398,61.3293588 C15.3470529,61.3385075 15.5049057,61.3431458 15.6638275,61.3431458 L100.870058,61.3431458 L100.870058,45.3431458 L100.870058,45.3431458 Z\" transform=\"translate(63.656854, 53.343146) rotate(-45.000000) translate(-63.656854, -53.343146) \"></path>\n        <path d=\"M35.1714596,124.189544 C41.9594858,123.613403 49.068777,121.917633 58.85987,118.842282 C60.6854386,118.268877 62.4306907,117.705515 65.1957709,116.802278 C81.1962861,111.575575 87.0734839,109.994907 93.9414474,109.655721 C102.29855,109.242993 107.795169,111.785371 111.520478,118.355045 C112.610163,120.276732 115.051363,120.951203 116.97305,119.861518 C118.894737,118.771832 119.569207,116.330633 118.479522,114.408946 C113.146151,105.003414 104.734907,101.112919 93.5468356,101.66546 C85.6716631,102.054388 79.4899908,103.716944 62.7116783,109.197722 C59.9734132,110.092199 58.2519873,110.64787 56.4625698,111.20992 C37.002649,117.322218 25.6914684,118.282267 16.8654804,112.957098 C14.9739614,111.815848 12.5154166,112.424061 11.3741667,114.31558 C10.2329168,116.207099 10.84113,118.665644 12.7326489,119.806894 C19.0655164,123.627836 26.4866335,124.926678 35.1714596,124.189544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/erase": {
            "title": "$:/core/images/erase",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-erase tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.0870401,127.996166 L123.102318,64.980888 C129.636723,58.4464827 129.629513,47.8655877 123.098967,41.3350425 L99.4657866,17.7018617 C92.927448,11.1635231 82.3486358,11.1698163 75.8199411,17.698511 L4.89768189,88.6207702 C-1.63672343,95.1551755 -1.6295126,105.736071 4.90103262,112.266616 L20.6305829,127.996166 L60.0870401,127.996166 Z M25.1375576,120.682546 L10.812569,106.357558 C7.5455063,103.090495 7.54523836,97.793808 10.8048093,94.5342371 L46.2691086,59.0699377 L81.7308914,94.5317205 L55.5800654,120.682546 L25.1375576,120.682546 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/excise": {
            "title": "$:/core/images/excise",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-excise tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,107.313709 L53.6568542,109.656854 C50.5326599,112.781049 45.4673401,112.781049 42.3431457,109.656854 C39.2189514,106.53266 39.2189514,101.46734 42.3431458,98.3431457 L58.3431458,82.3431457 C61.4673401,79.2189514 66.5326599,79.2189514 69.6568542,82.3431458 L85.6568542,98.3431458 C88.7810486,101.46734 88.7810486,106.53266 85.6568542,109.656854 C82.5326599,112.781049 77.4673401,112.781049 74.3431458,109.656854 L72,107.313708 L72,121.597798 C72,125.133636 68.418278,128 64,128 C59.581722,128 56,125.133636 56,121.597798 L56,107.313709 Z M0,40.0070969 C0,35.5848994 3.59071231,32 8,32 C12.418278,32 16,35.5881712 16,40.0070969 L16,71.9929031 C16,76.4151006 12.4092877,80 8,80 C3.581722,80 0,76.4118288 0,71.9929031 L0,40.0070969 Z M32,40.0070969 C32,35.5848994 35.5907123,32 40,32 C44.418278,32 48,35.5881712 48,40.0070969 L48,71.9929031 C48,76.4151006 44.4092877,80 40,80 C35.581722,80 32,76.4118288 32,71.9929031 L32,40.0070969 Z M80,40.0070969 C80,35.5848994 83.5907123,32 88,32 C92.418278,32 96,35.5881712 96,40.0070969 L96,71.9929031 C96,76.4151006 92.4092877,80 88,80 C83.581722,80 80,76.4118288 80,71.9929031 L80,40.0070969 Z M56,8.00709688 C56,3.58489938 59.5907123,0 64,0 C68.418278,0 72,3.58817117 72,8.00709688 L72,39.9929031 C72,44.4151006 68.4092877,48 64,48 C59.581722,48 56,44.4118288 56,39.9929031 L56,8.00709688 Z M112,40.0070969 C112,35.5848994 115.590712,32 120,32 C124.418278,32 128,35.5881712 128,40.0070969 L128,71.9929031 C128,76.4151006 124.409288,80 120,80 C115.581722,80 112,76.4118288 112,71.9929031 L112,40.0070969 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/export-button": {
            "title": "$:/core/images/export-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-export-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00348646,127.999999 C8.00464867,128 8.00581094,128 8.00697327,128 L119.993027,128 C122.205254,128 124.207939,127.101378 125.657096,125.651198 L125.656838,125.65759 C127.104563,124.210109 128,122.21009 128,119.999949 L128,56.0000511 C128,51.5817449 124.409288,48 120,48 C115.581722,48 112,51.5797863 112,56.0000511 L112,112 L16,112 L16,56.0000511 C16,51.5817449 12.4092877,48 8,48 C3.581722,48 7.10542736e-15,51.5797863 7.10542736e-15,56.0000511 L7.10542736e-15,119.999949 C7.10542736e-15,124.418255 3.59071231,128 8,128 C8.00116233,128 8.0023246,128 8.00348681,127.999999 Z M56.6235633,27.3113724 L47.6580188,36.2769169 C44.5333664,39.4015692 39.4634864,39.4061295 36.339292,36.2819351 C33.2214548,33.1640979 33.2173444,28.0901742 36.3443103,24.9632084 L58.9616908,2.34582788 C60.5248533,0.782665335 62.5748436,0.000361191261 64.624516,2.38225238e-14 L64.6193616,0.00151809229 C66.6695374,0.000796251595 68.7211167,0.781508799 70.2854358,2.34582788 L92.9028163,24.9632084 C96.0274686,28.0878607 96.0320289,33.1577408 92.9078345,36.2819351 C89.7899973,39.3997724 84.7160736,39.4038827 81.5891078,36.2769169 L72.6235633,27.3113724 L72.6235633,88.5669606 C72.6235633,92.9781015 69.0418413,96.5662064 64.6235633,96.5662064 C60.2142756,96.5662064 56.6235633,92.984822 56.6235633,88.5669606 L56.6235633,27.3113724 L56.6235633,27.3113724 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/file": {
            "title": "$:/core/images/file",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-file tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M111.96811,30.5 L112,30.5 L112,119.999079 C112,124.417866 108.419113,128 104.000754,128 L23.9992458,128 C19.5813843,128 16,124.417687 16,119.999079 L16,8.00092105 C16,3.58213437 19.5808867,0 23.9992458,0 L81,0 L81,0.0201838424 C83.1589869,-0.071534047 85.3482153,0.707077645 86.9982489,2.35711116 L109.625176,24.9840387 C111.151676,26.510538 111.932942,28.4998414 111.96811,30.5 L111.96811,30.5 Z M81,8 L24,8 L24,120 L104,120 L104,30.5 L89.0003461,30.5 C84.5818769,30.5 81,26.9216269 81,22.4996539 L81,8 Z\"></path>\n        <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"68\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"84\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"100\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/fixed-height": {
            "title": "$:/core/images/fixed-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fixed-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60,35.6568542 L50.8284271,44.8284271 C49.26633,46.3905243 46.73367,46.3905243 45.1715729,44.8284271 C43.6094757,43.26633 43.6094757,40.73367 45.1715729,39.1715729 L61.1715729,23.1715729 C62.73367,21.6094757 65.2663299,21.6094757 66.8284271,23.1715728 L82.8284278,39.1715728 C84.390525,40.7336699 84.390525,43.2663299 82.8284279,44.8284271 C81.2663308,46.3905243 78.7336709,46.3905243 77.1715737,44.8284272 L68,35.6568539 L68,93.3431461 L77.1715737,84.1715728 C78.7336709,82.6094757 81.2663308,82.6094757 82.8284279,84.1715729 C84.390525,85.7336701 84.390525,88.2663301 82.8284278,89.8284272 L66.8284271,105.828427 C65.2663299,107.390524 62.73367,107.390524 61.1715729,105.828427 L45.1715729,89.8284271 C43.6094757,88.26633 43.6094757,85.73367 45.1715729,84.1715729 C46.73367,82.6094757 49.26633,82.6094757 50.8284271,84.1715729 L60,93.3431458 L60,35.6568542 L60,35.6568542 Z M16,116 L112,116 C114.209139,116 116,114.209139 116,112 C116,109.790861 114.209139,108 112,108 L16,108 C13.790861,108 12,109.790861 12,112 C12,114.209139 13.790861,116 16,116 L16,116 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-all-button": {
            "title": "$:/core/images/fold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,58.6235628 C61.9791013,58.6242848 59.9275217,57.8435723 58.3632024,56.279253 L35.7458219,33.6618725 C32.6211696,30.5372202 32.6166093,25.4673401 35.7408036,22.3431458 C38.8586409,19.2253085 43.9325646,19.2211982 47.0595304,22.348164 L64.0250749,39.3137085 L80.9906194,22.348164 C84.1152717,19.2235117 89.1851518,19.2189514 92.3093461,22.3431458 C95.4271834,25.460983 95.4312937,30.5349067 92.3043279,33.6618725 L69.6869474,56.279253 C68.1237851,57.8424153 66.0737951,58.6247195 64.0241231,58.6250809 Z\" transform=\"translate(64.024316, 39.313708) scale(1, -1) translate(-64.024316, -39.313708) \"></path>\n        <path d=\"M64.0292774,123.621227 C61.9791013,123.621949 59.9275217,122.841236 58.3632024,121.276917 L35.7458219,98.6595365 C32.6211696,95.5348842 32.6166093,90.4650041 35.7408036,87.3408098 C38.8586409,84.2229725 43.9325646,84.2188622 47.0595304,87.345828 L64.0250749,104.311373 L80.9906194,87.345828 C84.1152717,84.2211757 89.1851518,84.2166154 92.3093461,87.3408098 C95.4271834,90.458647 95.4312937,95.5325707 92.3043279,98.6595365 L69.6869474,121.276917 C68.1237851,122.840079 66.0737951,123.622383 64.0241231,123.622745 Z\" transform=\"translate(64.024316, 104.311372) scale(1, -1) translate(-64.024316, -104.311372) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-button": {
            "title": "$:/core/images/fold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,63.6235628 C61.9791013,63.6242848 59.9275217,62.8435723 58.3632024,61.279253 L35.7458219,38.6618725 C32.6211696,35.5372202 32.6166093,30.4673401 35.7408036,27.3431458 C38.8586409,24.2253085 43.9325646,24.2211982 47.0595304,27.348164 L64.0250749,44.3137085 L80.9906194,27.348164 C84.1152717,24.2235117 89.1851518,24.2189514 92.3093461,27.3431458 C95.4271834,30.460983 95.4312937,35.5349067 92.3043279,38.6618725 L69.6869474,61.279253 C68.1237851,62.8424153 66.0737951,63.6247195 64.0241231,63.6250809 Z\" transform=\"translate(64.024316, 44.313708) scale(1, -1) translate(-64.024316, -44.313708) \"></path>\n        <path d=\"M64.0049614,105.998482 C61.9547853,105.999204 59.9032057,105.218491 58.3388864,103.654172 L35.7215059,81.0367916 C32.5968535,77.9121393 32.5922933,72.8422592 35.7164876,69.7180649 C38.8343248,66.6002276 43.9082485,66.5961173 47.0352144,69.7230831 L64.0007589,86.6886276 L80.9663034,69.7230831 C84.0909557,66.5984308 89.1608358,66.5938705 92.2850301,69.7180649 C95.4028673,72.8359021 95.4069777,77.9098258 92.2800119,81.0367916 L69.6626314,103.654172 C68.099469,105.217334 66.0494791,105.999639 63.999807,106 Z\" transform=\"translate(64.000000, 86.688628) scale(1, -1) translate(-64.000000, -86.688628) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-others-button": {
            "title": "$:/core/images/fold-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-others tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"56.0314331\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M101.657101,104.948818 C100.207918,103.498614 98.2051847,102.599976 95.9929031,102.599976 L72,102.599976 L72,78.6070725 C72,76.3964271 71.1036108,74.3936927 69.6545293,72.9441002 L69.6571005,72.9488183 C68.2079177,71.4986143 66.2051847,70.5999756 63.9929031,70.5999756 L32.0070969,70.5999756 C27.5881712,70.5999756 24,74.1816976 24,78.5999756 C24,83.0092633 27.5848994,86.5999756 32.0070969,86.5999756 L56,86.5999756 L56,110.592879 C56,112.803524 56.8963895,114.806259 58.3454713,116.255852 L58.3429,116.251133 C59.7920828,117.701337 61.7948156,118.599976 64.0070969,118.599976 L88,118.599976 L88,142.592879 C88,147.011804 91.581722,150.599976 96,150.599976 C100.409288,150.599976 104,147.015076 104,142.592879 L104,110.607072 C104,108.396427 103.103611,106.393693 101.654529,104.9441 Z\" transform=\"translate(64.000000, 110.599976) rotate(-45.000000) translate(-64.000000, -110.599976) \"></path>\n        <path d=\"M101.725643,11.7488671 C100.27646,10.2986632 98.2737272,9.40002441 96.0614456,9.40002441 L72.0685425,9.40002441 L72.0685425,-14.5928787 C72.0685425,-16.8035241 71.1721533,-18.8062584 69.7230718,-20.255851 L69.725643,-20.2511329 C68.2764602,-21.7013368 66.2737272,-22.5999756 64.0614456,-22.5999756 L32.0756394,-22.5999756 C27.6567137,-22.5999756 24.0685425,-19.0182536 24.0685425,-14.5999756 C24.0685425,-10.1906879 27.6534419,-6.59997559 32.0756394,-6.59997559 L56.0685425,-6.59997559 L56.0685425,17.3929275 C56.0685425,19.6035732 56.964932,21.6063078 58.4140138,23.0559004 L58.4114425,23.0511823 C59.8606253,24.5013859 61.8633581,25.4000244 64.0756394,25.4000244 L88.0685425,25.4000244 L88.0685425,49.3929275 C88.0685425,53.8118532 91.6502645,57.4000244 96.0685425,57.4000244 C100.47783,57.4000244 104.068542,53.815125 104.068542,49.3929275 L104.068542,17.4071213 C104.068542,15.1964759 103.172153,13.1937416 101.723072,11.744149 Z\" transform=\"translate(64.068542, 17.400024) scale(1, -1) rotate(-45.000000) translate(-64.068542, -17.400024) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/folder": {
            "title": "$:/core/images/folder",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-folder tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.6943257,128.000004 L7.99859666,128.000004 C3.5810937,128.000004 0,124.413822 0,119.996384 L0,48.0036243 C0,43.5833471 3.58387508,40.0000044 7.99859666,40.0000044 L16,40.0000044 L16,31.9999914 C16,27.5817181 19.5783731,24 24.0003461,24 L55.9996539,24 C60.4181231,24 64,27.5800761 64,31.9999914 L64,40.0000044 L104.001403,40.0000044 C108.418906,40.0000044 112,43.5861868 112,48.0036243 L112,59.8298353 L104,59.7475921 L104,51.9994189 C104,49.7887607 102.207895,48.0000044 99.9972215,48.0000044 L56,48.0000044 L56,36.0000255 C56,33.7898932 54.2072328,32 51.9957423,32 L28.0042577,32 C25.7890275,32 24,33.7908724 24,36.0000255 L24,48.0000044 L12.0027785,48.0000044 C9.78987688,48.0000044 8,49.7906032 8,51.9994189 L8,116.00059 C8,118.211248 9.79210499,120.000004 12.0027785,120.000004 L58.7630167,120.000004 L55.6943257,128.000004 L55.6943257,128.000004 Z\"></path>\n        <path d=\"M23.8728955,55.5 L119.875702,55.5 C124.293205,55.5 126.87957,59.5532655 125.650111,64.5630007 L112.305967,118.936999 C111.077582,123.942356 106.497904,128 102.083183,128 L6.08037597,128 C1.66287302,128 -0.923492342,123.946735 0.305967145,118.936999 L13.650111,64.5630007 C14.878496,59.5576436 19.4581739,55.5 23.8728955,55.5 L23.8728955,55.5 L23.8728955,55.5 Z M25.6530124,64 L113.647455,64 C115.858129,64 117.151473,66.0930612 116.538306,68.6662267 L105.417772,115.333773 C104.803671,117.910859 102.515967,120 100.303066,120 L12.3086228,120 C10.0979492,120 8.8046054,117.906939 9.41777189,115.333773 L20.5383062,68.6662267 C21.1524069,66.0891409 23.4401107,64 25.6530124,64 L25.6530124,64 L25.6530124,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/full-screen-button": {
            "title": "$:/core/images/full-screen-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-full-screen-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g>\n        <g>\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 104.000000) rotate(-180.000000) translate(-104.000000, -104.000000) translate(80.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(24.000000, 104.000000) rotate(-90.000000) translate(-24.000000, -104.000000) translate(0.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 24.000000) rotate(90.000000) translate(-104.000000, -24.000000) translate(80.000000, 0.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/github": {
            "title": "$:/core/images/github",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-github tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n        <g fill-rule=\"evenodd\">\n            <path d=\"M63.9383506,1.60695328 C28.6017227,1.60695328 -0.055756057,30.2970814 -0.055756057,65.6906208 C-0.055756057,94.003092 18.2804728,118.019715 43.7123154,126.493393 C46.9143781,127.083482 48.0812647,125.104717 48.0812647,123.405261 C48.0812647,121.886765 48.02626,117.85449 47.9948287,112.508284 C30.1929317,116.379268 26.4368926,103.916587 26.4368926,103.916587 C23.5255693,96.5129372 19.3294921,94.5420399 19.3294921,94.5420399 C13.5186324,90.5687739 19.7695302,90.6474524 19.7695302,90.6474524 C26.1933001,91.099854 29.5721638,97.2525155 29.5721638,97.2525155 C35.2808718,107.044059 44.5531024,104.215566 48.1991321,102.575118 C48.7806109,98.4366275 50.4346826,95.612068 52.2616263,94.0109598 C38.0507543,92.3941159 23.1091047,86.8944862 23.1091047,62.3389152 C23.1091047,55.3443933 25.6039634,49.6205298 29.6978889,45.1437211 C29.0378318,43.5229433 26.8415704,37.0044266 30.3265147,28.1845627 C30.3265147,28.1845627 35.6973364,26.4615028 47.9241083,34.7542205 C53.027764,33.330139 58.5046663,32.6220321 63.9462084,32.5944947 C69.3838216,32.6220321 74.856795,33.330139 79.9683085,34.7542205 C92.1872225,26.4615028 97.5501864,28.1845627 97.5501864,28.1845627 C101.042989,37.0044266 98.8467271,43.5229433 98.190599,45.1437211 C102.292382,49.6205298 104.767596,55.3443933 104.767596,62.3389152 C104.767596,86.9574291 89.8023734,92.3744463 75.5482834,93.9598188 C77.8427675,95.9385839 79.8897303,99.8489072 79.8897303,105.828476 C79.8897303,114.392635 79.8111521,121.304544 79.8111521,123.405261 C79.8111521,125.120453 80.966252,127.114954 84.2115327,126.489459 C109.623731,117.996111 127.944244,93.9952241 127.944244,65.6906208 C127.944244,30.2970814 99.2867652,1.60695328 63.9383506,1.60695328\"></path>\n        </g>\n    </svg>\n"
        },
        "$:/core/images/globe": {
            "title": "$:/core/images/globe",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-globe tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M72.8111354,37.1275855 C72.8111354,37.9789875 72.8111354,38.8303894 72.8111354,39.6817913 C72.8111354,41.8784743 73.7885604,46.5631866 72.8111354,48.5143758 C71.3445471,51.4420595 68.1617327,52.0543531 66.4170946,54.3812641 C65.2352215,55.9575873 61.7987417,64.9821523 62.7262858,67.3005778 C66.6959269,77.2228204 74.26087,70.4881886 80.6887657,76.594328 C81.5527211,77.415037 83.5758191,78.8666631 83.985137,79.8899578 C87.2742852,88.1128283 76.4086873,94.8989524 87.7419325,106.189751 C88.9872885,107.430443 91.555495,102.372895 91.8205061,101.575869 C92.6726866,99.0129203 98.5458765,96.1267309 100.908882,94.5234439 C102.928056,93.1534443 105.782168,91.8557166 107.236936,89.7775886 C109.507391,86.5342557 108.717505,82.2640435 110.334606,79.0328716 C112.473794,74.7585014 114.163418,69.3979002 116.332726,65.0674086 C120.230862,57.2857361 121.054075,67.1596684 121.400359,67.5059523 C121.757734,67.8633269 122.411167,67.5059523 122.916571,67.5059523 C123.011132,67.5059523 124.364019,67.6048489 124.432783,67.5059523 C125.0832,66.5705216 123.390209,49.5852316 123.114531,48.2089091 C121.710578,41.1996597 116.17083,32.4278331 111.249523,27.7092761 C104.975994,21.6942076 104.160516,11.5121686 92.9912146,12.7547535 C92.7872931,12.7774397 87.906794,22.9027026 85.2136766,26.2672064 C81.486311,30.9237934 82.7434931,22.1144904 78.6876623,22.1144904 C78.6065806,22.1144904 77.5045497,22.0107615 77.4353971,22.1144904 C76.8488637,22.9942905 75.9952305,26.0101404 75.1288269,26.5311533 C74.8635477,26.6906793 73.4071369,26.2924966 73.2826811,26.5311533 C71.0401728,30.8313939 81.5394677,28.7427264 79.075427,34.482926 C76.7225098,39.9642538 72.747373,32.4860199 72.747373,43.0434079\"></path>\n        <path d=\"M44.4668556,7.01044608 C54.151517,13.1403033 45.1489715,19.2084878 47.1611905,23.2253896 C48.8157833,26.5283781 51.4021933,28.6198851 48.8753629,33.038878 C46.8123257,36.6467763 42.0052989,37.0050492 39.251679,39.7621111 C36.2115749,42.8060154 33.7884281,48.7028116 32.4624592,52.6732691 C30.8452419,57.5158356 47.0088721,59.5388126 44.5246867,63.6811917 C43.1386839,65.9923513 37.7785192,65.1466282 36.0880227,63.8791519 C34.9234453,63.0059918 32.4946425,63.3331166 31.6713597,62.0997342 C29.0575851,58.1839669 29.4107339,54.0758543 28.0457962,49.9707786 C27.1076833,47.1493864 21.732611,47.8501656 20.2022714,49.3776393 C19.6790362,49.8998948 19.8723378,51.1703278 19.8723378,51.8829111 C19.8723378,57.1682405 26.9914913,55.1986414 26.9914913,58.3421973 C26.9914913,72.9792302 30.9191897,64.8771867 38.1313873,69.6793121 C48.1678018,76.3618966 45.9763926,76.981595 53.0777543,84.0829567 C56.7511941,87.7563965 60.8192437,87.7689005 62.503478,93.3767069 C64.1046972,98.7081071 53.1759798,98.7157031 50.786754,100.825053 C49.663965,101.816317 47.9736094,104.970571 46.5680513,105.439676 C44.7757187,106.037867 43.334221,105.93607 41.6242359,107.219093 C39.1967302,109.040481 37.7241465,112.151588 37.6034934,112.030935 C35.4555278,109.88297 34.0848666,96.5511248 33.7147244,93.7726273 C33.1258872,89.3524817 28.1241923,88.2337027 26.7275443,84.7420826 C25.1572737,80.8164061 28.2518481,75.223612 25.599097,70.9819941 C19.0797019,60.557804 13.7775712,56.4811506 10.2493953,44.6896152 C9.3074899,41.5416683 13.5912267,38.1609942 15.1264825,35.8570308 C17.0029359,33.0410312 17.7876232,30.0028946 19.8723378,27.2224065 C22.146793,24.1888519 40.8551166,9.46076832 43.8574051,8.63490613 L44.4668556,7.01044608 Z\"></path>\n        <path d=\"M64,126 C98.2416545,126 126,98.2416545 126,64 C126,29.7583455 98.2416545,2 64,2 C29.7583455,2 2,29.7583455 2,64 C2,98.2416545 29.7583455,126 64,126 Z M64,120 C94.927946,120 120,94.927946 120,64 C120,33.072054 94.927946,8 64,8 C33.072054,8 8,33.072054 8,64 C8,94.927946 33.072054,120 64,120 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-1": {
            "title": "$:/core/images/heading-1",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M14,30 L27.25,30 L27.25,60.104 L61.7,60.104 L61.7,30 L74.95,30 L74.95,105.684 L61.7,105.684 L61.7,71.552 L27.25,71.552 L27.25,105.684 L14,105.684 L14,30 Z M84.3350766,43.78 C86.8790893,43.78 89.3523979,43.5680021 91.7550766,43.144 C94.1577553,42.7199979 96.3307336,42.0133383 98.2740766,41.024 C100.21742,40.0346617 101.87807,38.7626744 103.256077,37.208 C104.634084,35.6533256 105.535075,33.7453446 105.959077,31.484 L115.817077,31.484 L115.817077,105.684 L102.567077,105.684 L102.567077,53.32 L84.3350766,53.32 L84.3350766,43.78 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-2": {
            "title": "$:/core/images/heading-2",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-2 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M125.519077,105.684 L74.8510766,105.684 C74.9217436,99.5359693 76.4057288,94.1653563 79.3030766,89.572 C82.2004244,84.9786437 86.1577182,80.986017 91.1750766,77.594 C93.5777553,75.8273245 96.0863969,74.113675 98.7010766,72.453 C101.315756,70.792325 103.718399,69.0080095 105.909077,67.1 C108.099754,65.1919905 109.901736,63.1250111 111.315077,60.899 C112.728417,58.6729889 113.47041,56.1113478 113.541077,53.214 C113.541077,51.8713266 113.382078,50.4403409 113.064077,48.921 C112.746075,47.4016591 112.127748,45.9883399 111.209077,44.681 C110.290405,43.3736601 109.018418,42.2783377 107.393077,41.395 C105.767735,40.5116622 103.647756,40.07 101.033077,40.07 C98.6303979,40.07 96.6340846,40.5469952 95.0440766,41.501 C93.4540687,42.4550048 92.1820814,43.762325 91.2280766,45.423 C90.2740719,47.083675 89.5674123,49.0446554 89.1080766,51.306 C88.648741,53.5673446 88.3837436,56.0053203 88.3130766,58.62 L76.2290766,58.62 C76.2290766,54.5213128 76.7767378,50.7230175 77.8720766,47.225 C78.9674154,43.7269825 80.610399,40.7060127 82.8010766,38.162 C84.9917542,35.6179873 87.6593942,33.6216739 90.8040766,32.173 C93.948759,30.7243261 97.6057224,30 101.775077,30 C106.297766,30 110.078395,30.7419926 113.117077,32.226 C116.155758,33.7100074 118.611401,35.5826554 120.484077,37.844 C122.356753,40.1053446 123.681739,42.5609868 124.459077,45.211 C125.236414,47.8610133 125.625077,50.3873213 125.625077,52.79 C125.625077,55.7580148 125.165748,58.4433213 124.247077,60.846 C123.328405,63.2486787 122.091751,65.4569899 120.537077,67.471 C118.982402,69.4850101 117.215753,71.3399915 115.237077,73.036 C113.2584,74.7320085 111.209087,76.3219926 109.089077,77.806 C106.969066,79.2900074 104.849087,80.7033266 102.729077,82.046 C100.609066,83.3886734 98.6480856,84.7313266 96.8460766,86.074 C95.0440676,87.4166734 93.47175,88.8123261 92.1290766,90.261 C90.7864032,91.7096739 89.8677458,93.2466585 89.3730766,94.872 L125.519077,94.872 L125.519077,105.684 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-3": {
            "title": "$:/core/images/heading-3",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-3 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M94.8850766,62.224 C96.8637532,62.294667 98.8424001,62.1533351 100.821077,61.8 C102.799753,61.4466649 104.566402,60.8283378 106.121077,59.945 C107.675751,59.0616623 108.930072,57.8426744 109.884077,56.288 C110.838081,54.7333256 111.315077,52.8253446 111.315077,50.564 C111.315077,47.3839841 110.237421,44.8400095 108.082077,42.932 C105.926733,41.0239905 103.153094,40.07 99.7610766,40.07 C97.641066,40.07 95.8037511,40.4939958 94.2490766,41.342 C92.6944022,42.1900042 91.4047484,43.3383261 90.3800766,44.787 C89.3554048,46.2356739 88.5957458,47.860991 88.1010766,49.663 C87.6064075,51.465009 87.3944096,53.3199905 87.4650766,55.228 L75.3810766,55.228 C75.5224107,51.623982 76.1937373,48.2850154 77.3950766,45.211 C78.596416,42.1369846 80.2393995,39.4693446 82.3240766,37.208 C84.4087537,34.9466554 86.9350618,33.1800064 89.9030766,31.908 C92.8710915,30.6359936 96.2277246,30 99.9730766,30 C102.870424,30 105.714729,30.4239958 108.506077,31.272 C111.297424,32.1200042 113.806065,33.3566585 116.032077,34.982 C118.258088,36.6073415 120.042403,38.6743208 121.385077,41.183 C122.72775,43.6916792 123.399077,46.5713171 123.399077,49.822 C123.399077,53.5673521 122.551085,56.8356527 120.855077,59.627 C119.159068,62.4183473 116.509095,64.4499936 112.905077,65.722 L112.905077,65.934 C117.145098,66.7820042 120.448731,68.8843166 122.816077,72.241 C125.183422,75.5976835 126.367077,79.6786426 126.367077,84.484 C126.367077,88.017351 125.660417,91.1796527 124.247077,93.971 C122.833736,96.7623473 120.925755,99.129657 118.523077,101.073 C116.120398,103.016343 113.329093,104.517995 110.149077,105.578 C106.969061,106.638005 103.612428,107.168 100.079077,107.168 C95.7683884,107.168 92.005426,106.549673 88.7900766,105.313 C85.5747272,104.076327 82.8894207,102.327345 80.7340766,100.066 C78.5787325,97.8046554 76.9357489,95.0840159 75.8050766,91.904 C74.6744043,88.7239841 74.0737436,85.1906861 74.0030766,81.304 L86.0870766,81.304 C85.9457426,85.8266893 87.0587315,89.5896517 89.4260766,92.593 C91.7934218,95.5963483 95.3443863,97.098 100.079077,97.098 C104.107097,97.098 107.481396,95.9496782 110.202077,93.653 C112.922757,91.3563219 114.283077,88.0880212 114.283077,83.848 C114.283077,80.9506522 113.717749,78.6540085 112.587077,76.958 C111.456404,75.2619915 109.972419,73.9723378 108.135077,73.089 C106.297734,72.2056623 104.230755,71.6580011 101.934077,71.446 C99.6373985,71.2339989 97.2877553,71.163333 94.8850766,71.234 L94.8850766,62.224 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-4": {
            "title": "$:/core/images/heading-4",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-4 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8,30 L21.25,30 L21.25,60.104 L55.7,60.104 L55.7,30 L68.95,30 L68.95,105.684 L55.7,105.684 L55.7,71.552 L21.25,71.552 L21.25,105.684 L8,105.684 L8,30 Z M84.5890766,78.548 L107.061077,78.548 L107.061077,45.9 L106.849077,45.9 L84.5890766,78.548 Z M128.049077,88.088 L118.509077,88.088 L118.509077,105.684 L107.061077,105.684 L107.061077,88.088 L75.2610766,88.088 L75.2610766,76.11 L107.061077,31.484 L118.509077,31.484 L118.509077,78.548 L128.049077,78.548 L128.049077,88.088 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-5": {
            "title": "$:/core/images/heading-5",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-5 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M83.7550766,31.484 L122.127077,31.484 L122.127077,42.296 L92.7650766,42.296 L88.9490766,61.164 L89.1610766,61.376 C90.7864181,59.5386575 92.8533974,58.1430048 95.3620766,57.189 C97.8707558,56.2349952 100.361731,55.758 102.835077,55.758 C106.509762,55.758 109.795729,56.3763272 112.693077,57.613 C115.590424,58.8496729 118.0284,60.5809889 120.007077,62.807 C121.985753,65.0330111 123.487405,67.6653181 124.512077,70.704 C125.536748,73.7426819 126.049077,77.028649 126.049077,80.562 C126.049077,83.5300148 125.572081,86.5863176 124.618077,89.731 C123.664072,92.8756824 122.144754,95.7376538 120.060077,98.317 C117.9754,100.896346 115.30776,103.016325 112.057077,104.677 C108.806394,106.337675 104.919766,107.168 100.397077,107.168 C96.7930586,107.168 93.454092,106.691005 90.3800766,105.737 C87.3060613,104.782995 84.6030883,103.35201 82.2710766,101.444 C79.939065,99.5359905 78.0840835,97.1863473 76.7060766,94.395 C75.3280697,91.6036527 74.5684107,88.3353521 74.4270766,84.59 L86.5110766,84.59 C86.8644117,88.6180201 88.2423979,91.7096559 90.6450766,93.865 C93.0477553,96.0203441 96.2277235,97.098 100.185077,97.098 C102.729089,97.098 104.884401,96.6740042 106.651077,95.826 C108.417752,94.9779958 109.848738,93.8120074 110.944077,92.328 C112.039415,90.8439926 112.816741,89.1126766 113.276077,87.134 C113.735412,85.1553234 113.965077,83.0353446 113.965077,80.774 C113.965077,78.7246564 113.682413,76.763676 113.117077,74.891 C112.55174,73.018324 111.703749,71.3753404 110.573077,69.962 C109.442404,68.5486596 107.976086,67.4180042 106.174077,66.57 C104.372068,65.7219958 102.269755,65.298 99.8670766,65.298 C97.3230639,65.298 94.9380878,65.7749952 92.7120766,66.729 C90.4860655,67.6830048 88.8784149,69.4673203 87.8890766,72.082 L75.8050766,72.082 L83.7550766,31.484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-6": {
            "title": "$:/core/images/heading-6",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-6 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M112.587077,50.246 C112.304409,47.2073181 111.226753,44.751676 109.354077,42.879 C107.481401,41.006324 104.955093,40.07 101.775077,40.07 C99.584399,40.07 97.6940846,40.4763293 96.1040766,41.289 C94.5140687,42.1016707 93.1714154,43.1793266 92.0760766,44.522 C90.9807378,45.8646734 90.0974133,47.401658 89.4260766,49.133 C88.7547399,50.864342 88.2070787,52.6839905 87.7830766,54.592 C87.3590745,56.5000095 87.0587442,58.390324 86.8820766,60.263 C86.7054091,62.135676 86.5464107,63.8846585 86.4050766,65.51 L86.6170766,65.722 C88.2424181,62.7539852 90.4860623,60.5456739 93.3480766,59.097 C96.2100909,57.6483261 99.3017267,56.924 102.623077,56.924 C106.297762,56.924 109.583729,57.5599936 112.481077,58.832 C115.378424,60.1040064 117.834067,61.8529889 119.848077,64.079 C121.862087,66.3050111 123.399071,68.9373181 124.459077,71.976 C125.519082,75.0146819 126.049077,78.300649 126.049077,81.834 C126.049077,85.438018 125.466082,88.7769846 124.300077,91.851 C123.134071,94.9250154 121.455754,97.6103219 119.265077,99.907 C117.074399,102.203678 114.459758,103.987994 111.421077,105.26 C108.382395,106.532006 105.025762,107.168 101.351077,107.168 C95.9097161,107.168 91.4400941,106.16101 87.9420766,104.147 C84.4440591,102.13299 81.6880867,99.3770175 79.6740766,95.879 C77.6600666,92.3809825 76.2644138,88.2823568 75.4870766,83.583 C74.7097394,78.8836432 74.3210766,73.8133605 74.3210766,68.372 C74.3210766,63.9199777 74.7980719,59.4326893 75.7520766,54.91 C76.7060814,50.3873107 78.278399,46.2710186 80.4690766,42.561 C82.6597542,38.8509815 85.5393921,35.8300117 89.1080766,33.498 C92.6767611,31.1659883 97.0757171,30 102.305077,30 C105.273091,30 108.064397,30.4946617 110.679077,31.484 C113.293756,32.4733383 115.608067,33.8513245 117.622077,35.618 C119.636087,37.3846755 121.27907,39.5046543 122.551077,41.978 C123.823083,44.4513457 124.529743,47.2073181 124.671077,50.246 L112.587077,50.246 Z M100.927077,97.098 C103.117754,97.098 105.025735,96.6563378 106.651077,95.773 C108.276418,94.8896623 109.636738,93.7413404 110.732077,92.328 C111.827415,90.9146596 112.640074,89.271676 113.170077,87.399 C113.700079,85.526324 113.965077,83.6006766 113.965077,81.622 C113.965077,79.6433234 113.700079,77.7353425 113.170077,75.898 C112.640074,74.0606575 111.827415,72.4530069 110.732077,71.075 C109.636738,69.6969931 108.276418,68.5840042 106.651077,67.736 C105.025735,66.8879958 103.117754,66.464 100.927077,66.464 C98.736399,66.464 96.8107516,66.8703293 95.1500766,67.683 C93.4894017,68.4956707 92.0937489,69.5909931 90.9630766,70.969 C89.8324043,72.3470069 88.9844128,73.9546575 88.4190766,75.792 C87.8537405,77.6293425 87.5710766,79.5726564 87.5710766,81.622 C87.5710766,83.6713436 87.8537405,85.6146575 88.4190766,87.452 C88.9844128,89.2893425 89.8324043,90.9323261 90.9630766,92.381 C92.0937489,93.8296739 93.4894017,94.9779958 95.1500766,95.826 C96.8107516,96.6740042 98.736399,97.098 100.927077,97.098 L100.927077,97.098 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/help": {
            "title": "$:/core/images/help",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-help tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M36.0548906,111.44117 C30.8157418,115.837088 20.8865444,118.803477 9.5,118.803477 C7.86465619,118.803477 6.25937294,118.742289 4.69372699,118.624467 C12.612543,115.984876 18.7559465,110.02454 21.0611049,102.609942 C8.74739781,92.845129 1.04940554,78.9359851 1.04940554,63.5 C1.04940554,33.9527659 29.2554663,10 64.0494055,10 C98.8433448,10 127.049406,33.9527659 127.049406,63.5 C127.049406,93.0472341 98.8433448,117 64.0494055,117 C53.9936953,117 44.48824,114.999337 36.0548906,111.44117 L36.0548906,111.44117 Z M71.4042554,77.5980086 C71.406883,77.2865764 71.4095079,76.9382011 71.4119569,76.5610548 C71.4199751,75.3262169 71.4242825,74.0811293 71.422912,72.9158546 C71.4215244,71.736154 71.4143321,70.709635 71.4001396,69.8743525 C71.4078362,68.5173028 71.9951951,67.7870427 75.1273009,65.6385471 C75.2388969,65.5619968 76.2124091,64.8981068 76.5126553,64.6910879 C79.6062455,62.5580654 81.5345849,60.9050204 83.2750652,58.5038955 C85.6146327,55.2762841 86.8327108,51.426982 86.8327108,46.8554323 C86.8327108,33.5625756 76.972994,24.9029551 65.3778484,24.9029551 C54.2752771,24.9029551 42.8794554,34.5115163 41.3121702,47.1975534 C40.9043016,50.4989536 43.2499725,53.50591 46.5513726,53.9137786 C49.8527728,54.3216471 52.8597292,51.9759763 53.2675978,48.6745761 C54.0739246,42.1479456 60.2395837,36.9492759 65.3778484,36.9492759 C70.6427674,36.9492759 74.78639,40.5885487 74.78639,46.8554323 C74.78639,50.4892974 73.6853224,52.008304 69.6746221,54.7736715 C69.4052605,54.9593956 68.448509,55.6118556 68.3131127,55.7047319 C65.6309785,57.5445655 64.0858213,58.803255 62.6123358,60.6352315 C60.5044618,63.2559399 59.3714208,66.3518252 59.3547527,69.9487679 C59.3684999,70.8407274 59.3752803,71.8084521 59.3765995,72.9300232 C59.3779294,74.0607297 59.3737237,75.2764258 59.36589,76.482835 C59.3634936,76.8518793 59.3609272,77.1924914 59.3583633,77.4963784 C59.3568319,77.6778944 59.3556368,77.8074256 59.3549845,77.8730928 C59.3219814,81.1994287 61.9917551,83.9227111 65.318091,83.9557142 C68.644427,83.9887173 71.3677093,81.3189435 71.4007124,77.9926076 C71.4014444,77.9187458 71.402672,77.7856841 71.4042554,77.5980086 Z M65.3778489,102.097045 C69.5359735,102.097045 72.9067994,98.7262189 72.9067994,94.5680944 C72.9067994,90.4099698 69.5359735,87.0391439 65.3778489,87.0391439 C61.2197243,87.0391439 57.8488984,90.4099698 57.8488984,94.5680944 C57.8488984,98.7262189 61.2197243,102.097045 65.3778489,102.097045 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/home-button": {
            "title": "$:/core/images/home-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112.9847,119.501583 C112.99485,119.336814 113,119.170705 113,119.003406 L113,67.56802 C116.137461,70.5156358 121.076014,70.4518569 124.133985,67.3938855 C127.25818,64.2696912 127.260618,59.2068102 124.131541,56.0777326 L70.3963143,2.34250601 C68.8331348,0.779326498 66.7828947,-0.000743167069 64.7337457,1.61675364e-05 C62.691312,-0.00409949529 60.6426632,0.777559815 59.077717,2.34250601 L33,28.420223 L33,28.420223 L33,8.00697327 C33,3.58484404 29.4092877,0 25,0 C20.581722,0 17,3.59075293 17,8.00697327 L17,44.420223 L5.3424904,56.0777326 C2.21694607,59.2032769 2.22220878,64.2760483 5.34004601,67.3938855 C8.46424034,70.5180798 13.5271213,70.5205187 16.6561989,67.3914411 L17,67.04764 L17,119.993027 C17,119.994189 17.0000002,119.995351 17.0000007,119.996514 C17.0000002,119.997675 17,119.998838 17,120 C17,124.418278 20.5881049,128 24.9992458,128 L105.000754,128 C109.418616,128 113,124.409288 113,120 C113,119.832611 112.99485,119.666422 112.9847,119.501583 Z M97,112 L97,51.5736087 L97,51.5736087 L64.7370156,19.3106244 L33,51.04764 L33,112 L97,112 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/import-button": {
            "title": "$:/core/images/import-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-import-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M105.449437,94.2138951 C105.449437,94.2138951 110.049457,94.1897106 110.049457,99.4026111 C110.049457,104.615512 105.163246,104.615511 105.163246,104.615511 L45.0075072,105.157833 C45.0075072,105.157833 0.367531803,106.289842 0.367532368,66.6449212 C0.367532934,27.0000003 45.0428249,27.0000003 45.0428249,27.0000003 L105.532495,27.0000003 C105.532495,27.0000003 138.996741,25.6734987 138.996741,55.1771866 C138.996741,84.6808745 105.727102,82.8457535 105.727102,82.8457535 L56.1735087,82.8457535 C56.1735087,82.8457535 22.6899229,85.1500223 22.6899229,66.0913753 C22.6899229,47.0327282 56.1735087,49.3383013 56.1735087,49.3383013 L105.727102,49.3383013 C105.727102,49.3383013 111.245209,49.3383024 111.245209,54.8231115 C111.245209,60.3079206 105.727102,60.5074524 105.727102,60.5074524 L56.1735087,60.5074524 C56.1735087,60.5074524 37.48913,60.5074528 37.48913,66.6449195 C37.48913,72.7823862 56.1735087,71.6766023 56.1735087,71.6766023 L105.727102,71.6766029 C105.727102,71.6766029 127.835546,73.1411469 127.835546,55.1771866 C127.835546,35.5304025 105.727102,38.3035317 105.727102,38.3035317 L45.0428249,38.3035317 C45.0428249,38.3035317 11.5287276,38.3035313 11.5287276,66.6449208 C11.5287276,94.9863103 45.0428244,93.9579678 45.0428244,93.9579678 L105.449437,94.2138951 Z\" transform=\"translate(69.367532, 66.000000) rotate(-45.000000) translate(-69.367532, -66.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/info-button": {
            "title": "$:/core/images/info-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <g transform=\"translate(0.049406, 0.000000)\">\n            <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"></path>\n            <circle cx=\"64\" cy=\"32\" r=\"8\"></circle>\n            <rect x=\"56\" y=\"48\" width=\"16\" height=\"56\" rx=\"8\"></rect>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/italic": {
            "title": "$:/core/images/italic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-italic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n         <polygon points=\"66.7114846 0 89.1204482 0 62.4089636 128 40 128\"></polygon>\n    </g>\n</svg>"
        },
        "$:/core/images/left-arrow": {
            "created": "20150315234410875",
            "modified": "20150315235324760",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/left-arrow",
            "text": "<svg class=\"tc-image-left-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path transform=\"rotate(135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25075c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056z\"/>\n</svg>\n"
        },
        "$:/core/images/line-width": {
            "title": "$:/core/images/line-width",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-line-width tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128,-97 L112.992786,-97 C112.452362,-97 112,-96.5522847 112,-96 C112,-95.4438648 112.444486,-95 112.992786,-95 L128,-95 L128,-97 Z M128,-78.6794919 L111.216185,-88.3696322 C110.748163,-88.6398444 110.132549,-88.4782926 109.856406,-88 C109.578339,-87.5183728 109.741342,-86.9117318 110.216185,-86.6375814 L128,-76.3700908 L128,-78.6794919 Z M78.6794919,-128 L88.3696322,-111.216185 C88.6437826,-110.741342 88.4816272,-110.134474 88,-109.856406 C87.5217074,-109.580264 86.9077936,-109.748163 86.6375814,-110.216185 L76.3700908,-128 L78.6794919,-128 Z M97,-128 L97,-112.992786 C97,-112.444486 96.5561352,-112 96,-112 C95.4477153,-112 95,-112.452362 95,-112.992786 L95,-128 L97,-128 Z M115.629909,-128 L105.362419,-110.216185 C105.088268,-109.741342 104.481627,-109.578339 104,-109.856406 C103.521707,-110.132549 103.360156,-110.748163 103.630368,-111.216185 L113.320508,-128 L115.629909,-128 Z M128,-113.320508 L111.216185,-103.630368 C110.741342,-103.356217 110.134474,-103.518373 109.856406,-104 C109.580264,-104.478293 109.748163,-105.092206 110.216185,-105.362419 L128,-115.629909 L128,-113.320508 Z M48,-96 C48,-96.5522847 48.4523621,-97 48.9927864,-97 L79.0072136,-97 C79.5555144,-97 80,-96.5561352 80,-96 C80,-95.4477153 79.5476379,-95 79.0072136,-95 L48.9927864,-95 C48.4444856,-95 48,-95.4438648 48,-96 Z M54.4307806,-120 C54.706923,-120.478293 55.3225377,-120.639844 55.7905589,-120.369632 L81.7838153,-105.362419 C82.2586577,-105.088268 82.4216611,-104.481627 82.1435935,-104 C81.8674512,-103.521707 81.2518365,-103.360156 80.7838153,-103.630368 L54.7905589,-118.637581 C54.3157165,-118.911732 54.152713,-119.518373 54.4307806,-120 Z M104,-82.1435935 C104.478293,-82.4197359 105.092206,-82.2518365 105.362419,-81.7838153 L120.369632,-55.7905589 C120.643783,-55.3157165 120.481627,-54.7088482 120,-54.4307806 C119.521707,-54.1546382 118.907794,-54.3225377 118.637581,-54.7905589 L103.630368,-80.7838153 C103.356217,-81.2586577 103.518373,-81.865526 104,-82.1435935 Z M96,-80 C96.5522847,-80 97,-79.5476379 97,-79.0072136 L97,-48.9927864 C97,-48.4444856 96.5561352,-48 96,-48 C95.4477153,-48 95,-48.4523621 95,-48.9927864 L95,-79.0072136 C95,-79.5555144 95.4438648,-80 96,-80 Z M88,-82.1435935 C88.4782926,-81.8674512 88.6398444,-81.2518365 88.3696322,-80.7838153 L73.3624186,-54.7905589 C73.0882682,-54.3157165 72.4816272,-54.152713 72,-54.4307806 C71.5217074,-54.706923 71.3601556,-55.3225377 71.6303678,-55.7905589 L86.6375814,-81.7838153 C86.9117318,-82.2586577 87.5183728,-82.4216611 88,-82.1435935 Z M82.1435935,-88 C82.4197359,-87.5217074 82.2518365,-86.9077936 81.7838153,-86.6375814 L55.7905589,-71.6303678 C55.3157165,-71.3562174 54.7088482,-71.5183728 54.4307806,-72 C54.1546382,-72.4782926 54.3225377,-73.0922064 54.7905589,-73.3624186 L80.7838153,-88.3696322 C81.2586577,-88.6437826 81.865526,-88.4816272 82.1435935,-88 Z M1.30626177e-08,-41.9868843 L15.0170091,-57.9923909 L20.7983821,-52.9749272 L44.7207091,-81.2095939 L73.4260467,-42.1002685 L85.984793,-56.6159488 L104.48741,-34.0310661 L127.969109,-47.4978019 L127.969109,7.99473128e-07 L1.30626177e-08,7.99473128e-07 L1.30626177e-08,-41.9868843 Z M96,-84 C102.627417,-84 108,-89.372583 108,-96 C108,-102.627417 102.627417,-108 96,-108 C89.372583,-108 84,-102.627417 84,-96 C84,-89.372583 89.372583,-84 96,-84 Z\"></path>\n        <path d=\"M16,18 L112,18 C113.104569,18 114,17.1045695 114,16 C114,14.8954305 113.104569,14 112,14 L16,14 C14.8954305,14 14,14.8954305 14,16 C14,17.1045695 14.8954305,18 16,18 L16,18 Z M16,35 L112,35 C114.209139,35 116,33.209139 116,31 C116,28.790861 114.209139,27 112,27 L16,27 C13.790861,27 12,28.790861 12,31 C12,33.209139 13.790861,35 16,35 L16,35 Z M16,56 L112,56 C115.313708,56 118,53.3137085 118,50 C118,46.6862915 115.313708,44 112,44 L16,44 C12.6862915,44 10,46.6862915 10,50 C10,53.3137085 12.6862915,56 16,56 L16,56 Z M16,85 L112,85 C117.522847,85 122,80.5228475 122,75 C122,69.4771525 117.522847,65 112,65 L16,65 C10.4771525,65 6,69.4771525 6,75 C6,80.5228475 10.4771525,85 16,85 L16,85 Z M16,128 L112,128 C120.836556,128 128,120.836556 128,112 C128,103.163444 120.836556,96 112,96 L16,96 C7.163444,96 0,103.163444 0,112 C0,120.836556 7.163444,128 16,128 L16,128 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/link": {
            "title": "$:/core/images/link",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-link tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128.719999,57.568543 C130.219553,53.8628171 131.045202,49.8121445 131.045202,45.5685425 C131.045202,27.8915447 116.718329,13.5685425 99.0452364,13.5685425 L67.0451674,13.5685425 C49.3655063,13.5685425 35.0452019,27.8954305 35.0452019,45.5685425 C35.0452019,63.2455403 49.3720745,77.5685425 67.0451674,77.5685425 L99.0452364,77.5685425 C100.406772,77.5685425 101.748384,77.4835732 103.065066,77.3186499 C96.4792444,73.7895096 91.1190212,68.272192 87.7873041,61.5685425 L67.0506214,61.5685425 C58.2110723,61.5685425 51.0452019,54.4070414 51.0452019,45.5685425 C51.0452019,36.7319865 58.2005234,29.5685425 67.0506214,29.5685425 L99.0397824,29.5685425 C107.879331,29.5685425 115.045202,36.7300436 115.045202,45.5685425 C115.045202,48.9465282 113.99957,52.0800164 112.21335,54.6623005 C114.314383,56.4735917 117.050039,57.5685425 120.041423,57.5685425 L128.720003,57.5685425 Z\" transform=\"translate(83.045202, 45.568542) rotate(-225.000000) translate(-83.045202, -45.568542)\"></path>\n        <path d=\"M-0.106255113,71.0452019 C-1.60580855,74.7509276 -2.43145751,78.8016001 -2.43145751,83.0452019 C-2.43145751,100.7222 11.8954151,115.045202 29.568508,115.045202 L61.568577,115.045202 C79.2482381,115.045202 93.5685425,100.718314 93.5685425,83.0452019 C93.5685425,65.3682041 79.2416699,51.0452019 61.568577,51.0452019 L29.568508,51.0452019 C28.206973,51.0452019 26.8653616,51.1301711 25.5486799,51.2950943 C32.1345,54.8242347 37.4947231,60.3415524 40.8264403,67.0452019 L61.563123,67.0452019 C70.4026721,67.0452019 77.5685425,74.206703 77.5685425,83.0452019 C77.5685425,91.8817579 70.413221,99.0452019 61.563123,99.0452019 L29.573962,99.0452019 C20.7344129,99.0452019 13.5685425,91.8837008 13.5685425,83.0452019 C13.5685425,79.6672162 14.6141741,76.533728 16.4003949,73.9514439 C14.2993609,72.1401527 11.5637054,71.0452019 8.5723215,71.0452019 L-0.106255113,71.0452019 Z\" transform=\"translate(45.568542, 83.045202) rotate(-225.000000) translate(-45.568542, -83.045202)\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-bullet": {
            "title": "$:/core/images/list-bullet",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-bullet tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M11.6363636,40.2727273 C18.0629498,40.2727273 23.2727273,35.0629498 23.2727273,28.6363636 C23.2727273,22.2097775 18.0629498,17 11.6363636,17 C5.20977746,17 0,22.2097775 0,28.6363636 C0,35.0629498 5.20977746,40.2727273 11.6363636,40.2727273 Z M11.6363636,75.1818182 C18.0629498,75.1818182 23.2727273,69.9720407 23.2727273,63.5454545 C23.2727273,57.1188684 18.0629498,51.9090909 11.6363636,51.9090909 C5.20977746,51.9090909 0,57.1188684 0,63.5454545 C0,69.9720407 5.20977746,75.1818182 11.6363636,75.1818182 Z M11.6363636,110.090909 C18.0629498,110.090909 23.2727273,104.881132 23.2727273,98.4545455 C23.2727273,92.0279593 18.0629498,86.8181818 11.6363636,86.8181818 C5.20977746,86.8181818 0,92.0279593 0,98.4545455 C0,104.881132 5.20977746,110.090909 11.6363636,110.090909 Z M34.9090909,22.8181818 L128,22.8181818 L128,34.4545455 L34.9090909,34.4545455 L34.9090909,22.8181818 Z M34.9090909,57.7272727 L128,57.7272727 L128,69.3636364 L34.9090909,69.3636364 L34.9090909,57.7272727 Z M34.9090909,92.6363636 L128,92.6363636 L128,104.272727 L34.9090909,104.272727 L34.9090909,92.6363636 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-number": {
            "title": "$:/core/images/list-number",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-number tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M33.8390805,22.3563218 L128,22.3563218 L128,34.1264368 L33.8390805,34.1264368 L33.8390805,22.3563218 Z M33.8390805,57.6666667 L128,57.6666667 L128,69.4367816 L33.8390805,69.4367816 L33.8390805,57.6666667 Z M33.8390805,92.9770115 L128,92.9770115 L128,104.747126 L33.8390805,104.747126 L33.8390805,92.9770115 Z M0.379509711,42.6307008 L0.379509711,40.4082314 L1.37821948,40.4082314 C2.20382368,40.4082314 2.82301754,40.268077 3.23581964,39.9877642 C3.64862174,39.7074513 3.85501969,39.0400498 3.85501969,37.9855395 L3.85501969,22.7686318 C3.85501969,21.3270228 3.66193774,20.4327047 3.27576803,20.0856507 C2.88959832,19.7385967 1.79768657,19.5650723 0,19.5650723 L0,17.4226919 C3.50215975,17.2758613 6.25191314,16.4683055 8.24934266,15 L10.3666074,15 L10.3666074,37.865406 C10.3666074,38.786434 10.5164123,39.4404875 10.8160268,39.8275862 C11.1156412,40.2146849 11.764796,40.4082314 12.7635108,40.4082314 L13.7622206,40.4082314 L13.7622206,42.6307008 L0.379509711,42.6307008 Z M0.0798967812,77.9873934 L0.0798967812,76.0852799 C7.27064304,69.5312983 10.8659622,63.5046623 10.8659622,58.005191 C10.8659622,56.4434479 10.5397203,55.195407 9.88722667,54.2610308 C9.23473303,53.3266546 8.36253522,52.8594735 7.27060709,52.8594735 C6.3784219,52.8594735 5.61608107,53.1764892 4.98356173,53.8105302 C4.35104238,54.4445712 4.03478745,55.1753759 4.03478745,56.0029663 C4.03478745,56.9773871 4.28113339,57.8316611 4.77383268,58.5658139 C4.88036225,58.7259926 4.93362624,58.8461249 4.93362624,58.9262143 C4.93362624,59.0730449 4.77383427,59.2065252 4.45424555,59.3266593 C4.2411864,59.4067486 3.70188852,59.6336652 2.83633573,60.0074156 C1.99741533,60.3811661 1.47809145,60.5680386 1.2783485,60.5680386 C1.03865696,60.5680386 0.765679018,60.1976307 0.459406492,59.4568039 C0.153133966,58.715977 0,57.9184322 0,57.0641453 C0,55.1153036 0.848894811,53.5202138 2.5467099,52.2788283 C4.24452499,51.0374428 6.34512352,50.4167594 8.84856852,50.4167594 C11.3120649,50.4167594 13.3793735,51.0874979 15.0505562,52.4289952 C16.7217389,53.7704924 17.5573177,55.5224215 17.5573177,57.684835 C17.5573177,58.9662652 17.2743527,60.2076321 16.7084144,61.4089729 C16.142476,62.6103138 14.7875733,64.4623531 12.6436656,66.9651465 C10.4997579,69.4679398 8.40914641,71.7804862 6.3717683,73.902855 L17.8169822,73.902855 L16.7982982,79.6292176 L14.6810335,79.6292176 C14.7609307,79.3489048 14.8008787,79.0952922 14.8008787,78.8683723 C14.8008787,78.4812736 14.7010087,78.237672 14.5012658,78.1375603 C14.3015228,78.0374485 13.9020429,77.9873934 13.3028141,77.9873934 L0.0798967812,77.9873934 Z M12.2042333,97.1935484 C13.9486551,97.2335931 15.4400468,97.8309175 16.6784531,98.9855395 C17.9168594,100.140162 18.5360532,101.75861 18.5360532,103.840934 C18.5360532,106.830938 17.4041935,109.233584 15.14044,111.048943 C12.8766866,112.864303 10.1402492,113.771969 6.93104577,113.771969 C4.92030005,113.771969 3.26245842,113.388213 1.95747114,112.62069 C0.652483855,111.853166 0,110.848727 0,109.607341 C0,108.833144 0.26964894,108.209124 0.808954909,107.735261 C1.34826088,107.261399 1.93749375,107.024472 2.57667119,107.024472 C3.21584864,107.024472 3.73850152,107.224692 4.14464552,107.625139 C4.55078953,108.025586 4.92696644,108.67964 5.27318756,109.587319 C5.73925445,110.855401 6.51158227,111.489433 7.59019421,111.489433 C8.85523291,111.489433 9.87723568,111.012241 10.6562332,110.057842 C11.4352307,109.103444 11.8247236,107.371536 11.8247236,104.862069 C11.8247236,103.153495 11.7048796,101.838714 11.4651881,100.917686 C11.2254966,99.9966584 10.6728827,99.5361513 9.80732989,99.5361513 C9.22141723,99.5361513 8.62219737,99.843156 8.00965231,100.457175 C7.51695303,100.951059 7.07752513,101.197998 6.69135542,101.197998 C6.3584505,101.197998 6.08880156,101.051169 5.88240051,100.757508 C5.67599946,100.463847 5.57280049,100.183539 5.57280049,99.916574 C5.57280049,99.5962164 5.67599946,99.3225818 5.88240051,99.0956618 C6.08880156,98.8687419 6.57150646,98.5016711 7.33052967,97.9944383 C10.2068282,96.0722929 11.6449559,93.9766521 11.6449559,91.7074527 C11.6449559,90.5194601 11.3386879,89.615131 10.7261429,88.9944383 C10.1135978,88.3737455 9.37455999,88.0634038 8.5090072,88.0634038 C7.71003539,88.0634038 6.98431355,88.3270274 6.33181991,88.8542825 C5.67932627,89.3815377 5.35308434,90.0122321 5.35308434,90.7463849 C5.35308434,91.3871 5.60608828,91.9810874 6.11210376,92.5283648 C6.28521432,92.7285883 6.3717683,92.8954387 6.3717683,93.028921 C6.3717683,93.1490551 5.80250943,93.4560598 4.6639746,93.9499444 C3.52543978,94.4438289 2.80970494,94.6907675 2.51674861,94.6907675 C2.10394651,94.6907675 1.76771758,94.3570667 1.50805174,93.6896552 C1.24838591,93.0222436 1.11855494,92.4082342 1.11855494,91.8476085 C1.11855494,90.0989901 2.04734573,88.6240327 3.90495518,87.4226919 C5.76256463,86.2213511 7.86982116,85.6206897 10.226788,85.6206897 C12.2907985,85.6206897 14.0784711,86.0678487 15.5898594,86.9621802 C17.1012478,87.8565117 17.8569306,89.0778566 17.8569306,90.6262514 C17.8569306,91.987771 17.2876717,93.2491599 16.1491369,94.4104561 C15.0106021,95.5717522 13.6956474,96.4994404 12.2042333,97.1935484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/locked-padlock": {
            "title": "$:/core/images/locked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-locked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M96.4723753,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L32.0000269,64 C32.0028554,48.2766389 32.3030338,16.2688026 64.1594984,16.2688041 C95.9543927,16.2688056 96.4648869,48.325931 96.4723753,64 Z M80.5749059,64 L48.4413579,64 C48.4426205,47.71306 48.5829272,31.9999996 64.1595001,31.9999996 C79.8437473,31.9999996 81.1369461,48.1359182 80.5749059,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mail": {
            "title": "$:/core/images/mail",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mail tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M122.826782,104.894066 C121.945525,105.22777 120.990324,105.41043 119.993027,105.41043 L8.00697327,105.41043 C7.19458381,105.41043 6.41045219,105.289614 5.67161357,105.064967 L5.67161357,105.064967 L39.8346483,70.9019325 L60.6765759,91.7438601 C61.6118278,92.679112 62.8865166,93.0560851 64.0946097,92.8783815 C65.2975108,93.0473238 66.5641085,92.6696979 67.4899463,91.7438601 L88.5941459,70.6396605 C88.6693095,70.7292352 88.7490098,70.8162939 88.8332479,70.9005321 L122.826782,104.894066 Z M127.903244,98.6568194 C127.966933,98.2506602 128,97.8343714 128,97.4103789 L128,33.410481 C128,32.7414504 127.917877,32.0916738 127.763157,31.4706493 L94.2292399,65.0045665 C94.3188145,65.0797417 94.4058701,65.1594458 94.4901021,65.2436778 L127.903244,98.6568194 Z M0.205060636,99.2178117 C0.0709009529,98.6370366 0,98.0320192 0,97.4103789 L0,33.410481 C0,32.694007 0.0944223363,31.9995312 0.27147538,31.3387595 L0.27147538,31.3387595 L34.1777941,65.2450783 L0.205060636,99.2178117 L0.205060636,99.2178117 Z M5.92934613,25.6829218 C6.59211333,25.5051988 7.28862283,25.4104299 8.00697327,25.4104299 L119.993027,25.4104299 C120.759109,25.4104299 121.500064,25.5178649 122.201605,25.7184927 L122.201605,25.7184927 L64.0832611,83.8368368 L5.92934613,25.6829218 L5.92934613,25.6829218 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/menu-button": {
            "title": "$:/core/images/menu-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <rect x=\"0\" y=\"16\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"56\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"96\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n</svg>"
        },
        "$:/core/images/mono-block": {
            "title": "$:/core/images/mono-block",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-block tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M23.9653488,32.9670593 L24.3217888,32.9670593 C25.0766067,32.9670593 25.6497006,33.1592554 26.0410876,33.5436534 C26.4324747,33.9280514 26.6281653,34.4906619 26.6281653,35.2315017 C26.6281653,36.0562101 26.4219913,36.6502709 26.009637,37.0137017 C25.5972828,37.3771326 24.9158602,37.5588453 23.9653488,37.5588453 L17.6542639,37.5588453 C16.6897744,37.5588453 16.0048573,37.380627 15.5994921,37.0241852 C15.1941269,36.6677435 14.9914474,36.0701882 14.9914474,35.2315017 C14.9914474,34.4207713 15.1941269,33.8406885 15.5994921,33.4912358 C16.0048573,33.141783 16.6897744,32.9670593 17.6542639,32.9670593 L18.388111,32.9670593 L17.5284616,30.5139133 L8.47069195,30.5139133 L7.5691084,32.9670593 L8.30295547,32.9670593 C9.25346691,32.9670593 9.93488953,33.1452775 10.3472438,33.5017193 C10.759598,33.8581611 10.965772,34.4347494 10.965772,35.2315017 C10.965772,36.0562101 10.759598,36.6502709 10.3472438,37.0137017 C9.93488953,37.3771326 9.25346691,37.5588453 8.30295547,37.5588453 L2.89345418,37.5588453 C1.92896463,37.5588453 1.24404754,37.3771326 0.838682371,37.0137017 C0.433317198,36.6502709 0.230637652,36.0562101 0.230637652,35.2315017 C0.230637652,34.4906619 0.426328248,33.9280514 0.817715312,33.5436534 C1.20910238,33.1592554 1.78219626,32.9670593 2.53701417,32.9670593 L2.89345418,32.9670593 L8.51262607,17.3256331 L6.83526132,17.3256331 C5.88474988,17.3256331 5.20332727,17.1439204 4.79097304,16.7804895 C4.37861882,16.4170587 4.1724448,15.8299869 4.1724448,15.0192565 C4.1724448,14.1945481 4.37861882,13.6004873 4.79097304,13.2370565 C5.20332727,12.8736257 5.88474988,12.691913 6.83526132,12.691913 L14.6979086,12.691913 C15.9419603,12.691913 16.815579,13.3628521 17.318791,14.7047506 L17.318791,14.7676518 L23.9653488,32.9670593 Z M12.9786097,17.3256331 L9.9383861,26.1737321 L16.0188333,26.1737321 L12.9786097,17.3256331 Z M35.3809383,26.6979086 L35.3809383,33.0928616 L38.5259972,33.0928616 C40.7485166,33.0928616 42.3140414,32.8482484 43.2226185,32.3590146 C44.1311956,31.8697807 44.5854773,31.0520736 44.5854773,29.9058686 C44.5854773,28.7456855 44.1521624,27.9209895 43.2855197,27.4317556 C42.4188769,26.9425218 40.9022748,26.6979086 38.7356678,26.6979086 L35.3809383,26.6979086 Z M46.0741385,24.370565 C47.5977525,24.9296893 48.7159844,25.6949794 49.428868,26.666458 C50.1417516,27.6379366 50.498188,28.8784752 50.498188,30.388111 C50.498188,31.6601189 50.1906743,32.8202846 49.5756374,33.8686428 C48.9606006,34.917001 48.0799929,35.7766419 46.933788,36.4475911 C46.2628387,36.8389782 45.5115266,37.1220307 44.6798291,37.296757 C43.8481316,37.4714834 42.6704935,37.5588453 41.1468796,37.5588453 L39.3856466,37.5588453 L30.2020747,37.5588453 C29.2795194,37.5588453 28.6190637,37.3771326 28.2206876,37.0137017 C27.8223114,36.6502709 27.6231264,36.0562101 27.6231264,35.2315017 C27.6231264,34.4906619 27.811828,33.9280514 28.189237,33.5436534 C28.5666459,33.1592554 29.118773,32.9670593 29.8456347,32.9670593 L30.2020747,32.9670593 L30.2020747,17.3256331 L29.8456347,17.3256331 C29.118773,17.3256331 28.5666459,17.1299425 28.189237,16.7385554 C27.811828,16.3471683 27.6231264,15.7740744 27.6231264,15.0192565 C27.6231264,14.2085262 27.8258059,13.6179599 28.2311711,13.24754 C28.6365363,12.8771201 29.2934976,12.691913 30.2020747,12.691913 L39.8469219,12.691913 C42.796303,12.691913 45.0362615,13.2650068 46.5668644,14.4112118 C48.0974674,15.5574168 48.8627574,17.2347648 48.8627574,19.443306 C48.8627574,20.5335986 48.6286276,21.4945792 48.1603609,22.3262767 C47.6920943,23.1579742 46.9966938,23.8393968 46.0741385,24.370565 L46.0741385,24.370565 Z M35.3809383,17.1998307 L35.3809383,22.4835296 L38.2114913,22.4835296 C39.9307988,22.4835296 41.1433816,22.2808501 41.8492761,21.8754849 C42.5551706,21.4701197 42.9081126,20.7852027 42.9081126,19.8207131 C42.9081126,18.912136 42.5901154,18.2481858 41.9541114,17.8288425 C41.3181074,17.4094992 40.2872373,17.1998307 38.8614701,17.1998307 L35.3809383,17.1998307 Z M71.244119,13.3838259 C71.5236812,12.880614 71.8102281,12.5241775 72.1037684,12.3145059 C72.3973087,12.1048342 72.7677231,12 73.2150226,12 C73.8999499,12 74.3856819,12.1817127 74.6722332,12.5451435 C74.9587844,12.9085744 75.1020579,13.5305909 75.1020579,14.4112118 L75.143992,19.8626472 C75.143992,20.8271368 74.9867406,21.4771091 74.6722332,21.8125837 C74.3577257,22.1480584 73.7881263,22.3157932 72.9634178,22.3157932 C72.3763372,22.3157932 71.92555,22.1760142 71.6110425,21.896452 C71.2965351,21.6168898 71.0274605,21.0997075 70.8038107,20.3448896 C70.4403799,19.0169692 69.8602971,18.0629775 69.0635448,17.482886 C68.2667926,16.9027945 67.1625385,16.612753 65.7507494,16.612753 C63.5981206,16.612753 61.9487284,17.3396038 60.8025235,18.7933272 C59.6563185,20.2470506 59.0832246,22.3507245 59.0832246,25.104412 C59.0832246,27.8441215 59.6633074,29.9477954 60.8234905,31.4154969 C61.9836736,32.8831984 63.6400547,33.6170381 65.7926836,33.6170381 C67.2603851,33.6170381 68.878327,33.1278116 70.6465578,32.149344 C72.4147886,31.1708763 73.5295261,30.6816498 73.9908037,30.6816498 C74.53595,30.6816498 74.9937262,30.9122852 75.3641461,31.3735628 C75.734566,31.8348404 75.9197732,32.4079343 75.9197732,33.0928616 C75.9197732,34.3229353 74.836486,35.4831009 72.669879,36.5733935 C70.5032721,37.663686 68.0641285,38.2088241 65.3523753,38.2088241 C61.6901107,38.2088241 58.7267959,36.9997358 56.4623422,34.5815228 C54.1978885,32.1633099 53.0656786,29.0043046 53.0656786,25.104412 C53.0656786,21.3443006 54.2118664,18.22024 56.5042763,15.7321366 C58.7966863,13.2440331 61.7040894,12 65.226573,12 C66.2190187,12 67.1974717,12.1118232 68.1619613,12.3354729 C69.1264508,12.5591227 70.1538264,12.9085702 71.244119,13.3838259 L71.244119,13.3838259 Z M81.4645862,32.9670593 L81.4645862,17.3256331 L81.1081461,17.3256331 C80.3533282,17.3256331 79.7802344,17.1299425 79.3888473,16.7385554 C78.9974602,16.3471683 78.8017696,15.7740744 78.8017696,15.0192565 C78.8017696,14.2085262 79.0114381,13.6179599 79.4307814,13.24754 C79.8501247,12.8771201 80.5280528,12.691913 81.4645862,12.691913 L85.4063933,12.691913 L86.6434498,12.691913 C89.5648747,12.691913 91.7034933,12.8177141 93.0593699,13.06932 C94.4152465,13.320926 95.5684233,13.740263 96.5189347,14.3273436 C98.210286,15.3337675 99.5067362,16.7699967 100.408324,18.6360743 C101.309912,20.5021519 101.7607,22.6582429 101.7607,25.104412 C101.7607,27.6903623 101.247012,29.9512876 100.219621,31.8872557 C99.1922296,33.8232239 97.7350336,35.2874089 95.8479888,36.2798546 C94.9953241,36.7271541 93.9959043,37.0521403 92.8496993,37.2548229 C91.7034944,37.4575055 89.9981906,37.5588453 87.7337369,37.5588453 L85.4063933,37.5588453 L81.4645862,37.5588453 C80.5000966,37.5588453 79.8151795,37.380627 79.4098143,37.0241852 C79.0044492,36.6677435 78.8017696,36.0701882 78.8017696,35.2315017 C78.8017696,34.4906619 78.9974602,33.9280514 79.3888473,33.5436534 C79.7802344,33.1592554 80.3533282,32.9670593 81.1081461,32.9670593 L81.4645862,32.9670593 Z M86.8740874,17.2417648 L86.8740874,32.9670593 L88.0692098,32.9670593 C90.7110725,32.9670593 92.6609895,32.3205814 93.9190194,31.0276063 C95.1770492,29.7346312 95.8060547,27.7462749 95.8060547,25.0624779 C95.8060547,22.4206153 95.1665658,20.4497314 93.8875688,19.1497672 C92.6085718,17.849803 90.6831161,17.1998307 88.1111439,17.1998307 C87.7756693,17.1998307 87.5205727,17.2033252 87.3458463,17.2103142 C87.1711199,17.2173033 87.0138685,17.2277867 86.8740874,17.2417648 L86.8740874,17.2417648 Z M121.94052,17.1159625 L112.190837,17.1159625 L112.190837,22.4835296 L115.88104,22.4835296 L115.88104,22.2319249 C115.88104,21.4351727 116.055763,20.841112 116.405216,20.4497249 C116.754669,20.0583378 117.285829,19.8626472 117.998713,19.8626472 C118.627728,19.8626472 119.141415,20.0408655 119.539792,20.3973072 C119.938168,20.753749 120.137353,21.2045363 120.137353,21.7496826 C120.137353,21.7776388 120.144342,21.8684951 120.15832,22.0222543 C120.172298,22.1760135 120.179287,22.3297704 120.179287,22.4835296 L120.179287,26.8237109 C120.179287,27.7602442 120.011552,28.4311834 119.676077,28.8365486 C119.340603,29.2419138 118.795465,29.4445933 118.040647,29.4445933 C117.327763,29.4445933 116.789614,29.2558917 116.426183,28.8784827 C116.062752,28.5010738 115.88104,27.9419578 115.88104,27.201118 L115.88104,26.8237109 L112.190837,26.8237109 L112.190837,33.0928616 L121.94052,33.0928616 L121.94052,30.5977816 C121.94052,29.6612482 122.118738,28.9903091 122.47518,28.5849439 C122.831622,28.1795787 123.415199,27.9768992 124.225929,27.9768992 C125.022682,27.9768992 125.592281,28.1760842 125.934745,28.5744604 C126.277208,28.9728365 126.448438,29.6472701 126.448438,30.5977816 L126.448438,35.6718099 C126.448438,36.4266278 126.30167,36.9298322 126.008129,37.1814382 C125.714589,37.4330442 125.134506,37.5588453 124.267863,37.5588453 L107.095842,37.5588453 C106.173287,37.5588453 105.512831,37.3771326 105.114455,37.0137017 C104.716079,36.6502709 104.516894,36.0562101 104.516894,35.2315017 C104.516894,34.4906619 104.705595,33.9280514 105.083004,33.5436534 C105.460413,33.1592554 106.01254,32.9670593 106.739402,32.9670593 L107.095842,32.9670593 L107.095842,17.3256331 L106.739402,17.3256331 C106.026518,17.3256331 105.477886,17.126448 105.093488,16.7280719 C104.70909,16.3296957 104.516894,15.7600963 104.516894,15.0192565 C104.516894,14.2085262 104.719573,13.6179599 105.124938,13.24754 C105.530304,12.8771201 106.187265,12.691913 107.095842,12.691913 L124.267863,12.691913 C125.120528,12.691913 125.697116,12.8212085 125.997646,13.0798036 C126.298175,13.3383986 126.448438,13.8520864 126.448438,14.6208824 L126.448438,19.3175037 C126.448438,20.2680151 126.273714,20.9494377 125.924261,21.361792 C125.574808,21.7741462 125.008703,21.9803202 124.225929,21.9803202 C123.415199,21.9803202 122.831622,21.7706517 122.47518,21.3513084 C122.118738,20.9319652 121.94052,20.254037 121.94052,19.3175037 L121.94052,17.1159625 Z M19.7719369,47.6405477 C20.037521,47.1373358 20.3205734,46.7808993 20.6211028,46.5712277 C20.9216322,46.361556 21.295541,46.2567218 21.7428405,46.2567218 C22.4277678,46.2567218 22.9134998,46.4384345 23.2000511,46.8018653 C23.4866023,47.1652962 23.6298758,47.7873127 23.6298758,48.6679336 L23.6718099,54.119369 C23.6718099,55.0838586 23.5145586,55.7338309 23.2000511,56.0693055 C22.8855436,56.4047802 22.3089553,56.572515 21.4702687,56.572515 C20.8831881,56.572515 20.4254119,56.4292415 20.0969263,56.1426902 C19.7684407,55.856139 19.4993662,55.3424512 19.2896945,54.6016114 C18.9122856,53.2597129 18.3322027,52.3022267 17.5494286,51.7291243 C16.7666545,51.1560218 15.6693894,50.8694748 14.2576003,50.8694748 C12.1049715,50.8694748 10.4590738,51.5963256 9.31985785,53.050049 C8.18064193,54.5037724 7.61104252,56.6074463 7.61104252,59.3611338 C7.61104252,62.1148214 8.20859773,64.2429566 9.40372609,65.7456034 C10.5988544,67.2482501 12.2936748,67.9995623 14.488238,67.9995623 C14.9914499,67.9995623 15.5645438,67.9401562 16.2075368,67.8213423 C16.8505299,67.7025283 17.6053364,67.5173212 18.4719792,67.2657152 L18.4719792,63.9529198 L16.1027015,63.9529198 C15.1521901,63.9529198 14.4777564,63.7781961 14.0793803,63.4287433 C13.6810042,63.0792906 13.4818191,62.4992078 13.4818191,61.6884774 C13.4818191,60.8497908 13.6810042,60.2522356 14.0793803,59.8957938 C14.4777564,59.5393521 15.1521901,59.3611338 16.1027015,59.3611338 L23.6718099,59.3611338 C24.6502776,59.3611338 25.3386891,59.5358576 25.7370653,59.8853103 C26.1354414,60.2347631 26.3346265,60.8218348 26.3346265,61.6465433 C26.3346265,62.3873831 26.1354414,62.9569825 25.7370653,63.3553586 C25.3386891,63.7537347 24.7621008,63.9529198 24.0072829,63.9529198 L23.6718099,63.9529198 L23.6718099,68.9430799 L23.6718099,69.1946846 C23.6718099,69.6419841 23.6228873,69.9529924 23.5250405,70.1277188 C23.4271937,70.3024451 23.2315031,70.4806634 22.9379628,70.6623788 C22.1412106,71.1376345 20.8762107,71.5569715 19.1429251,71.9204023 C17.4096396,72.2838332 15.6554131,72.4655459 13.8801932,72.4655459 C10.2179286,72.4655459 7.25461383,71.2564576 4.99016011,68.8382446 C2.72570638,66.4200317 1.59349651,63.2610264 1.59349651,59.3611338 C1.59349651,55.6010224 2.73968428,52.4769618 5.03209423,49.9888583 C7.32450417,47.5007549 10.2319073,46.2567218 13.7543909,46.2567218 C14.7328585,46.2567218 15.7078171,46.368545 16.6792957,46.5921947 C17.6507743,46.8158445 18.6816444,47.165292 19.7719369,47.6405477 L19.7719369,47.6405477 Z M35.611576,51.5823548 L35.611576,56.4047785 L42.4678043,56.4047785 L42.4678043,51.5823548 L42.1323314,51.5823548 C41.3775135,51.5823548 40.8009251,51.3866642 40.402549,50.9952772 C40.0041729,50.6038901 39.8049878,50.0307962 39.8049878,49.2759783 C39.8049878,48.4512699 40.0111618,47.8572091 40.4235161,47.4937783 C40.8358703,47.1303474 41.5172929,46.9486347 42.4678043,46.9486347 L47.8773056,46.9486347 C48.8278171,46.9486347 49.5022507,47.1303474 49.9006269,47.4937783 C50.299003,47.8572091 50.498188,48.4512699 50.498188,49.2759783 C50.498188,50.0307962 50.3059919,50.6038901 49.9215939,50.9952772 C49.5371959,51.3866642 48.9745854,51.5823548 48.2337456,51.5823548 L47.8773056,51.5823548 L47.8773056,67.2237811 L48.2337456,67.2237811 C48.9885636,67.2237811 49.5616574,67.4159772 49.9530445,67.8003752 C50.3444316,68.1847732 50.5401222,68.7473837 50.5401222,69.4882235 C50.5401222,70.3129319 50.3374426,70.9069927 49.9320774,71.2704235 C49.5267123,71.6338543 48.8417952,71.815567 47.8773056,71.815567 L42.4678043,71.815567 C41.5033148,71.815567 40.8183977,71.6373488 40.4130325,71.280907 C40.0076674,70.9244652 39.8049878,70.32691 39.8049878,69.4882235 C39.8049878,68.7473837 40.0041729,68.1847732 40.402549,67.8003752 C40.8009251,67.4159772 41.3775135,67.2237811 42.1323314,67.2237811 L42.4678043,67.2237811 L42.4678043,61.0384986 L35.611576,61.0384986 L35.611576,67.2237811 L35.9470489,67.2237811 C36.7018668,67.2237811 37.2784552,67.4159772 37.6768313,67.8003752 C38.0752074,68.1847732 38.2743925,68.7473837 38.2743925,69.4882235 C38.2743925,70.3129319 38.0682185,70.9069927 37.6558642,71.2704235 C37.24351,71.6338543 36.5620874,71.815567 35.611576,71.815567 L30.2020747,71.815567 C29.2375851,71.815567 28.552668,71.6373488 28.1473029,71.280907 C27.7419377,70.9244652 27.5392581,70.32691 27.5392581,69.4882235 C27.5392581,68.7473837 27.7349487,68.1847732 28.1263358,67.8003752 C28.5177229,67.4159772 29.0908168,67.2237811 29.8456347,67.2237811 L30.2020747,67.2237811 L30.2020747,51.5823548 L29.8456347,51.5823548 C29.1047949,51.5823548 28.5421844,51.3866642 28.1577864,50.9952772 C27.7733884,50.6038901 27.5811923,50.0307962 27.5811923,49.2759783 C27.5811923,48.4512699 27.7803773,47.8572091 28.1787534,47.4937783 C28.5771296,47.1303474 29.2515632,46.9486347 30.2020747,46.9486347 L35.611576,46.9486347 C36.5481093,46.9486347 37.2260374,47.1303474 37.6453807,47.4937783 C38.064724,47.8572091 38.2743925,48.4512699 38.2743925,49.2759783 C38.2743925,50.0307962 38.0752074,50.6038901 37.6768313,50.9952772 C37.2784552,51.3866642 36.7018668,51.5823548 35.9470489,51.5823548 L35.611576,51.5823548 Z M67.365213,51.5823548 L67.365213,67.2237811 L70.887679,67.2237811 C71.8381904,67.2237811 72.519613,67.4019993 72.9319673,67.7584411 C73.3443215,68.1148829 73.5504955,68.6914712 73.5504955,69.4882235 C73.5504955,70.2989538 73.340827,70.8895201 72.9214837,71.25994 C72.5021404,71.6303599 71.8242123,71.815567 70.887679,71.815567 L58.4332458,71.815567 C57.4827343,71.815567 56.8013117,71.6338543 56.3889575,71.2704235 C55.9766033,70.9069927 55.7704292,70.3129319 55.7704292,69.4882235 C55.7704292,68.6774931 55.9731088,68.0974103 56.378474,67.7479575 C56.7838391,67.3985048 57.4687562,67.2237811 58.4332458,67.2237811 L61.9557117,67.2237811 L61.9557117,51.5823548 L58.4332458,51.5823548 C57.4827343,51.5823548 56.8013117,51.4006421 56.3889575,51.0372113 C55.9766033,50.6737805 55.7704292,50.0867087 55.7704292,49.2759783 C55.7704292,48.4512699 55.9731088,47.8641981 56.378474,47.5147453 C56.7838391,47.1652926 57.4687562,46.9905689 58.4332458,46.9905689 L70.887679,46.9905689 C71.8801247,46.9905689 72.5720308,47.1652926 72.9634178,47.5147453 C73.3548049,47.8641981 73.5504955,48.4512699 73.5504955,49.2759783 C73.5504955,50.0867087 73.347816,50.6737805 72.9424508,51.0372113 C72.5370856,51.4006421 71.8521685,51.5823548 70.887679,51.5823548 L67.365213,51.5823548 Z M97.8608265,51.5823548 L97.8608265,63.1771386 L97.8608265,63.5755127 C97.8608265,65.4485794 97.7385199,66.8044357 97.493903,67.6431222 C97.2492861,68.4818088 96.8404325,69.2296264 96.26733,69.8865976 C95.5264902,70.7392623 94.4991146,71.3822457 93.1851723,71.815567 C91.87123,72.2488884 90.2917273,72.4655459 88.4466169,72.4655459 C87.1466527,72.4655459 85.8921362,72.3397448 84.6830298,72.0881388 C83.4739233,71.8365328 82.3102631,71.4591296 81.1920144,70.9559176 C80.5769776,70.6763554 80.175113,70.31293 79.9864085,69.8656305 C79.797704,69.418331 79.7033532,68.6914802 79.7033532,67.6850564 L79.7033532,63.3658422 C79.7033532,62.1637247 79.8780769,61.3250508 80.2275297,60.849795 C80.5769824,60.3745393 81.185021,60.136915 82.0516638,60.136915 C83.2957156,60.136915 83.9806326,61.0524675 84.1064356,62.8835998 C84.1204137,63.2050963 84.1413806,63.4497096 84.1693368,63.6174469 C84.3370741,65.2389076 84.7144774,66.3466561 85.301558,66.9407258 C85.8886386,67.5347954 86.8251579,67.8318258 88.1111439,67.8318258 C89.7046484,67.8318258 90.8263749,67.4089943 91.476357,66.5633187 C92.126339,65.7176431 92.4513252,64.1765796 92.4513252,61.9400821 L92.4513252,51.5823548 L88.9288593,51.5823548 C87.9783478,51.5823548 87.2969252,51.4006421 86.884571,51.0372113 C86.4722168,50.6737805 86.2660427,50.0867087 86.2660427,49.2759783 C86.2660427,48.4512699 86.4652278,47.8641981 86.8636039,47.5147453 C87.26198,47.1652926 87.9503916,46.9905689 88.9288593,46.9905689 L99.6220595,46.9905689 C100.600527,46.9905689 101.288939,47.1652926 101.687315,47.5147453 C102.085691,47.8641981 102.284876,48.4512699 102.284876,49.2759783 C102.284876,50.0867087 102.078702,50.6737805 101.666348,51.0372113 C101.253994,51.4006421 100.572571,51.5823548 99.6220595,51.5823548 L97.8608265,51.5823548 Z M112.505343,51.5823548 L112.505343,57.9353738 L118.984165,51.4565525 C118.257303,51.3726838 117.747109,51.1665098 117.453569,50.8380242 C117.160029,50.5095387 117.013261,49.9888619 117.013261,49.2759783 C117.013261,48.4512699 117.212446,47.8572091 117.610822,47.4937783 C118.009198,47.1303474 118.683632,46.9486347 119.634143,46.9486347 L124.771073,46.9486347 C125.721584,46.9486347 126.396018,47.1303474 126.794394,47.4937783 C127.19277,47.8572091 127.391955,48.4512699 127.391955,49.2759783 C127.391955,50.0447743 127.19277,50.6213627 126.794394,51.0057607 C126.396018,51.3901587 125.812441,51.5823548 125.043645,51.5823548 L124.561402,51.5823548 L118.459988,57.641835 C119.592215,58.4805215 120.626579,59.5812811 121.563113,60.9441468 C122.499646,62.3070125 123.596911,64.400203 124.854941,67.2237811 L125.127513,67.2237811 L125.546854,67.2237811 C126.371563,67.2237811 126.98659,67.4124827 127.391955,67.7898917 C127.79732,68.1673006 128,68.7334056 128,69.4882235 C128,70.3129319 127.793826,70.9069927 127.381472,71.2704235 C126.969118,71.6338543 126.287695,71.815567 125.337183,71.815567 L122.758235,71.815567 C121.626008,71.815567 120.710456,71.0537715 120.01155,69.5301576 C119.885747,69.2505954 119.787902,69.026949 119.718012,68.8592117 C118.795456,66.9022764 117.949793,65.3926632 117.180997,64.3303269 C116.412201,63.2679906 115.510627,62.2965265 114.476247,61.4159056 L112.505343,63.302941 L112.505343,67.2237811 L112.840816,67.2237811 C113.595634,67.2237811 114.172222,67.4159772 114.570599,67.8003752 C114.968975,68.1847732 115.16816,68.7473837 115.16816,69.4882235 C115.16816,70.3129319 114.961986,70.9069927 114.549631,71.2704235 C114.137277,71.6338543 113.455855,71.815567 112.505343,71.815567 L107.095842,71.815567 C106.131352,71.815567 105.446435,71.6373488 105.04107,71.280907 C104.635705,70.9244652 104.433025,70.32691 104.433025,69.4882235 C104.433025,68.7473837 104.628716,68.1847732 105.020103,67.8003752 C105.41149,67.4159772 105.984584,67.2237811 106.739402,67.2237811 L107.095842,67.2237811 L107.095842,51.5823548 L106.739402,51.5823548 C105.998562,51.5823548 105.435952,51.3866642 105.051554,50.9952772 C104.667156,50.6038901 104.474959,50.0307962 104.474959,49.2759783 C104.474959,48.4512699 104.674145,47.8572091 105.072521,47.4937783 C105.470897,47.1303474 106.14533,46.9486347 107.095842,46.9486347 L112.505343,46.9486347 C113.441877,46.9486347 114.119805,47.1303474 114.539148,47.4937783 C114.958491,47.8572091 115.16816,48.4512699 115.16816,49.2759783 C115.16816,50.0307962 114.968975,50.6038901 114.570599,50.9952772 C114.172222,51.3866642 113.595634,51.5823548 112.840816,51.5823548 L112.505343,51.5823548 Z M13.439885,96.325622 L17.4445933,84.4372993 C17.6961993,83.6545252 18.0456468,83.0849258 18.4929463,82.728484 C18.9402458,82.3720422 19.5343065,82.193824 20.2751463,82.193824 L23.5460076,82.193824 C24.496519,82.193824 25.1779416,82.3755367 25.5902958,82.7389675 C26.0026501,83.1023984 26.2088241,83.6964591 26.2088241,84.5211676 C26.2088241,85.2759855 26.009639,85.8490794 25.6112629,86.2404664 C25.2128868,86.6318535 24.6362984,86.8275441 23.8814805,86.8275441 L23.5460076,86.8275441 L24.1330852,102.46897 L24.4895252,102.46897 C25.2443431,102.46897 25.8104481,102.661166 26.187857,103.045564 C26.565266,103.429962 26.7539676,103.992573 26.7539676,104.733413 C26.7539676,105.558121 26.5547826,106.152182 26.1564064,106.515613 C25.7580303,106.879044 25.0835967,107.060756 24.1330852,107.060756 L19.4154969,107.060756 C18.4649855,107.060756 17.7905518,106.882538 17.3921757,106.526096 C16.9937996,106.169654 16.7946145,105.572099 16.7946145,104.733413 C16.7946145,103.992573 16.9868106,103.429962 17.3712086,103.045564 C17.7556066,102.661166 18.325206,102.46897 19.0800239,102.46897 L19.4154969,102.46897 L19.1219581,89.6790642 L16.0607674,99.1981091 C15.8371177,99.9109927 15.5191204,100.42468 15.1067662,100.739188 C14.694412,101.053695 14.1248126,101.210947 13.3979509,101.210947 C12.6710892,101.210947 12.0945008,101.053695 11.6681685,100.739188 C11.2418362,100.42468 10.91685,99.9109927 10.6932002,99.1981091 L7.65297664,89.6790642 L7.35943781,102.46897 L7.69491075,102.46897 C8.44972866,102.46897 9.01932808,102.661166 9.40372609,103.045564 C9.78812409,103.429962 9.98032022,103.992573 9.98032022,104.733413 C9.98032022,105.558121 9.77764067,106.152182 9.3722755,106.515613 C8.96691032,106.879044 8.29597114,107.060756 7.35943781,107.060756 L2.62088241,107.060756 C1.68434908,107.060756 1.01340989,106.879044 0.608044719,106.515613 C0.202679546,106.152182 0,105.558121 0,104.733413 C0,103.992573 0.192196121,103.429962 0.57659413,103.045564 C0.960992139,102.661166 1.53059155,102.46897 2.28540946,102.46897 L2.62088241,102.46897 L3.22892713,86.8275441 L2.89345418,86.8275441 C2.13863627,86.8275441 1.56204791,86.6318535 1.16367179,86.2404664 C0.765295672,85.8490794 0.5661106,85.2759855 0.5661106,84.5211676 C0.5661106,83.6964591 0.772284622,83.1023984 1.18463885,82.7389675 C1.59699308,82.3755367 2.27841569,82.193824 3.22892713,82.193824 L6.49978838,82.193824 C7.22665007,82.193824 7.81022738,82.3685477 8.25053783,82.7180005 C8.69084827,83.0674532 9.05077919,83.6405471 9.33034138,84.4372993 L13.439885,96.325622 Z M43.8935644,98.3803938 L43.8935644,86.8275441 L42.7403761,86.8275441 C41.8178209,86.8275441 41.1573651,86.6458314 40.758989,86.2824006 C40.3606129,85.9189697 40.1614278,85.3318979 40.1614278,84.5211676 C40.1614278,83.7104372 40.3606129,83.119871 40.758989,82.7494511 C41.1573651,82.3790312 41.8178209,82.193824 42.7403761,82.193824 L48.6950209,82.193824 C49.6035981,82.193824 50.2605593,82.3790312 50.6659245,82.7494511 C51.0712897,83.119871 51.2739692,83.7104372 51.2739692,84.5211676 C51.2739692,85.2620074 51.0817731,85.8316068 50.6973751,86.2299829 C50.3129771,86.628359 49.7643445,86.8275441 49.051461,86.8275441 L48.6950209,86.8275441 L48.6950209,105.865634 C48.6950209,106.522605 48.6251315,106.934953 48.4853504,107.10269 C48.3455693,107.270428 48.0310665,107.354295 47.5418327,107.354295 L45.4451268,107.354295 C44.7741775,107.354295 44.3024234,107.284406 44.0298503,107.144625 C43.7572771,107.004843 43.5231473,106.76023 43.3274538,106.410777 L34.6051571,91.0838571 L34.6051571,102.46897 L35.8212466,102.46897 C36.7298237,102.46897 37.379796,102.643694 37.7711831,102.993147 C38.1625701,103.3426 38.3582607,103.922682 38.3582607,104.733413 C38.3582607,105.558121 38.1590757,106.152182 37.7606995,106.515613 C37.3623234,106.879044 36.7158456,107.060756 35.8212466,107.060756 L29.8037005,107.060756 C28.8951234,107.060756 28.2381621,106.879044 27.832797,106.515613 C27.4274318,106.152182 27.2247522,105.558121 27.2247522,104.733413 C27.2247522,103.992573 27.4134539,103.429962 27.7908629,103.045564 C28.1682718,102.661166 28.7273878,102.46897 29.4682276,102.46897 L29.8037005,102.46897 L29.8037005,86.8275441 L29.4682276,86.8275441 C28.755344,86.8275441 28.203217,86.628359 27.8118299,86.2299829 C27.4204428,85.8316068 27.2247522,85.2620074 27.2247522,84.5211676 C27.2247522,83.7104372 27.4309263,83.119871 27.8432805,82.7494511 C28.2556347,82.3790312 28.9091015,82.193824 29.8037005,82.193824 L33.2422983,82.193824 C34.0670067,82.193824 34.6261227,82.3021527 34.919663,82.5188134 C35.2132033,82.7354741 35.5416839,83.1722835 35.9051148,83.8292546 L43.8935644,98.3803938 Z M64.6604624,86.3662688 C62.8572863,86.3662688 61.4420239,87.0931196 60.4146329,88.546843 C59.3872418,90.0005663 58.873554,92.0203728 58.873554,94.6063231 C58.873554,97.1922733 59.3907363,99.2190688 60.4251164,100.68677 C61.4594965,102.154472 62.8712644,102.888312 64.6604624,102.888312 C66.4636385,102.888312 67.8823953,102.157966 68.9167754,100.697254 C69.9511555,99.2365414 70.4683378,97.2062514 70.4683378,94.6063231 C70.4683378,92.0203728 69.95465,90.0005663 68.9272589,88.546843 C67.8998679,87.0931196 66.4776166,86.3662688 64.6604624,86.3662688 L64.6604624,86.3662688 Z M64.6604624,81.501911 C68.0990773,81.501911 70.929602,82.7319662 73.1521214,85.1921135 C75.3746408,87.6522607 76.4858838,90.7902992 76.4858838,94.6063231 C76.4858838,98.4503032 75.3816297,101.595331 73.1730884,104.0415 C70.9645471,106.487669 68.1270335,107.710735 64.6604624,107.710735 C61.2358256,107.710735 58.4053009,106.477185 56.1688034,104.010049 C53.9323059,101.542913 52.8140739,98.4083688 52.8140739,94.6063231 C52.8140739,90.7763211 53.9218224,87.6347881 56.1373528,85.1816299 C58.3528831,82.7284717 61.1938912,81.501911 64.6604624,81.501911 L64.6604624,81.501911 Z M87.4611651,98.1707232 L87.4611651,102.46897 L89.6207722,102.46897 C90.5293493,102.46897 91.1758272,102.643694 91.5602252,102.993147 C91.9446232,103.3426 92.1368193,103.922682 92.1368193,104.733413 C92.1368193,105.558121 91.9411287,106.152182 91.5497417,106.515613 C91.1583546,106.879044 90.5153712,107.060756 89.6207722,107.060756 L82.3661697,107.060756 C81.4436145,107.060756 80.7831587,106.879044 80.3847826,106.515613 C79.9864065,106.152182 79.7872214,105.558121 79.7872214,104.733413 C79.7872214,103.992573 79.9759231,103.429962 80.353332,103.045564 C80.730741,102.661166 81.282868,102.46897 82.0097297,102.46897 L82.3661697,102.46897 L82.3661697,86.8275441 L82.0097297,86.8275441 C81.2968461,86.8275441 80.7482136,86.628359 80.3638155,86.2299829 C79.9794175,85.8316068 79.7872214,85.2620074 79.7872214,84.5211676 C79.7872214,83.7104372 79.989901,83.119871 80.3952661,82.7494511 C80.8006313,82.3790312 81.4575926,82.193824 82.3661697,82.193824 L91.0255652,82.193824 C94.450202,82.193824 97.0396079,82.8507853 98.7938606,84.1647276 C100.548113,85.4786699 101.425227,87.414609 101.425227,89.972603 C101.425227,92.6703781 100.551608,94.7111515 98.8043442,96.0949843 C97.0570805,97.4788171 94.4641801,98.1707232 91.0255652,98.1707232 L87.4611651,98.1707232 Z M87.4611651,86.8275441 L87.4611651,93.4531348 L90.4384875,93.4531348 C92.0879044,93.4531348 93.328443,93.1735768 94.1601405,92.6144525 C94.9918381,92.0553281 95.4076806,91.2166541 95.4076806,90.0984053 C95.4076806,89.0500471 94.9778602,88.2428234 94.1182064,87.67671 C93.2585527,87.1105966 92.031992,86.8275441 90.4384875,86.8275441 L87.4611651,86.8275441 Z M114.727851,107.396229 L113.092421,109.03166 C113.69348,108.835966 114.284046,108.689198 114.864137,108.591352 C115.444229,108.493505 116.013828,108.444582 116.572953,108.444582 C117.677223,108.444582 118.840883,108.608823 120.063968,108.937308 C121.287053,109.265794 122.031376,109.430034 122.29696,109.430034 C122.744259,109.430034 123.327837,109.279772 124.047709,108.979242 C124.767582,108.678713 125.253314,108.52845 125.50492,108.52845 C126.02211,108.52845 126.45193,108.727636 126.794394,109.126012 C127.136858,109.524388 127.308087,110.024098 127.308087,110.625156 C127.308087,111.421909 126.836333,112.099837 125.892811,112.658961 C124.949288,113.218086 123.792617,113.497643 122.422762,113.497643 C121.486229,113.497643 120.28413,113.277492 118.816428,112.837181 C117.348727,112.396871 116.286406,112.176719 115.629435,112.176719 C114.636989,112.176719 113.518757,112.449288 112.274706,112.994434 C111.030654,113.53958 110.261869,113.812149 109.968329,113.812149 C109.36727,113.812149 108.857077,113.612964 108.437734,113.214588 C108.01839,112.816212 107.808722,112.337469 107.808722,111.778345 C107.808722,111.386958 107.941512,110.971115 108.207096,110.530805 C108.47268,110.090494 108.94094,109.520895 109.611889,108.821989 L111.729562,106.683349 C109.395218,105.830685 107.536157,104.29661 106.152324,102.08108 C104.768491,99.8655494 104.076585,97.3180772 104.076585,94.4385866 C104.076585,90.6365409 105.180839,87.5299526 107.389381,85.1187288 C109.597922,82.7075049 112.442425,81.501911 115.922974,81.501911 C119.389545,81.501911 122.227059,82.7109994 124.4356,85.1292123 C126.644141,87.5474252 127.748395,90.650519 127.748395,94.4385866 C127.748395,98.2126762 126.65113,101.322759 124.456567,103.768928 C122.262004,106.215097 119.480402,107.438163 116.111677,107.438163 C115.888028,107.438163 115.660887,107.434669 115.430248,107.42768 C115.199609,107.420691 114.965479,107.410207 114.727851,107.396229 L114.727851,107.396229 Z M115.922974,86.3662688 C114.119798,86.3662688 112.704535,87.0931196 111.677144,88.546843 C110.649753,90.0005663 110.136065,92.0203728 110.136065,94.6063231 C110.136065,97.1922733 110.653248,99.2190688 111.687628,100.68677 C112.722008,102.154472 114.133776,102.888312 115.922974,102.888312 C117.72615,102.888312 119.144907,102.157966 120.179287,100.697254 C121.213667,99.2365414 121.730849,97.2062514 121.730849,94.6063231 C121.730849,92.0203728 121.217161,90.0005663 120.18977,88.546843 C119.162379,87.0931196 117.740128,86.3662688 115.922974,86.3662688 L115.922974,86.3662688 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mono-line": {
            "title": "$:/core/images/mono-line",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-line tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.4374591,84.522627 L61.3450888,84.522627 C63.2671377,84.522627 64.7264493,85.0120303 65.7230673,85.9908515 C66.7196852,86.9696727 67.2179868,88.4022896 67.2179868,90.288745 C67.2179868,92.3887615 66.6929905,93.9014625 65.6429823,94.8268935 C64.5929741,95.7523244 62.857817,96.215033 60.4374591,96.215033 L44.3670747,96.215033 C41.9111232,96.215033 40.1670679,95.7612227 39.1348565,94.8535884 C38.102645,93.9459542 37.586547,92.424355 37.586547,90.288745 C37.586547,88.2243221 38.102645,86.747214 39.1348565,85.8573766 C40.1670679,84.9675391 41.9111232,84.522627 44.3670747,84.522627 L46.235724,84.522627 L44.0467348,78.2759992 L20.9822627,78.2759992 L18.6864935,84.522627 L20.5551429,84.522627 C22.9755008,84.522627 24.7106579,84.9764373 25.7606661,85.8840716 C26.8106743,86.7917058 27.3356705,88.2599156 27.3356705,90.288745 C27.3356705,92.3887615 26.8106743,93.9014625 25.7606661,94.8268935 C24.7106579,95.7523244 22.9755008,96.215033 20.5551429,96.215033 L6.78052766,96.215033 C4.32457622,96.215033 2.58052094,95.7523244 1.54830946,94.8268935 C0.516097994,93.9014625 0,92.3887615 0,90.288745 C0,88.4022896 0.498301511,86.9696727 1.49491948,85.9908515 C2.49153745,85.0120303 3.95084902,84.522627 5.87289797,84.522627 L6.78052766,84.522627 L21.0890427,44.6937008 L16.8178442,44.6937008 C14.3974863,44.6937008 12.6623292,44.2309922 11.612321,43.3055613 C10.5623128,42.3801303 10.0373165,40.8852258 10.0373165,38.8208028 C10.0373165,36.7207864 10.5623128,35.2080854 11.612321,34.2826544 C12.6623292,33.3572234 14.3974863,32.8945149 16.8178442,32.8945149 L36.8390873,32.8945149 C40.0069087,32.8945149 42.231469,34.6029772 43.512835,38.0199531 L43.512835,38.180123 L60.4374591,84.522627 Z M32.4611088,44.6937008 L24.7195615,67.224273 L40.2026561,67.224273 L32.4611088,44.6937008 Z M89.5058233,68.5590225 L89.5058233,84.8429669 L97.5143205,84.8429669 C103.173687,84.8429669 107.160099,84.22009 109.473676,82.9743176 C111.787254,81.7285451 112.944025,79.6463566 112.944025,76.7276897 C112.944025,73.7734293 111.840643,71.6734444 109.633846,70.4276719 C107.427049,69.1818994 103.565213,68.5590225 98.0482204,68.5590225 L89.5058233,68.5590225 Z M116.734714,62.6327346 C120.614405,64.0564746 123.461842,66.0051894 125.277111,68.4789376 C127.092379,70.9526857 128,74.1115614 128,77.9556593 C128,81.1946677 127.216955,84.1488838 125.650841,86.8183962 C124.084727,89.4879087 121.84237,91.676876 118.923703,93.385364 C117.215215,94.3819819 115.302093,95.1027395 113.18428,95.5476582 C111.066467,95.9925769 108.06776,96.215033 104.188068,96.215033 L99.7033098,96.215033 L76.3184979,96.215033 C73.9693269,96.215033 72.2875593,95.7523244 71.2731446,94.8268935 C70.2587299,93.9014625 69.7515301,92.3887615 69.7515301,90.288745 C69.7515301,88.4022896 70.2320352,86.9696727 71.1930596,85.9908515 C72.1540841,85.0120303 73.5600062,84.522627 75.4108682,84.522627 L76.3184979,84.522627 L76.3184979,44.6937008 L75.4108682,44.6937008 C73.5600062,44.6937008 72.1540841,44.1953993 71.1930596,43.1987813 C70.2320352,42.2021633 69.7515301,40.7428518 69.7515301,38.8208028 C69.7515301,36.7563799 70.2676281,35.2525771 71.2998396,34.3093494 C72.3320511,33.3661217 74.0049204,32.8945149 76.3184979,32.8945149 L100.877889,32.8945149 C108.388118,32.8945149 114.09189,34.3538264 117.989378,37.2724934 C121.886867,40.1911603 123.835581,44.4623161 123.835581,50.0860889 C123.835581,52.8623819 123.239399,55.3093982 122.047017,57.4272114 C120.854635,59.5450246 119.083885,61.2801816 116.734714,62.6327346 L116.734714,62.6327346 Z M89.5058233,44.3733609 L89.5058233,57.8276363 L96.7134708,57.8276363 C101.091471,57.8276363 104.179161,57.3115383 105.976633,56.2793268 C107.774104,55.2471153 108.672827,53.50306 108.672827,51.0471086 C108.672827,48.7335312 107.863087,47.0428653 106.243583,45.9750604 C104.624078,44.9072554 101.999097,44.3733609 98.3685602,44.3733609 L89.5058233,44.3733609 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-button": {
            "title": "$:/core/images/new-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-here-button": {
            "title": "$:/core/images/new-here-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-here-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n    \t<g transform=\"translate(52.233611, 64.389922) rotate(75.000000) translate(-52.233611, -64.389922) translate(-7.734417, 3.702450)\">\n\t        <path d=\"M18.9270186,45.959338 L18.9080585,49.6521741 C18.8884833,53.4648378 21.0574548,58.7482162 23.7526408,61.4434022 L78.5671839,116.257945 C81.2617332,118.952495 85.6348701,118.950391 88.3334363,116.251825 L115.863237,88.7220241 C118.555265,86.0299959 118.564544,81.6509578 115.869358,78.9557717 L61.0548144,24.1412286 C58.3602652,21.4466794 53.0787224,19.2788426 49.2595808,19.3006519 L25.9781737,19.4336012 C22.1633003,19.4553862 19.0471195,22.5673232 19.0275223,26.3842526 L18.9871663,34.2443819 C19.0818862,34.255617 19.1779758,34.2665345 19.2754441,34.2771502 C22.6891275,34.6489512 27.0485594,34.2348566 31.513244,33.2285542 C31.7789418,32.8671684 32.075337,32.5211298 32.4024112,32.1940556 C34.8567584,29.7397084 38.3789778,29.0128681 41.4406288,30.0213822 C41.5958829,29.9543375 41.7503946,29.8866669 41.9041198,29.8183808 L42.1110981,30.2733467 C43.1114373,30.6972371 44.0473796,31.3160521 44.8614145,32.1300869 C48.2842088,35.5528813 48.2555691,41.130967 44.7974459,44.5890903 C41.4339531,47.952583 36.0649346,48.0717177 32.6241879,44.9262969 C27.8170558,45.8919233 23.0726921,46.2881596 18.9270186,45.959338 Z\"></path>\n\t        <path d=\"M45.4903462,38.8768094 C36.7300141,42.6833154 26.099618,44.7997354 18.1909048,43.9383587 C7.2512621,42.7468685 1.50150083,35.8404432 4.66865776,24.7010202 C7.51507386,14.6896965 15.4908218,6.92103848 24.3842626,4.38423012 C34.1310219,1.60401701 42.4070208,6.15882777 42.4070209,16.3101169 L34.5379395,16.310117 C34.5379394,11.9285862 31.728784,10.3825286 26.5666962,11.8549876 C20.2597508,13.6540114 14.3453742,19.4148216 12.2444303,26.8041943 C10.4963869,32.9523565 12.6250796,35.5092726 19.0530263,36.2093718 C25.5557042,36.9176104 35.0513021,34.9907189 42.7038419,31.5913902 L42.7421786,31.6756595 C44.3874154,31.5384763 47.8846101,37.3706354 45.9274416,38.6772897 L45.9302799,38.6835285 C45.9166992,38.6895612 45.9031139,38.6955897 45.8895238,38.7016142 C45.8389288,38.7327898 45.7849056,38.7611034 45.7273406,38.7863919 C45.6506459,38.8200841 45.571574,38.8501593 45.4903462,38.8768094 Z\"></path>\n        </g>\n        <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n    </g>\n    </g>\n</svg>"
        },
        "$:/core/images/new-image-button": {
            "title": "$:/core/images/new-image-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.3619177,73.6270062 L97.1875317,46.2162388 C97.91364,44.9585822 97.4824378,43.3533085 96.2260476,42.6279312 L46.2162388,13.7547547 C44.9585822,13.0286463 43.3533085,13.4598485 42.6279312,14.7162388 L30.0575956,36.4886988 L40.0978909,31.2276186 C43.1404959,29.6333041 46.8692155,31.3421319 47.6479264,34.6877101 L51.2545483,52.3903732 L61.1353556,53.2399953 C63.2899974,53.4346096 65.1046382,54.9309951 65.706105,57.0091178 C65.7395572,57.1246982 65.8069154,57.3539875 65.9047035,57.6813669 C66.0696435,58.2335608 66.2581528,58.852952 66.4667073,59.5238092 C67.0618822,61.4383079 67.6960725,63.3742727 68.3393254,65.2021174 C68.5462918,65.7902259 68.7511789,66.3583016 68.953259,66.9034738 C69.5777086,68.5881157 70.1617856,70.0172008 70.6783305,71.110045 C70.9334784,71.6498566 71.1627732,72.0871602 71.4035746,72.5373068 C71.6178999,72.7492946 71.9508843,72.9623307 72.4151452,73.1586945 C73.5561502,73.6412938 75.1990755,73.899146 77.0720271,73.9171651 C77.9355886,73.9254732 78.7819239,73.8832103 79.5638842,73.8072782 C80.0123946,73.7637257 80.3172916,73.7224469 80.4352582,73.7027375 C80.7503629,73.6500912 81.0598053,73.6256267 81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 Z M37.4707881,2.64867269 C38.9217993,0.135447653 42.1388058,-0.723707984 44.6486727,0.725364314 L108.293614,37.4707881 C110.806839,38.9217993 111.665994,42.1388058 110.216922,44.6486727 L73.4714982,108.293614 C72.0204871,110.806839 68.8034805,111.665994 66.2936136,110.216922 L2.64867269,73.4714982 C0.135447653,72.0204871 -0.723707984,68.8034805 0.725364314,66.2936136 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 Z M80.3080975,53.1397764 C82.8191338,54.5895239 86.0299834,53.7291793 87.4797308,51.218143 C88.9294783,48.7071068 88.0691338,45.4962571 85.5580975,44.0465097 C83.0470612,42.5967622 79.8362116,43.4571068 78.3864641,45.968143 C76.9367166,48.4791793 77.7970612,51.6900289 80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 Z M96,112 L88.0070969,112 C83.5881712,112 80,108.418278 80,104 C80,99.5907123 83.5848994,96 88.0070969,96 L96,96 L96,88.0070969 C96,83.5881712 99.581722,80 104,80 C108.409288,80 112,83.5848994 112,88.0070969 L112,96 L119.992903,96 C124.411829,96 128,99.581722 128,104 C128,108.409288 124.415101,112 119.992903,112 L112,112 L112,119.992903 C112,124.411829 108.418278,128 104,128 C99.5907123,128 96,124.415101 96,119.992903 L96,112 L96,112 Z M33.3471097,51.7910932 C40.7754579,59.7394511 42.3564368,62.4818351 40.7958321,65.1848818 C39.2352273,67.8879286 26.9581062,62.8571718 24.7019652,66.7649227 C22.4458242,70.6726735 23.7947046,70.0228006 22.2648667,72.6725575 L41.9944593,84.0634431 C41.9944593,84.0634431 36.3904568,75.8079231 37.7602356,73.4353966 C40.2754811,69.0788636 46.5298923,72.1787882 48.1248275,69.4162793 C50.538989,65.234829 43.0222016,59.7770885 33.3471097,51.7910932 L33.3471097,51.7910932 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-journal-button": {
            "title": "$:/core/images/new-journal-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-journal-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z\"></path>\n        <g transform=\"translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)\">\n            <g transform=\"translate(0.000000, 0.000000)\">\n                <path d=\"M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z\"></path>\n                <text font-family=\"Helvetica\" font-size=\"47.1724138\" font-weight=\"bold\" fill=\"#FFFFFF\">\n                    <tspan x=\"42\" y=\"77.4847912\" text-anchor=\"middle\"><<now \"DD\">></tspan>\n                </text>\n            </g>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/opacity": {
            "title": "$:/core/images/opacity",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-opacity tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.361773,65 C101.833691,67.051742 101.183534,69.0544767 100.419508,71 L82.5835324,71 C83.7602504,69.1098924 84.7666304,67.1027366 85.581205,65 L102.361773,65 Z M102.834311,63 C103.256674,61.0388326 103.568427,59.0365486 103.762717,57 L87.6555706,57 C87.3692052,59.0609452 86.9083652,61.0660782 86.2884493,63 L102.834311,63 Z M99.5852583,73 C98.6682925,75.0747721 97.6196148,77.0783056 96.4498253,79 L75.8124196,79 C77.8387053,77.2115633 79.6621163,75.1985844 81.2437158,73 L99.5852583,73 Z M95.1689122,81 C93.7449202,83.1155572 92.1695234,85.1207336 90.458251,87 L60.4614747,87 C65.1836162,85.86248 69.5430327,83.794147 73.3347255,81 L95.1689122,81 Z M87.6555706,47 L103.762717,47 C101.246684,20.6269305 79.0321807,0 52,0 C23.281193,0 0,23.281193 0,52 C0,77.2277755 17.9651296,98.2595701 41.8000051,103 L62.1999949,103 C67.8794003,101.870444 73.2255333,99.8158975 78.074754,97 L39,97 L39,95 L81.2493857,95 C83.8589242,93.2215015 86.2981855,91.2116653 88.5376609,89 L39,89 L39,87 L43.5385253,87 C27.7389671,83.1940333 16,68.967908 16,52 C16,32.117749 32.117749,16 52,16 C70.1856127,16 85.2217929,29.4843233 87.6555706,47 Z M87.8767787,49 L103.914907,49 C103.971379,49.9928025 104,50.9930589 104,52 C104,53.0069411 103.971379,54.0071975 103.914907,55 L87.8767787,55 C87.958386,54.0107999 88,53.0102597 88,52 C88,50.9897403 87.958386,49.9892001 87.8767787,49 Z\"></path>\n        <path d=\"M76,128 C104.718807,128 128,104.718807 128,76 C128,47.281193 104.718807,24 76,24 C47.281193,24 24,47.281193 24,76 C24,104.718807 47.281193,128 76,128 L76,128 Z M76,112 C95.882251,112 112,95.882251 112,76 C112,56.117749 95.882251,40 76,40 C56.117749,40 40,56.117749 40,76 C40,95.882251 56.117749,112 76,112 L76,112 Z\"></path>\n        <path d=\"M37,58 L90,58 L90,62 L37,62 L37,58 L37,58 Z M40,50 L93,50 L93,54 L40,54 L40,50 L40,50 Z M40,42 L93,42 L93,46 L40,46 L40,42 L40,42 Z M32,66 L85,66 L85,70 L32,70 L32,66 L32,66 Z M30,74 L83,74 L83,78 L30,78 L30,74 L30,74 Z M27,82 L80,82 L80,86 L27,86 L27,82 L27,82 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/open-window": {
            "title": "$:/core/images/open-window",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-open-window tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M16,112 L104.993898,112 C108.863261,112 112,115.590712 112,120 C112,124.418278 108.858091,128 104.993898,128 L7.00610161,128 C3.13673853,128 0,124.409288 0,120 C0,119.998364 4.30952878e-07,119.996727 1.29273572e-06,119.995091 C4.89579306e-07,119.993456 0,119.99182 0,119.990183 L0,24.0098166 C0,19.586117 3.59071231,16 8,16 C12.418278,16 16,19.5838751 16,24.0098166 L16,112 Z\"></path>\n        <path d=\"M96,43.1959595 L96,56 C96,60.418278 99.581722,64 104,64 C108.418278,64 112,60.418278 112,56 L112,24 C112,19.5907123 108.415101,16 103.992903,16 L72.0070969,16 C67.5881712,16 64,19.581722 64,24 C64,28.4092877 67.5848994,32 72.0070969,32 L84.5685425,32 L48.2698369,68.2987056 C45.1421332,71.4264093 45.1434327,76.4904296 48.267627,79.614624 C51.3854642,82.7324612 56.4581306,82.7378289 59.5835454,79.6124141 L96,43.1959595 Z M32,7.9992458 C32,3.58138434 35.5881049,0 39.9992458,0 L120.000754,0 C124.418616,0 128,3.5881049 128,7.9992458 L128,88.0007542 C128,92.4186157 124.411895,96 120.000754,96 L39.9992458,96 C35.5813843,96 32,92.4118951 32,88.0007542 L32,7.9992458 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/options-button": {
            "title": "$:/core/images/options-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-options-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/paint": {
            "title": "$:/core/images/paint",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-paint tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M83.5265806,76.1907935 C90.430962,69.2864121 91.8921169,59.0000433 87.9100453,50.6642209 L125.812763,12.7615036 C128.732035,9.84223095 128.72611,5.10322984 125.812796,2.18991592 C122.893542,-0.729338085 118.161775,-0.730617045 115.241209,2.18994966 L77.3384914,40.092667 C69.002669,36.1105954 58.7163002,37.5717503 51.8119188,44.4761317 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 Z M80.8836921,78.8336819 L49.1690303,47.1190201 C49.1690303,47.1190201 8.50573364,81.242543 0,80.2820711 C0,80.2820711 3.78222974,85.8744423 6.82737483,88.320684 C20.8514801,82.630792 44.1526049,63.720771 44.1526049,63.720771 L44.8144806,64.3803375 C44.8144806,64.3803375 19.450356,90.2231043 9.18040433,92.0477601 C10.4017154,93.4877138 13.5343883,96.1014812 15.4269991,97.8235871 C20.8439164,96.3356979 50.1595367,69.253789 50.1595367,69.253789 L50.8214124,69.9133555 L18.4136144,100.936036 L23.6993903,106.221812 L56.1060358,75.2002881 L56.7679115,75.8598546 C56.7679115,75.8598546 28.9040131,106.396168 28.0841366,108.291555 C28.0841366,108.291555 34.1159238,115.144621 35.6529617,116.115796 C36.3545333,113.280171 63.5365402,82.6307925 63.5365402,82.6307925 L64.1984159,83.290359 C64.1984159,83.290359 43.6013016,107.04575 39.2343772,120.022559 C42.443736,123.571575 46.7339155,125.159692 50.1595362,126.321151 C47.9699978,114.504469 80.8836921,78.8336819 80.8836921,78.8336819 L80.8836921,78.8336819 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/palette": {
            "title": "$:/core/images/palette",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-palette tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.2470434,39.1821571 C75.0645698,38.2680897 69.6261555,37.7814854 64.0193999,37.7814854 C28.6624616,37.7814854 0,57.1324214 0,81.0030106 C0,90.644534 4.67604329,99.5487133 12.5805659,106.738252 C23.5031767,91.1899067 26.3405471,72.3946229 36.8885698,63.5622337 C52.0716764,50.8486559 63.4268694,55.7343343 63.4268694,55.7343343 L80.2470434,39.1821571 Z M106.781666,48.8370714 C119.830962,56.749628 128.0388,68.229191 128.0388,81.0030106 C128.0388,90.3534932 128.557501,98.4142085 116.165191,106.082518 C105.367708,112.763955 112.341384,99.546808 104.321443,95.1851533 C96.3015017,90.8234987 84.3749007,96.492742 86.1084305,103.091059 C89.3087234,115.272303 105.529892,114.54645 92.4224435,119.748569 C79.3149955,124.950687 74.2201582,124.224536 64.0193999,124.224536 C56.1979176,124.224536 48.7040365,123.277578 41.7755684,121.544216 C51.620343,117.347916 69.6563669,109.006202 75.129737,102.088562 C82.7876655,92.4099199 87.3713218,80.0000002 83.3235694,72.4837191 C83.1303943,72.1250117 94.5392656,60.81569 106.781666,48.8370714 Z M1.13430476,123.866563 C0.914084026,123.867944 0.693884185,123.868637 0.473712455,123.868637 C33.9526848,108.928928 22.6351223,59.642592 59.2924543,59.6425917 C59.6085574,61.0606542 59.9358353,62.5865065 60.3541977,64.1372318 C34.4465025,59.9707319 36.7873124,112.168427 1.13429588,123.866563 L1.13430476,123.866563 Z M1.84669213,123.859694 C40.7185279,123.354338 79.9985412,101.513051 79.9985401,79.0466836 C70.7284906,79.0466835 65.9257264,75.5670082 63.1833375,71.1051511 C46.585768,64.1019718 32.81846,116.819636 1.84665952,123.859695 L1.84669213,123.859694 Z M67.1980193,59.8524981 C62.748213,63.9666823 72.0838429,76.2846822 78.5155805,71.1700593 C89.8331416,59.8524993 112.468264,37.2173758 123.785825,25.8998146 C135.103386,14.5822535 123.785825,3.26469247 112.468264,14.5822535 C101.150703,25.8998144 78.9500931,48.9868127 67.1980193,59.8524981 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permalink-button": {
            "title": "$:/core/images/permalink-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permalink-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.4834582,48 L73.0956761,80 L73.0956761,80 L47.5165418,80 L54.9043239,48 L80.4834582,48 Z M84.1773493,32 L89.8007299,7.64246248 C90.7941633,3.33942958 95.0918297,0.64641956 99.3968675,1.64031585 C103.693145,2.63218977 106.385414,6.93288901 105.390651,11.2416793 L100.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L96.9043239,48 L89.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L85.8226507,96 L80.1992701,120.357538 C79.2058367,124.66057 74.9081703,127.35358 70.6031325,126.359684 C66.3068546,125.36781 63.6145865,121.067111 64.6093491,116.758321 L69.401785,96 L43.8226507,96 L38.1992701,120.357538 C37.2058367,124.66057 32.9081703,127.35358 28.6031325,126.359684 C24.3068546,125.36781 21.6145865,121.067111 22.6093491,116.758321 L27.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L31.0956761,80 L38.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L42.1773493,32 L47.8007299,7.64246248 C48.7941633,3.33942958 53.0918297,0.64641956 57.3968675,1.64031585 C61.6931454,2.63218977 64.3854135,6.93288901 63.3906509,11.2416793 L58.598215,32 L84.1773493,32 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permaview-button": {
            "title": "$:/core/images/permaview-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permaview-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.4834582,48 L79.6365127,56 L79.6365127,56 L74.0573784,56 L75.9043239,48 L81.4834582,48 Z M85.1773493,32 L90.8007299,7.64246248 C91.7941633,3.33942958 96.0918297,0.64641956 100.396867,1.64031585 C104.693145,2.63218977 107.385414,6.93288901 106.390651,11.2416793 L101.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L97.9043239,48 L96.0573784,56 L104.000754,56 C108.411895,56 112,59.581722 112,64 C112,68.4092877 108.418616,72 104.000754,72 L92.3634873,72 L90.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L86.8226507,96 L81.1992701,120.357538 C80.2058367,124.66057 75.9081703,127.35358 71.6031325,126.359684 C67.3068546,125.36781 64.6145865,121.067111 65.6093491,116.758321 L70.401785,96 L64.8226507,96 L59.1992701,120.357538 C58.2058367,124.66057 53.9081703,127.35358 49.6031325,126.359684 C45.3068546,125.36781 42.6145865,121.067111 43.6093491,116.758321 L48.401785,96 L42.8226507,96 L37.1992701,120.357538 C36.2058367,124.66057 31.9081703,127.35358 27.6031325,126.359684 C23.3068546,125.36781 20.6145865,121.067111 21.6093491,116.758321 L26.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L30.0956761,80 L31.9426216,72 L23.9992458,72 C19.5881049,72 16,68.418278 16,64 C16,59.5907123 19.5813843,56 23.9992458,56 L35.6365127,56 L37.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L41.1773493,32 L46.8007299,7.64246248 C47.7941633,3.33942958 52.0918297,0.64641956 56.3968675,1.64031585 C60.6931454,2.63218977 63.3854135,6.93288901 62.3906509,11.2416793 L57.598215,32 L63.1773493,32 L68.8007299,7.64246248 C69.7941633,3.33942958 74.0918297,0.64641956 78.3968675,1.64031585 C82.6931454,2.63218977 85.3854135,6.93288901 84.3906509,11.2416793 L79.598215,32 L85.1773493,32 Z M53.9043239,48 L52.0573784,56 L57.6365127,56 L59.4834582,48 L53.9043239,48 Z M75.9426216,72 L74.0956761,80 L74.0956761,80 L68.5165418,80 L70.3634873,72 L75.9426216,72 L75.9426216,72 Z M48.3634873,72 L46.5165418,80 L52.0956761,80 L53.9426216,72 L48.3634873,72 L48.3634873,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/picture": {
            "title": "$:/core/images/picture",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-picture tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112,68.2332211 L112,20.0027785 C112,17.7898769 110.207895,16 107.997221,16 L20.0027785,16 C17.7898769,16 16,17.792105 16,20.0027785 L16,58.312373 L25.2413115,43.7197989 C28.041793,39.297674 34.2643908,38.7118128 37.8410347,42.5335275 L56.0882845,63.1470817 L69.7748997,56.7400579 C72.766567,55.3552503 76.3013751,55.9473836 78.678437,58.2315339 C78.8106437,58.3585731 79.0742301,58.609836 79.4527088,58.9673596 C80.0910923,59.570398 80.8117772,60.2441563 81.598127,60.9705595 C83.8422198,63.043576 86.1541548,65.1151944 88.3956721,67.0372264 C89.1168795,67.6556396 89.8200801,68.2492007 90.5021258,68.8146755 C92.6097224,70.5620551 94.4693308,72.0029474 95.9836366,73.0515697 C96.7316295,73.5695379 97.3674038,73.9719282 98.0281481,74.3824999 C98.4724987,74.4989557 99.0742374,74.5263881 99.8365134,74.4317984 C101.709944,74.1993272 104.074502,73.2878514 106.559886,71.8846196 C107.705822,71.2376318 108.790494,70.5370325 109.764561,69.8410487 C110.323259,69.4418522 110.694168,69.1550757 110.834827,69.0391868 C111.210545,68.7296319 111.600264,68.4615815 112,68.2332211 L112,68.2332211 Z M0,8.00697327 C0,3.58484404 3.59075293,0 8.00697327,0 L119.993027,0 C124.415156,0 128,3.59075293 128,8.00697327 L128,119.993027 C128,124.415156 124.409247,128 119.993027,128 L8.00697327,128 C3.58484404,128 0,124.409247 0,119.993027 L0,8.00697327 L0,8.00697327 Z M95,42 C99.418278,42 103,38.418278 103,34 C103,29.581722 99.418278,26 95,26 C90.581722,26 87,29.581722 87,34 C87,38.418278 90.581722,42 95,42 L95,42 Z M32,76 C47.8587691,80.8294182 52.0345556,83.2438712 52.0345556,88 C52.0345556,92.7561288 32,95.4712486 32,102.347107 C32,109.222965 33.2849191,107.337637 33.2849191,112 L67.999999,112 C67.999999,112 54.3147136,105.375255 54.3147136,101.200691 C54.3147136,93.535181 64.9302432,92.860755 64.9302432,88 C64.9302432,80.6425555 50.8523779,79.167282 32,76 L32,76 Z\"></path>\n    </g>\n</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\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M61.2072232,68.1369825 C56.8829239,70.9319564 54.2082892,74.793177 54.2082892,79.0581634 C54.2082892,86.9638335 63.3980995,93.4821994 75.2498076,94.3940006 C77.412197,98.2964184 83.8475284,101.178858 91.5684735,101.403106 C86.4420125,100.27851 82.4506393,97.6624107 80.9477167,94.3948272 C92.8046245,93.4861461 102,86.9662269 102,79.0581634 C102,70.5281905 91.3014611,63.6132813 78.1041446,63.6132813 C71.5054863,63.6132813 65.5315225,65.3420086 61.2072232,68.1369825 Z M74.001066,53.9793443 C69.6767667,56.7743182 63.7028029,58.5030456 57.1041446,58.5030456 C54.4851745,58.5030456 51.9646095,58.2307276 49.6065315,57.7275105 C46.2945155,59.9778212 41.2235699,61.4171743 35.5395922,61.4171743 C35.4545771,61.4171743 35.3696991,61.4168523 35.2849622,61.4162104 C39.404008,60.5235193 42.7961717,58.6691298 44.7630507,56.286533 C37.8379411,53.5817651 33.2082892,48.669413 33.2082892,43.0581634 C33.2082892,34.5281905 43.9068281,27.6132812 57.1041446,27.6132812 C70.3014611,27.6132812 81,34.5281905 81,43.0581634 C81,47.3231498 78.3253653,51.1843704 74.001066,53.9793443 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</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\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M40.3972881,76.4456988 L40.3972881,95.3404069 L54.5170166,95.3404069 L54.5170166,95.3404069 C54.5165526,95.3385183 54.516089,95.3366295 54.515626,95.3347404 C54.6093153,95.3385061 54.7034848,95.3404069 54.7980982,95.3404069 C58.6157051,95.3404069 61.710487,92.245625 61.710487,88.4280181 C61.710487,86.6197822 61.01617,84.9737128 59.8795929,83.7418666 L59.8795929,83.7418666 C59.8949905,83.7341665 59.9104102,83.7265043 59.925852,83.7188798 C58.8840576,82.5086663 58.2542926,80.9336277 58.2542926,79.2114996 C58.2542926,75.3938927 61.3490745,72.2991108 65.1666814,72.2991108 C68.9842884,72.2991108 72.0790703,75.3938927 72.0790703,79.2114996 C72.0790703,81.1954221 71.2432806,82.9841354 69.9045961,84.2447446 L69.9045961,84.2447446 C69.9333407,84.2629251 69.9619885,84.281245 69.9905383,84.2997032 L69.9905383,84.2997032 C69.1314315,85.4516923 68.6228758,86.8804654 68.6228758,88.4280181 C68.6228758,91.8584969 71.1218232,94.7053153 74.3986526,95.2474079 C74.3913315,95.2784624 74.3838688,95.3094624 74.3762652,95.3404069 L95.6963988,95.3404069 L95.6963988,75.5678578 L95.6963988,75.5678578 C95.6466539,75.5808558 95.5967614,75.5934886 95.5467242,75.6057531 C95.5504899,75.5120637 95.5523907,75.4178943 95.5523907,75.3232809 C95.5523907,71.505674 92.4576088,68.4108921 88.6400019,68.4108921 C86.831766,68.4108921 85.1856966,69.105209 83.9538504,70.2417862 L83.9538504,70.2417862 C83.9461503,70.2263886 83.938488,70.2109688 83.9308636,70.1955271 C82.7206501,71.2373215 81.1456115,71.8670865 79.4234834,71.8670865 C75.6058765,71.8670865 72.5110946,68.7723046 72.5110946,64.9546976 C72.5110946,61.1370907 75.6058765,58.0423088 79.4234834,58.0423088 C81.4074059,58.0423088 83.1961192,58.8780985 84.4567284,60.2167829 L84.4567284,60.2167829 C84.4749089,60.1880383 84.4932288,60.1593906 84.511687,60.1308407 L84.511687,60.1308407 C85.6636761,60.9899475 87.0924492,61.4985032 88.6400019,61.4985032 C92.0704807,61.4985032 94.9172991,58.9995558 95.4593917,55.7227265 C95.538755,55.7414363 95.6177614,55.761071 95.6963988,55.7816184 L95.6963988,40.0412962 L74.3762652,40.0412962 L74.3762652,40.0412962 C74.3838688,40.0103516 74.3913315,39.9793517 74.3986526,39.9482971 L74.3986526,39.9482971 C71.1218232,39.4062046 68.6228758,36.5593862 68.6228758,33.1289073 C68.6228758,31.5813547 69.1314315,30.1525815 69.9905383,29.0005925 C69.9619885,28.9821342 69.9333407,28.9638143 69.9045961,28.9456339 C71.2432806,27.6850247 72.0790703,25.8963113 72.0790703,23.9123888 C72.0790703,20.0947819 68.9842884,17 65.1666814,17 C61.3490745,17 58.2542926,20.0947819 58.2542926,23.9123888 C58.2542926,25.6345169 58.8840576,27.2095556 59.925852,28.419769 L59.925852,28.419769 C59.9104102,28.4273935 59.8949905,28.4350558 59.8795929,28.4427558 C61.01617,29.674602 61.710487,31.3206715 61.710487,33.1289073 C61.710487,36.9465143 58.6157051,40.0412962 54.7980982,40.0412962 C54.7034848,40.0412962 54.6093153,40.0393953 54.515626,40.0356296 L54.515626,40.0356296 C54.516089,40.0375187 54.5165526,40.0394075 54.5170166,40.0412962 L40.3972881,40.0412962 L40.3972881,52.887664 L40.3972881,52.887664 C40.4916889,53.3430132 40.5412962,53.8147625 40.5412962,54.2980982 C40.5412962,58.1157051 37.4465143,61.210487 33.6289073,61.210487 C32.0813547,61.210487 30.6525815,60.7019313 29.5005925,59.8428245 C29.4821342,59.8713744 29.4638143,59.9000221 29.4456339,59.9287667 C28.1850247,58.5900823 26.3963113,57.7542926 24.4123888,57.7542926 C20.5947819,57.7542926 17.5,60.8490745 17.5,64.6666814 C17.5,68.4842884 20.5947819,71.5790703 24.4123888,71.5790703 C26.134517,71.5790703 27.7095556,70.9493053 28.919769,69.9075109 L28.919769,69.9075109 C28.9273935,69.9229526 28.9350558,69.9383724 28.9427558,69.95377 C30.174602,68.8171928 31.8206715,68.1228758 33.6289073,68.1228758 C37.4465143,68.1228758 40.5412962,71.2176578 40.5412962,75.0352647 C40.5412962,75.5186004 40.4916889,75.9903496 40.3972881,76.4456988 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</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\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M29.4078519,91.4716406 L51.4693474,69.4101451 L51.4646675,69.4054652 C50.5969502,68.5377479 50.5929779,67.1348725 51.4693474,66.2585029 C52.3396494,65.3882009 53.7499654,65.3874786 54.6163097,66.2538229 L64.0805963,75.7181095 C64.9483136,76.5858268 64.9522859,77.9887022 64.0759163,78.8650718 C63.2056143,79.7353737 61.7952984,79.736096 60.9289541,78.8697517 L60.9242741,78.8650718 L60.9242741,78.8650718 L38.8627786,100.926567 C36.2518727,103.537473 32.0187578,103.537473 29.4078519,100.926567 C26.796946,98.3156614 26.796946,94.0825465 29.4078519,91.4716406 Z M60.8017407,66.3810363 C58.3659178,63.6765806 56.3370667,61.2899536 54.9851735,59.5123615 C48.1295381,50.4979488 44.671561,55.2444054 40.7586738,59.5123614 C36.8457866,63.7803174 41.789473,67.2384487 38.0759896,70.2532832 C34.3625062,73.2681177 34.5917646,74.3131575 28.3243876,68.7977024 C22.0570105,63.2822473 21.6235306,61.7636888 24.5005999,58.6166112 C27.3776691,55.4695337 29.7823103,60.4247912 35.6595047,54.8320442 C41.5366991,49.2392972 36.5996215,44.2825646 36.5996215,44.2825646 C36.5996215,44.2825646 48.8365511,19.267683 65.1880231,21.1152173 C81.5394952,22.9627517 59.0022276,18.7228947 53.3962199,38.3410355 C50.9960082,46.7405407 53.8429162,44.7613399 58.3941742,48.3090467 C59.7875202,49.3951602 64.4244828,52.7100463 70.1884353,56.9943417 L90.8648751,36.3179019 L92.4795866,31.5515482 L100.319802,26.8629752 L103.471444,30.0146174 L98.782871,37.8548326 L94.0165173,39.4695441 L73.7934912,59.6925702 C86.4558549,69.2403631 102.104532,81.8392557 102.104532,86.4016913 C102.104533,93.6189834 99.0337832,97.9277545 92.5695848,95.5655717 C87.8765989,93.8506351 73.8015497,80.3744087 63.8173444,69.668717 L60.9242741,72.5617873 L57.7726319,69.4101451 L60.8017407,66.3810363 L60.8017407,66.3810363 Z M63.9533761,1.42108547e-13 L118.512977,32 L118.512977,96 L63.9533761,128 L9.39377563,96 L9.39377563,32 L63.9533761,1.42108547e-13 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-closed": {
            "title": "$:/core/images/preview-closed",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-closed tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M0.0881363238,64 C-0.210292223,65.8846266 0.249135869,67.8634737 1.4664206,69.4579969 C16.2465319,88.8184886 39.1692554,100.414336 64,100.414336 C88.8307446,100.414336 111.753468,88.8184886 126.533579,69.4579969 C127.750864,67.8634737 128.210292,65.8846266 127.911864,64 C110.582357,78.4158332 88.3036732,87.0858436 64,87.0858436 C39.6963268,87.0858436 17.4176431,78.4158332 0.0881363238,64 Z\"></path>\n        <rect x=\"62\" y=\"96\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(80.000000, 101.000000) rotate(-5.000000) translate(-80.000000, -101.000000) \" x=\"78\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(48.000000, 101.000000) rotate(-355.000000) translate(-48.000000, -101.000000) \" x=\"46\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(32.000000, 96.000000) rotate(-350.000000) translate(-32.000000, -96.000000) \" x=\"30\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(96.000000, 96.000000) rotate(-10.000000) translate(-96.000000, -96.000000) \" x=\"94\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(112.000000, 88.000000) rotate(-20.000000) translate(-112.000000, -88.000000) \" x=\"110\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(16.000000, 88.000000) rotate(-340.000000) translate(-16.000000, -88.000000) \" x=\"14\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-open": {
            "title": "$:/core/images/preview-open",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-open tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64.1099282,99.5876785 C39.2791836,99.5876785 16.3564602,87.9918313 1.57634884,68.6313396 C-0.378878622,66.070184 -0.378878622,62.5174945 1.57634884,59.9563389 C16.3564602,40.5958472 39.2791836,29 64.1099282,29 C88.9406729,29 111.863396,40.5958472 126.643508,59.9563389 C128.598735,62.5174945 128.598735,66.070184 126.643508,68.6313396 C111.863396,87.9918313 88.9406729,99.5876785 64.1099282,99.5876785 Z M110.213805,67.5808331 C111.654168,66.0569335 111.654168,63.9430665 110.213805,62.4191669 C99.3257042,50.8995835 82.4391647,44 64.1470385,44 C45.8549124,44 28.9683729,50.8995835 18.0802717,62.4191669 C16.6399094,63.9430665 16.6399094,66.0569335 18.0802717,67.5808331 C28.9683729,79.1004165 45.8549124,86 64.1470385,86 C82.4391647,86 99.3257042,79.1004165 110.213805,67.5808331 Z\"></path>\n        <path d=\"M63.5,88 C76.4786916,88 87,77.4786916 87,64.5 C87,51.5213084 76.4786916,41 63.5,41 C50.5213084,41 40,51.5213084 40,64.5 C40,77.4786916 50.5213084,88 63.5,88 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/quote": {
            "title": "$:/core/images/quote",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-quote tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M51.2188077,117.712501 L51.2188077,62.1993386 L27.4274524,62.1993386 C27.4274524,53.3075754 29.1096526,45.797753 32.4741035,39.669646 C35.8385544,33.541539 42.0867267,28.9154883 51.2188077,25.7913554 L51.2188077,2 C43.7689521,2.96127169 36.8599155,5.18417913 30.4914905,8.668789 C24.1230656,12.1533989 18.6559149,16.5391352 14.0898743,21.8261295 C9.52383382,27.1131238 5.97919764,33.2411389 3.45585945,40.2103586 C0.932521268,47.1795784 -0.208971741,54.6293222 0.0313461819,62.5598136 L0.0313461819,117.712501 L51.2188077,117.712501 Z M128,117.712501 L128,62.1993386 L104.208645,62.1993386 C104.208645,53.3075754 105.890845,45.797753 109.255296,39.669646 C112.619747,33.541539 118.867919,28.9154883 128,25.7913554 L128,2 C120.550144,2.96127169 113.641108,5.18417913 107.272683,8.668789 C100.904258,12.1533989 95.4371072,16.5391352 90.8710666,21.8261295 C86.3050261,27.1131238 82.7603899,33.2411389 80.2370517,40.2103586 C77.7137136,47.1795784 76.5722206,54.6293222 76.8125385,62.5598136 L76.8125385,117.712501 L128,117.712501 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/refresh-button": {
            "title": "$:/core/images/refresh-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-refresh-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M106.369002,39.4325143 C116.529932,60.3119371 112.939592,86.1974934 95.5979797,103.539105 C73.7286194,125.408466 38.2713806,125.408466 16.4020203,103.539105 C-5.46734008,81.6697449 -5.46734008,46.2125061 16.4020203,24.3431458 C19.5262146,21.2189514 24.5915344,21.2189514 27.7157288,24.3431458 C30.8399231,27.4673401 30.8399231,32.5326599 27.7157288,35.6568542 C12.0947571,51.2778259 12.0947571,76.6044251 27.7157288,92.2253967 C43.3367004,107.846368 68.6632996,107.846368 84.2842712,92.2253967 C97.71993,78.7897379 99.5995262,58.1740623 89.9230597,42.729491 L83.4844861,54.9932839 C81.4307001,58.9052072 76.5945372,60.4115251 72.682614,58.3577391 C68.7706907,56.3039532 67.2643728,51.4677903 69.3181587,47.555867 L84.4354914,18.7613158 C86.4966389,14.8353707 91.3577499,13.3347805 95.273202,15.415792 L124.145886,30.7612457 C128.047354,32.8348248 129.52915,37.6785572 127.455571,41.5800249 C125.381992,45.4814927 120.53826,46.9632892 116.636792,44.8897102 L106.369002,39.4325143 Z M98.1470904,27.0648707 C97.9798954,26.8741582 97.811187,26.6843098 97.6409651,26.4953413 L98.6018187,26.1987327 L98.1470904,27.0648707 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/right-arrow": {
            "title": "$:/core/images/right-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-right-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M80.3563798,109.353315 C78.9238993,110.786918 76.9450203,111.675144 74.7592239,111.675144 L-4.40893546,111.675144 C-8.77412698,111.675144 -12.3248558,108.130732 -12.3248558,103.758478 C-12.3248558,99.3951199 -8.78077754,95.8418109 -4.40893546,95.8418109 L66.8418109,95.8418109 L66.8418109,24.5910645 C66.8418109,20.225873 70.3862233,16.6751442 74.7584775,16.6751442 C79.1218352,16.6751442 82.6751442,20.2192225 82.6751442,24.5910645 L82.6751442,103.759224 C82.6751442,105.941695 81.7891419,107.920575 80.3566508,109.353886 Z\" transform=\"translate(35.175144, 64.175144) rotate(-45.000000) translate(-35.175144, -64.175144) \"></path>\n</svg>"
        },
        "$:/core/images/save-button": {
            "title": "$:/core/images/save-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M120.78304,34.329058 C125.424287,43.1924006 128.049406,53.2778608 128.049406,63.9764502 C128.049406,99.3226742 99.3956295,127.97645 64.0494055,127.97645 C28.7031816,127.97645 0.0494055385,99.3226742 0.0494055385,63.9764502 C0.0494055385,28.6302262 28.7031816,-0.0235498012 64.0494055,-0.0235498012 C82.8568763,-0.0235498012 99.769563,8.08898558 111.479045,21.0056358 L114.159581,18.3250998 C117.289194,15.1954866 122.356036,15.1939641 125.480231,18.3181584 C128.598068,21.4359957 128.601317,26.5107804 125.473289,29.6388083 L120.78304,34.329058 Z M108.72451,46.3875877 C110.870571,51.8341374 112.049406,57.767628 112.049406,63.9764502 C112.049406,90.4861182 90.5590735,111.97645 64.0494055,111.97645 C37.5397375,111.97645 16.0494055,90.4861182 16.0494055,63.9764502 C16.0494055,37.4667822 37.5397375,15.9764502 64.0494055,15.9764502 C78.438886,15.9764502 91.3495036,22.308215 100.147097,32.3375836 L58.9411255,73.5435552 L41.975581,56.5780107 C38.8486152,53.4510448 33.7746915,53.4551552 30.6568542,56.5729924 C27.5326599,59.6971868 27.5372202,64.7670668 30.6618725,67.8917192 L53.279253,90.5090997 C54.8435723,92.073419 56.8951519,92.8541315 58.9380216,92.8558261 C60.987971,92.8559239 63.0389578,92.0731398 64.6049211,90.5071765 L108.72451,46.3875877 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/size": {
            "title": "$:/core/images/size",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-size tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M92.3431458,26 L83.1715729,35.1715729 C81.6094757,36.73367 81.6094757,39.26633 83.1715729,40.8284271 C84.73367,42.3905243 87.26633,42.3905243 88.8284271,40.8284271 L104.828427,24.8284271 C106.390524,23.26633 106.390524,20.73367 104.828427,19.1715729 L88.8284271,3.17157288 C87.26633,1.60947571 84.73367,1.60947571 83.1715729,3.17157288 C81.6094757,4.73367004 81.6094757,7.26632996 83.1715729,8.82842712 L92.3431457,18 L22,18 C19.790861,18 18,19.790861 18,22 L18,92.3431458 L8.82842712,83.1715729 C7.26632996,81.6094757 4.73367004,81.6094757 3.17157288,83.1715729 C1.60947571,84.73367 1.60947571,87.26633 3.17157288,88.8284271 L19.1715729,104.828427 C20.73367,106.390524 23.26633,106.390524 24.8284271,104.828427 L40.8284271,88.8284271 C42.3905243,87.26633 42.3905243,84.73367 40.8284271,83.1715729 C39.26633,81.6094757 36.73367,81.6094757 35.1715729,83.1715729 L26,92.3431458 L26,22 L22,26 L92.3431458,26 L92.3431458,26 Z M112,52 L112,116 L116,112 L52,112 C49.790861,112 48,113.790861 48,116 C48,118.209139 49.790861,120 52,120 L116,120 C118.209139,120 120,118.209139 120,116 L120,52 C120,49.790861 118.209139,48 116,48 C113.790861,48 112,49.790861 112,52 L112,52 Z\"></path>\n</svg>"
        },
        "$:/core/images/spiral": {
            "title": "$:/core/images/spiral",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-spiral tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <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.074.14-2.64-1.89-4.89-4.52-5.03-2.64-.14-4.89 1.88-5.03 4.52-.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-.01-.02-.015-.054-.045-.094-.088-.06-.064-.12-.145-.17-.244-.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\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/stamp": {
            "title": "$:/core/images/stamp",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-stamp tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M49.7334301,64 L16.0098166,64 C11.5838751,64 8,67.5829053 8,72.002643 L8,74.4986785 L8,97 L120,97 L120,74.4986785 L120,72.002643 C120,67.5737547 116.413883,64 111.990183,64 L78.2665699,64 C76.502049,60.7519149 75.5,57.0311962 75.5,53.0769231 C75.5,46.6017951 78.1869052,40.7529228 82.5087769,36.5800577 C85.3313113,32.7688808 87,28.0549983 87,22.952183 C87,10.2760423 76.7025492,0 64,0 C51.2974508,0 41,10.2760423 41,22.952183 C41,28.0549983 42.6686887,32.7688808 45.4912231,36.5800577 C49.8130948,40.7529228 52.5,46.6017951 52.5,53.0769231 C52.5,57.0311962 51.497951,60.7519149 49.7334301,64 Z M8,104 L120,104 L120,112 L8,112 L8,104 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/star-filled": {
            "title": "$:/core/images/star-filled",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-star-filled tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M61.8361286,96.8228569 L99.1627704,124.110219 C101.883827,126.099427 105.541968,123.420868 104.505636,120.198072 L90.2895569,75.9887263 L89.0292911,79.8977279 L126.314504,52.5528988 C129.032541,50.5595011 127.635256,46.2255025 124.273711,46.2229134 L78.1610486,46.1873965 L81.4604673,48.6032923 L67.1773543,4.41589688 C66.1361365,1.19470104 61.6144265,1.19470104 60.5732087,4.41589688 L46.2900957,48.6032923 L49.5895144,46.1873965 L3.47685231,46.2229134 C0.115307373,46.2255025 -1.28197785,50.5595011 1.43605908,52.5528988 L38.7212719,79.8977279 L37.4610061,75.9887263 L23.2449266,120.198072 C22.2085954,123.420868 25.8667356,126.099427 28.5877926,124.110219 L65.9144344,96.8228569 L61.8361286,96.8228569 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-classic": {
            "title": "$:/core/images/storyview-classic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-classic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-pop": {
            "title": "$:/core/images/storyview-pop",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-pop tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M16.0098166,56 C11.586117,56 8,59.5776607 8,63.9924054 L8,80.0075946 C8,84.4216782 11.5838751,88 16.0098166,88 L111.990183,88 C116.413883,88 120,84.4223393 120,80.0075946 L120,63.9924054 C120,59.5783218 116.416125,56 111.990183,56 L16.0098166,56 L16.0098166,56 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-zoomin": {
            "title": "$:/core/images/storyview-zoomin",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-zoomin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.578055 16,24.0085154 L16,71.9914846 C16,76.4144655 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.421945 112,71.9914846 L112,24.0085154 C112,19.5855345 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/strikethrough": {
            "title": "$:/core/images/strikethrough",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M92.793842,38.7255689 L108.215529,38.7255689 C107.987058,31.985687 106.70193,26.1883331 104.360107,21.3333333 C102.018284,16.4783336 98.8197436,12.4516001 94.7643909,9.25301205 C90.7090382,6.05442399 85.9969032,3.71263572 80.6278447,2.22757697 C75.2587862,0.742518233 69.4328739,0 63.1499331,0 C57.552404,0 52.0977508,0.713959839 46.7858099,2.14190094 C41.473869,3.56984203 36.7331757,5.74027995 32.5635877,8.65327979 C28.3939997,11.5662796 25.0526676,15.2788708 22.5394913,19.7911647 C20.026315,24.3034585 18.7697456,29.6438781 18.7697456,35.8125837 C18.7697456,41.4101128 19.883523,46.0651309 22.1111111,49.7777778 C24.3386992,53.4904246 27.3087722,56.5176144 31.021419,58.8594378 C34.7340659,61.2012612 38.9321497,63.0861151 43.6157965,64.5140562 C48.2994433,65.9419973 53.068695,67.1985666 57.9236948,68.2838019 C62.7786945,69.3690371 67.5479462,70.4256977 72.231593,71.4538153 C76.9152398,72.4819329 81.1133237,73.8241773 84.8259705,75.480589 C88.5386174,77.1370007 91.5086903,79.2788802 93.7362784,81.9062918 C95.9638666,84.5337035 97.0776439,87.9607107 97.0776439,92.1874163 C97.0776439,96.6425926 96.1637753,100.298067 94.3360107,103.153949 C92.5082461,106.009831 90.109341,108.265944 87.1392236,109.922356 C84.1691061,111.578768 80.827774,112.749662 77.1151272,113.435074 C73.4024803,114.120485 69.7184476,114.463186 66.0629183,114.463186 C61.4935068,114.463186 57.0383974,113.892018 52.6974565,112.749665 C48.3565156,111.607312 44.5582492,109.836692 41.3025435,107.437751 C38.0468378,105.03881 35.4194656,101.983062 33.4203481,98.270415 C31.4212305,94.5577681 30.4216867,90.1312171 30.4216867,84.9906292 L15,84.9906292 C15,92.4159229 16.3422445,98.8415614 19.0267738,104.267738 C21.711303,109.693914 25.3667774,114.149023 29.9933066,117.633199 C34.6198357,121.117376 39.9888137,123.71619 46.1004016,125.429719 C52.2119895,127.143248 58.6947448,128 65.5488621,128 C71.1463912,128 76.7723948,127.343157 82.4270415,126.029451 C88.0816882,124.715745 93.1936407,122.602424 97.7630522,119.689424 C102.332464,116.776425 106.073613,113.006717 108.986613,108.380187 C111.899613,103.753658 113.356091,98.1847715 113.356091,91.6733601 C113.356091,85.6188899 112.242314,80.5926126 110.014726,76.5943775 C107.787137,72.5961424 104.817065,69.2833688 101.104418,66.6559572 C97.3917708,64.0285455 93.193687,61.9437828 88.5100402,60.4016064 C83.8263934,58.85943 79.0571416,57.5171855 74.2021419,56.3748327 C69.3471422,55.2324798 64.5778904,54.1758192 59.8942436,53.2048193 C55.2105968,52.2338193 51.012513,51.0058084 47.2998661,49.5207497 C43.5872193,48.0356909 40.6171463,46.1222786 38.3895582,43.7804552 C36.1619701,41.4386318 35.0481928,38.3828836 35.0481928,34.6131191 C35.0481928,30.6148841 35.8192694,27.273552 37.3614458,24.5890228 C38.9036222,21.9044935 40.9598265,19.762614 43.5301205,18.1633199 C46.1004145,16.5640259 49.041929,15.4216902 52.3547523,14.7362784 C55.6675757,14.0508667 59.0374661,13.708166 62.4645248,13.708166 C70.9179361,13.708166 77.8576257,15.6786952 83.2838019,19.6198126 C88.709978,23.56093 91.8799597,29.9294518 92.793842,38.7255689 L92.793842,38.7255689 Z\"></path>\n        <rect x=\"5\" y=\"54\" width=\"118\" height=\"16\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/subscript": {
            "title": "$:/core/images/subscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-subscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,128.411516 L85.3276227,128.411516 C85.3870139,123.24448 86.6342108,118.730815 89.0692508,114.870386 C91.5042907,111.009956 94.8301491,107.654403 99.0469256,104.803624 C101.066227,103.318844 103.174584,101.878629 105.372059,100.482935 C107.569534,99.0872413 109.588805,97.5876355 111.429933,95.9840726 C113.271061,94.3805097 114.785514,92.6433426 115.973338,90.7725192 C117.161163,88.9016958 117.784761,86.7487964 117.844152,84.3137564 C117.844152,83.1853233 117.710524,81.9826691 117.443264,80.7057579 C117.176003,79.4288467 116.656338,78.2410402 115.884252,77.1423026 C115.112166,76.0435651 114.04314,75.123015 112.677142,74.3806248 C111.311144,73.6382345 109.529434,73.267045 107.331959,73.267045 C105.312658,73.267045 103.634881,73.6679297 102.298579,74.4697112 C100.962276,75.2714926 99.8932503,76.3702137 99.0914688,77.7659073 C98.2896874,79.161601 97.6957841,80.8096826 97.3097412,82.7102016 C96.9236982,84.6107206 96.7009845,86.6596869 96.6415933,88.857162 L86.4857457,88.857162 C86.4857457,85.4124713 86.9460207,82.2202411 87.8665846,79.2803758 C88.7871485,76.3405105 90.1679736,73.801574 92.0091014,71.6634901 C93.8502292,69.5254062 96.092214,67.8476295 98.7351233,66.6301095 C101.378033,65.4125895 104.451482,64.8038386 107.955564,64.8038386 C111.756602,64.8038386 114.933984,65.4274371 117.487807,66.6746527 C120.041629,67.9218683 122.105443,69.4957119 123.67931,71.3962309 C125.253178,73.2967499 126.366746,75.3605638 127.02005,77.5877345 C127.673353,79.8149053 128,81.9381095 128,83.9574109 C128,86.4518421 127.613963,88.7086746 126.841877,90.727976 C126.069791,92.7472774 125.03046,94.6032252 123.723854,96.2958749 C122.417247,97.9885247 120.932489,99.5475208 119.269534,100.97291 C117.60658,102.398299 115.884261,103.734582 114.102524,104.981797 C112.320788,106.229013 110.539078,107.416819 108.757341,108.545253 C106.975605,109.673686 105.327523,110.802102 103.813047,111.930535 C102.298571,113.058968 100.977136,114.231927 99.8487031,115.449447 C98.7202699,116.666967 97.9481956,117.958707 97.5324571,119.324705 L127.910914,119.324705 L127.910914,128.411516 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/superscript": {
            "title": "$:/core/images/superscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-superscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,63.4115159 L85.3276227,63.4115159 C85.3870139,58.2444799 86.6342108,53.7308149 89.0692508,49.8703857 C91.5042907,46.0099565 94.8301491,42.654403 99.0469256,39.8036245 C101.066227,38.318844 103.174584,36.8786285 105.372059,35.4829349 C107.569534,34.0872413 109.588805,32.5876355 111.429933,30.9840726 C113.271061,29.3805097 114.785514,27.6433426 115.973338,25.7725192 C117.161163,23.9016958 117.784761,21.7487964 117.844152,19.3137564 C117.844152,18.1853233 117.710524,16.9826691 117.443264,15.7057579 C117.176003,14.4288467 116.656338,13.2410402 115.884252,12.1423026 C115.112166,11.0435651 114.04314,10.123015 112.677142,9.38062477 C111.311144,8.63823453 109.529434,8.26704499 107.331959,8.26704499 C105.312658,8.26704499 103.634881,8.6679297 102.298579,9.46971115 C100.962276,10.2714926 99.8932503,11.3702137 99.0914688,12.7659073 C98.2896874,14.161601 97.6957841,15.8096826 97.3097412,17.7102016 C96.9236982,19.6107206 96.7009845,21.6596869 96.6415933,23.857162 L86.4857457,23.857162 C86.4857457,20.4124713 86.9460207,17.2202411 87.8665846,14.2803758 C88.7871485,11.3405105 90.1679736,8.80157397 92.0091014,6.6634901 C93.8502292,4.52540622 96.092214,2.84762946 98.7351233,1.63010947 C101.378033,0.412589489 104.451482,-0.196161372 107.955564,-0.196161372 C111.756602,-0.196161372 114.933984,0.427437071 117.487807,1.67465266 C120.041629,2.92186826 122.105443,4.49571195 123.67931,6.39623095 C125.253178,8.29674995 126.366746,10.3605638 127.02005,12.5877345 C127.673353,14.8149053 128,16.9381095 128,18.9574109 C128,21.4518421 127.613963,23.7086746 126.841877,25.727976 C126.069791,27.7472774 125.03046,29.6032252 123.723854,31.2958749 C122.417247,32.9885247 120.932489,34.5475208 119.269534,35.97291 C117.60658,37.3982993 115.884261,38.7345816 114.102524,39.9817972 C112.320788,41.2290128 110.539078,42.4168194 108.757341,43.5452525 C106.975605,44.6736857 105.327523,45.8021019 103.813047,46.9305351 C102.298571,48.0589682 100.977136,49.2319272 99.8487031,50.4494472 C98.7202699,51.6669672 97.9481956,52.9587068 97.5324571,54.3247048 L127.910914,54.3247048 L127.910914,63.4115159 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/tag-button": {
            "title": "$:/core/images/tag-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tag-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M18.1643182,47.6600756 L18.1677196,51.7651887 C18.1708869,55.5878829 20.3581578,60.8623899 23.0531352,63.5573673 L84.9021823,125.406414 C87.5996731,128.103905 91.971139,128.096834 94.6717387,125.396234 L125.766905,94.3010679 C128.473612,91.5943612 128.472063,87.2264889 125.777085,84.5315115 L63.9280381,22.6824644 C61.2305472,19.9849735 55.9517395,17.801995 52.1318769,17.8010313 L25.0560441,17.7942007 C21.2311475,17.7932358 18.1421354,20.8872832 18.1452985,24.7049463 L18.1535504,34.6641936 C18.2481119,34.6754562 18.3439134,34.6864294 18.4409623,34.6971263 C22.1702157,35.1081705 26.9295004,34.6530132 31.806204,33.5444844 C32.1342781,33.0700515 32.5094815,32.6184036 32.9318197,32.1960654 C35.6385117,29.4893734 39.5490441,28.718649 42.94592,29.8824694 C43.0432142,29.8394357 43.1402334,29.7961748 43.2369683,29.7526887 L43.3646982,30.0368244 C44.566601,30.5115916 45.6933052,31.2351533 46.6655958,32.2074439 C50.4612154,36.0030635 50.4663097,42.1518845 46.6769742,45.94122 C43.0594074,49.5587868 37.2914155,49.7181264 33.4734256,46.422636 C28.1082519,47.5454734 22.7987486,48.0186448 18.1643182,47.6600756 Z\"></path>\n        <path d=\"M47.6333528,39.5324628 L47.6562932,39.5834939 C37.9670934,43.9391617 26.0718874,46.3819521 17.260095,45.4107025 C5.27267473,44.0894301 -1.02778744,36.4307276 2.44271359,24.0779512 C5.56175386,12.9761516 14.3014034,4.36129832 24.0466405,1.54817001 C34.7269254,-1.53487574 43.7955833,3.51606438 43.7955834,14.7730751 L35.1728168,14.7730752 C35.1728167,9.91428944 32.0946059,8.19982862 26.4381034,9.83267419 C19.5270911,11.8276553 13.046247,18.2159574 10.7440788,26.4102121 C8.82861123,33.2280582 11.161186,36.0634845 18.2047888,36.8398415 C25.3302805,37.6252244 35.7353482,35.4884477 44.1208333,31.7188498 L44.1475077,31.7781871 C44.159701,31.7725635 44.1718402,31.7671479 44.1839238,31.7619434 C45.9448098,31.0035157 50.4503245,38.3109156 47.7081571,39.5012767 C47.6834429,39.512005 47.6585061,39.5223987 47.6333528,39.5324628 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/theme-button": {
            "title": "$:/core/images/theme-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-theme-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.854113,66.9453198 C54.3299482,65.1432292 53.0133883,63.518995 51.9542746,62.1263761 C40.8899947,47.578055 35.3091807,55.2383404 28.9941893,62.1263758 C22.6791979,69.0144112 30.6577916,74.5954741 24.6646171,79.4611023 C18.6714426,84.3267304 19.0414417,86.0133155 8.92654943,77.1119468 C-1.18834284,68.2105781 -1.88793412,65.7597832 2.7553553,60.6807286 C7.39864472,55.601674 11.2794845,63.5989423 20.7646627,54.5728325 C30.2498409,45.5467226 22.2819131,37.5470737 22.2819131,37.5470737 C22.2819131,37.5470737 42.0310399,-2.82433362 68.4206088,0.157393922 C94.8101776,3.13912147 58.4373806,-3.70356506 49.3898693,27.958066 C45.5161782,41.5139906 50.1107906,38.3197672 57.4560458,44.0453955 C59.1625767,45.3756367 63.8839488,48.777453 70.127165,53.3625321 C63.9980513,59.2416709 58.9704753,64.0315459 55.854113,66.9453198 Z M67.4952439,79.8919946 C83.5082212,96.9282402 105.237121,117.617674 112.611591,120.312493 C123.044132,124.12481 128.000001,117.170903 128,105.522947 C127.999999,98.3705516 104.170675,78.980486 84.0760493,63.7529565 C76.6683337,70.9090328 70.7000957,76.7055226 67.4952439,79.8919946 Z\"></path>\n        <path d=\"M58.2852966,138.232794 L58.2852966,88.3943645 C56.318874,88.3923153 54.7254089,86.7952906 54.7254089,84.8344788 C54.7254089,82.8684071 56.3175932,81.2745911 58.2890859,81.2745911 L79.6408336,81.2745911 C81.608998,81.2745911 83.2045105,82.8724076 83.2045105,84.8344788 C83.2045105,86.7992907 81.614366,88.3923238 79.6446228,88.3943645 L79.6446228,88.3943646 L79.6446228,138.232794 C79.6446228,144.131009 74.8631748,148.912457 68.9649597,148.912457 C63.0667446,148.912457 58.2852966,144.131009 58.2852966,138.232794 Z M65.405072,-14.8423767 L72.5248474,-14.8423767 L76.0847351,-0.690681892 L72.5248474,6.51694947 L72.5248474,81.2745911 L65.405072,81.2745911 L65.405072,6.51694947 L61.8451843,-0.690681892 L65.405072,-14.8423767 Z\" transform=\"translate(68.964960, 67.035040) rotate(45.000000) translate(-68.964960, -67.035040) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/tip": {
            "title": "$:/core/images/tip",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tip tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128.241818 C99.346224,128.241818 128,99.5880417 128,64.2418177 C128,28.8955937 99.346224,0.241817675 64,0.241817675 C28.653776,0.241817675 0,28.8955937 0,64.2418177 C0,99.5880417 28.653776,128.241818 64,128.241818 Z M75.9358659,91.4531941 C75.3115438,95.581915 70.2059206,98.8016748 64,98.8016748 C57.7940794,98.8016748 52.6884562,95.581915 52.0641341,91.4531941 C54.3299053,94.0502127 58.8248941,95.8192805 64,95.8192805 C69.1751059,95.8192805 73.6700947,94.0502127 75.9358659,91.4531941 L75.9358659,91.4531941 Z M75.9358659,95.9453413 C75.3115438,100.074062 70.2059206,103.293822 64,103.293822 C57.7940794,103.293822 52.6884562,100.074062 52.0641341,95.9453413 C54.3299053,98.5423599 58.8248941,100.311428 64,100.311428 C69.1751059,100.311428 73.6700947,98.5423599 75.9358659,95.9453413 L75.9358659,95.9453413 Z M75.9358659,100.40119 C75.3115438,104.529911 70.2059206,107.74967 64,107.74967 C57.7940794,107.74967 52.6884562,104.529911 52.0641341,100.40119 C54.3299053,102.998208 58.8248941,104.767276 64,104.767276 C69.1751059,104.767276 73.6700947,102.998208 75.9358659,100.40119 L75.9358659,100.40119 Z M75.9358659,104.893337 C75.3115438,109.022058 70.2059206,112.241818 64,112.241818 C57.7940794,112.241818 52.6884562,109.022058 52.0641341,104.893337 C54.3299053,107.490356 58.8248941,109.259423 64,109.259423 C69.1751059,109.259423 73.6700947,107.490356 75.9358659,104.893337 L75.9358659,104.893337 Z M64.3010456,24.2418177 C75.9193117,24.2418188 88.0000013,32.0619847 88,48.4419659 C87.9999987,64.8219472 75.9193018,71.7540963 75.9193021,83.5755932 C75.9193022,89.4486648 70.0521957,92.8368862 63.9999994,92.8368862 C57.947803,92.8368862 51.9731007,89.8295115 51.9731007,83.5755932 C51.9731007,71.1469799 39.9999998,65.4700602 40,48.4419647 C40.0000002,31.4138691 52.6827796,24.2418166 64.3010456,24.2418177 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/twitter": {
            "title": "$:/core/images/twitter",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-twitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.6263422,115.803477 C27.0279663,115.803477 13.4398394,111.540813 1.99987456,104.234833 C4.02221627,104.472643 6.08004574,104.594302 8.16644978,104.594302 C20.277456,104.594302 31.4238403,100.47763 40.270894,93.5715185 C28.9590538,93.3635501 19.4123842,85.9189246 16.1230832,75.6885328 C17.7011365,75.9892376 19.320669,76.1503787 20.9862896,76.1503787 C23.344152,76.1503787 25.6278127,75.8359011 27.7971751,75.247346 C15.9709927,72.8821073 7.06079851,62.4745062 7.06079851,49.9982394 C7.06079851,49.8898938 7.06079851,49.7820074 7.06264203,49.67458 C10.5482779,51.6032228 14.5339687,52.7615103 18.7717609,52.8951059 C11.8355159,48.277565 7.2714207,40.3958845 7.2714207,31.4624258 C7.2714207,26.7434257 8.54621495,22.3200804 10.7713439,18.5169676 C23.5211299,34.0957738 42.568842,44.3472839 64.0532269,45.4210985 C63.6126256,43.5365285 63.3835682,41.5711584 63.3835682,39.5529928 C63.3835682,25.3326379 74.95811,13.8034766 89.2347917,13.8034766 C96.6697089,13.8034766 103.387958,16.930807 108.103682,21.9353619 C113.991886,20.780288 119.52429,18.6372496 124.518847,15.6866694 C122.588682,21.6993889 118.490075,26.7457211 113.152623,29.9327334 C118.381769,29.3102055 123.363882,27.926045 127.999875,25.8780385 C124.534056,31.0418981 120.151087,35.5772616 115.100763,39.2077561 C115.150538,40.3118708 115.175426,41.4224128 115.175426,42.538923 C115.175426,76.5663154 89.1744164,115.803477 41.6263422,115.803477\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/underline": {
            "title": "$:/core/images/underline",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-underline tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M7,117.421488 L121.247934,117.421488 L121.247934,128 L7,128 L7,117.421488 Z M104.871212,98.8958333 L104.871212,0 L88.6117424,0 L88.6117424,55.8560606 C88.6117424,60.3194668 88.0060035,64.432115 86.7945076,68.1941288 C85.5830116,71.9561425 83.7657949,75.239885 81.342803,78.0454545 C78.9198111,80.8510241 75.8911167,83.0189317 72.2566288,84.5492424 C68.6221409,86.0795531 64.3182067,86.844697 59.344697,86.844697 C53.0959284,86.844697 48.1862552,85.0593613 44.6155303,81.4886364 C41.0448054,77.9179114 39.2594697,73.0720003 39.2594697,66.9507576 L39.2594697,0 L23,0 L23,65.0378788 C23,70.3939662 23.5419769,75.2717583 24.625947,79.6714015 C25.709917,84.0710447 27.5908957,87.864883 30.2689394,91.0530303 C32.9469831,94.2411776 36.4538925,96.6960141 40.7897727,98.4176136 C45.125653,100.139213 50.545422,101 57.0492424,101 C64.3182182,101 70.630655,99.5653553 75.9867424,96.6960227 C81.3428298,93.8266902 85.742407,89.33147 89.1856061,83.2102273 L89.5681818,83.2102273 L89.5681818,98.8958333 L104.871212,98.8958333 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-all-button": {
            "title": "$:/core/images/unfold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,8.34884273 C84.1490432,6.89863875 82.1463102,6 79.9340286,6 L47.9482224,6 C43.5292967,6 39.9411255,9.581722 39.9411255,14 C39.9411255,18.4092877 43.5260249,22 47.9482224,22 L71.9411255,22 L71.9411255,45.9929031 C71.9411255,50.4118288 75.5228475,54 79.9411255,54 C84.3504132,54 87.9411255,50.4151006 87.9411255,45.9929031 L87.9411255,14.0070969 C87.9411255,11.7964515 87.0447363,9.79371715 85.5956548,8.34412458 Z\" transform=\"translate(63.941125, 30.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -30.000000) \"></path>\n        <path d=\"M85.6571005,72.2899682 C84.2079177,70.8397642 82.2051847,69.9411255 79.9929031,69.9411255 L48.0070969,69.9411255 C43.5881712,69.9411255 40,73.5228475 40,77.9411255 C40,82.3504132 43.5848994,85.9411255 48.0070969,85.9411255 L72,85.9411255 L72,109.934029 C72,114.352954 75.581722,117.941125 80,117.941125 C84.4092877,117.941125 88,114.356226 88,109.934029 L88,77.9482224 C88,75.737577 87.1036108,73.7348426 85.6545293,72.2852501 Z\" transform=\"translate(64.000000, 93.941125) scale(1, -1) rotate(-45.000000) translate(-64.000000, -93.941125) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-button": {
            "title": "$:/core/images/unfold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,11.3488427 C84.1490432,9.89863875 82.1463102,9 79.9340286,9 L47.9482224,9 C43.5292967,9 39.9411255,12.581722 39.9411255,17 C39.9411255,21.4092877 43.5260249,25 47.9482224,25 L71.9411255,25 L71.9411255,48.9929031 C71.9411255,53.4118288 75.5228475,57 79.9411255,57 C84.3504132,57 87.9411255,53.4151006 87.9411255,48.9929031 L87.9411255,17.0070969 C87.9411255,14.7964515 87.0447363,12.7937171 85.5956548,11.3441246 Z\" transform=\"translate(63.941125, 33.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -33.000000) \"></path>\n        <path d=\"M85.6571005,53.4077172 C84.2079177,51.9575133 82.2051847,51.0588745 79.9929031,51.0588745 L48.0070969,51.0588745 C43.5881712,51.0588745 40,54.6405965 40,59.0588745 C40,63.4681622 43.5848994,67.0588745 48.0070969,67.0588745 L72,67.0588745 L72,91.0517776 C72,95.4707033 75.581722,99.0588745 80,99.0588745 C84.4092877,99.0588745 88,95.4739751 88,91.0517776 L88,59.0659714 C88,56.855326 87.1036108,54.8525917 85.6545293,53.4029991 Z\" transform=\"translate(64.000000, 75.058875) scale(1, -1) rotate(-45.000000) translate(-64.000000, -75.058875) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unlocked-padlock": {
            "title": "$:/core/images/unlocked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unlocked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M48.6266053,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L30.136303,64 C19.6806213,51.3490406 2.77158986,28.2115132 25.8366966,8.85759246 C50.4723026,-11.8141335 71.6711028,13.2108337 81.613302,25.0594855 C91.5555012,36.9081373 78.9368488,47.4964439 69.1559674,34.9513593 C59.375086,22.4062748 47.9893192,10.8049522 35.9485154,20.9083862 C23.9077117,31.0118202 34.192312,43.2685325 44.7624679,55.8655518 C47.229397,58.805523 48.403443,61.5979188 48.6266053,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/up-arrow": {
            "created": "20150316000544368",
            "modified": "20150316000831867",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/up-arrow",
            "text": "<svg class=\"tc-image-up-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n<path transform=\"rotate(-135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25074c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056l0.00001,-0.00001z\" />\n</svg>\n \n"
        },
        "$:/core/images/video": {
            "title": "$:/core/images/video",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-video tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,12 C29.0909091,12 8.72727273,14.9166667 5.81818182,17.8333333 C2.90909091,20.75 1.93784382e-15,41.1666667 0,64.5 C1.93784382e-15,87.8333333 2.90909091,108.25 5.81818182,111.166667 C8.72727273,114.083333 29.0909091,117 64,117 C98.9090909,117 119.272727,114.083333 122.181818,111.166667 C125.090909,108.25 128,87.8333333 128,64.5 C128,41.1666667 125.090909,20.75 122.181818,17.8333333 C119.272727,14.9166667 98.9090909,12 64,12 Z M54.9161194,44.6182253 C51.102648,42.0759111 48.0112186,43.7391738 48.0112186,48.3159447 L48.0112186,79.6840553 C48.0112186,84.2685636 51.109784,85.9193316 54.9161194,83.3817747 L77.0838806,68.6032672 C80.897352,66.0609529 80.890216,61.9342897 77.0838806,59.3967328 L54.9161194,44.6182253 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/warning": {
            "title": "$:/core/images/warning",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-warning tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M57.0717968,11 C60.1509982,5.66666667 67.8490018,5.66666667 70.9282032,11 L126.353829,107 C129.433031,112.333333 125.584029,119 119.425626,119 L8.57437416,119 C2.41597129,119 -1.43303051,112.333333 1.64617093,107 L57.0717968,11 Z M64,37 C59.581722,37 56,40.5820489 56,44.9935776 L56,73.0064224 C56,77.4211534 59.5907123,81 64,81 C68.418278,81 72,77.4179511 72,73.0064224 L72,44.9935776 C72,40.5788466 68.4092877,37 64,37 Z M64,104 C68.418278,104 72,100.418278 72,96 C72,91.581722 68.418278,88 64,88 C59.581722,88 56,91.581722 56,96 C56,100.418278 59.581722,104 64,104 Z\"></path>\n    </g>\n</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/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/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/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/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/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/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/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/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/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "Basics"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "Use &#91;&#91;double square brackets&#93;&#93; 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/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "Tags for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "Number of overridden shadow tiddlers:"
        },
        "$:/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/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/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 individual wiki parser rules. Take care as disabling some parser rules can prevent ~TiddlyWiki functioning correctly (you can restore normal operation with [[safe mode|http://tiddlywiki.com/#SafeMode]] )"
        },
        "$:/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/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/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/NoInformation/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
            "text": "No information provided"
        },
        "$:/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/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/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "Saving"
        },
        "$:/language/ControlPanel/Saving/Heading": {
            "title": "$:/language/ControlPanel/Saving/Heading",
            "text": "Saving"
        },
        "$:/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/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "Backups"
        },
        "$:/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/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": "Automatically save changes during editing"
        },
        "$:/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/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/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/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/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"
        },
        "$:/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"
        },
        "$:/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"
        },
        "$:/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"
        },
        "$:/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/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "Animations that may be used with the RevealWidget."
        },
        "$:/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/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "Operands for the ''is'' filter operator."
        },
        "$:/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/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/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-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/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/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 is an external tiddler 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/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "add"
        },
        "$:/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/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "tag name"
        },
        "$:/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/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/hack-to-give-us-something-to-compare-against": {
            "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against",
            "text": "A temporary storage field used in [[$:/core/templates/static.content]]"
        },
        "$:/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": "If set to \"yes\" indicates that a tiddler should be saved as a JavaScript library"
        },
        "$:/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"
        },
        "$:/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/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "The unique name of a tiddler"
        },
        "$:/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/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/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "System tags"
        },
        "$:/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 important to make sure that you can reliably save changes. See http://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/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/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/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/load": {
            "title": "$:/language/Help/load",
            "description": "Load tiddlers from a file",
            "text": "Load tiddlers from 2.x.x TiddlyWiki files (`.html`), `.tiddler`, `.tid`, `.json` or other files\n\n```\n--load <filepath>\n```\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/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "Render an individual tiddler as a specified ContentType",
            "text": "Render an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename. Optionally a template 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\n```\n--rendertiddler <title> <filename> [<type>] [<template>]\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/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "Render tiddlers matching a filter to a specified ContentType",
            "text": "Render 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/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "Saves a raw tiddler to a file",
            "text": "Saves 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": "Saves 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/server": {
            "title": "$:/language/Help/server",
            "description": "Provides an HTTP server interface to TiddlyWiki",
            "text": "The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.\n\nAt the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\nThe parameters are:\n\n* ''port'' - port number to serve from (defaults to \"8080\")\n* ''roottiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''servetype'' - 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* ''pathprefix'' - optional prefix for paths\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 isn't suitable for general use.\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--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port.\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/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>> being older 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/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|http://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 http://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/Count": {
            "title": "$:/language/Count",
            "text": "count"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "New Tiddler"
        },
        "$:/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/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "Filter error"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "Syntax error in filter expression"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "Filter Error: Unknown operand for the 'is' filter operator"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "Error loading plugin library"
        },
        "$:/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/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>Loading external text from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear you may be using a browser that doesn't support external text in this configuration. See http://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "Login to TiddlySpace"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" - click {{$:/core/images/edit-button}} 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/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "DDth MMM YYYY"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "This is a system tiddler"
        },
        "$:/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/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",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://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",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://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/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "Journal"
        },
        "$:/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/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|http://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/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/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. Caution: Does not work at all with Chrome, and causes some layout issues in Firefox"
        },
        "$:/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/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": "References"
        },
        "$:/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"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON data",
            "name": "application/json",
            "group": "Developer"
        },
        "$:/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"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF image",
            "name": "image/gif",
            "group": "Image"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG image",
            "name": "image/jpeg",
            "group": "Image"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG image",
            "name": "image/png",
            "group": "Image"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "Structured Vector Graphics image",
            "name": "image/svg+xml",
            "group": "Image"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "ICO format icon file",
            "name": "image/x-icon",
            "group": "Image"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "Static stylesheet",
            "name": "text/css",
            "group": "Developer"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML markup",
            "name": "text/html",
            "group": "Text"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "Plain text",
            "name": "text/plain",
            "group": "Text"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "Text"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki Classic",
            "name": "text/x-tiddlywiki",
            "group": "Text"
        },
        "$:/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": {
            "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/*\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\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\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",
            "title": "$:/core/modules/commander.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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",
            "title": "$:/core/modules/commands/build.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/clearpassword.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/editions.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/help.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/init.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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\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 ext = path.extname(self.params[0]);\n\tfs.readFile(this.params[0],$tw.utils.getTypeEncoding(ext),function(err,data) {\n\t\tif (err) {\n\t\t\tself.callback(err);\n\t\t} else {\n\t\t\tvar fields = {title: self.params[0]},\n\t\t\t\ttype = path.extname(self.params[0]);\n\t\t\tvar tiddlers = self.commander.wiki.deserializeTiddlers(type,data,fields);\n\t\t\tif(!tiddlers) {\n\t\t\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t\t\t} else {\n\t\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddlers[t]));\n\t\t\t\t}\n\t\t\t\tself.callback(null);\t\n\t\t\t}\n\t\t}\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/load.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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 = fs.readdirSync(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 = fs.readdirSync(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\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));\n\tcollectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));\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},null,$tw.config.preferences.jsonSpaces)\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/makelibrary.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/output.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/password.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\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",
            "title": "$:/core/modules/commands/rendertiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/rendertiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\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,null,$tw.config.preferences.jsonSpaces),\"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\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,{text: undefined, readme: readmeContent, icon: iconContent}));\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",
            "title": "$:/core/modules/commands/savelibrarytiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/savetiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/savetiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/server.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\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\thttp = require(\"http\");\n}\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\n/*\nA simple HTTP server with regexp-based routes\n*/\nfunction SimpleServer(options) {\n\tthis.routes = options.routes || [];\n\tthis.wiki = options.wiki;\n\tthis.variables = options.variables || {};\n}\n\nSimpleServer.prototype.set = function(obj) {\n\tvar self = this;\n\t$tw.utils.each(obj,function(value,name) {\n\t\tself.variables[name] = value;\n\t});\n};\n\nSimpleServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nSimpleServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nSimpleServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"pathprefix\") || \"\";\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(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(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\nSimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) {\n\tvar header = request.headers.authorization || \"\",\n\t\ttoken = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tusername = parts[0],\n\t\tpassword = parts[1];\n\tif(incomingUsername === username && incomingPassword === password) {\n\t\treturn \"ALLOWED\";\n\t} else {\n\t\treturn \"DENIED\";\n\t}\n};\n\nSimpleServer.prototype.listen = function(port,host) {\n\tvar self = this;\n\thttp.createServer(function(request,response) {\n\t\t// Compose the state object\n\t\tvar state = {};\n\t\tstate.wiki = self.wiki;\n\t\tstate.server = self;\n\t\tstate.urlInfo = url.parse(request.url);\n\t\t// Find the route that matches this path\n\t\tvar route = self.findMatchingRoute(request,state);\n\t\t// Check for the username and password if we've got one\n\t\tvar username = self.get(\"username\"),\n\t\t\tpassword = self.get(\"password\");\n\t\tif(username && password) {\n\t\t\t// Check they match\n\t\t\tif(self.checkCredentials(request,username,password) !== \"ALLOWED\") {\n\t\t\t\tvar servername = state.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\";\n\t\t\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + servername + '\"'\n\t\t\t\t});\n\t\t\t\tresponse.end();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t// Return a 404 if we didn't find a route\n\t\tif(!route) {\n\t\t\tresponse.writeHead(404);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t\t// Set the encoding for the incoming request\n\t\t// TODO: Presumably this would need tweaking if we supported PUTting binary tiddlers\n\t\trequest.setEncoding(\"utf8\");\n\t\t// Dispatch the appropriate method\n\t\tswitch(request.method) {\n\t\t\tcase \"GET\": // Intentional fall-through\n\t\t\tcase \"DELETE\":\n\t\t\t\troute.handler(request,response,state);\n\t\t\t\tbreak;\n\t\t\tcase \"PUT\":\n\t\t\t\tvar data = \"\";\n\t\t\t\trequest.on(\"data\",function(chunk) {\n\t\t\t\t\tdata += chunk.toString();\n\t\t\t\t});\n\t\t\t\trequest.on(\"end\",function() {\n\t\t\t\t\tstate.data = data;\n\t\t\t\t\troute.handler(request,response,state);\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t}).listen(port,host);\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n\t// Set up server\n\tthis.server = new SimpleServer({\n\t\twiki: this.commander.wiki\n\t});\n\t// Add route handlers\n\tthis.server.addRoute({\n\t\tmethod: \"PUT\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\tfields = JSON.parse(state.data);\n\t\t\t// Pull up any subfields in the `fields` object\n\t\t\tif(fields.fields) {\n\t\t\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\t\t\tfields[name] = field;\n\t\t\t\t});\n\t\t\t\tdelete fields.fields;\n\t\t\t}\n\t\t\t// Remove any revision field\n\t\t\tif(fields.revision) {\n\t\t\t\tdelete fields.revision;\n\t\t\t}\n\t\t\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\t\t\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\t\t\tresponse.writeHead(204, \"OK\",{\n\t\t\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"DELETE\",\n\t\tpath: /^\\/bags\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]);\n\t\t\tstate.wiki.deleteTiddler(title);\n\t\t\tresponse.writeHead(204, \"OK\", {\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": state.server.get(\"serveType\")});\n\t\t\tvar text = state.wiki.renderTiddler(state.server.get(\"renderType\"),state.server.get(\"rootTiddler\"));\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/status$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar text = JSON.stringify({\n\t\t\t\tusername: state.server.get(\"username\"),\n\t\t\t\tspace: {\n\t\t\t\t\trecipe: \"default\"\n\t\t\t\t},\n\t\t\t\ttiddlywiki_version: $tw.version\n\t\t\t});\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/favicon.ico$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\t\t\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\t\t\tresponse.end(buffer,\"base64\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers.json$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar tiddlers = [];\n\t\t\tstate.wiki.forEachTiddler({sortField: \"title\"},function(title,tiddler) {\n\t\t\t\tvar tiddlerFields = {};\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tif(name !== \"text\") {\n\t\t\t\t\t\ttiddlerFields[name] = tiddler.getFieldString(name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\ttiddlers.push(tiddlerFields);\n\t\t\t});\n\t\t\tvar text = JSON.stringify(tiddlers);\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\ttiddler = state.wiki.getTiddler(title),\n\t\t\t\ttiddlerFields = {},\n\t\t\t\tknownFields = [\n\t\t\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t\t\t];\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\t\t\ttiddlerFields[name] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t\t\t} else {\n\t\t\t\tresponse.writeHead(404);\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t}\n\t});\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\tvar port = this.params[0] || \"8080\",\n\t\trootTiddler = this.params[1] || \"$:/core/save/all\",\n\t\trenderType = this.params[2] || \"text/plain\",\n\t\tserveType = this.params[3] || \"text/html\",\n\t\tusername = this.params[4],\n\t\tpassword = this.params[5],\n\t\thost = this.params[6] || \"127.0.0.1\",\n\t\tpathprefix = this.params[7];\n\tthis.server.set({\n\t\trootTiddler: rootTiddler,\n\t\trenderType: renderType,\n\t\tserveType: serveType,\n\t\tusername: username,\n\t\tpassword: password,\n\t\tpathprefix: pathprefix\n\t});\n\tthis.server.listen(port,host);\n\tconsole.log(\"Serving on \" + host + \":\" + port);\n\tconsole.log(\"(press ctrl-C to exit)\");\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.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\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/server.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/setfield.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/unpackplugin.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/verbose.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/commands/version.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/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",
            "title": "$:/core/modules/config.js",
            "type": "application/javascript",
            "module-type": "config"
        },
        "$:/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 = JSON.parse(text),\n\t\tresults = [];\n\tif($tw.utils.isArray(incoming)) {\n\t\tfor(var t=0; t<incoming.length; t++) {\n\t\t\tvar incomingFields = incoming[t],\n\t\t\t\tfields = {};\n\t\t\tfor(var f in incomingFields) {\n\t\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t\t}\n\t\t\t}\n\t\t\tresults.push(fields);\n\t\t}\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",
            "title": "$:/core/modules/deserializers.js",
            "type": "application/javascript",
            "module-type": "tiddlerdeserializer"
        },
        "$:/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\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\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.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*/\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 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\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",
            "title": "$:/core/modules/editor/engines/framed.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/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\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) {\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*/\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\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.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*/\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",
            "title": "$:/core/modules/editor/engines/simple.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/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\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);\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);\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 || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\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);\t\t\t\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;\t\t\t\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",
            "title": "$:/core/modules/editor/factory.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/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",
            "title": "$:/core/modules/editor/operations/bitmap/clear.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/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",
            "title": "$:/core/modules/editor/operations/bitmap/resize.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/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",
            "title": "$:/core/modules/editor/operations/text/excise.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/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",
            "title": "$:/core/modules/editor/operations/text/make-link.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/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\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,event.paramObject.count);\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 !== event.paramObject.count) {\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",
            "title": "$:/core/modules/editor/operations/text/prefix-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/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",
            "title": "$:/core/modules/editor/operations/text/replace-all.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/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",
            "title": "$:/core/modules/editor/operations/text/replace-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/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",
            "title": "$:/core/modules/editor/operations/text/wrap-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/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 unless they comprise the entire text\n\t\t\tif(operation.selStart > event.paramObject.prefix.length || (operation.selEnd + event.paramObject.suffix.length) < operation.text.length ) {\n\t\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\t\toperation.replacement = \"\";\n\t\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t\t}\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",
            "title": "$:/core/modules/editor/operations/text/wrap-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/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",
            "title": "$:/core/modules/filters/addprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/addsuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/after.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/all/current.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/all/missing.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/all/orphans.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/all/shadows.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/all/tiddlers.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/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 = [],\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\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/backlinks.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/before.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/commands.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/days.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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\t\tvalue,values = {},\n\t\tfield = operator.operand || \"title\";\n\tif(operator.suffix !== \"list-item\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvalue = (field === \"title\") ? title : tiddler.getFieldString(field);\n\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\tvalues[value] = true;\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) {\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",
            "title": "$:/core/modules/filters/each.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/eachday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editiondescription.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editions.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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 = [],\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\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",
            "title": "$:/core/modules/filters/field.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tfor(var fieldName in tiddler.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",
            "title": "$:/core/modules/filters/fields.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/get.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/getindex.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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\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\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand) || tiddler.fields[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(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/has.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/haschanged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/indexes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/current.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/image.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/missing.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/orphan.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/shadow.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/system.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/tag.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/is/tiddler.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/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\tvar isFilterOperator = isFilterOperators[operator.operand];\n\tif(isFilterOperator) {\n\t\treturn isFilterOperator(source,operator.prefix,options);\n\t} else {\n\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/limit.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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 = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/links.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/list.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/listed.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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/*\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 = parseInt(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 = parseInt(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 = parseInt(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 = parseInt(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 = parseInt(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",
            "title": "$:/core/modules/filters/listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/modules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/moduletypes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/next.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/plugintiddlers.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/prefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/previous.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/regexp.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/removeprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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.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",
            "title": "$:/core/modules/filters/removesuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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\tvar isSameDay = function(dateField) {\n\t\t\treturn (new Date(dateField)).setHours(0,0,0,0) === targetDate;\n\t\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tif(isSameDay($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/sameday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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.suffix) {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: operator.suffix\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",
            "title": "$:/core/modules/filters/search.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/shadowsource.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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.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",
            "title": "$:/core/modules/filters/sort.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/splitbefore.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/storyviews.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/suffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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 = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && !tiddler.hasTag(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(tiddler && tiddler.hasTag(operator.operand)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tag.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/tagging.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/tags.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/title.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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",
            "title": "$:/core/modules/filters/untagged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(exp.types[operator.operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/wikiparserrules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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    /*jslint node: true, browser: true */\n    /*global $tw: false */\n    \"use strict\";\n\n    /*\n    Fetch titles from the current list\n    */\n    var prepare_results = function (source) {\n    var results = [];\n        source(function (tiddler, title) {\n            results.push(title);\n        });\n        return results;\n    };\n\n    /*\n    Moves a number of items from the tail of the current list before the item named in the operand\n    */\n    exports.putbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list after the item named in the operand\n    */\n    exports.putafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Replaces the item named in the operand with a number of items from the tail of the current list\n    */\n    exports.replace = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -count) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list to the head of the list\n    */\n    exports.putfirst = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(-count).concat(results.slice(0, -count));\n    };\n\n    /*\n    Moves a number of items from the head of the current list to the tail of the list\n    */\n    exports.putlast = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(count).concat(results.slice(0, count));\n    };\n\n    /*\n    Moves the item named in the operand a number of places forward or backward in the list\n    */\n    exports.move = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1,\n            marker = results.splice(index, 1);\n        return results.slice(0, index + count).concat(marker).concat(results.slice(index + count));\n    };\n\n    /*\n    Returns the items from the current list that are after the item named in the operand\n    */\n    exports.allafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index === -1 || index > (results.length - 2)) ? [] :\n            (operator.suffix) ? results.slice(index) :\n            results.slice(index + 1);\n    };\n\n    /*\n    Returns the items from the current list that are before the item named in the operand\n    */\n    exports.allbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index <= 0) ? [] :\n            (operator.suffix) ? results.slice(0, index + 1) :\n            results.slice(0, index);\n    };\n\n    /*\n    Appends the items listed in the operand array to the tail of the current list\n    */\n    exports.append = function (source, operator) {\n        var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || append.length;\n        return (append.length === 0) ? results :\n            (operator.prefix) ? results.concat(append.slice(-count)) :\n            results.concat(append.slice(0, count));\n    };\n\n    /*\n    Prepends the items listed in the operand array to the head of the current list\n    */\n    exports.prepend = function (source, operator) {\n        var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || prepend.length;\n        return (prepend.length === 0) ? results :\n            (operator.prefix) ? prepend.slice(-count).concat(results) :\n            prepend.slice(0, count).concat(results);\n    };\n\n    /*\n    Returns all items from the current list except the items listed in the operand array\n    */\n    exports.remove = function (source, operator) {\n        var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || array.length,\n            p,\n            len,\n            index;\n        len = array.length - 1;\n        for (p = 0; p < count; ++p) {\n            if (operator.prefix) {\n                index = results.indexOf(array[len - p]);\n            } else {\n                index = results.indexOf(array[p]);\n            }\n            if (index !== -1) {\n                results.splice(index, 1);\n            }\n        }\n        return results;\n    };\n\n    /*\n    Returns all items from the current list sorted in the order of the items in the operand array\n    */\n    exports.sortby = function (source, operator) {\n        var results = prepare_results(source);\n        if (!results || results.length < 2) {\n            return results;\n        }\n        var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n        results.sort(function (a, b) {\n            return lookup.indexOf(a) - lookup.indexOf(b);\n        });\n        return results;\n    };\n\n    /*\n    Removes all duplicate items from the current list\n    */\n    exports.unique = function (source, operator) {\n        var results = prepare_results(source);\n        var set = results.reduce(function (a, b) {\n            if (a.indexOf(b) < 0) {\n                a.push(b);\n            }\n            return a;\n        }, []);\n        return set;\n    };\n})();\n",
            "title": "$:/core/modules/filters/x-listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/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 operator, operand, bracketPos, curlyBracketPos;\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\tvar nextBracketPos = 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\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\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\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\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\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\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\t\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 = /((?:\\+|\\-)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\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++;\n\t\t\t}\n\t\t\tif(match[2]) { // 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[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\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.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 operand = operator.operand,\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\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\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: operand,\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\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\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\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 function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\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\",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 = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/filters.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/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() {\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\treturn infoTiddlerFields;\n};\n\n})();\n",
            "title": "$:/core/modules/info/platform.js",
            "type": "application/javascript",
            "module-type": "info"
        },
        "$:/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}\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\tlookupName(\"shortcuts\");\n\t\t\t\tlookupName($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\");\n\t\t\t\tlookupName($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\t\t\t\tlookupName($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\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\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
            "title": "$:/core/modules/keyboard.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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",
            "title": "$:/core/modules/language.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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",
            "title": "$:/core/modules/macros/changecount.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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",
            "title": "$:/core/modules/macros/contrastcolour.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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",
            "title": "$:/core/modules/macros/csvtiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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",
            "title": "$:/core/modules/macros/displayshortcuts.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/dumpvariables.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/dumpvariables.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to dump all active variable values\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 = \"dumpvariables\";\n\nexports.params = [\n];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\tvar output = [\"|!Variable |!Value |\"],\n\t\tvariables = [], variable;\n\tfor(variable in this.variables) {\n\t\tvariables.push(variable);\n\t}\n\tvariables.sort();\n\tfor(var index=0; index<variables.length; index++) {\n\t\tvar variable = variables[index];\n\t\toutput.push(\"|\" + variable + \" |<input size=50 value=<<\" + variable + \">>/> |\")\n\t}\n\treturn output.join(\"\\n\");\n};\n\n})();\n",
            "title": "$:/core/modules/macros/dumpvariables.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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];\n\n/*\nRun the macro\n*/\nexports.run = function(filter) {\n\tvar tiddlers = this.wiki.filterTiddlers(filter),\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.wiki.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,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/jsontiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type) {\n\treturn $tw.utils.makeDataUri(text,type);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/makedatauri.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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",
            "title": "$:/core/modules/macros/now.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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",
            "title": "$:/core/modules/macros/qualify.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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",
            "title": "$:/core/modules/macros/resolvepath.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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",
            "title": "$:/core/modules/macros/version.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/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}\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",
            "title": "$:/core/modules/parsers/audioparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/csvparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/htmlparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/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\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t\tif(type === \"application/pdf\" || type === \".pdf\") {\n\t\t\telement.tag = \"embed\";\n\t\t}\n\t} else if(text) {\n\t\tif(type === \"application/pdf\" || type === \".pdf\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t\t\telement.tag = \"embed\";\n\t\t} else if(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[\"application/pdf\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/imageparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/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\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 an indirect value\n\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\tif(indirectValue) {\n\t\t\t\tpos = indirectValue.end;\n\t\t\t\tnode.type = \"indirect\";\n\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for a unquoted value\n\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\tif(unquotedValue) {\n\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = \"true\";\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",
            "title": "$:/core/modules/utils/parseutils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/textparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/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 AudioParser = 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}\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/mp4\"] = AudioParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/videoparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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 = startPos + 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",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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 = startPos + 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",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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 ? \"&ndash;\" : \"&mdash;\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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: &copy;\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",
            "title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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: http://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",
            "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\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.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\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",
            "title": "$:/core/modules/parsers/wikiparser/rules/html.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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[http://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [http://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [http://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|http://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",
            "title": "$:/core/modules/parsers/wikiparser/rules/image.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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: \"p\"}\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",
            "title": "$:/core/modules/parsers/wikiparser/rules/list.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\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\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\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\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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[http://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|http://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",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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 = /~?\\$:\\/[a-zA-Z0-9/.\\-_]+/mg;\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})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/table.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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// 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",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/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\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// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\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// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\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\ttree.push({type: \"text\", text: 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\ttree.push({type: \"text\", text: 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\ttree.push({type: \"text\", text: 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\ttree.push({type: \"text\", text: 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\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\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 keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\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(!keepFilter(ruleArray[t].rule.name)) {\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",
            "title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/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",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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\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\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// 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};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
            "title": "$:/core/modules/pluginswitcher.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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.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\tthis.numChanges = 0;\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(callback) {\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\tcallback(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\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// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\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\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
            "title": "$:/core/modules/saver-handler.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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) {\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t// Strip the file://\n\tif(pathname.indexOf(\"file://\") === 0) {\n\t\tpathname = pathname.substr(7);\n\t}\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// Save the file\n\twindow.twi.saveFile(pathname,text);\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\"]\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",
            "title": "$:/core/modules/savers/andtidwiki.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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\tfilename = 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\tlink.setAttribute(\"target\",\"_blank\");\n\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\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\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 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",
            "title": "$:/core/modules/savers/download.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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",
            "title": "$:/core/modules/savers/fsosaver.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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",
            "title": "$:/core/modules/savers/manualdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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",
            "title": "$:/core/modules/savers/msdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\tvar req = new XMLHttpRequest();\n\treq.open(\"OPTIONS\",encodeURI(document.location.protocol + \"//\" + document.location.hostname + \":\" + document.location.port + document.location.pathname));\n\treq.onload = function() {\n\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\tself.serverAcceptsPuts = (this.status === 200 && !!this.getResponseHeader('dav'));\n\t};\n\treq.send();\n};\n\nPutSaver.prototype.save = function(text,method,callback) {\n\tif (!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar req = new XMLHttpRequest();\n\t// TODO: store/check ETags if supported by server, to protect against overwrites\n\t// Prompt: Do you want to save over this? Y/N\n\t// Merging would be ideal, and may be possible using future generic merge flow\n\treq.onload = function() {\n\t\tif (this.status === 200 || this.status === 201) {\n\t\t\tcallback(null); // success\n\t\t}\n\t\telse {\n\t\t\tcallback(this.responseText); // fail\n\t\t}\n\t};\n\treq.open(\"PUT\", encodeURI(window.location.href));\n\treq.setRequestHeader(\"Content-Type\", \"text/html;charset=UTF-8\");\n\treq.send(text);\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",
            "title": "$:/core/modules/savers/put.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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 (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/tiddlyfox.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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",
            "title": "$:/core/modules/savers/tiddlyie.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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",
            "title": "$:/core/modules/savers/twedit.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\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",
            "title": "$:/core/modules/savers/upload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/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\t\tiframeInfo = {\n\t\t\t\turl: url,\n\t\t\t\tstatus: \"loading\",\n\t\t\t\tdomNode: iframe\n\t\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\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\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$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\tconsole.log(\"browser-messaging: \",document.location.toString())\n\t\tconsole.log(\"browser-messaging: Received message from\",event.origin);\n\t\tconsole.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",
            "title": "$:/core/modules/browser-messaging.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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",
            "title": "$:/core/modules/startup/commands.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/favicon.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin\n\tvar fields = {\n\t\ttitle: \"$:/temp/info-plugin\",\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo();\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/info.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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\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.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",
            "title": "$:/core/modules/startup/load-modules.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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",
            "title": "$:/core/modules/startup/password.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar DRAFT_TIDDLER_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});\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})();\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.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\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 drafts have changed\n\t\tvar onlyDraftsHaveChanged = 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\")) {\n\t\t\t\tonlyDraftsHaveChanged = 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(onlyDraftsHaveChanged) {\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 = DRAFT_TIDDLER_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};\n\n})();\n",
            "title": "$:/core/modules/startup/render.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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});\n\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 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\tif(document[fullscreen._fullscreenElement]) {\n\t\t\t\tdocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tdocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\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",
            "title": "$:/core/modules/startup/rootwidget.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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\tvar modules,n,m,f;\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.appVersion);\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// 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-US\"\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// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\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\tif($tw.browser) {\n\t\t$tw.rootWidget = new widget.widget({\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},{\n\t\t\twiki: $tw.wiki,\n\t\t\tdocument: document\n\t\t});\n\t}\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({wiki: $tw.wiki, dirtyTracking: !$tw.syncadaptor});\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",
            "title": "$:/core/modules/startup.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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\"\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers();\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 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]);\t\t\t\t\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: \"permalink\",\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});\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: \"permaview\",\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});\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\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// If a target tiddler was specified add it to the history stack\n\tif(target && target !== \"\") {\n\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t}\n\t\t$tw.wiki.addToHistory(target);\n\t} else if(storyList.length > 0) {\n\t\t$tw.wiki.addToHistory(storyList[0]);\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.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\tif(options.updateAddressBar !== \"no\") {\n\t\t// Get the story and the history stack\n\t\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\t\ttargetTiddler = \"\";\n\t\tif(options.targetTiddler) {\n\t\t\ttargetTiddler = options.targetTiddler;\n\t\t} else {\n\t\t\t// The target tiddler is the one at the top of the stack\n\t\t\tif(historyList.length > 0) {\n\t\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t\t}\n\t\t\t// Blank the target tiddler if it isn't present in the story\n\t\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\t\ttargetTiddler = \"\";\n\t\t\t}\n\t\t}\n\t\t// Assemble the location hash\n\t\tif(options.updateAddressBar === \"permalink\") {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t} else {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t}\n\t\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\t\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\t\tif(options.updateHistory === \"yes\") {\n\t\t\t\t// Assign the location hash so that history is updated\n\t\t\t\twindow.location.hash = $tw.locationHash;\n\t\t\t} else {\n\t\t\t\t// We use replace so that browser history isn't affected\n\t\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t\t}\n\t\t}\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/story.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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)\nvar 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\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 = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\twindows[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 = title;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete 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\",{document: $tw.fakeDocument, variables: variables}),\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\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(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
            "title": "$:/core/modules/startup/windows.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/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",
            "title": "$:/core/modules/story.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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 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\nClassicStoryView.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// Get the current height of the tiddler\n\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Reset the margin 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{marginBottom: \"\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\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: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nClassicStoryView.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// Get the current height of the tiddler\n\tvar currWidth = targetElement.offsetWidth,\n\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Remove the dom nodes of the widget 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: \"translateX(0px)\"},\n\t\t{marginBottom:  currMarginBottom + \"px\"},\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 \" + easing + \", \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
            "title": "$:/core/modules/storyviews/classic.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/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},duration);\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.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",
            "title": "$:/core/modules/storyviews/pop.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/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",
            "title": "$:/core/modules/storyviews/zoomin.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/syncer.js": {
            "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store. If a syncadaptor is used then individual tiddlers are synchronised through it. If there is no syncadaptor then the entire wiki is saved 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 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\tthis.syncadaptor = options.syncadaptor;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\"));\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\t// Tasks are {type: \"load\"/\"save\"/\"delete\", title:, queueTime:, lastModificationTime:}\n\tthis.taskQueue = {}; // Hashmap of tasks yet to be performed\n\tthis.taskInProgress = {}; // Hash of tasks in progress\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.syncToServer(changes);\n\t});\n\t// Browser event handlers\n\tif($tw.browser) {\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() {\n\t\t\tself.handleLoginEvent();\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}\n\t// Listen out for lazyLoad events\n\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\tself.handleLazyLoadEvent(title);\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/*\nConstants\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\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.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\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\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.filterFn.call(this.wiki);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: tiddler.fields.revision,\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title),\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t});\n};\n\n/*\nCreate an tiddlerInfo structure if it doesn't already exist\n*/\nSyncer.prototype.createTiddlerInfo = function(title) {\n\tif(!$tw.utils.hop(this.tiddlerInfo,title)) {\n\t\tthis.tiddlerInfo[title] = {\n\t\t\trevision: null,\n\t\t\tadaptorInfo: {},\n\t\t\tchangeCount: -1,\n\t\t\thasBeenLazyLoaded: false\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\treturn (this.numTasksInQueue() > 0) || (this.numTasksInProgress() > 0);\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) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\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(this.wiki.getTiddler(tiddlerFields.title),tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: tiddlerFields.revision,\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title),\n\t\thasBeenLazyLoaded: true\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) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Set the various status tiddlers\n\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\tif(isLoggedIn) {\n\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t} else {\n\t\t\t\tself.wiki.deleteTiddler(self.titleUserName);\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\tif(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tvar self = this;\n\t\tif(this.pollTimerId) {\n\t\t\tclearTimeout(this.pollTimerId);\n\t\t\tthis.pollTimerId = null;\n\t\t}\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\t// Trigger the next sync\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert($tw.language.getString(\"Error/RetrievingSkinny\") + \":\",err);\n\t\t\t\treturn;\n\t\t\t}\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.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// 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// Do a full load if we've already got a fat version of the tiddler\n\t\t\t\t\tif(tiddler && tiddler.fields.text !== undefined) {\n\t\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\t\tself.enqueueSyncTask({\n\t\t\t\t\t\t\ttype: \"load\",\n\t\t\t\t\t\t\ttitle: tiddlerFields.title\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Load the skinny version of the tiddler\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nSynchronise a set of changes to the server\n*/\nSyncer.prototype.syncToServer = function(changes) {\n\tvar self = this,\n\t\tnow = Date.now(),\n\t\tfilteredChanges = this.filterFn.call(this.wiki,function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t$tw.utils.each(changes,function(change,title,object) {\n\t\t// Process the change if it is a deletion of a tiddler we're already syncing, or is on the filtered change list\n\t\tif((change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) || filteredChanges.indexOf(title) !== -1) {\n\t\t\t// Queue a task to sync this tiddler\n\t\t\tself.enqueueSyncTask({\n\t\t\t\ttype: change.deleted ? \"delete\" : \"save\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Don't lazy load the same tiddler twice\n\tvar info = this.tiddlerInfo[title];\n\tif(!info || !info.hasBeenLazyLoaded) {\n\t\tthis.createTiddlerInfo(title);\n\t\tthis.tiddlerInfo[title].hasBeenLazyLoaded = true;\n\t\t// Queue up a sync task to load this tiddler\n\t\tthis.enqueueSyncTask({\n\t\t\ttype: \"load\",\n\t\t\ttitle: title\n\t\t});\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(!isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\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(null,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/*\nQueue up a sync task. If there is already a pending task for the tiddler, just update the last modification time\n*/\nSyncer.prototype.enqueueSyncTask = function(task) {\n\tvar self = this,\n\t\tnow = Date.now();\n\t// Set the timestamps on this task\n\ttask.queueTime = now;\n\ttask.lastModificationTime = now;\n\t// Fill in some tiddlerInfo if the tiddler is one we haven't seen before\n\tthis.createTiddlerInfo(task.title);\n\t// Bail if this is a save and the tiddler is already at the changeCount that the server has\n\tif(task.type === \"save\" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {\n\t\treturn;\n\t}\n\t// Check if this tiddler is already in the queue\n\tif($tw.utils.hop(this.taskQueue,task.title)) {\n\t\t// this.logger.log(\"Re-queueing up sync task with type:\",task.type,\"title:\",task.title);\n\t\tvar existingTask = this.taskQueue[task.title];\n\t\t// If so, just update the last modification time\n\t\texistingTask.lastModificationTime = task.lastModificationTime;\n\t\t// If the new task is a save then we upgrade the existing task to a save. Thus a pending load is turned into a save if the tiddler changes locally in the meantime. But a pending save is not modified to become a load\n\t\tif(task.type === \"save\" || task.type === \"delete\") {\n\t\t\texistingTask.type = task.type;\n\t\t}\n\t} else {\n\t\t// this.logger.log(\"Queuing up sync task with type:\",task.type,\"title:\",task.title);\n\t\t// If it is not in the queue, insert it\n\t\tthis.taskQueue[task.title] = task;\n\t\tthis.updateDirtyStatus();\n\t}\n\t// Process the queue\n\t$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});\n};\n\n/*\nReturn the number of tasks in progress\n*/\nSyncer.prototype.numTasksInProgress = function() {\n\treturn $tw.utils.count(this.taskInProgress);\n};\n\n/*\nReturn the number of tasks in the queue\n*/\nSyncer.prototype.numTasksInQueue = function() {\n\treturn $tw.utils.count(this.taskQueue);\n};\n\n/*\nTrigger a timeout if one isn't already outstanding\n*/\nSyncer.prototype.triggerTimeout = function() {\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},self.taskTimerInterval);\n\t}\n};\n\n/*\nProcess the task queue, performing the next task if appropriate\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 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.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(task) {\n\t\t\t// Remove the task from the queue and add it to the in progress list\n\t\t\tdelete this.taskQueue[task.title];\n\t\t\tthis.taskInProgress[task.title] = task;\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// Dispatch the task\n\t\t\tthis.dispatchTask(task,function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\tself.logger.alert(\"Sync error while processing '\" + task.title + \"':\\n\" + err);\n\t\t\t\t}\n\t\t\t\t// Mark that this task is no longer in progress\n\t\t\t\tdelete self.taskInProgress[task.title];\n\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t// Process the next task\n\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t});\n\t\t} else {\n\t\t\t// Make sure we've set a time if there wasn't a task to perform, but we've still got tasks in the queue\n\t\t\tif(this.numTasksInQueue() > 0) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nChoose the next applicable task\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar self = this,\n\t\tcandidateTask = null,\n\t\tnow = Date.now();\n\t// Select the best candidate task\n\t$tw.utils.each(this.taskQueue,function(task,title) {\n\t\t// Exclude the task if there's one of the same name in progress\n\t\tif($tw.utils.hop(self.taskInProgress,title)) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time\n\t\tif(task.type === \"save\" && (now - task.lastModificationTime) < self.throttleInterval &&\n\t\t\t(now - task.queueTime) < self.fallbackInterval) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is newer than the current best candidate\n\t\tif(candidateTask && candidateTask.queueTime < task.queueTime) {\n\t\t\treturn;\n\t\t}\n\t\t// Now this is our best candidate\n\t\tcandidateTask = task;\n\t});\n\treturn candidateTask;\n};\n\n/*\nDispatch a task and invoke the callback\n*/\nSyncer.prototype.dispatchTask = function(task,callback) {\n\tvar self = this;\n\tif(task.type === \"save\") {\n\t\tvar changeCount = this.wiki.getChangeCount(task.title),\n\t\t\ttiddler = this.wiki.getTiddler(task.title);\n\t\tthis.logger.log(\"Dispatching 'save' task:\",task.title);\n\t\tif(tiddler) {\n\t\t\tthis.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\t// Adjust the info stored about this tiddler\n\t\t\t\tself.tiddlerInfo[task.title] = {\n\t\t\t\t\tchangeCount: changeCount,\n\t\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\t\trevision: revision\n\t\t\t\t};\n\t\t\t\t// Invoke the callback\n\t\t\t\tcallback(null);\n\t\t\t},{\n\t\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.logger.log(\" Not Dispatching 'save' task:\",task.title,\"tiddler does not exist\");\n\t\t\treturn callback(null);\n\t\t}\n\t} else if(task.type === \"load\") {\n\t\t// Load the tiddler\n\t\tthis.logger.log(\"Dispatching 'load' task:\",task.title);\n\t\tthis.syncadaptor.loadTiddler(task.title,function(err,tiddlerFields) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Store the tiddler\n\t\t\tif(tiddlerFields) {\n\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else if(task.type === \"delete\") {\n\t\t// Delete the tiddler\n\t\tthis.logger.log(\"Dispatching 'delete' task:\",task.title);\n\t\tthis.syncadaptor.deleteTiddler(task.title,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tdelete self.tiddlerInfo[task.title];\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t});\n\t}\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
            "title": "$:/core/modules/syncer.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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 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\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.push(field + \": \" + this.getFieldString(field));\n\t\t\t}\n\t\t}\n\t}\n\treturn fields.join(\"\\n\");\n};\n\n/*\nCompare two tiddlers for equality\ntiddler: the tiddler to compare\nexcludeFields: array of field names to exclude from the comparison\n*/\nexports.isEqual = function(tiddler,excludeFields) {\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\treturn false;\n\t}\n\texcludeFields = excludeFields || [];\n\tvar self = this,\n\t\tdifferences = []; // Fields that have differences\n\t// Add to the differences array\n\tfunction addDifference(fieldName) {\n\t\t// Check for this field being excluded\n\t\tif(excludeFields.indexOf(fieldName) === -1) {\n\t\t\t// Save the field as a difference\n\t\t\t$tw.utils.pushTop(differences,fieldName);\n\t\t}\n\t}\n\t// Returns true if the two values of this field are equal\n\tfunction isFieldValueEqual(fieldName) {\n\t\tvar valueA = self.fields[fieldName],\n\t\t\tvalueB = tiddler.fields[fieldName];\n\t\t// Check for identical string values\n\t\tif(typeof(valueA) === \"string\" && typeof(valueB) === \"string\" && valueA === valueB) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check for identical array values\n\t\tif($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise the fields must be different\n\t\treturn false;\n\t}\n\t// Compare our fields\n\tfor(var fieldName in this.fields) {\n\t\tif(!isFieldValueEqual(fieldName)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// There's a difference for every field in the other tiddler that we don't have\n\tfor(fieldName in tiddler.fields) {\n\t\tif(!(fieldName in this.fields)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// Return whether there were any differences\n\treturn differences.length === 0;\n};\n\n})();\n",
            "title": "$:/core/modules/tiddler.js",
            "type": "application/javascript",
            "module-type": "tiddlermethod"
        },
        "$:/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\"] && incomingTiddler.version) {\n\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\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\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\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",
            "title": "$:/core/modules/upgraders/plugins.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/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/\"];\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\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}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/system.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/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",
            "title": "$:/core/modules/upgraders/themetweaks.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/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",
            "title": "$:/core/modules/utils/crypto.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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",
            "title": "$:/core/modules/utils/dom/animations/slide.js",
            "type": "application/javascript",
            "module-type": "animation"
        },
        "$:/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",
            "title": "$:/core/modules/utils/dom/animator.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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",
            "title": "$:/core/modules/utils/dom/browser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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",
            "title": "$:/core/modules/utils/dom/csscolorparser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t}\n\tel.className = c.join(\" \");\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = 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() {\n\tif(\"scrollX\" in window) {\n\t\treturn {x: window.scrollX, y: window.scrollY};\n\t} else {\n\t\treturn {x: document.documentElement.scrollLeft, y: 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;\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(),\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\ttry {\n\t\tif(window.localStorage) {\n\t\t\tlocalStorage.setItem(\"tw5-password-\" + name,password);\n\t\t}\n\t} catch(e) {\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\ttry {\n\t\treturn window.localStorage ? localStorage.getItem(\"tw5-password-\" + name) : \"\";\n\t} catch(e) {\n\t\treturn \"\";\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})();\n",
            "title": "$:/core/modules/utils/dom.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data)\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\theaders = options.headers || {accept: \"application/json\"},\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\tdata = results.join(\"&\");\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.responseText,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);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,options.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 && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e);\n\t}\n\treturn request;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/http.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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",
            "title": "$:/core/modules/utils/dom/keyboard.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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\");\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\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({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = document.createElement(\"div\"),\n\t\tmodalBackdrop = document.createElement(\"div\"),\n\t\tmodalWrapper = document.createElement(\"div\"),\n\t\tmodalHeader = document.createElement(\"div\"),\n\t\theaderTitle = document.createElement(\"h3\"),\n\t\tmodalBody = document.createElement(\"div\"),\n\t\tmodalLink = document.createElement(\"a\"),\n\t\tmodalFooter = document.createElement(\"div\"),\n\t\tmodalFooterHelp = document.createElement(\"span\"),\n\t\tmodalFooterButtons = document.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\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\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: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables\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: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables\n\t});\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(document.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler && tiddler.fields && tiddler.fields.help) {\n\t\tvar link = document.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(document.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: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables\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(\" + window.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\twindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tdocument.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(\" + (-window.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tdocument.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\tif($tw.pageContainer) {\n\t\t$tw.utils.toggleClass($tw.pageContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/modal.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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,{parentWidget: $tw.rootWidget, document: document, variables: variables});\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",
            "title": "$:/core/modules/utils/dom/notifier.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\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\t// Store the popup details if not already there\n\tif(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});\n\t}\n\t// Set the state tiddler\n\toptions.wiki.setTextReference(options.title,\n\t\t\t\"(\" + options.domNode.offsetLeft + \",\" + options.domNode.offsetTop + \",\" + \n\t\t\t\toptions.domNode.offsetWidth + \",\" + options.domNode.offsetHeight + \")\");\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\tpopup.wiki.deleteTiddler(popup.title);\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",
            "title": "$:/core/modules/utils/dom/popup.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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.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 an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\t// Now get ready to scroll the body\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = $tw.utils.getScrollPosition();\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar clientBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\ttop: clientBounds.top + scrollPosition.y,\n\t\t\twidth: clientBounds.width,\n\t\t\theight: clientBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t// targetPos/targetSize - position and size of the target element\n\t// currentPos/currentSize - position and size of the current scroll viewport\n\t// returns: new position of the scroll viewport\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to it's top/left\n\t\t\tif(targetPos <= currentPos) {\n\t\t\t\tnewPos = 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\tnewPos = 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\tnewPos = targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\tnewPos = currentPos;\n\t\t\t}\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\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,window.innerWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,window.innerHeight);\n\t// Only scroll if the position has changed\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\twindow.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(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/scroller.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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",
            "title": "$:/core/modules/utils/edition-info.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/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_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text;\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\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\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\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(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}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tthrow \"Cannot get textContent on a raw TW_Element\";\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\tthrow \"Cannot get formattedTextContent on a raw TW_Element\";\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",
            "title": "$:/core/modules/utils/fakedom.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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/*\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 = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\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 = new Buffer(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})();\n",
            "title": "$:/core/modules/utils/filesystem.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/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) {\n\tthis.componentName = componentName || \"\";\n}\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tif(console !== undefined && console.log !== undefined) {\n\t\treturn Function.apply.call(console.log, console, [this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)));\n\t}\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\t// Prepare the text of the alert\n\tvar text = Array.prototype.join.call(arguments,\" \");\n\t// Create alert tiddlers in the browser\n\tif($tw.browser) {\n\t\t// Check if there is an existing alert with the same text and the same component\n\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\talertFields,\n\t\t\texistingCount,\n\t\t\tself = this;\n\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\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\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t}\n\t\t});\n\t\tif(alertFields) {\n\t\t\texistingCount = alertFields.count || 1;\n\t\t} else {\n\t\t\talertFields = {\n\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\ttext: text,\n\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\tcomponent: this.componentName\n\t\t\t};\n\t\t\texistingCount = 0;\n\t\t}\n\t\talertFields.modified = new Date();\n\t\tif(++existingCount > 1) {\n\t\t\talertFields.count = existingCount;\n\t\t} else {\n\t\t\talertFields.count = undefined;\n\t\t}\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t// Log the alert as well\n\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t} else {\n\t\t// Print an orange message to the console if not in the browser\n\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
            "title": "$:/core/modules/utils/logger.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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",
            "title": "$:/core/modules/utils/parsetree.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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 of current values of measurements\n\tthis.logger = new $tw.utils.Logger(\"performance\");\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\tself.measures = {};\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\tfor(var m in self.measures) {\n\t\t\t\tself.logger.log(\"+\" + m + \": \" + self.measures[m].toFixed(2) + \"ms\");\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\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\t\tvalue = self.measures[name] || 0;\n\t\t\tself.measures[name] = value + $tw.utils.timer(startTime);\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",
            "title": "$:/core/modules/utils/performance.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/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",
            "title": "$:/core/modules/utils/pluginmaker.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\tconsole.log($tw.node ? \"\\x1b[1;33m\" + text + \"\\x1b[0m\" : text);\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\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/*\nCheck if an array is equal by value and by reference.\n*/\nexports.isArrayEqual = function(array1,array2) {\n\tif(array1 === array2) {\n\t\treturn true;\n\t}\n\tarray1 = array1 || [];\n\tarray2 = array2 || [];\n\tif(array1.length !== array2.length) {\n\t\treturn false;\n\t}\n\treturn array1.every(function(value,index) {\n\t\treturn value === array2[index];\n\t});\n};\n\n/*\nPush entries onto an array, removing them first if they already exist in the array\n\tarray: array to modify (assumed to be free of duplicates)\n\tvalue: a single value to push or an array of values to push\n*/\nexports.pushTop = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\t// Remove any array entries that are duplicated in the new values\n\t\tif(value.length !== 0) {\n\t\t\tif(array.length !== 0) {\n\t\t\t\tif(value.length < array.length) {\n\t\t\t\t\tfor(t=0; t<value.length; t++) {\n\t\t\t\t\t\tp = array.indexOf(value[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(p,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor(t=array.length-1; t>=0; t--) {\n\t\t\t\t\t\tp = value.indexOf(array[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(t,1);\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\t// Push the values on top of the main array\n\t\t\tarray.push.apply(array,value);\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\tarray.push(value);\n\t}\n\treturn array;\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\tObject.freeze(object);\n\tfor(key in object) {\n\t\tproperty = object[key];\n\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\tdeepFreeze(property);\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.getYearForWeekNo(date);\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 date.getFullYear();\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[/^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[/^[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\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();\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 n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1) + 3600000) / 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 \"&amp;\", < to \"&lt;\", > to \"&gt;\", \" to \"&quot;\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&amp;\").replace(/</mg,\"&lt;\").replace(/>/mg,\"&gt;\").replace(/\\\"/mg,\"&quot;\");\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\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\treturn converter(parseInt(e.substr(2),16));\t\n\t\t} else {\n\t\t\treturn converter(parseInt(e.substr(1),10));\n\t\t}\n\t} else {\n\t\tvar c = $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) {\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\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(/[\\x80-\\uFFFF]/g, exports.escape); // 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,4);\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);\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\tif($tw.browser) {\n\t\t// TODO\n\t\tthrow \"$tw.utils.base64Decode() doesn't work in the browser\";\n\t} else {\n\t\treturn (new Buffer(string64,\"base64\")).toString();\n\t}\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();\t\t\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) {\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\tparts.push(\"data:\");\n\tparts.push(type);\n\tparts.push(isBase64 ? \";base64\" : \"\");\n\tparts.push(\",\");\n\tparts.push(isBase64 ? text : encodeURIComponent(text));\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\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 -= str.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/utils/utils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/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\tif(this.actionField) {\n\t\tremoveFields[this.actionField] = undefined;\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}\n\t\t});\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,removeFields,this.wiki.getCreationFields()));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-deletefield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/action-deletetiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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 tagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags;\n\t\tthis.wiki.setText(this.target, \"tags\", undefined, $tw.utils.stringifyList(\n\t\t\tthis.wiki.filterTiddlers(tagfilter, this)));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-listops.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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",
            "title": "$:/core/modules/widgets/action-navigate.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-sendmessage.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/action-setfield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\t// Nw.js supports \"webkitdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\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,function(tiddlerFieldsArray) {\n\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\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.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\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",
            "title": "$:/core/modules/widgets/browse.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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// 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 = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = this.popup && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif(this.set && 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\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(this,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) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\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// 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.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = 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});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\t$tw.popup.triggerPopup({\n\t\tdomNode: this.domNodes[0],\n\t\ttitle: this.popup,\n\t\twiki: this.wiki\n\t});\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\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[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\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*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup])) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/button.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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 = tiddler.fields[this.checkboxField] || 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\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\tvar value = checked ? this.checkboxChecked : this.checkboxUnchecked;\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\tif(hasChanged) {\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\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.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\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\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.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\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})();",
            "title": "$:/core/modules/widgets/checkbox.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/codeblock.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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 = undefined;\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",
            "title": "$:/core/modules/widgets/count.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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 = \"tc-dropzone\";\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"}\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};\n\nDropZoneWidget.prototype.enterDrag = function() {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// We count enter/leave events\n\tthis.dragEnterCount = (this.dragEnterCount || 0) + 1;\n\t// If we're entering for the first time we need to apply highlighting\n\tif(this.dragEnterCount === 1) {\n\t\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.leaveDrag = function() {\n\t// Reduce the enter count\n\tthis.dragEnterCount = (this.dragEnterCount || 0) - 1;\n\t// Remove highlighting if we're leaving externally\n\tif(this.dragEnterCount <= 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent  = function(event) {\n\tthis.enterDrag();\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();\n};\n\nDropZoneWidget.prototype.handleDropEvent  = function(event) {\n\tthis.leaveDrag();\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// Reset the enter count\n\tthis.dragEnterCount = 0;\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 = this.wiki.readFiles(dataTransfer.files,function(tiddlerFieldsArray) {\n\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t});\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\tthis.importData(dataTransfer);\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.importData = function(dataTransfer) {\n\t// Try each provided data type in turn\n\tfor(var t=0; t<this.importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || this.importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = this.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.convertToFields(data);\n\t\t\t\tif(!tiddlerFields.title) {\n\t\t\t\t\ttiddlerFields.title = this.wiki.generateNewTitle(\"Untitled\");\n\t\t\t\t}\n\t\t\t\tthis.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nDropZoneWidget.prototype.importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, convertToFields: function(data) {\n\t\treturn JSON.parse(data);\n\t}},\n\t{type: \"URL\", IECompatible: true, convertToFields: function(data) {\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 JSON.parse(match[1]);\n\t\t} else {\n\t\t\treturn { // As URL string\n\t\t\t\ttext: data\n\t\t\t};\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, convertToFields: function(data) {\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 JSON.parse(match[1]);\n\t\t} else {\n\t\t\treturn { // As URL string\n\t\t\t\ttext: data\n\t\t\t};\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}},\n\t{type: \"text/plain\", IECompatible: false, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}},\n\t{type: \"Text\", IECompatible: true, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}}\n];\n\nDropZoneWidget.prototype.handlePasteEvent  = function(event) {\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) {\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(),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} 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])});\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\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\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/dropzone.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\";\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// Construct the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}]);\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",
            "title": "$:/core/modules/widgets/edit-binary.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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\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\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// 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\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\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\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);\n\tif(tiddler) {\n\t\t// data URIs look like \"data:<type>;base64,<text>\"\n\t\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\t\tposColon = dataURL.indexOf(\":\"),\n\t\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\t\tposComma = dataURL.indexOf(\",\"),\n\t\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\t\ttext = dataURL.substring(posComma+1);\n\t\tvar update = {type: type, text: text};\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n\t}\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-bitmap.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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};\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};\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/*\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\"]) {\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",
            "title": "$:/core/modules/widgets/edit-shortcut.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/edit-text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder}\n\t\t},\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 || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\tvar domNode = this.document.createElementNS(this.namespace,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/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\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.parseTreeNode.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// 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*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/element.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/encrypt.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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.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",
            "title": "$:/core/modules/widgets/entity.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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};\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.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\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tvar modification = this.wiki.getModificationFields();\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\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\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tvar modification = this.wiki.getModificationFields();\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({title: this.mangleTitle, tags: tag});\t\t\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fieldmangler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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.exclude = this.getAttribute(\"exclude\");\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t// Get the exclusion list\n\tvar exclude;\n\tif(this.exclude) {\n\t\texclude = this.exclude.split(\" \");\n\t} else {\n\t\texclude = [\"text\"]; \n\t}\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tfields.push(fieldName);\n\t\t\t}\n\t\t}\n\t\tfields.sort();\n\t\tfor(var f=0; f<fields.length; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tvar row = this.template,\n\t\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\t\tif(reMatch) {\n\t\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trow = row.replace(\"$name$\",fieldName);\n\t\t\t\trow = row.replace(\"$value$\",value);\n\t\t\t\trow = row.replace(\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\t\ttext.push(row);\n\t\t\t}\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 || changedAttributes.stripTitlePrefix || changedTiddlers[this.tiddlerTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fields.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/image.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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 self = this;\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\tvar widgetStackStart,widgetStackEnd;\n\tfunction addWidgetNode(widgetNode) {\n\t\tif(widgetNode) {\n\t\t\tif(!widgetStackStart && !widgetStackEnd) {\n\t\t\t\twidgetStackStart = widgetNode;\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t} else {\n\t\t\t\twidgetStackEnd.children = [widgetNode];\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t}\n\t\t}\n\t}\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = self.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\taddWidgetNode({\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});\n\t\t\t\tparseTreeNode = parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\t// Add our own children to the end of the pile\n\tvar parseTreeNodes;\n\tif(widgetStackStart && widgetStackEnd) {\n\t\tparseTreeNodes = [widgetStackStart];\n\t\twidgetStackEnd.children = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = this.parseTreeNode.children;\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*/\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",
            "title": "$:/core/modules/widgets/importvariables.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\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\tself.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\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\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\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.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\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*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/keyboard.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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;\nvar MISSING_LINK_CONFIG_TITLE = \"$:/config/MissingLinks\";\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 domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.linkClasses) {\n\t\tclasses.push(this.linkClasses);\n\t}\n\tclasses.push(\"tc-tiddlylink\");\n\tif(this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t}\n\tif(this.isMissing && !this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t} else {\n\t\tif(!this.isMissing) {\n\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t}\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Set an href\n\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\",\n\t\twikiLinkText = wikiLinkTemplate.replace(\"$uri_encoded$\",encodeURIComponent(this.to));\n\twikiLinkText = wikiLinkText.replace(\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\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\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragstart\", handlerObject: this, handlerMethod: \"handleDragStartEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\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});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\nLinkWidget.prototype.handleDragStartEvent = function(event) {\n\tif(event.target === this.domNodes[0]) {\n\t\tif(this.to) {\n\t\t\t$tw.dragInProgress = true;\n\t\t\t// Set the dragging class on the element being dragged\n\t\t\t$tw.utils.addClass(event.target,\"tc-tiddlylink-dragging\");\n\t\t\t// Create the drag image elements\n\t\t\tthis.dragImage = this.document.createElement(\"div\");\n\t\t\tthis.dragImage.className = \"tc-tiddler-dragger\";\n\t\t\tvar inner = this.document.createElement(\"div\");\n\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\tinner.appendChild(this.document.createTextNode(this.to));\n\t\t\tthis.dragImage.appendChild(inner);\n\t\t\tthis.document.body.appendChild(this.dragImage);\n\t\t\t// Astoundingly, we need to cover the dragger up: http://www.kryogenix.org/code/browser/custom-drag-image.html\n\t\t\tvar cover = this.document.createElement(\"div\");\n\t\t\tcover.className = \"tc-tiddler-dragger-cover\";\n\t\t\tcover.style.left = (inner.offsetLeft - 16) + \"px\";\n\t\t\tcover.style.top = (inner.offsetTop - 16) + \"px\";\n\t\t\tcover.style.width = (inner.offsetWidth + 32) + \"px\";\n\t\t\tcover.style.height = (inner.offsetHeight + 32) + \"px\";\n\t\t\tthis.dragImage.appendChild(cover);\n\t\t\t// Set the data transfer properties\n\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t// First the image\n\t\t\tdataTransfer.effectAllowed = \"copy\";\n\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\tdataTransfer.setDragImage(this.dragImage.firstChild,-16,-16);\n\t\t\t}\n\t\t\t// Then the data\n\t\t\tdataTransfer.clearData();\n\t\t\tvar jsonData = this.wiki.getTiddlerAsJson(this.to),\n\t\t\t\ttextData = this.wiki.getTiddlerText(this.to,\"\"),\n\t\t\t\ttitle = (new RegExp(\"^\" + $tw.config.textPrimitives.wikiLink + \"$\",\"mg\")).exec(this.to) ? this.to : \"[[\" + this.to + \"]]\";\n\t\t\t// IE doesn't like these content types\n\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\tdataTransfer.setData(\"text/plain\",title);\n\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t}\n\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\tdataTransfer.setData(\"Text\",title);\n\t\t\tevent.stopPropagation();\n\t\t} else {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\nLinkWidget.prototype.handleDragEndEvent = function(event) {\n\tif(event.target === this.domNodes[0]) {\n\t\t$tw.dragInProgress = false;\n\t\t// Remove the dragging class on the element being dragged\n\t\t$tw.utils.removeClass(event.target,\"tc-tiddlylink-dragging\");\n\t\t// Delete the drag image element\n\t\tif(this.dragImage) {\n\t\t\tthis.dragImage.parentNode.removeChild(this.dragImage);\n\t\t}\n\t}\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.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 = ($tw.wiki.getTiddlerText(MISSING_LINK_CONFIG_TITLE,\"yes\") === \"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*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip || changedTiddlers[MISSING_LINK_CONFIG_TITLE]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/link.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\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.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};\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.catchTo) {\n\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.catchMessage && this.parentWidget) {\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: this.catchMessage,\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\tif(this.catchSet) {\n\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t}\n\tif(this.catchActions) {\n\t\tthis.invokeActionString(this.catchActions,this);\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/linkcatcher.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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// 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\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\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(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 emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\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})();",
            "title": "$:/core/modules/widgets/list.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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 text = this.getVariable(this.parseTreeNode.name || this.getAttribute(\"$name\"),{params: params}),\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\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\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",
            "title": "$:/core/modules/widgets/macrocall.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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};\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.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\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);\t\t\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\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList}\n\t));\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tvar p = storyList.indexOf(title);\n\twhile(p !== -1) {\n\t\tstoryList.splice(p,1);\n\t\tp = storyList.indexOf(title);\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tvar pos = storyList.indexOf(oldTitle);\n\tif(pos !== -1) {\n\t\tstoryList[pos] = newTitle;\n\t\tdo {\n\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\tif(pos !== -1) {\n\t\t\t\tstoryList.splice(pos,1);\n\t\t\t}\n\t\t} while(pos !== -1);\n\t} else {\n\t\tstoryList.splice(0,0,newTitle);\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tvar storyList = this.getStoryList();\n\t// Quit if we cannot get hold of the story list\n\tif(!storyList) {\n\t\treturn;\n\t}\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(title);\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(fromTitle);\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(this.getAttribute(\"openLinkFromInsideRiver\",\"below\")) {\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(this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"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,title);\n\t// Save the story\n\tthis.saveStoryList(storyList);\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.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(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 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\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\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Delete this 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\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\tvar c = 0,\n\t\tdraftTitle;\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\tc++;\n\t} while(this.wiki.tiddlerExists(draftTitle));\n\treturn draftTitle;\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);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\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\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\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\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// 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\texistingTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\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.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\t\t\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\tvar self = this;\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\t\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\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\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}\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\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\t\t\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\tself.wiki.addTiddler(new $tw.Tiddler(tiddlerFields));\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.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 self = this,\n\t\tparamObject = 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;\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 self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\t$tw.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/navigator.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/password.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/radio.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nRadio widget\n\nWill set a field to the selected value:\n\n```\n\t<$radio field=\"myfield\" value=\"check 1\">one</$radio>\n\t<$radio field=\"myfield\" value=\"check 2\">two</$radio>\n\t<$radio field=\"myfield\" value=\"check 3\">three</$radio>\n```\n\n|Parameter |Description |h\n|tiddler |Name of the tiddler in which the field should be set. Defaults to current tiddler |\n|field |The name of the field to be set |\n|value |The value to set |\n|class |Optional class name(s) |\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 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\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.radioClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(this.getValue() == this.radioValue) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"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 tiddler = this.wiki.getTiddler(this.radioTitle);\n\treturn tiddler && tiddler.getFieldString(this.radioField);\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioField) {\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};\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.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tif(this.radioClass !== \"\") {\n\t\tthis.radioClass += \" \";\n\t}\n\tthis.radioClass += \"tc-radio\";\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(changedAttributes.tiddler || changedAttributes.field || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/radio.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/raw.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\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\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tdomNode.style.left = (this.popup.left - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t}\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[\"class\"] = this.getAttribute(\"class\",\"\");\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\t// Compute the title of the state tiddler and read it\n\tthis.stateTitle = this.state;\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 = this.stateTitle ? this.wiki.getTextReference(this.stateTitle,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\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.readMatchState(state);\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.readMatchState(state);\n\t\t\tthis.isOpen = !this.isOpen;\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.readMatchState = function(state) {\n\tthis.isOpen = state === this.text;\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\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[\"default\"] || changedAttributes.animate) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false,\n\t\t\tcurrentlyOpen = 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\trefreshed = true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\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\tdomNode.setAttribute(\"hidden\",\"true\");\n        }});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/reveal.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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};\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\tthis.scrollIntoView(event.target);\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\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(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.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 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",
            "title": "$:/core/modules/widgets/scrollable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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);\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\tif(values.indexOf(select.children[i].value) != -1) {\n\t\t\t\tselect.children[i].selected = true;\n\t\t\t}\n\t\t}\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\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\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) {\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",
            "title": "$:/core/modules/widgets/select.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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.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);\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.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(!this.setValue) {\n\t\t\tvalue = $tw.utils.stringifyList(results);\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.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",
            "title": "$:/core/modules/widgets/set.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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",
            "title": "$:/core/modules/widgets/tiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\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\tthis.setVariable(\"transclusion\",recursionMarker);\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// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\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(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || 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",
            "title": "$:/core/modules/widgets/transclude.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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// Call the constructor\n\tWidget.call(this);\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\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",
            "title": "$:/core/modules/widgets/vars.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified();\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified();\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() {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function() {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function() {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this}));\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",
            "title": "$:/core/modules/widgets/view.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\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\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\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\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\n*/\nWidget.prototype.setVariable = function(name,value,params) {\n\tthis.variables[name] = {value: value, params: params};\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*/\nWidget.prototype.getVariable = 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\tvalue = variable.value;\n\t\t// Substitute any parameters specified in the definition\n\t\tvalue = this.substituteVariableParameters(value,variable.params,actualParams);\n\t\tvalue = this.substituteVariableReferences(value);\n\t\treturn value;\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn this.evaluateMacroModule(name,actualParams,options.defaultValue);\n};\n\nWidget.prototype.substituteVariableParameters = function(text,formalParams,actualParams) {\n\tif(formalParams) {\n\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\tparamInfo, paramValue;\n\t\t// Step through each of the parameters in the macro definition\n\t\tfor(var p=0; p<formalParams.length; p++) {\n\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\tparamInfo = formalParams[p];\n\t\t\tparamValue = undefined;\n\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\tnextAnonParameter++;\n\t\t\t}\n\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t}\n\t\t\t// If we've still not got a value, use the default, if any\n\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t// Replace any instances of this parameter\n\t\t\ttext = text.replace(new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(paramInfo.name) + \"\\\\$\",\"mg\"),paramValue);\n\t\t}\n\t}\n\treturn text;\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 === \"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) {\n\tthis.children = [];\n\tvar self = this;\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\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\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\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\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\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.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\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 self = this,\n\t\trefreshed = false;\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\trefreshed = childWidget.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 && child.invokeAction(triggeringWidget,event)) {\n\t\t\thandled = true;\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) {\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});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
            "title": "$:/core/modules/widgets/widget.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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 \"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",
            "title": "$:/core/modules/widgets/wikify.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/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*/\nexports.renameTiddler = function(fromTitle,toTitle) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar tiddler = this.getTiddler(fromTitle);\n\t\tthis.addTiddler(new $tw.Tiddler(tiddler,{title: toTitle},this.getModificationFields()));\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar tags = (tiddler.fields.tags || []).slice(0),\n\t\t\t\tlist = (tiddler.fields.list || []).slice(0),\n\t\t\t\tisModified = false;\n\t\t\t// Rename tags\n\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\tif(title === fromTitle) {\n\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\tisModified = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// Rename lists\n\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\tif(title === fromTitle) {\n\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\tisModified = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(isModified) {\n\t\t\t\tself.addTiddler(new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields()));\n\t\t\t}\n\t\t});\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/wiki-bulkops.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/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\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\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\tvar fields = {\n\t\t\tcreated: new Date()\n\t\t},\n\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\tif(creator) {\n\t\tfields.creator = creator;\n\t}\n\treturn fields;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tvar fields = Object.create(null),\n\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\tfields.modified = new Date();\n\tif(modifier) {\n\t\tfields.modifier = modifier;\n\t}\n\treturn fields;\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) {\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                        (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 {\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 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\t// Count up the links\n\t\tvar links = [],\n\t\t\tcheckParseTree = function(parseTree) {\n\t\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\tif(parser) {\n\t\t\tcheckParseTree(parser.tree);\n\t\t}\n\t\treturn links;\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\tbacklinks = [];\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\tbacklinks.push(title);\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\tvar self = this;\n\treturn this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\tvar tagmap = self.getTagMap();\n\t\treturn self.sortByList(tagmap[tag],tag);\n\t});\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 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\tvar currPos = titles.indexOf(title),\n\t\t\t\tnewPos = -1,\n\t\t\t\ttiddler = this.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(beforeTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(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\tif(newPos === -1) {\n\t\t\t\t\tnewPos = currPos;\n\t\t\t\t}\n\t\t\t\tif(newPos !== currPos) {\n\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t}\n\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t}\n\t\t\t}\n\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\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,defaultData);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t});\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.getTiddlerData(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};\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 || \"text/vnd.tiddlywiki\",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.children: optional array of children for the transclude widget\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTree = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"transclude\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttiddler: {\n\t\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: title}},\n\t\t\t\tisBlock: !options.parseAsInline}]}\n\t]};\n\tif(options.field) {\n\t\tparseTree.tree[0].children[0].attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTree.tree[0].children[0].attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTree.tree[0].children[0].children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTree,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\tliteral: If true, searches for literal string, rather than separate search terms\n\tfield: If specified, restricts the search to the specified field\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\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + $tw.utils.escapeRegExp(text) + \")\",flags)];\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(\"(\" + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\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 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\tmatch;\n\t\tfor(var t=0; t<searchTermsRegExps.length; t++) {\n\t\t\tmatch = false;\n\t\t\tif(options.field) {\n\t\t\t\tmatch = searchTermsRegExps[t].test(tiddler.getFieldString(options.field));\n\t\t\t} else {\n\t\t\t\t// Search title, tags and body\n\t\t\t\tif(contentTypeInfo.encoding === \"utf8\") {\n\t\t\t\t\tmatch = match || searchTermsRegExps[t].test(tiddler.fields.text);\n\t\t\t\t}\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.join(\"\\0\") : \"\";\n\t\t\t\tmatch = match || searchTermsRegExps[t].test(tags) || searchTermsRegExps[t].test(tiddler.fields.title);\n\t\t\t}\n\t\t\tif(!match) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\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) !== options.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.fields.text !== undefined) {\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/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,callback) {\n\tvar result = [],\n\t\toutstanding = files.length;\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],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\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,callback) {\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// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\t// Deserialise the file contents\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\t// Are we binary?\n\t\tif(isBinary) {\n\t\t\t// The base64 section starts after the first comma in the data URI\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttiddlerFields.text = text.substr(commaPos+1);\n\t\t\t\tcallback([tiddlerFields]);\n\t\t\t}\n\t\t} else {\n\t\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\t\tif(encryptedJson) {\n\t\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields));\n\t\t\t}\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);\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})();\n",
            "title": "$:/core/modules/wiki.js",
            "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\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\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\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\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\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/DarkPhotos": {
            "created": "20150402111612188",
            "description": "Good with dark photo backgrounds",
            "modified": "20150402112344080",
            "name": "DarkPhotos",
            "tags": "$:/tags/Palette",
            "title": "$:/palettes/DarkPhotos",
            "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\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/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\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\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/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\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\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\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"
        },
        "$:/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)http://tiddlywiki.com -->&#13;&#10;"
        },
        "$:/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-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": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/JsonFile": {
            "title": "$:/core/templates/exporters/JsonFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/JsonFile}}",
            "extension": ".json",
            "text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\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\">\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<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<<renderContent>>\n</$importvariables>\n"
        },
        "$:/core/templates/exporters/TidFile": {
            "title": "$:/core/templates/exporters/TidFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/TidFile}}",
            "extension": ".tid",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\"><<renderContent>></$importvariables>"
        },
        "$:/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/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": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/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{{$:/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{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/templates/single.tiddler.window": {
            "title": "$:/core/templates/single.tiddler.window",
            "text": "<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"tempCurrentTiddler\" value=<<currentTiddler>>>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=<<tempCurrentTiddler>>>\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</$importvariables>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\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"
        },
        "$:/core/templates/static.content": {
            "title": "$:/core/templates/static.content",
            "type": "text/vnd.tiddlywiki",
            "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|http://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`<!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\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\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`</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": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\t\t<!-- Force IE standards mode for Intranet and HTA - should be the first meta -->\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\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</head>\n<body class=\"tc-body\">\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</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]limit[1]]\">\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/AdvancedSearch/Filter": {
            "title": "$:/core/ui/AdvancedSearch/Filter",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Filter/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\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}} template=\"$:/core/ui/ListItemTemplate\"/>\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<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\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<$linkcatcher to=\"$:/temp/advancedsearch\">\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</$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}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\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]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\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<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\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}}/>\n</$list>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/System": {
            "title": "$:/core/ui/AdvancedSearch/System",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/System/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\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]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\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<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\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/delete-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DD MM YYYY\"/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\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<div class=\"tc-binary-warning\">\n\n<<lingo Prompt>>\n\n</div>\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<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\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<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\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=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\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=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Tags\" default=\"\" tag=\"input\"/> |\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<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\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}} 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=<<lingo Remove/Hint>>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n&times;\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=\"[all[tiddlers+shadows][$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>prefix[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-button()\n<$button>\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\"\"\">\n{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\n</$list>\n</$button>\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-small-icon\">\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/right-arrow}}\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/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\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\">\n<h1><$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</div>\n<div class=\"tc-plugin-info-chunk\">\n<<install-plugin-button>>\n</div>\n</div>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\"\"\">\n<em>\n{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}\n</em>\n</$list>\n</div>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\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\\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{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\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<<tabs \"[[$:/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</$list>\n\\end\n\n\\define plugin-library-listing()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<div class=\"tc-plugin-library\">\n\n!! <$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link>\n\n//<$view field=\"url\"/>//\n\n<$transclude/>\n\n<<display-server-connection>>\n</div>\n</$list>\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<div>\n<<plugin-library-listing>>\n</div>\n\n</$importvariables>\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{{$:/snippets/paletteeditor}}\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 parsing-inner(typeCap)\n<li>\n<$checkbox tiddler=\"\"\"$:/config/WikiParserRules/$typeCap$/$(currentTiddler)$\"\"\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> ''<$text text=<<currentTiddler>>/>'': </$checkbox>\n</li>\n\\end\n\n\\define parsing-outer(typeLower,typeCap)\n<ul>\n<$list filter=\"[wikiparserrules[$typeLower$]]\">\n<<parsing-inner typeCap:\"$typeCap$\">>\n</$list>\n</ul>\n\\end\n\n<<lingo Hint>>\n\n! <<lingo Pragma/Caption>>\n\n<<parsing-outer typeLower:\"pragma\" typeCap:\"Pragma\">>\n\n! <<lingo Inline/Caption>>\n\n<<parsing-outer typeLower:\"inline\" typeCap:\"Inline\">>\n\n! <<lingo Block/Caption>>\n\n<<parsing-outer typeLower:\"block\" typeCap:\"Block\">>\n"
        },
        "$:/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/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\" style=\"background:blue;\">\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 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)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\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/right-arrow}}\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/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\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\">\n<h1>\n''<$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-table(type)\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">>>\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$\">>\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$\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<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<$reveal type=\"nomatch\" text=\"\" state=\"!!list\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList={{!!list}} default=\"readme\" template=\"$:/core/ui/PluginInfo\"/>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=\"!!list\">\n<<lingo NoInformation/Hint>>\n</$reveal>\n</div>\n</div>\n</$reveal>\n</$set>\n</$list>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
        },
        "$:/core/ui/ControlPanel/Saving": {
            "title": "$:/core/ui/ControlPanel/Saving",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Saving/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\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! <<lingo TiddlySpot/Heading>>\n\n<<lingo TiddlySpot/Description>>\n\n|<<lingo TiddlySpot/UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo TiddlySpot/Password>> |<$password name=\"upload\"/> |\n|<<lingo TiddlySpot/Backups>> |<<backupLink>> |\n\n''<<lingo TiddlySpot/Advanced/Heading>>''\n\n|<<lingo TiddlySpot/ServerURL>>  |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo TiddlySpot/Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo TiddlySpot/UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo TiddlySpot/BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
        },
        "$:/core/ui/ControlPanel/Settings/AutoSave": {
            "title": "$:/core/ui/ControlPanel/Settings/AutoSave",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/AutoSave/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/AutoSave/\n\n<$link to=\"$:/config/AutoSave\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo Disabled/Description>> </$radio>\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/DefaultSidebarTab": {
            "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
            "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/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/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/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\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\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<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>> field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\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-title()\n$:/config/EditorToolbarButtons/Visibility/$(listItem)$\n\\end\n\n\\define toolbar-button()\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> <$transclude tiddler={{$(listItem)$!!icon}}/> <$transclude tiddler=<<listItem>> field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i></$checkbox>\n\\end\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<<toolbar-button>>\n\n</$list>\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\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\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<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>> field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\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\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\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<$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>> field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\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<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/ControlPanel": {
            "title": "$:/ControlPanel",
            "icon": "$:/core/images/options-button",
            "color": "#bbb",
            "text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
        },
        "$:/core/ui/DefaultSearchResultList": {
            "title": "$:/core/ui/DefaultSearchResultList",
            "tags": "$:/tags/SearchResults",
            "caption": "{{$:/language/Search/DefaultResults/Caption}}",
            "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\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": "<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
        },
        "$:/core/ui/EditTemplate/body/editor": {
            "title": "$:/core/ui/EditTemplate/body/editor",
            "text": "<$edit\n\n  field=\"text\"\n  class=\"tc-edit-texteditor\"\n  placeholder={{$:/language/EditTemplate/Body/Placeholder}}\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\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\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=\"[is[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\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[is[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 new-field-inner()\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\" $name=<<name>> $value=<<value>>/>\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>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n\\end\n\n\\define new-field()\n<$set name=\"name\" value={{$:/temp/newfieldname}}>\n<$set name=\"value\" value={{$:/temp/newfieldvalue}}>\n<<new-field-inner>>\n</$set>\n</$set>\n\\end\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</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[]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[]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\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": "\\define lingo-base() $:/language/EditTemplate/\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">&times;</$button>\n</span>\n</$vars>\n\\end\n\\define tag-body(colour,palette)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n\\end\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\n</$list>\n\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\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> <span class=\"tc-add-tag-button\">\n<$button message=\"tm-add-tag\" param={{$:/temp/NewTagName}} set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<lingo Tags/Add/Button>>\n</$button>\n</span>\n</div>\n\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\">\n<$linkcatcher set=\"$:/temp/NewTagName\" setTo=\"\" message=\"tm-add-tag\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\">\n{{||$:/core/ui/Components/tag-link}}\n</$list>\n<hr>\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\">\n{{||$:/core/ui/Components/tag-link}}\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n</$fieldmangler>\n</div>"
        },
        "$:/core/ui/EditTemplate/title": {
            "title": "$:/core/ui/EditTemplate/title",
            "tags": "$:/tags/EditTemplate",
            "text": "<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[is[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\"/>\n"
        },
        "$:/core/ui/EditTemplate/type": {
            "title": "$:/core/ui/EditTemplate/type",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-popup-handle\"/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" 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}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\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]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>"
        },
        "$:/core/ui/EditTemplate": {
            "title": "$:/core/ui/EditTemplate",
            "text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$\n\\end\n<div class=<<frame-classes>>>\n<$set name=\"storyTiddler\" value=<<currentTiddler>>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" message=\"tm-save-tiddler\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n</$list>\n</$keyboard>\n</$keyboard>\n</$set>\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": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/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": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/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": "<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button>\n</$fieldmangler>\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]]",
            "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>!is[image]]",
            "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=<<qualify \"$:/state/Excise/NewTitle\">>\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>!is[image]]",
            "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=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\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]]",
            "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
        },
        "$:/core/ui/EditorToolbar/link-dropdown": {
            "title": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define link-actions()\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"make-link\"\n\ttext={{$(linkTiddler)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\">\n\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\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/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=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\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]]",
            "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]]",
            "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=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\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/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>>/> &times; <$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]]",
            "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<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\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>!is[image]]",
            "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/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/ShadowTiddlers": {
            "title": "$:/core/Filters/ShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows]sort[title]]",
            "description": "{{$:/language/Filters/ShadowTiddlers}}",
            "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\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n<table>\n<tbody>\n<tr>\n<th>\n<<lingo Listing/Select/Caption>>\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>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>>>\n<$transclude subtiddler=<<payloadTiddler>> mode=\"block\"/>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ListItemTemplate": {
            "title": "$:/core/ui/ListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</div>"
        },
        "$:/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/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/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/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": "\\define control-panel-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>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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=<<control-panel-button>>>\n<<control-panel-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>prefix[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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": "\\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>prefix[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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": "<$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>prefix[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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>prefix[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
        },
        "$:/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>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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>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\"><$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>prefix[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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>prefix[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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": "\\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>prefix[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<$list filter=\"[<tv-config-toolbar-text>prefix[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 tc-drop-down-language-chooser\">\n<$linkcatcher to=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$link>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/language\" text=<<currentTiddler>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/language\" text=<<currentTiddler>>>\n&nbsp;\n</$reveal>\n</span>\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</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/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>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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<$transclude tiddler=<<listItem>> mode=\"inline\"/>\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": "<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"image/jpeg\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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": "\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=\"$(journalTags)$\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<<journalButton>>\n</$set></$set>"
        },
        "$:/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": "<$button message=\"tm-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>prefix[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/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": "<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>prefix[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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>"
        },
        "$:/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>prefix[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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 message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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": "\\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>prefix[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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<$linkcatcher to=\"$:/view\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$link to=<<storyview>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/view\" text=<<storyview>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/view\" text=<<storyview>>>\n&nbsp;\n</$reveal>\n</span>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/></$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/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": "\\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>prefix[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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": "<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>prefix[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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<$list filter=\"[plugin-type[theme]sort[title]]\" variable=\"themeTitle\">\n<$link to=<<themeTitle>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/theme\" text=<<themeTitle>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/theme\" text=<<themeTitle>>>\n&nbsp;\n</$reveal>\n</span>\n<$view tiddler=<<themeTitle>> field=\"name\"/>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/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>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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": "\\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<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$reveal>\n</$list>\n</div>\n\n"
        },
        "$:/core/ui/PageStylesheet": {
            "title": "$:/core/ui/PageStylesheet",
            "text": "<$importvariables filter=\"[[$:/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\n</$importvariables>\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/pluginreloadwarning": {
            "title": "$:/core/ui/PageTemplate/pluginreloadwarning",
            "tags": "$:/tags/PageTemplate",
            "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]\">\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": "<$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<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n\n<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>"
        },
        "$:/core/ui/PageTemplate/story": {
            "title": "$:/core/ui/PageTemplate/story",
            "tags": "$:/tags/PageTemplate",
            "text": "<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=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/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\">\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\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate": {
            "title": "$:/core/ui/PageTemplate",
            "text": "\\define containerClasses()\ntc-page-container tc-page-view-$(themeTitle)$ tc-language-$(languageTitle)$\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=\"\">\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}}>\n\n<$dropzone>\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</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$importvariables>\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<$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{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\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}}/>\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<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Tags\" \"$:/state/tab/moresidebar\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/core/ui/SideBar/Open": {
            "title": "$:/core/ui/SideBar/Open",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Open/Caption}}",
            "text": "\\define lingo-base() $:/language/CloseAll/\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" storyview=\"pop\">\n\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">&times;</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\n\n</$list>\n\n<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\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;\">\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": "<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search{$(searchTiddler)$}]\"/>\"\"\">\n{{$:/core/images/down-arrow}} {{$:/language/Search/Matches}}\n</$set>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" 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=\"$:/temp/search\" 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{{$:/core/ui/SearchResults}}\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" />\n\n</div>\n"
        },
        "$:/TagManager": {
            "title": "$:/TagManager",
            "icon": "$:/core/images/tag-button",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\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<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/icon/$title$\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/icon/$title$\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$title$!!icon\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define qualifyTitle(title)\n$title$$(currentTiddler)$\n\\end\n\\define toggleButton(state)\n<$reveal state=\"$state$\" type=\"match\" text=\"closed\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal state=\"$state$\" type=\"match\" text=\"open\" default=\"closed\">\n<$button set=\"$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<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><$transclude tiddler=\"$:/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=<<qualifyTitle \"$:/state/tag-manager/\">> /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal state=<<qualifyTitle \"$:/state/tag-manager/\">> 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>\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/TagTemplate": {
            "title": "$:/core/ui/TagTemplate",
            "text": "\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-tag-label\" style=<<tag-styles>>>\n<$transclude tiddler={{!!icon}}/> <$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\"><$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list> \n<hr>\n<$list filter=\"[all[current]tagging[]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</$reveal>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette)\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n</span>\n\\end\n\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\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<$transclude tiddler=<<listItem>>/>\n\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>\n"
        },
        "$:/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": "<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
        },
        "$:/core/ui/TopBar/menu": {
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar",
            "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$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>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$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>\n</$reveal>\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\" state=<<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<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\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\n{{||$:/core/ui/ImportListing}}\n\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\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/plugin": {
            "title": "$:/core/ui/ViewTemplate/plugin",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n\n{{||$:/core/ui/TiddlerInfo/Advanced/PluginInfo}}\n\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/subtitle": {
            "title": "$:/core/ui/ViewTemplate/subtitle",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\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</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/tags": {
            "title": "$:/core/ui/ViewTemplate/tags",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<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>"
        },
        "$:/core/ui/ViewTemplate/title": {
            "title": "$:/core/ui/ViewTemplate/title",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\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\"><$transclude tiddler=<<listItem>>/></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\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<$transclude tiddler=\"$:/core/ui/TiddlerInfo\"/>\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\" state=<<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\" state=<<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 frame-classes()\ntc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$\n\\end\n\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n<$set name=\"storyTiddler\" value=<<currentTiddler>>><$set name=\"tiddlerInfoState\" value=<<qualify \"$:/state/popup/tiddler-info\">>><$tiddler tiddler=<<currentTiddler>>><div class=<<frame-classes>>><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$tiddler></$set></$set>\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": "<$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>prefix[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Clone/Caption}}/></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": "<$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>prefix[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseOthers/Caption}}/></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": "<$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>prefix[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Close/Caption}}/></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": "<$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>prefix[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Edit/Caption}}/></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": "{{$:/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": "<$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>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldOthers/Caption}}/></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": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\"><$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>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal><$reveal type=\"match\" state=<<folded-state>> text=\"hide\" default=\"show\"><$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>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal>"
        },
        "$:/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": "<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Info/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/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": "\\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>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[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/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\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": "\\define newHereButtonTags()\n[[$(currentTiddler)$]]\n\\end\n\\define newHereButton()\n<$button tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<newHereButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>"
        },
        "$:/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": "\\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<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournalHere/Caption}}/></span>\n</$list>\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></$set></$set>"
        },
        "$:/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": "<$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>prefix[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/OpenWindow/Caption}}/></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": "<$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>prefix[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permalink/Caption}}/></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": "<$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>prefix[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permaview/Caption}}/></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/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/DefaultSidebarTab": {
            "title": "$:/config/DefaultSidebarTab",
            "text": "$:/core/ui/SideBar/Open"
        },
        "$:/config/Drafts/TypingTimeout": {
            "title": "$:/config/Drafts/TypingTimeout",
            "text": "400"
        },
        "$:/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/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/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/OfficialPluginLibrary": {
            "title": "$:/config/OfficialPluginLibrary",
            "tags": "$:/tags/PluginLibrary",
            "url": "http://tiddlywiki.com/library/v5.1.13/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/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/storyview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
            "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/SaveWikiButton/Template": {
            "title": "$:/config/SaveWikiButton/Template",
            "text": "$:/core/save/all"
        },
        "$:/config/SaverFilter": {
            "title": "$:/config/SaverFilter",
            "text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/config/Search/AutoFocus": {
            "title": "$:/config/Search/AutoFocus",
            "text": "true"
        },
        "$:/config/SearchResults/Default": {
            "title": "$:/config/SearchResults/Default",
            "text": "$:/core/ui/DefaultSearchResultList"
        },
        "$:/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/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/italic": {
            "title": "$:/config/ShortcutInfo/italic",
            "text": "{{$:/language/Buttons/Italic/Hint}}"
        },
        "$:/config/ShortcutInfo/link": {
            "title": "$:/config/ShortcutInfo/link",
            "text": "{{$:/language/Buttons/Link/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/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/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/underline": {
            "title": "$:/config/ShortcutInfo/underline",
            "text": "{{$:/language/Buttons/Underline/Hint}}"
        },
        "$:/config/SyncFilter": {
            "title": "$:/config/SyncFilter",
            "text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/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/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/italic": {
            "title": "$:/config/shortcuts-mac/italic",
            "text": "meta-I"
        },
        "$:/config/shortcuts-mac/underline": {
            "title": "$:/config/shortcuts-mac/underline",
            "text": "meta-U"
        },
        "$:/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/cancel-edit-tiddler": {
            "title": "$:/config/shortcuts/cancel-edit-tiddler",
            "text": "escape"
        },
        "$:/config/shortcuts/excise": {
            "title": "$:/config/shortcuts/excise",
            "text": "ctrl-E"
        },
        "$:/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/link": {
            "title": "$:/config/shortcuts/link",
            "text": "ctrl-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/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/WikiParserRules/Inline/wikilink": {
            "title": "$:/config/WikiParserRules/Inline/wikilink",
            "text": "enable"
        },
        "$:/snippets/currpalettepreview": {
            "title": "$:/snippets/currpalettepreview",
            "text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch(colour)\n<$set name=\"swatchColour\" value={{##$colour$}}>\n<div class=\"tc-swatch\" style=<<swatchStyle>>/>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\">\n<<swatch foreground>>\n<<swatch background>>\n<<swatch muted-foreground>>\n<<swatch primary>>\n<<swatch page-background>>\n<<swatch tab-background>>\n<<swatch tiddler-info-background>>\n</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": "{{$:/language/ControlPanel/Basics/Language/Prompt}} <$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/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>\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 datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\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"
        },
        "$:/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<div style=\"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/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<span class=\"tc-popup-keep\">\n<$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>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$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<$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</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
        },
        "$:/core/macros/image-picker": {
            "title": "$:/core/macros/image-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define image-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n\n$actions$\n\n<$transclude tiddler=<<imageTitle>>/>\n\n</$button>\n\\end\n\n\\define image-picker(actions,subfilter:\"\")\n<div class=\"tc-image-chooser\">\n\n<$list filter=\"[all[shadows+tiddlers]is[image]$subfilter$!has[draft.of]] -[type[application/pdf]] +[sort[title]]\" variable=\"imageTitle\">\n\n<$macrocall $name=\"image-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n\n</$list>\n\n</div>\n\n\\end\n\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:\"\")\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\">\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"
        },
        "$:/core/macros/tabs": {
            "title": "$:/core/macros/tabs",
            "tags": "$:/tags/Macro",
            "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> 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=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$set></$tiddler></$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=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\">\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\\end\n"
        },
        "$:/core/macros/tag": {
            "title": "$:/core/macros/tag",
            "tags": "$:/tags/Macro",
            "text": "\\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": {
            "created": "20141212105914482",
            "modified": "20141212110330815",
            "tags": "$:/tags/Macro",
            "title": "$:/core/macros/timeline",
            "type": "text/vnd.tiddlywiki",
            "text": "\\define timeline-title()\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}}>\n<<timeline-title>>\n</$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(rootTag,tag,sort:\"\",itemClassFilter)\n<ol class=\"tc-toc\">\n<$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\"\"\">\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n<<toc-caption>>\n</$list>\n<$list filter=\"\"\"[all[current]] -[[$rootTag$]]\"\"\">\n<$macrocall $name=\"toc-body\" rootTag=\"\"\"$rootTag$\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$list>\n</li>\n</$set>\n</$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter)\n<<toc-body rootTag:\"\"\"$tag$\"\"\" tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"itemClassFilter\"\"\">>\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$link>\n<$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<<toc-caption>>\n</$link>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-expandable-empty-message()\n<<toc-linked-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\">>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\">\n<ol class=\"tc-toc toc-expandable\">\n<$list filter=\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\">\n<$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>>>\n<<toc-unlinked-expandable-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"itemClassFilter\"\"\">>\n</$list>\n</$list>\n</ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$link>\n<$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n<$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</$list>\n<<toc-caption>>\n</$link>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$list filter=\"[all[current]tagging[]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\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n</$list>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"\"\"toc-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<<toc-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\">>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\">\n<ol class=\"tc-toc toc-selective-expandable\">\n<$list filter=\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\">\n<$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>>>\n<<toc-unlinked-selective-expandable-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n</$list>\n</$list>\n</ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-selected-item-filter(selectedTiddler)\n[all[current]field:title{$selectedTiddler$}]\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{$selectedTiddler$}}>\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=<<toc-tabbed-selected-item-filter selectedTiddler:\"\"\"$selectedTiddler$\"\"\">>/>\n</div>\n</$linkcatcher>\n<div class=\"tc-tabbed-table-of-contents-content\">\n<$reveal state=\"\"\"$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 state=\"\"\"$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"
        },
        "$:/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": "\\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<$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<table>\n<tbody>\n<$list filter=\"[all[current]indexes[]]\" variable=\"colourName\">\n<tr>\n<td>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<$edit-text index=<<colourName>> tag=\"input\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</$set>\n"
        },
        "$:/snippets/palettepreview": {
            "title": "$:/snippets/palettepreview",
            "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n<$transclude tiddler=\"$:/snippets/currpalettepreview\"/>\n</$set>\n"
        },
        "$:/snippets/paletteswitcher": {
            "title": "$:/snippets/paletteswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n<div class=\"tc-prompt\">\n<<lingo Prompt>> <$view tiddler={{$:/palette}} field=\"name\"/>\n</div>\n\n<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]\"><div class=\"tc-chooser-item\"><$link to={{!!title}}><div><$reveal state=\"$:/palette\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/palette\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> ''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/></div><$transclude tiddler=\"$:/snippets/currpalettepreview\"/></$link></div>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/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/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/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]]",
            "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/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/full-screen]] [[$:/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/SideBar": {
            "title": "$:/tags/SideBar",
            "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
            "text": ""
        },
        "$:/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": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$view tiddler={{$:/theme}} field=\"name\"/>\n\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\"><div><$reveal state=\"$:/theme\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/theme\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$list>\n</$linkcatcher>"
        },
        "$:/core/wiki/title": {
            "title": "$:/core/wiki/title",
            "type": "text/vnd.tiddlywiki",
            "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
        },
        "$:/view": {
            "title": "$:/view",
            "text": "classic"
        },
        "$:/snippets/viewswitcher": {
            "title": "$:/snippets/viewswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/StoryView/\n<<lingo Prompt>> <$select tiddler=\"$:/view\">\n<$list filter=\"[storyviews[]]\">\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>"
        }
    }
}
\define englink(term:"לא ידוע") <a target="_blank" class="translation" href="http://coensisters.org/english.html#$term$">English</a>

<$reveal tag="div" class="tc-tiddler-body" type="nomatch" state=<<folded-state>> text="hide" retain="yes" animate="yes">

<$list filter="[all[current]!has[plugin-type]!field:hide-body[yes]]">

<$transclude>

<$transclude tiddler="$:/language/MissingTiddler/Hint"/>

</$transclude>

</$list>

<div class="tootdiv"><<tootlink>></div>

</$reveal>
[[האחיות כהן]]
{
    "tiddlers": {
        "Untitled": {
            "title": "Untitled",
            "text": "https://www.youtube.com/watch?v=1dXEzMcfCyA",
            "type": "text/plain"
        }
    }
}
no
$:/palettes/Muted
<a class="cc-banner" target="_blank" title="Coen Sisters by Tamar Leselrot is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License." rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
.cc-banner {
	position: fixed;
	right: 1em;
	bottom: 0;
    z-index: 2000;
    direction: ltr;
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/powered-by-tiddlywiki/banner": {
            "title": "$:/plugins/tiddlywiki/powered-by-tiddlywiki/banner",
            "tags": "$:/tags/PageTemplate",
            "text": "<a href=\"http://tiddlywiki.com\" target=\"_blank\" rel=\"noopener noreferrer\">\n[img width=\"160px\" class=\"tc-powered-by-tiddlywiki-banner\" [$:/plugins/tiddlywiki/powered-by-tiddlywiki/powered-by-tiddlywiki.svg]]\n</a>\n"
        },
        "$:/plugins/tiddlywiki/powered-by-tiddlywiki/powered-by-tiddlywiki.svg": {
            "title": "$:/plugins/tiddlywiki/powered-by-tiddlywiki/powered-by-tiddlywiki.svg",
            "type": "image/svg+xml",
            "text": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg width=\"896px\" height=\"176px\" viewBox=\"0 0 896 176\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n    <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <rect fill=\"#5778D8\" x=\"0\" y=\"48\" width=\"896\" height=\"96\" rx=\"40\"></rect>\n        <rect fill=\"#5778D8\" x=\"0\" y=\"107\" width=\"896\" height=\"69\"></rect>\n        <path d=\"M509.45407,145.5 C500.298981,145.241109 496.272153,145.263373 491.609634,137.593336 L487.975741,137.697483 C483.746,137.509579 485.508738,137.594751 482.686885,137.454206 C477.968863,137.270547 478.724653,132.785957 477.894634,130.416559 C476.566884,122.373568 479.651651,114.28901 479.554337,106.244432 C479.519884,103.388798 475.480522,93.280884 474.037432,89.6670908 C469.513527,90.5191636 464.96508,90.681618 460.375565,90.9103975 C449.796709,90.8844742 439.289599,89.5885307 428.858455,87.9428201 C426.825687,96.3431567 420.783512,108.100814 425.777847,116.63814 C431.840041,125.46901 436.094195,127.915557 442.688237,128.448018 C449.282207,128.980047 450.771171,136.427581 449.175852,139.087582 C447.763804,140.925935 445.282044,141.259629 443.173485,141.705005 L438.9558,141.903312 C435.636833,141.791616 432.670288,140.89517 429.712926,139.51262 C424.77415,136.754658 419.673308,131.020977 415.883481,126.904585 C416.765781,128.548388 417.29205,131.757406 416.491791,133.250744 C414.251086,136.426166 404.560015,136.406765 400.12185,134.433533 C395.080168,132.192397 382.897505,116.456261 381.013953,104.670599 C386.024891,95.1907919 393.32484,86.9333052 397.018106,76.6112137 C388.96777,71.4725082 384.656121,63.1071256 385.215841,53.6312616 L385.417868,52.5343641 C377.496702,54.0178049 381.604436,53.4658821 373.083336,54.1107205 C345.946392,54.0276592 322.081628,35.6209152 335.519519,7.01357089 C336.393386,5.31957309 337.22468,3.77943723 338.706061,4.51496674 C339.895034,5.10516147 339.724245,7.47267561 339.126195,10.0981299 C331.444909,44.2800486 368.986482,44.541671 392.063954,38.2164846 C394.354375,37.5885907 398.909687,33.3597492 402.065239,31.9578456 C407.223273,29.6664872 412.821793,28.7368246 418.377878,28.0669527 C432.196953,26.4917086 448.805787,33.7743125 457.244692,34.0121086 C465.683696,34.2498951 477.68849,31.9906839 485.057739,32.4663611 C490.404756,32.7111006 495.655194,33.6766118 500.814217,35.0519721 C504.15359,18.7743924 504.389678,6.77738508 512.306113,4 C516.952271,4.73410247 520.532435,11.0679387 523.182469,14.4521241 C528.590341,14.2372222 533.726214,15.6070021 538.832705,17.1272571 C548.077718,15.8147836 555.835649,10.6211429 564,6.58095832 C555.726838,13.3374633 554.604541,24.3296396 555.549873,34.4945636 C555.901428,39.7692086 554.411518,45.4959316 552.56964,50.8964678 C549.122861,59.6952657 542.466357,68.969826 534.740599,68.4941441 C531.819966,68.4017255 530.123302,66.7473485 527.952583,64.9810904 C527.531491,68.5586705 525.876481,71.7509522 524.281076,74.9149914 C520.596809,81.9303216 510.969052,85.0217786 502.054286,92.5127055 C493.140125,100.003746 504.906806,126.757399 507.75979,131.632016 C510.612311,136.507097 518.575572,138.290532 515.485563,142.690409 C514.54025,144.143492 513.094823,144.663196 511.550039,145.2269 L509.45407,145.5 Z M406.857056,123.298483 L408.270768,123.654421 C410.047226,122.976086 413.618139,124.024471 415.512346,124.537037 C412.024332,121.236977 406.769383,116.390903 402.983374,113.335801 C401.740688,109.637126 402.270922,105.91532 402.538288,102.139524 L402.591916,101.82716 C401.099565,104.849781 399.20572,107.787956 398.187823,110.969578 C396.996657,115.26186 403.481867,119.893011 405.996567,122.547196 L406.857056,123.298483 Z\" stroke=\"#FFFFFF\" stroke-width=\"3\" fill=\"#000000\"></path>\n        <path d=\"M539.512,88.304 L576.504,88.304 L576.504,95.216 L561.976,95.216 L561.976,134 L553.976,134 L553.976,95.216 L539.512,95.216 L539.512,88.304 Z M580.984,88.304 L588.28,88.304 L588.28,95.216 L580.984,95.216 L580.984,88.304 Z M580.984,100.912 L588.28,100.912 L588.28,134 L580.984,134 L580.984,100.912 Z M627.384,134 L620.472,134 L620.472,129.52 L620.344,129.52 C619.362662,131.44001 617.933343,132.815996 616.056,133.648 C614.178657,134.480004 612.194677,134.896 610.104,134.896 C607.50132,134.896 605.229343,134.437338 603.288,133.52 C601.346657,132.602662 599.736006,131.354675 598.456,129.776 C597.175994,128.197325 596.216003,126.330677 595.576,124.176 C594.935997,122.021323 594.616,119.706679 594.616,117.232 C594.616,114.245318 595.021329,111.664011 595.832,109.488 C596.642671,107.311989 597.719993,105.520007 599.064,104.112 C600.408007,102.703993 601.943991,101.669337 603.672,101.008 C605.400009,100.346663 607.159991,100.016 608.952,100.016 C609.976005,100.016 611.021328,100.111999 612.088,100.304 C613.154672,100.496001 614.178662,100.805331 615.16,101.232 C616.141338,101.658669 617.047996,102.202663 617.88,102.864 C618.712004,103.525337 619.405331,104.303996 619.96,105.2 L620.088,105.2 L620.088,88.304 L627.384,88.304 L627.384,134 Z M601.912,117.808 C601.912,119.216007 602.093332,120.60266 602.456,121.968 C602.818668,123.33334 603.37333,124.549328 604.12,125.616 C604.86667,126.682672 605.815994,127.535997 606.968,128.176 C608.120006,128.816003 609.485325,129.136 611.064,129.136 C612.685341,129.136 614.082661,128.79467 615.256,128.112 C616.429339,127.42933 617.38933,126.533339 618.136,125.424 C618.88267,124.314661 619.437332,123.066674 619.8,121.68 C620.162668,120.293326 620.344,118.874674 620.344,117.424 C620.344,113.754648 619.522675,110.89601 617.88,108.848 C616.237325,106.79999 614.008014,105.776 611.192,105.776 C609.485325,105.776 608.045339,106.127996 606.872,106.832 C605.698661,107.536004 604.73867,108.453328 603.992,109.584 C603.24533,110.714672 602.712002,111.99466 602.392,113.424 C602.071998,114.85334 601.912,116.314659 601.912,117.808 L601.912,117.808 Z M666.488,134 L659.576,134 L659.576,129.52 L659.448,129.52 C658.466662,131.44001 657.037343,132.815996 655.16,133.648 C653.282657,134.480004 651.298677,134.896 649.208,134.896 C646.60532,134.896 644.333343,134.437338 642.392,133.52 C640.450657,132.602662 638.840006,131.354675 637.56,129.776 C636.279994,128.197325 635.320003,126.330677 634.68,124.176 C634.039997,122.021323 633.72,119.706679 633.72,117.232 C633.72,114.245318 634.125329,111.664011 634.936,109.488 C635.746671,107.311989 636.823993,105.520007 638.168,104.112 C639.512007,102.703993 641.047991,101.669337 642.776,101.008 C644.504009,100.346663 646.263991,100.016 648.056,100.016 C649.080005,100.016 650.125328,100.111999 651.192,100.304 C652.258672,100.496001 653.282662,100.805331 654.264,101.232 C655.245338,101.658669 656.151996,102.202663 656.984,102.864 C657.816004,103.525337 658.509331,104.303996 659.064,105.2 L659.192,105.2 L659.192,88.304 L666.488,88.304 L666.488,134 Z M641.016,117.808 C641.016,119.216007 641.197332,120.60266 641.56,121.968 C641.922668,123.33334 642.47733,124.549328 643.224,125.616 C643.97067,126.682672 644.919994,127.535997 646.072,128.176 C647.224006,128.816003 648.589325,129.136 650.168,129.136 C651.789341,129.136 653.186661,128.79467 654.36,128.112 C655.533339,127.42933 656.49333,126.533339 657.24,125.424 C657.98667,124.314661 658.541332,123.066674 658.904,121.68 C659.266668,120.293326 659.448,118.874674 659.448,117.424 C659.448,113.754648 658.626675,110.89601 656.984,108.848 C655.341325,106.79999 653.112014,105.776 650.296,105.776 C648.589325,105.776 647.149339,106.127996 645.976,106.832 C644.802661,107.536004 643.84267,108.453328 643.096,109.584 C642.34933,110.714672 641.816002,111.99466 641.496,113.424 C641.175998,114.85334 641.016,116.314659 641.016,117.808 L641.016,117.808 Z M674.616,88.304 L681.912,88.304 L681.912,134 L674.616,134 L674.616,88.304 Z M686.2,100.912 L694.2,100.912 L702.84,125.616 L702.968,125.616 L711.352,100.912 L718.968,100.912 L706.104,135.792 C705.506664,137.285341 704.920003,138.71466 704.344,140.08 C703.767997,141.44534 703.064004,142.650661 702.232,143.696 C701.399996,144.741339 700.36534,145.57333 699.128,146.192 C697.89066,146.81067 696.31201,147.12 694.392,147.12 C692.685325,147.12 691.000008,146.992001 689.336,146.736 L689.336,140.592 C689.933336,140.677334 690.509331,140.773333 691.064,140.88 C691.618669,140.986667 692.194664,141.04 692.792,141.04 C693.645338,141.04 694.349331,140.933334 694.904,140.72 C695.458669,140.506666 695.917332,140.197335 696.28,139.792 C696.642668,139.386665 696.951999,138.906669 697.208,138.352 C697.464001,137.797331 697.698666,137.157337 697.912,136.432 L698.744,133.872 L686.2,100.912 Z M719.608,88.304 L727.736,88.304 L735.992,123.248 L736.12,123.248 L745.336,88.304 L753.528,88.304 L762.488,123.248 L762.616,123.248 L771.128,88.304 L779.256,88.304 L766.648,134 L758.52,134 L749.368,99.056 L749.24,99.056 L739.896,134 L731.64,134 L719.608,88.304 Z M783.672,88.304 L790.968,88.304 L790.968,95.216 L783.672,95.216 L783.672,88.304 Z M783.672,100.912 L790.968,100.912 L790.968,134 L783.672,134 L783.672,100.912 Z M799.096,88.304 L806.392,88.304 L806.392,114.288 L819.576,100.912 L828.536,100.912 L815.864,113.072 L829.752,134 L820.856,134 L810.744,117.936 L806.392,122.16 L806.392,134 L799.096,134 L799.096,88.304 Z M833.464,88.304 L840.76,88.304 L840.76,95.216 L833.464,95.216 L833.464,88.304 Z M833.464,100.912 L840.76,100.912 L840.76,134 L833.464,134 L833.464,100.912 Z\" fill=\"#FFFFFF\"></path>\n        <path d=\"M48.592,108.656 L48.72,108.656 C48.9760013,107.845329 49.4026637,106.949338 50,105.968 C50.5973363,104.986662 51.3866618,104.080004 52.368,103.248 C53.3493382,102.415996 54.5333264,101.722669 55.92,101.168 C57.3066736,100.613331 58.895991,100.336 60.688,100.336 C63.2053459,100.336 65.3919907,100.805329 67.248,101.744 C69.1040093,102.682671 70.6399939,103.941325 71.856,105.52 C73.0720061,107.098675 73.9786637,108.933323 74.576,111.024 C75.1733363,113.114677 75.472,115.311988 75.472,117.616 C75.472,120.133346 75.1733363,122.437323 74.576,124.528 C73.9786637,126.618677 73.0720061,128.421326 71.856,129.936 C70.6399939,131.450674 69.1040093,132.634662 67.248,133.488 C65.3919907,134.341338 63.2053459,134.768 60.688,134.768 C57.9573197,134.768 55.525344,134.170673 53.392,132.976 C51.258656,131.781327 49.7013382,129.840013 48.72,127.152 L48.592,127.152 L48.592,145.776 L46.16,145.776 L46.16,101.104 L48.592,101.104 L48.592,108.656 Z M60.688,132.656 C62.821344,132.656 64.6666589,132.250671 66.224,131.44 C67.7813411,130.629329 69.0613283,129.54134 70.064,128.176 C71.0666717,126.81066 71.8133309,125.221342 72.304,123.408 C72.7946691,121.594658 73.04,119.66401 73.04,117.616 C73.04,115.738657 72.8053357,113.893342 72.336,112.08 C71.8666643,110.266658 71.1413382,108.64534 70.16,107.216 C69.1786618,105.78666 67.9093411,104.634671 66.352,103.76 C64.7946589,102.885329 62.9066778,102.448 60.688,102.448 C58.5119891,102.448 56.6560077,102.874662 55.12,103.728 C53.5839923,104.581338 52.3360048,105.711993 51.376,107.12 C50.4159952,108.528007 49.7226688,110.138658 49.296,111.952 C48.8693312,113.765342 48.656,115.653324 48.656,117.616 C48.656,119.578676 48.8479981,121.466658 49.232,123.28 C49.6160019,125.093342 50.2666621,126.693326 51.184,128.08 C52.1013379,129.466674 53.3386589,130.575996 54.896,131.408 C56.4533411,132.240004 58.3839885,132.656 60.688,132.656 L60.688,132.656 Z M79.632,117.552 C79.632,115.205322 79.9626634,112.997344 80.624,110.928 C81.2853366,108.858656 82.2559936,107.034675 83.536,105.456 C84.8160064,103.877325 86.3946573,102.629338 88.272,101.712 C90.1493427,100.794662 92.3039878,100.336 94.736,100.336 C97.1680122,100.336 99.3226573,100.794662 101.2,101.712 C103.077343,102.629338 104.655994,103.877325 105.936,105.456 C107.216006,107.034675 108.186663,108.858656 108.848,110.928 C109.509337,112.997344 109.84,115.205322 109.84,117.552 C109.84,119.898678 109.509337,122.117323 108.848,124.208 C108.186663,126.298677 107.216006,128.122659 105.936,129.68 C104.655994,131.237341 103.077343,132.474662 101.2,133.392 C99.3226573,134.309338 97.1680122,134.768 94.736,134.768 C92.3039878,134.768 90.1493427,134.309338 88.272,133.392 C86.3946573,132.474662 84.8160064,131.237341 83.536,129.68 C82.2559936,128.122659 81.2853366,126.298677 80.624,124.208 C79.9626634,122.117323 79.632,119.898678 79.632,117.552 L79.632,117.552 Z M82.064,117.552 C82.064,119.514676 82.3413306,121.402658 82.896,123.216 C83.4506694,125.029342 84.261328,126.639993 85.328,128.048 C86.394672,129.456007 87.7173254,130.575996 89.296,131.408 C90.8746746,132.240004 92.6879898,132.656 94.736,132.656 C96.7840102,132.656 98.5973254,132.240004 100.176,131.408 C101.754675,130.575996 103.077328,129.456007 104.144,128.048 C105.210672,126.639993 106.021331,125.029342 106.576,123.216 C107.130669,121.402658 107.408,119.514676 107.408,117.552 C107.408,115.589324 107.130669,113.701342 106.576,111.888 C106.021331,110.074658 105.210672,108.464007 104.144,107.056 C103.077328,105.647993 101.754675,104.528004 100.176,103.696 C98.5973254,102.863996 96.7840102,102.448 94.736,102.448 C92.6879898,102.448 90.8746746,102.863996 89.296,103.696 C87.7173254,104.528004 86.394672,105.647993 85.328,107.056 C84.261328,108.464007 83.4506694,110.074658 82.896,111.888 C82.3413306,113.701342 82.064,115.589324 82.064,117.552 L82.064,117.552 Z M123.728,131.184 L123.856,131.184 L132.816,101.104 L136.08,101.104 L145.104,131.184 L145.232,131.184 L154.448,101.104 L157.136,101.104 L146.576,134 L143.568,134 L134.544,104.176 L134.416,104.176 L125.328,134 L122.256,134 L111.824,101.104 L114.448,101.104 L123.728,131.184 Z M161.552,117.872 L161.552,118.256 C161.552,120.17601 161.807997,122.010658 162.32,123.76 C162.832003,125.509342 163.589328,127.045327 164.592,128.368 C165.594672,129.690673 166.853326,130.735996 168.368,131.504 C169.882674,132.272004 171.642657,132.656 173.648,132.656 C176.93335,132.656 179.53599,131.792009 181.456,130.064 C183.37601,128.335991 184.698663,125.936015 185.424,122.864 L187.856,122.864 C187.130663,126.704019 185.562679,129.64799 183.152,131.696 C180.741321,133.74401 177.55202,134.768 173.584,134.768 C171.151988,134.768 169.029342,134.330671 167.216,133.456 C165.402658,132.581329 163.888006,131.386674 162.672,129.872 C161.455994,128.357326 160.549336,126.565344 159.952,124.496 C159.354664,122.426656 159.056,120.197345 159.056,117.808 C159.056,115.503988 159.36533,113.296011 159.984,111.184 C160.60267,109.071989 161.53066,107.216008 162.768,105.616 C164.00534,104.015992 165.551991,102.736005 167.408,101.776 C169.264009,100.815995 171.450654,100.336 173.968,100.336 C176.272012,100.336 178.309324,100.762662 180.08,101.616 C181.850676,102.469338 183.333327,103.631993 184.528,105.104 C185.722673,106.576007 186.62933,108.282657 187.248,110.224 C187.86667,112.165343 188.176,114.245322 188.176,116.464 C188.176,116.677334 188.165333,116.922665 188.144,117.2 C188.122667,117.477335 188.112,117.701332 188.112,117.872 L161.552,117.872 Z M185.68,115.76 C185.594666,113.967991 185.296003,112.272008 184.784,110.672 C184.271997,109.071992 183.514672,107.664006 182.512,106.448 C181.509328,105.231994 180.29334,104.261337 178.864,103.536 C177.43466,102.810663 175.802676,102.448 173.968,102.448 C172.005324,102.448 170.277341,102.82133 168.784,103.568 C167.290659,104.31467 166.032005,105.295994 165.008,106.512 C163.983995,107.728006 163.194669,109.146659 162.64,110.768 C162.085331,112.389341 161.744001,114.053325 161.616,115.76 L185.68,115.76 Z M196.24,108.4 L196.432,108.4 C196.730668,107.333328 197.274663,106.330671 198.064,105.392 C198.853337,104.453329 199.813328,103.64267 200.944,102.96 C202.074672,102.27733 203.333326,101.754668 204.72,101.392 C206.106674,101.029332 207.546659,100.869333 209.04,100.912 L209.04,103.344 C207.759994,103.173332 206.298675,103.301331 204.656,103.728 C203.013325,104.154669 201.445341,105.093326 199.952,106.544 C199.354664,107.184003 198.832002,107.802664 198.384,108.4 C197.935998,108.997336 197.562668,109.658663 197.264,110.384 C196.965332,111.109337 196.730668,111.919996 196.56,112.816 C196.389332,113.712004 196.282667,114.77866 196.24,116.016 L196.24,134 L193.808,134 L193.808,101.104 L196.24,101.104 L196.24,108.4 Z M211.792,117.872 L211.792,118.256 C211.792,120.17601 212.047997,122.010658 212.56,123.76 C213.072003,125.509342 213.829328,127.045327 214.832,128.368 C215.834672,129.690673 217.093326,130.735996 218.608,131.504 C220.122674,132.272004 221.882657,132.656 223.888,132.656 C227.17335,132.656 229.77599,131.792009 231.696,130.064 C233.61601,128.335991 234.938663,125.936015 235.664,122.864 L238.096,122.864 C237.370663,126.704019 235.802679,129.64799 233.392,131.696 C230.981321,133.74401 227.79202,134.768 223.824,134.768 C221.391988,134.768 219.269342,134.330671 217.456,133.456 C215.642658,132.581329 214.128006,131.386674 212.912,129.872 C211.695994,128.357326 210.789336,126.565344 210.192,124.496 C209.594664,122.426656 209.296,120.197345 209.296,117.808 C209.296,115.503988 209.60533,113.296011 210.224,111.184 C210.84267,109.071989 211.77066,107.216008 213.008,105.616 C214.24534,104.015992 215.791991,102.736005 217.648,101.776 C219.504009,100.815995 221.690654,100.336 224.208,100.336 C226.512012,100.336 228.549324,100.762662 230.32,101.616 C232.090676,102.469338 233.573327,103.631993 234.768,105.104 C235.962673,106.576007 236.86933,108.282657 237.488,110.224 C238.10667,112.165343 238.416,114.245322 238.416,116.464 C238.416,116.677334 238.405333,116.922665 238.384,117.2 C238.362667,117.477335 238.352,117.701332 238.352,117.872 L211.792,117.872 Z M235.92,115.76 C235.834666,113.967991 235.536003,112.272008 235.024,110.672 C234.511997,109.071992 233.754672,107.664006 232.752,106.448 C231.749328,105.231994 230.53334,104.261337 229.104,103.536 C227.67466,102.810663 226.042676,102.448 224.208,102.448 C222.245324,102.448 220.517341,102.82133 219.024,103.568 C217.530659,104.31467 216.272005,105.295994 215.248,106.512 C214.223995,107.728006 213.434669,109.146659 212.88,110.768 C212.325331,112.389341 211.984001,114.053325 211.856,115.76 L235.92,115.76 Z M269.456,126.96 L269.328,126.96 C267.96266,129.56268 266.25601,131.51466 264.208,132.816 C262.15999,134.11734 259.664015,134.768 256.72,134.768 C254.245321,134.768 252.112009,134.298671 250.32,133.36 C248.527991,132.421329 247.056006,131.162675 245.904,129.584 C244.751994,128.005325 243.898669,126.181344 243.344,124.112 C242.789331,122.042656 242.512,119.877345 242.512,117.616 C242.512,115.183988 242.810664,112.912011 243.408,110.8 C244.005336,108.687989 244.911994,106.864008 246.128,105.328 C247.344006,103.791992 248.869324,102.576004 250.704,101.68 C252.538676,100.783996 254.693321,100.336 257.168,100.336 C258.490673,100.336 259.791994,100.517332 261.072,100.88 C262.352006,101.242668 263.535995,101.76533 264.624,102.448 C265.712005,103.13067 266.661329,103.983995 267.472,105.008 C268.282671,106.032005 268.901331,107.183994 269.328,108.464 L269.456,108.464 L269.456,88.304 L271.888,88.304 L271.888,134 L269.456,134 L269.456,126.96 Z M257.232,132.656 C259.322677,132.656 261.125326,132.229338 262.64,131.376 C264.154674,130.522662 265.413328,129.392007 266.416,127.984 C267.418672,126.575993 268.165331,124.965342 268.656,123.152 C269.146669,121.338658 269.392,119.493343 269.392,117.616 C269.392,115.69599 269.146669,113.829342 268.656,112.016 C268.165331,110.202658 267.429338,108.58134 266.448,107.152 C265.466662,105.72266 264.197341,104.581338 262.64,103.728 C261.082659,102.874662 259.258677,102.448 257.168,102.448 C254.991989,102.448 253.136008,102.863996 251.6,103.696 C250.063992,104.528004 248.794672,105.647993 247.792,107.056 C246.789328,108.464007 246.064002,110.085324 245.616,111.92 C245.167998,113.754676 244.944,115.653324 244.944,117.616 C244.944,119.53601 245.189331,121.402658 245.68,123.216 C246.170669,125.029342 246.917328,126.639993 247.92,128.048 C248.922672,129.456007 250.191992,130.575996 251.728,131.408 C253.264008,132.240004 255.098656,132.656 257.232,132.656 L257.232,132.656 Z M298,88.304 L300.432,88.304 L300.432,108.08 L300.56,108.08 C301.029336,106.799994 301.690662,105.680005 302.544,104.72 C303.397338,103.759995 304.378661,102.949337 305.488,102.288 C306.597339,101.626663 307.791994,101.136002 309.072,100.816 C310.352006,100.495998 311.67466,100.336 313.04,100.336 C315.472012,100.336 317.573324,100.762662 319.344,101.616 C321.114676,102.469338 322.597327,103.642659 323.792,105.136 C324.986673,106.629341 325.871997,108.36799 326.448,110.352 C327.024003,112.33601 327.312,114.479988 327.312,116.784 C327.312,120.709353 326.778672,123.855988 325.712,126.224 C324.645328,128.592012 323.365341,130.405327 321.872,131.664 C320.378659,132.922673 318.821341,133.754665 317.2,134.16 C315.578659,134.565335 314.192006,134.768 313.04,134.768 C310.863989,134.768 309.018674,134.42667 307.504,133.744 C305.989326,133.06133 304.741338,132.261338 303.76,131.344 C302.778662,130.426662 302.032003,129.520004 301.52,128.624 C301.007997,127.727996 300.688001,127.066669 300.56,126.64 L300.432,126.64 L300.432,134 L298,134 L298,88.304 Z M313.04,132.656 C315.216011,132.656 317.050659,132.186671 318.544,131.248 C320.037341,130.309329 321.253329,129.082674 322.192,127.568 C323.130671,126.053326 323.813331,124.346676 324.24,122.448 C324.666669,120.549324 324.88,118.661343 324.88,116.784 C324.88,114.949324 324.634669,113.178675 324.144,111.472 C323.653331,109.765325 322.906672,108.240007 321.904,106.896 C320.901328,105.551993 319.664007,104.474671 318.192,103.664 C316.719993,102.853329 315.002676,102.448 313.04,102.448 C310.906656,102.448 309.050675,102.810663 307.472,103.536 C305.893325,104.261337 304.592005,105.263994 303.568,106.544 C302.543995,107.824006 301.776003,109.338658 301.264,111.088 C300.751997,112.837342 300.496,114.73599 300.496,116.784 C300.496,118.789343 300.730664,120.75199 301.2,122.672 C301.669336,124.59201 302.405328,126.287993 303.408,127.76 C304.410672,129.232007 305.701325,130.415996 307.28,131.312 C308.858675,132.208004 310.778655,132.656 313.04,132.656 L313.04,132.656 Z M329.04,101.104 L331.92,101.104 L344.144,131.12 L355.408,101.104 L358.16,101.104 L344.08,137.52 C343.39733,139.141341 342.768003,140.538661 342.192,141.712 C341.615997,142.885339 340.965337,143.749331 340.24,144.304 C339.386662,144.98667 338.373339,145.402666 337.2,145.552 C336.026661,145.701334 334.48001,145.776 332.56,145.776 L332.56,143.664 C334.309342,143.664 335.674662,143.525335 336.656,143.248 C337.637338,142.970665 338.554662,142.405338 339.408,141.552 C339.877336,141.082664 340.367997,140.218673 340.88,138.96 C341.392003,137.701327 342.031996,135.984011 342.8,133.808 L329.04,101.104 Z\" fill=\"#FFFFFF\"></path>\n    </g>\n</svg>\n"
        },
        "$:/plugins/tiddlywiki/powered-by-tiddlywiki/readme": {
            "title": "$:/plugins/tiddlywiki/powered-by-tiddlywiki/readme",
            "text": "This plugin adds a \"Powered by ~TiddlyWiki\" banner that links back to http://tiddlywiki.com\n\nIt's very basic at the moment, but the plan is to improve it by making it more customisable.\n"
        },
        "$:/plugins/tiddlywiki/powered-by-tiddlywiki/styles": {
            "title": "$:/plugins/tiddlywiki/powered-by-tiddlywiki/styles",
            "tags": "$:/tags/Stylesheet",
            "text": ".tc-powered-by-tiddlywiki-banner {\n\tposition: fixed;\n\tright: 1em;\n\tbottom: 0;\n    z-index: 2000;\n}"
        }
    }
}
געזונט הייטס, קומה מינוס 1, אצל סטלין
גנזך האחיות כהן
טר

הדירה
show
show
show
show
show
show
show
show
show
show
show

המספרה
http://legalize.org.il/download/cop-vox/
yes
no
yes
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/ControlPanel/Appearance
$:/core/ui/MoreSideBar/Missing
$:/core/ui/SideBar/Recent
$:/core/ui/ControlPanel/Toolbars/EditorToolbar


{
    "tiddlers": {
        "$:/info/browser": {
            "title": "$:/info/browser",
            "text": "yes"
        },
        "$:/info/node": {
            "title": "$:/info/node",
            "text": "no"
        }
    }
}
powered

loaded
$:/themes/tiddlywiki/vanilla
{
    "tiddlers": {
        "$:/themes/tiddlywiki/snowwhite/base": {
            "title": "$:/themes/tiddlywiki/snowwhite/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\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: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\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\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-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-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/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 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\\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\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\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\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\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}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\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/*\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}\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: normal;\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/*\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\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-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/*\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}\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.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\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-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\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: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\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\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\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\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: 300;\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-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\tfill: <<colour tag-foreground>>;\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\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.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.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 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-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: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\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}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/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\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}\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\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.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: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/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.2em;\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}\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-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\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\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\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}\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\n.tc-tiddler-frame input.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-editor-background>>;\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\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}\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: {{$:/themes/tiddlywiki/vanilla/metrics/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-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-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 3px 3px 3px;\n\tpadding: 3px 3px 3px 3px;\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\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 {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\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-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/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 foreground>>;\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-language-chooser img {\n\twidth: 2em;\n\tvertical-align: baseline;\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: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** 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}\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}\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}\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-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-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tmax-width: 500px;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 28px;\n\tpadding: 14px 14px 14px 14px;\n\tborder: 2px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 14px;\n\tright: 14px;\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}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/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** 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: block;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground-colour: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\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 > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-plugin-info-chunk h1 {\n\tfont-size: 1em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk h2 {\n\tfont-size: 0.8em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk div {\n\tfont-size: 0.7em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\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 1em 1em;\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/*\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: 1px solid <<colour table-border>>;\n}\n\n.tc-chooser-item {\n\tborder: 8px;\n\tpadding: 2px 4px;\n}\n\n.tc-chooser-item a.tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-foreground>>;\n\tbackground-color: <<colour tiddler-link-background>>;\n}\n\n.tc-chooser-item a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\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\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 a {\n\tfont-weight: bold;\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/*\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** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\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": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n  font-family: sans-serif; /* 1 */\n  -ms-text-size-adjust: 100%; /* 2 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n  margin: 0;\n}\n\n/* HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; /* 1 */\n  vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n/* Links\n   ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n  background: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n  outline: 0;\n}\n\n/* Text-level semantics\n   ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n  font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `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\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n/* Embedded content\n   ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n  border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n/* Grouping content\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n  margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n  overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n/* Forms\n   ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n *    Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; /* 1 */\n  font: inherit; /* 2 */\n  margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10.\n */\n\nbutton {\n  overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8+, and Opera\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; /* 2 */\n  cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n  line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; /* 1 */\n  -moz-box-sizing: content-box;\n  -webkit-box-sizing: content-box; /* 2 */\n  box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n  border: 0; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9.\n */\n\ntextarea {\n  overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n  font-weight: bold;\n}\n\n/* Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
            "text": "\"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", \"DejaVu Sans\", sans-serif"
        },
        "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
            "text": "Monaco, Consolas, \"Lucida Console\", \"DejaVu Sans Mono\", 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</$reveal>\n"
        }
    }
}
logo-bg
fixed
contain
cohen-sisters
https://zzzen.com/cohen-sisters/store.php
.left { text-align: left }
.center { text-align: center }
.right { text-align: right }
a.translation { display: inline; text-decoration: none; color: #fff; background-color: #007; border-radius: 1em; padding: 0 0.5em }
a.translation:hover { text-decoration: underline }
.ltr { direction: ltr }
.rtl,
.tc-edit-texteditor,
.tc-tiddler-preview-preview { direction: rtl }
.tootdiv {text-align:left; font-size: 2em}
.tootdiv a {text-decoration: none; color: #f00}
.tootdiv a:hover {text-decoration: none; color: #f88}
tootdiv a:visited {text-decoration: none; color: #700}
[img[pictures/420.jpg]]

!!![[תומר]]:

[[תדר הראסטה|https://www.rastafrequency.co.il/420-shop-tel-aviv/]] זה מה שמדבר, ו-420 היא החנות הקטנה והמטריפה של המותג. היא נמצאת בקינג-ג'ורג' 30 על בורוכוב 2, והיא חלק ממכלול של עשייה של האנשים האלה, שאני מאד מחבב. יש שם טבק ואביזרי עישון אבל גם מיני חפיצים, ואני תמיד אוהב לקנות שם איזו שרשרת עץ צבעונית של אפריקה או איזה ארנק נחמד [[לפרח|גן-יה]], או דבר מה יפה אחר, ולדבר עם המוכר.


<<englink [[420]]>>
[img[pictures/american-utopia.jpg]]


<<englink [[American Utopia]]>>

!!![[יויו]]:

מופע מענג ובועט לפנים של [[דיוויד ביירן]], בסרט יפה-יפה של [[ספייק לי]]. 

[img[pictures/blue-marble.jpg]]

!!![[אירי וגורה]]:

אנו שתינו נרגשות - זורקות כפפה על פני המים הגלובליים, ומציעות את הקמת קהילת [[בלו-מארבל-הוד|https://www.youtube.com/watch?v=Hp7OrYaXgb8]], כהתחלה של [[גוף גלובלי|Imagine]], אליה יוכלו אנשים ללא הבדלי דת גזע או מגדר לחבור, באם יעמדו בתנאי קבלה שיקבעו. כמו כן, במדינות שיכריזו על עצמן כ-blue marble friendly, וכחלק מהסכמים עם שני הצדדים, יוכלו אנשי המארבל לחיות חיים מלאים.

הרעיון לבלו מארבל הוא המשך למחשבות של אירי על [[הכפר|גלות]].

<<englink [[blue-marble-hood]]>>
[img[pictures/bornandraised.jpg]]

!!![[תומר]]:

אל הסטודיו הפנטסטי של האח והאחות הנהדרים [[אורי ומאיה כהן|https://www.bornandraisedart.com/about]] מגיעים דרך המדרגות הצבעוניות שעולות מהחצר של [[קפה אדמונד]].




<<englink [[Born & Raised]]>>

This item is in English.

You see it written left to right because it is tagged `LTR` (uppercase).

@@.rtl
גם בדף כזה אפשר להכניס פיסקה מימין לשמאל.
@@
! Happy Hour

!!![[גורה]]: 

''שוב, כאן כעת 2016, משחררת ממה שכתבנו בשנים הראשונות של המילניום הנוכחי:
''


[img[pictures/hh.jpg]]

שמונה פרקים המתארים את המתרחש בחיי עובדי, דיירי ועוברי האורח שבבניין. כאשר הוא מתמקד בעיקר בתשע נשים שעובדות בו וב[[שלום]]. כמו כן ישנן דמויות משנה קבועות ודמויות אורחות.
במהלך הזמן יתברר מן המתרחש, שתשע הנשים "מחולקות" ל-"שני מחנות". המחנות אינם מוגדרים ככאלה, אלא הם תוצר של המציאות. (המדומה).
[[המצלמה]] היא זו שמספרת את הסיפור בתוך שמסיירת בין קומות וחדרי הבניין, וברחובות העיר הסמוכים לו עד ל[[מרינה זוטו]] שלחופי [[ים טתיס]]. 
היא מסתכלת בעין אוהבת על שלום, [[הברמנית]], [[מוכרת הדיסקים/dj]], [[הספרית]], [[הספנית]], ו[[המסאז'יסטית]]. (להלן האחיות כהן).
ובוחנת בחשדנות את [[האומנית]], [[אשת העסקים]], [[עורכת הדין]] ו[[היועצת]], (להלן [[האחיות K]] ).
אל האחיות K מצטרפת מידי פעם אחות K מתחלפת המפרה את השגרה בבניין. האחות K המתחלפת יכולה להיות גבר, אישה, או כל יצור חי אחר. לשיטת המצלמה כל טיפוס יכול להפוך [[לאחות|אחות כהן]] לרגעים או באופן קבוע.

בפרקים הראשונים, אל תוך חייהן של הדמויות הקיימות מגיעה אחות K חמישית, בדמותה של [[סוחרת אומנות|אודליה]], המנסה לשאת חן בעיני שלום, ולגזול מכספו. היא משתכנת בהוסטל שבקומה הרביעית, ומנסה לכבוש את ליבו של הנ"ל. היא מגלה שאל העיר הגיע  האדם ששלח אותה למשימת הפיתוי, שהוא עורך דין שמן ומיוזע, EA  שמו, שלובש גם הוא, דמות של סוחר אומנות בכדי לעקוב אחרי אודליה. בנוסף לכך מגלה, שאחיה הסורר אף הוא הגיע לעיר במנוסתו מהמשטרה במדינה ממנה הגיעו.
מאוחר יותר יתחבא אחיה של אודליה במרתף הבניין, שם ימצא אותו [[סטלין]], השרת ואיש התחזוקה של הבניין.
המזימה נחשפת בעיקר על ידי האחיות C (בתחכום ובחן רבים )?
למעשה, כל שוכני הבניין, כולל אנשי [[מערכת העיתון]], אנשי [[ההוסטל]] וכו' תורמים לפתרון העלילה.
בהמשך, תוך כדי פתרון העלילה כבר מתרקמת עלילה עתידית שחלקה סכסוכים בין הדמויות הקבועות, בעיות אישיות מחייהן הפרטיים של אותן דמויות, דמויות נוספות של עוברים ושבים וכו'.
אורכו של כל פרק כארבעים דקות, ולרוב מסתיים ב HAPPY HOUR   מסורתי, שעה של משקאות, [[אנט ג'מיימה]], שמחה וכיופים ב[["קפה מילר "|קפה מילר]].


<<list-links filter:"[tag[HH]]">>



<<englink [[HH]]>>
[img[pictures/imagine.jpg]]

!!![[האחיות כהן]]:

[[you may say i'm a dreamer|https://www.youtube.com/watch?v=L6svOHFSAH8]]

<<englink [[Imagine]]>>
[img[pictures/jazz.jpg]]

!!![[הצוות]]:

[[jazz|https://karolina.bandcamp.com/album/karolina-with-echo-jazz-light-remixes-free-download]] היא [[יסמין לסלרוט|https://www.youtube.com/watch?v=DUX9yPz-kvo]], והיא איתן טבע. היא [[לוחמת|https://www.youtube.com/watch?v=4Th-LcHpg2w]] למען שלום, שוויון וחופש,  והיא [[הכי שיש|https://www.youtube.com/watch?v=7p9f8fK1VHA&feature=youtu.be]] ושאפשר אהבה.



[[כאן|https://www.youtube.com/watch?v=FhlLAqa5eq8]] היא שרה עם בריל [[מפלא אוזן|פלא אוזן]]. 

<<englink [[Jazz]]>>
[img[pictures/less-is-more.jpg]]

!!![[ז'נבייב]]:

לא פעם, אפשר לשמוע אנשים אומרים:

הוספתי למרק, מלח, פלפל שחור, פלפל לבן, אגוז מוסקט, הל, כוסברה, זרעי חרדל, פטרוזיליה, שמיר, כמון, כורכום, פפריקה חריפה, יין... מה יכול להיות רע?

well,

יכול להיות די רע, האוכל שלכם - אם לא תשימו לב מה מתאים וכמה.

השבוע התארחנו אצל אווה ופיליפ, והייתה שם עוגה, שאווה התביישה שאטעם, "כי שמתי את כל מעט האגוזים שנשארו בקופסה במקום לשים חופן בלבד, וידעתי שזה לא נכון, ועשיתי את זה", היא התנצלה, וגם הכינה [[עוגיות|עוגיות חמאה ולימון]] [[ופאי|פאי נקטרין]].

[[העוגה|טורט]] לכשעצמה עם הקנמון והמייפל עדיין היתה טעימה ומתוקה במידה, אך נכון, שעבודת לעיסה רבה הייתה כרוכה באכילתה, והאגוזים השתלטו עליה, ובכל זאת אכלתי ממנה עוד.

מה שאני אומרת - אם אתם עומדים מול מה שזה לא יהיה וחוככים בדעתכם, ותוהים, אילו טעמים להוסיף פנימה, או כמות הסוכר או המלח - אז בלי להתבלבל שימו את הפחות - כי פחות זה יותר.


<<englink [[Less is more]]>>

[img[pictures/max20.jpg]]

!!![[תומר]]:

[[מקס 20 שביהודה הלוי 147|https://www.maxstock.co.il/%d7%a1%d7%a0%d7%99%d7%a4%d7%99%d7%9d/]], זה ממש כמו מחסן פרטי. אני יוצא מהבנין ועולה לפינת החשמונאים, פונה ימינה, חוצה, יורד עוד כמה צעדים, ויש לי כל מה שאני צריך בלכל היותר 20.



<<englink [[Max 20]]>>
.tc-tiddler-title,
.tc-tags-wrapper,
.tc-tiddler-body,
.tc-site-title,
.tc-site-subtitle,
.tc-timeline
{
    direction: rtl;
}

.tc-timeline
{
    text-align: left
}

.tc-site-title,
.tc-site-subtitle
{
    padding-right: 8px
}

.tc-tiddler-frame .tc-tiddler-controls {
    float: left;
}

/* tag a tiddler LTR (in uppercase) for left-to-right writing direction */

.tc-tagged-LTR .tc-tiddler-title,
.tc-tagged-LTR .tc-tags-wrapper,
.tc-tagged-LTR .tc-tiddler-body,
.tc-tiddler-system .tc-tiddler-title,
.tc-tiddler-system .tc-tags-wrapper,
.tc-tiddler-system .tc-tiddler-body
{
    direction: ltr;
}

.tc-tiddler-frame.tc-tagged-LTR .tc-tiddler-controls,
.tc-tiddler-frame.tc-tiddler-system .tc-tiddler-controls

{
    float: right;
}
[img[pictures/sunny.jpg]]


!!![[יויו]]:

בגירסה המעולה הזו [[לסאני|https://he.wikipedia.org/wiki/Sunny]], [[ג'יימס בראון|https://www.youtube.com/watch?v=p6FmS5Co-j4]] מספר במילותיו, איך [[בובי הב|https://www.youtube.com/watch?v=ubvYQxTXO3U]] מממפיס טנסי, כתב את השיר הנפלא,  כשהיה כ"כ עצוב אחרי שאחיו הגדול והאהוב הרולד נהרג ב-23 בנובמבר 1963, יום אחרי רצח הנשיא ג'ון פ. קנדי.

לא בכדי [[יש לשיר|https://www.youtube.com/watch?v=3U9uPIPzG8o]] היחיד והמיוחד הזה מאות [[גרסאות כיסוי|https://www.youtube.com/watch?v=Gw-M58IjIuI]], שכן מדובר [[בשיר מושלם|https://www.youtube.com/watch?v=zvvBOWI1-jY]], כי [[איך אפשר שלא לשיר|https://www.youtube.com/watch?v=yD8DcgpLp_w]]:


//
Sunny, thank you for the sunshine bouquet.

Sunny, thank you for the love you brought my way.

You gave to me your all and all, now I feel ten feet tall.

Sunny one so true, I love you.//


 





<<englink [[Sunny]]>>
[img[pictures/tlv.jpg]]

!!![[תומר]]:

ה-TLV הוא לגמרי  כאן בגטו, במשולש שבין החשמונאים, קרליבך ודרך בגין, אך אני רואה אותו כקצה של לגונה מפורזת, אליו מגיעים ברכבת, ממנה אפשר לצרוך [[תחב"צ|תחבורה ציבורית]], או ללכת דרך שביל שמתחיל בעזריאלי, עולה דרך קריית הממשלה, ממשיך [[דרך שרונה|בדרך לשרונה]], עובר דרך שבילי התופת שמעל הבורות החפורים למען יבנו עוד מגדלים, חוצה את רחוב הארבעה למעבר שדרך [[ככר גבעון|לחמים]], והנה - כל שנותר הוא לחצות את החשמונאים ולהיכנס דרך ענן הבושם לתוך ה-fashion mall והיית שם.

<<englink [[TLV]]>>
[img[pictures/treme.jpg]]

!!![[יויו]]:

אם למות אז למות [[בטרמה|https://www.imdb.com/title/tt1279972/]], מלווה בטרומבון של אנטואן בטיסט. אתה שומע את המוזיקה שבין פריים לפריים ורוצה שכל רגע יימשך לעד. כל סצנה, כל צליל כלי נשיפה, בעדינות רבה, סידרה כל כך יפה. טרמיי הפכה לפריז החדשה שלי - המקום אליו אני כמה, ושכל כך מזכיר לי את [[סיסלי אלסקה|חשיפה לצפון]] - היא פריז של הצפון.



<<englink [[TREME]]>>
[img[pictures/umf.jpg]]

!!![[הצוות]]:

''TSZ''



<<englink [[UMF]]>>

[img[pictures/we-shoes.jpg]]

!!![[תומר]]:

ברור לי שאני לא אמור לקדם רשתות, אבל בהמלצת חבר, כאבי הגב שלי הובילו אותי לחנות [[הזאת|https://patuah.co.il/he/b/weshoes-%D7%91%D7%99%D7%90%D7%9C%D7%99%D7%A7-3-%D7%AA%D7%9C-%D7%90%D7%91%D7%99%D7%91--u10499]], שבביאליק 3, ואחרי שקניתי לי זוג נעלי hoka חייזריות אצל המוכרת הנהדרת, אני מוכרח להמליץ מכל בחינה.
[img[pictures/xin-center.jpg]]

!!![[אימא של ג'אזז]]:

כן את הולכת בגטו מרוחק יותר, וחותכת מטשרניחובסקי לקינג ג'ורג' דרך רחוב המכבי, כשרואה את ורדית שלא ראית מזמן לפתע, ואת נכנסת איתה [[למקום הנעים הזה|https://www.xin.co.il/]] שלא היכרת, שהוא מרכז לרפואה משלימה מלא טיפולים ומוצרים, ושותה איתה תה ויוצאת עד לפעם הבאה מצוידת בתוסף מעולה [[לגיל הבלות|הורמונים]], וקרם פנים רך וטוב שמורכב, בין השאר, [[מאחד מהאבות הקדמונים|https://he.wikipedia.org/wiki/%D7%90%D7%AA%D7%A8%D7%95%D7%92]] של משפחת ההדרים, וכל הבוקר המעוך הזה נראה הרבה פחות קודר.

[img[pictures/aba-vetirza.jpg]]

!!![[יויו]]:

אבא יואל באומן, מאז נפטרה [[אימנו|דינה זכרה לברכה]], מגיע בגוש אחד עם רעייתו היקרה - באמת היקרה - תרצה באומן, שמגיעה עם חיוך רחב ואחלה [[עוגיות שוקולד צ'יפס]].

אני מאד מסמפט את תרצה, שהפכה אותו לאדם נסבל וסובלני הרבה יותר ממה שהיה.

בסך הכל אבא הוא עוד אדם מבוהל מהחיים האלה, ועל כך, לא אאשים אף אחד.

הוא השתדל כפי יכולתו לגדל [[אותנו|משפחת באומן]] כאנשים טובים, וברוב המקרים הוא אפילו הצליח.




<<englink [[Papa Yoel]]>>
[img[pictures/avinu.jpg]]

את אבי האחד פגשתי שוב, אחרי שנים רבות שלא נפגשנו. התמונה הזו צולמה [[בנחלה|הנחלה בה גדלתי]] לפני עשרים שנה בערך.


<<englink [[Our Father]]>>
[img[pictures/avkot.jpg]]

!!![[יויו]]:

אבקות הן אין אין מצב מכל כך הרבה סיבות. ראשית הן מעליבות את האינטליגנציה של בלוטות הטעם. שנית - אני סבור כי הן מפעילות אזעקות שווא אצל הקטליזטורים, בעוד לאלה אין מה באמת לפרק. שלישית הן מפוצצות מלחים, מינרלים, פוספטים, מלט [[וגור חתולים שהסתבך בשערו|יהונתן גפן]].

למרות שאבקות הן אין אין מצב, אני משתמש באבקות פה ושם אבל רק כדי הצורך פחות חצי. למשל אבקת אפייה, אם תתחילו לחשוב על זה תראו שהלשון שלכם יכולה להבחין בטעמה. אם מבחינים בטעמה, סימן שיש יותר מידי. למשל אבקת סוכר. למשל אבקת פודינג - אשתמש רק בחצי ממה שכתוב. בממתיקים מלאכותיים, אני לא נוגע. אבקות מרק - לא נוגע. אבקת חלב - לא נוגע. אבקת קקאו - נוגע. אבקת שקדים - נוגע. אבקת חיטה - נוגע. 


אבקת ביצים? אם במקרה נפלה לכם ביצה, תנו לה להתייבש, תנו לחתול לגרד את מה שיש, וממה  שנשאר תכינו עוגת שיש.


<<englink [[Powders]]>>

[img[pictures/abraham-hostel.jpg]]

!!![[תומר]]:

שבועיים לפני, אשתי הנחמדת קנתה לה ולי כרטיסים להופעה של [[קותימן|https://kutiman.bandcamp.com/]] שהתקיימה בסוף יולי [[באברהם הוסטל|https://abrahamhostels.com/?gclid=EAIaIQobChMI_djYvui13QIVmKiaCh0GAAOpEAAYASAAEgISR_D_BwE]], שזה מקום שאני תמיד אוהב ללכת אליו. בשעת האמת היא הייתה עייפה מידי, ומיד הזמנתי את שכנתי האהובה, (חוטא רגע בניים דרופינג), [[יסמין|Jazz]], שהופיעה שם לפני כמה חודשים עם [[שלוש|https://www.youtube.com/watch?v=ZamQEe7_hdQ]], לבוא איתי, והיא הייתה פנויה!! לקחנו מונית כי חם, והיה כיף חיים.



<<englink [[Abraham Hostel]]>>
[img[pictures/edith-cohen.jpg]]

!!![[אווה]]:

אדית היא [[חצי אחותי|עץ המשפחה של אווה]]. היא ברחה מהנחלה בה גדלנו שנה לפני, ונפגשנו שוב רק לפני שבע שנים. (עכשיו 2017) לפגוש אותה שוב היה אחד הדברים הנפלאים שקרו לי.

<<englink [[Edith]]>>

[img[pictures/adama.jpg]]

!!![[תומר]]:

יהיה קשה עכשיו ממש להוציא אותי מהגטו האהוב ממילא, אחרי שחלום התגשם, ונפתחה במרחק ירידה מהבניין פלוס כמה צעדים [[אדמה|https://adama-v-o.co.il/%D7%94%D7%97%D7%A0%D7%95%D7%AA-%D7%A9%D7%9C%D7%A0%D7%95/]], ובה  פירות וירקות טעימים במיוחד.





<<englink [[Adama]]>>
[img[pictures/ahava.jpg]]

!!![[ז'נבייב]]:

אהבה [[היא רגש|https://www.youtube.com/watch?v=YVQvOvlEcDM&list=PL0gkxYg1JKPX0xeyU9BgFp3A-AqgmlBqC&index=2]]



אני אוהבת הרבה דברים. אני אוהבת אוכל. אני אוהבת את המטבח. אני אוהבת את כלי המטבח. את משטחי העבודה. אני אוהבת לנוע במטבח. אני אוהבת להזמין חומרי גלם ולסדר אותם. אני אוהבת להחליט מה יהיה קצת שונה היום מאתמול. אני אוהבת לארגן את המטבח לקראת הבישול, מה שיויו קורא [[מיזונפלציה]].  אני אוהבת לחתוך. אני אוהבת לבשל. אני אוהבת [[ריחות]]. אני אוהבת להסתכל על הכל. לחשוב על הדברים. לתכנן את העבודה. אני אוהבת את העובדים, ואני אוהבת את המסעדה שלי. אני אוהבת יצורים חיים מן הצומח ומן החי, אבל אני גם אוהבת עצמים. אני אוהבת [[מילים|כשאמרו קסטה]]. אני אוהבת את צמד המילים: שמות עצם. כמובן שאני יכולה להמשיך עוד ועוד לכתוב מה אני אוהבת ועוד לא התחלתי עם בנותיי ואימי וג'וזף והאחיות כהן bien sur.

אני משתדלת לאהוב את עצמי, כולל את נטייתי להתרתח מדברים.

למשל מרתיח אותי כשמשתמשים סתם במילים, למשל במילה אהבה.

<<englink [[Love]]>>


[img[pictures/ahal-eden.jpg]]

!!![[תומר]]:

אהל היפה היא [[אהל עדן היפה|https://www.instagram.com/ahaleden/]] שגורה ציירה אותה בתמונה מהגב דווקא כי מי יכולה להיות עם [[הז'קט המושלם|https://en.wikipedia.org/wiki/Enter_the_Ninja]] באולם [[עוזי פרס ז"ל|https://he.wikipedia.org/wiki/%D7%A2%D7%95%D7%96%D7%99_%D7%A4%D7%A8%D7%A1]], ולך תדע איזה דבר הכי שיש היא תעשה אחר כך - לפחות נתקלתי בה [[בכולי עלמא|כולי עלמא]] בהופעה של [[ג'אז|Jazz]], שהסתבר שהן משפחה, והיה לי העונג להתוודע אליה. אני קצת מאוהב, ואני חושב שהיא בהחלט אחת יחידה והכרחית כאן בגטו ולגטו שלנו המחייך.




<<englink [[Beautiful Ahal]]>>

[img[pictures/aharon-achi.jpg]] 

נכון שאחי אהרון הפקיר לא פעם את עמדת השמירה עלי - אחותו הצעירה והיתומה מאם - בנחלה האכזרית, אך הוא גבר מתוק שיצא מהארון בגיל 60, וכמו שאומרים, מוטב מאוחר מלעולם לא. 

<<englink [[My whole brother Aharon]]>>
[img[pictures/odelia.jpg]]

!!![[גורה]]:

אודליה היא אחות קיי שסוחרת באמנות. לבושה בשיא הסטייל, יודעת טאנטרה, חתיכה לאללה, לא מקומית, משיגה כל מה שהיא רוצה, רווקה, צעירה מהאחרות. 

<<englink [[Odelia]]>>
[img[pictures/eva-veyoyo.jpg]]

''או בשמה המלא, אווה כהן.''

!!![[גורה]]:

מצחיק, אבל כשיויו התחיל לדבר עם אווה אצל [[פועה]], הוא לא שם לב ששמה אווה כהן, ממש כשם הקונדיטורית ההונגריה שהמציא לעצמו שהוא.

אם כן, יש שתי אווה כהן, אחת אמיתית ואחת בדויה - למי התכוונתם?

[[זו האווה|אווה כהן]] האמיתית, אווה כהן.

כאן זו אווה, האם והאחות של האחיות כהן, יויו אחי היקר והאהוב שמבוגר ממני בעשר שנים, שבימיו הקשים ניחם עצמו [[בשני אחים זכרים|איתן וג'ואל כהן]] בימאים, שהסבו לו הנאה אדירה. 

זה היה בימים שאחרי [[אלה|כוכב המשאלות 04]], בהם החל להאמין באלוהים. הוא חשב על יצירה ועל קבוצת יצירה.

הוא ראה עצמו כאווה כהן, קונדיטורית הונגריה ועסיסית. לא [[פפינלית|פפינה]] חלילה, כי אם חושנית ויצירתית כמעיין נובע.


 
<<englink [[Eva]]>>
[img[pictures/eva-coen.jpg]]


!!![[גורה]]:


מכל האנשים שהגיעו אלינו, הסיפור עם אווה הוא המוזר ביותר ולא בגללה, כי אם בגלל שיויו, שבאותה תקופה גר בשוק הפשפשים ביפו, ונהג לשתות קפה אצל [[פועה]], פשוט פנה יום אחד אל אווה, שהייתה קונדיטורית שם, [[ושאל אותה אם הוא יכול לדבר איתה|הסיפור על גורה]] תוך כמה דקות מרגע תחילת פגישתם הראשונה הוא [[סיפר|סיפורים שסיפרתי לנורמה]] לה עלי ועליו, כפי שמסופר בסיפור הראשון ב"אגב בתוך אגב". 

אווה היא אישה בת 51 כמעט, ילידת 1966, יש לה בת בת כמעט 21 ששמה [[איריס|איריס הבת]], ובארוחת כריסמס של לפני שנה כמעט, היא נפגשה עם [[ד"ר פיליפ לומבר|פיליפ]], הפסיכיאטר שלי, אותו אהבה מאז הייתה בת עשרים ומשהו והוא אותה.


אני מאז אותה הארוחה, איבדתי את דןדן, אבל לא זה המקום לדבר על זה, ואני כבר יותר טוב.

קצרה היריעה מלספר על אווה, מה גם שהיא עצמה כתבה לא מעט בגנזך.

לאחרונה אירי, אווה ואני עובדות יחד על [[אימא, סבתא ואני]], סיפורים מאת דנה הבובה, על [[חייה עם איריס|כשהם ישנים]], ביתה של אווה ואווה.

<<englink [[Eva Cohen]]>>
[img[pictures/hasipoor-1.jpg]]



את [[יויו]] הכרתי כשעבדתי בקפה של [[פועה]] ביפו. הייתי באה לאפות שם כמה פעמים בשבוע, והוא היה מגיע מדי ערב, שותה אספרסו והולך, או נשאר לקרוא ספר. משהו בפנים שלו סקרן אותי, וכששאלתי את יניב, הוא אמר לי שיויו מתגורר ברחוב הראשי של השוק ושאין לו מושג מה שמו ושהוא בקושי מדבר.
אך כך קרה, יום אחד יויו צץ מולי במטבח ושאל אם נוכל לדבר, ומאז החל לספר לי את סיפור חייו:

בערב שבו נולדה [[גורה]], אחותי החדשה החמישית, הייתה שמחה גדולה בבית. כל השכנים הגיעו מחייכים לברך אותנו. אבא ונדיה אירחו את כולם, הטלפון לא פסק מלצלצל, וריח של קפה מילא את הבית. אני חושב שלפחות חמש עשרה שנים נוספות אחר כך עדיין חייתי בהכחשה מוחלטת לדברים שקרו בילדותי, מתגלגל ומסתובב במעגל שזכוכיותיו הלכו והתעבו והקשו את הראייה. בעדן נראו הדברים עכורים וכמו אדם שמגלה שלא ראה רק אחרי ששם משקפיים, כמו אדם שלא ידע שלא שמע טוב עד שקיבל מכשיר שמיעה, כך אני הייתי. היו רגעים רבים שהמחשבות זעזעו אותי וכעסתי ללא סוף. המחשבות התישו אותי. 

לפתע צלצל הנייד שלו.
זה מספר של חו"ל, אני חושב שזו גורה. בשנה האחרונה חייתה גורה בפריז. 

הוא ענה לשיחה, זו אכן הייתה גורה. הוא הקשיב לה והנהן בראשו. מעברו האחר והרחוק של הטלפון נשמעו קולות רמים. הוא הביט בי וסימן באצבעותיו שאמתין לו. פניו נמלאו דאגה. הוא יצא החוצה וחזר אחרי כמה דקות. הוא נראה שבור, זוחל לעברי.
אולי תיסעי איתי לפריז? 
מה?
מסכנה שלי, נראה שלא תהיה לי ברירה אלא לנסוע אליה מהר ככל האפשר. אני מתלבט, ניסיתי לשכנע אותה שתבוא לכאן, אבל היא מפחדת, היא לא רוצה לצאת מהבית שלה.

יויו הלך ואני נשארתי. 
בבוקר חיכה לי מייל ממנו:

היי מותק,
כשיצאתי ממך הלילה, [[נדיה]] התקשרה מבוהלת ואמרה לי שאני חייב לבוא לפריז, שגורה מפחידה אותה. הצלחתי לארגן כרטיס טיסה ואני יוצא בקרוב מהבית לנמל התעופה, אני ממריא בשבע בבוקר. אני מודה לך ממעמקים על השבועיים האחרונים, אכתוב לך שוב ברגע שאוכל.
אני אוהב אותך, אני דואג ואני שולח לך בינתיים סיפור שכתבה גורה לפני כמה חודשים, אחרי שהגיעה לפריז,
כדי שתראי מה מתוקה היא.
שלך,
יויו

הוא כתב לי שוב רק אחרי שבוע.




<<englink [[Eva narrates 01]]>>
[img[pictures/hasipoor-2.jpg]]


היי יקרה,
חושב עלייך הרבה ויש לי הרבה מאוד לספר לך. אתחיל לכתוב ואראה כמה כוח יהיה לי. אני לא עייף בגוף, אבל אני עייף ממילים. רבות מהן הוחלפו כאן בימים האחרונים, ביני ובין [[נדיה]] בעיקר, וזה לא היה בהכרח נעים. גורה מרגישה טוב יותר, נראה כי בעיקר בזכות כדורי ההרגעה שקיבלה. לקחנו אותה [[לפסיכיאטר מקומי|פיליפ]] שהמטפל הצרפתי שלה המליץ עליו. בתחילה נפגשתי איתו לבד. סיפרתי לו על המצב של גורה ועל כך שאנו חסרי אונים, ושכמו שאני מבין, צריך משהו שירגיע אותה. נדרש זמן לשכנע את נדיה, שבכל מקרה לא הסכימה שנקבל שום החלטה ללא אישור ההורים שלנו: "הם אלה שמממנים את הכול בסופו של דבר", היא אמרה בענייניות. לא סבלתי את הצדקנות שלה, שהייתה מהולה גם בלא מעט מרירות. דיברנו עם אבא והוא ביקש שנחליט לבד, שאין לו מושג יותר מה לעשות. הפסיכיאטר ראיין את גורה ארוכות, כולל שאלות הנוגעות [[לצריכת הסמים|החיים נועדו למי שלא יכול להתמודד עם סמים]] שלה. הסתבר שבחודשיים האחרונים היא לקחה לא מעט, שלא לומר הרבה, כימיקלים בפורמטים שונים ובהרכבים כאלה ואחרים. הייתי די מופתע, האמת. היא הייתה מחויכת. הפסיכיאטר גם חייך אבל מיד הרצין ולא נתן לגורה לחשוב שזה מגניב. הוא אמר לי שאני אצטרך לפקוח עליה עין, וגם לה אמר אותו דבר. הוא נתן לה כדורי הרגעה טבעיים ודי חזקים, שיש בהם אחוז לא מבוטל של THC לצד תמציות של צמחים שונים. הוא נתן לה מרשם לארבעה כדורים, אמר שנתחיל ברבע כדור ונראה מה זה עושה לה, ושבכל מקרה נבוא אליו שוב בעוד יומיים. גם אני לקחתי רבע כדור כדי לראות מה הסיפור. היה גדול. השבעתי אותה לא לספר לנדיה שגם אני לקחתי. נדיה הכינה ארוחת ערב, וגורה ואני ישבנו מול הטלוויזיה. אחרי ארבעים דקות שמעתי את גורה לוחשת: "יויו... יויו...".  עיניה היו פוזלות, שפתיה היו שלוחות קדימה סגורות ומתוחות לרוחב פניה. היא עשתה את פרצוף דונלד דאק שלה שהורג אותי מצחוק. היא חייכה אליי. לא ידעתי אם לצחוק או לבכות. היא סימנה לי עם אצבעה לשתוק. אני בהלם מהבחורה הזו, שרק הגיעה לצרפת והספיקה בתוך פחות משנה להתחיל לימודים, להתאהב, להינטש, ללכת לטיפול, להתמוטט, ואף לעבוד עד לאותה התמוטטות. בכל אופן, כרגע ההתלבטות היא אם להשפיע על גורה לחזור איתנו לארץ לזמן מה. נדיה חושבת שגורה צריכה לחזור ולסיים עם כל השטות הזו של פריז. אני חושב שצריך לעודד אותה כרגע ולא לגרום לה להחליט החלטות. יש לי המון ויכוחים עם נדיה, היא מתבררת כבלתי נסבלת. כבר מזמן לא הייתי איתה בכזה קשר אינטנסיבי, בערך מאז התגייסה לצבא כשהייתי בן עשר. בכל אופן, נדיה הכינה סלט, היו גבינות צרפתיות מכל מיני סוגים, לחם וחמאה, ואל תגלי, גם פטה כבד אווז. אני יודע שזה לא יפה לפטם אווזים, אבל התחשק לנו קצת. נדיה הכינה גם איזה מאפה ירקות ופירורי לחם שגורה אוהבת ושבזכותו התעכבה הארוחה. לפני שקמנו לאכול לחשה לי גורה באוזן שהיא מבקשת שלא אגלה לנדיה שהיא מתה להתפקע מצחוק, כי כמו שהיא מכירה את נדיה, היא תגיד לה לא לקחת יותר מהכדורים הכיפיים האלה. עוד לא הצלחתי להשתחרר מההפתעה. פתחנו בקבוק יין והתיישבנו לאכול. גורה לא הייתה יכולה להפסיק לחייך, נדיה הסתכלה עליה: "את מחייכת, גורה, את מחייכת". היא קמה לחבק ולנשק אותה. גם אני לא פסקתי מלחייך. זה היה סוטול מטורף, אווה. נדיה תפסה פטפטת בלתי פוסקת וגורה ואני ישבנו שנינו מביטים זה על זו וזו על זה ועל נדיה, חייכנו כמו שני דבילים והיא מדברת. מאפה הירקות היה טעים. מסתבר שגורה הכירה את המנה הזו של נדיה ואהבה אותה. הכול היה טעים, החמאנו לנדיה שוב ושוב אחרי כל ביס. כדור הפלאים השפיע כל כך, עד שהיה נראה לי כאילו אני לועס כל ביס במשך שעה. הטעמים התפזרו לי בפה ולא היה אפשר להפסיק לאכול. בסביבות תשע צלצל הטלפון. נדיה קמה לענות והסתגרה בחדר האמבטיה. גורה ואני ניצלנו מיד את ההזדמנות והתחלנו לצחוק. 
"דברי כבר, יא נודניקית", אמרתי לה.
"אחרי שנדיה תלך לישון אדבר איתך, אין לי כוח אליה עכשיו".
"אני חוזרת בעוד ארבעה ימים", שמענו את נדיה צועקת פתאום בקול עצום, היא ממש צרחה. גורה ואני נבהלנו. גורה התחפרה בתוך עצמה, גם אני קפאתי.
"אני סוגרת עכשיו את הטלפון", המשיכה נדיה לצרוח, "תסתדרו ביניכם, דברו איתי מחר, אני עייפה והולכת לישון. שמעתם אותי?!".
שמענו את הטלפון נטרק, שמענו את זרם המים בחדר האמבטיה, נדיה יצאה אלינו עם עיניים אדומות. "תסדרו כאן, בסדר? אני הולכת לישון, מצטערת".
לשאלתך, אגב, גורה מתגוררת בדירה נחמדה וקטנה שחשוב לציין שהיא בקומה חמישית בלי מעלית. יש בה חדר שינה וסלון קטן, דו פיאס, כמו שגורה אומרת בצרפתית. בערך חמישים מטרים רבועים, על הרצפה יש PVC בכל מיני צבעים, הכניסה צרה, מימין יש דוש(מקלחת) ומשמאל שירותים, ממול, אחרי צעד וחצי קטנים (שזה כמו כף שטוחה), מגיעים לחדר רחב וקצר שגורה עשתה ממנו פינת טלוויזיה-סלון. ממול בצד שמאל יש דלת לחדר שינה ובו חלון לחצר פנימית. גם בסלון יש חלון לאותה חצר. מימין ישנה כניסה למטבח ארוך וצר, ומשטח העבודה נמצא משמאל, משונה אבל מתוק. גורה מצאה קוביות עץ ליד מרכזיית הטלפונים שמול דירתה והפכה אותם למדפים. על ה-PVC פרוש שטיח ועליו מזרן. האישה מהמסעדה של הקוסקוס, ז'נבייב שמה, זו שמוזכרת בסיפור של גורה ששלחתי לך, נתנה לה כל מיני בדים צבעוניים. גורה ארגנה יפה את הדירה. מול המיטה היא הציבה שולחן רחב ועליו המחשב הנישא שממנו אני כותב לך ממש ברגעים אלה.
"שני במיטה שלי, נדיה, יויו ואני נישן כאן בסלון", אמרה פתאום גורה.
"את ממש כמו הילד שלא דיבר עד גיל שש ואז בארוחת ערב ביקש את הסוכר, וכששאלו אותו למה לא דיבר עד עכשיו, אמר שלא היה לו מה להגיד", אמרה נדיה וחייכה, אבל החלה לדמוע שוב. לא יכולתי לחבק אותה כי כעסתי עליה, היא לא הייתה כזו חמודה.
"לילה טוב", "לילה טוב", "לילה טוב", אמרנו כולנו. נדיה הלכה לישון. גורה ואני קמנו יחד כמו חיילים טובים מהכיסאות, פינינו את השולחן, שטפנו כלים ואפילו טאטאנו את הבית. הכנו קפה והתיישבנו. גורה הציעה שנצא לטייל. יצאנו מהבית, הסתובבנו בשכונה שלה ודיברנו. היה לילה יפה בבסטיליה.
אוחח, אווה, ברגע שאת מתפנה, אני מזמין אותך לפריז, תענוגות החיים.
"אין לך מושג על נדיה, יויו", אמרה גורה. "אתה הלכת מהבית ואתה לא יודע כלום על מה שהיה".
"אף פעם לא חיבבתי את הרוני הזה", אמרתי.
"שמע, הוא זבל אמיתי והוא מחזיק את נדיה קצר, אבל גם לנדיה לא חסר, אם כי לא באותה צורה כמו לרוני. הוא יורד עליה רצח וקנאי לה ולא נותן לה לנשום. היא ממורמרת ונהייתה מזה גם קצת רעה. היא גם קיבלה חלק מהטירופים של [[אמא|דינה זכרה לברכה]], כלומר היא חוטפת התקפי זעם וצורחת, ומתנשאת כמו [[אבא|אבא יואל]], ובכל הימים שהייתה כאן, ושנראו לי כמו נצח כי כל היום היא הסתובבה ונאמה לי נאומים אינסופיים, ואמרה לי מה לאכול, היא כאילו ניסתה להיות עדינה, אבל היא לא מסוגלת, ואז היו לה את הטלפונים האינסופיים האלה מרוני והבנות. לא נראה לו שהיא כאן".
"דווקא הייתה בה עדינות פעם, כשהיא הייתה נערה. כשנולדת, היא הייתה כבר בת עשרים ואני חושב שאז, בצבא, קרה לה משהו. אולי היא החליטה החלטות פנימיות, אני לא יודע, אבל עם הזמן ועם החיים עם רוני נראה שהשתנתה".
"היא לא השתנתה ולא בנעליים, אולי פשוט לא שמת לב, אבל [[K SISTER|האחיות K]] נשארת K SISTER  אחי היקר".
צחקנו, חיבקתי אותה, היא עשתה לי פרצופים, עשיתי לה בחזרה, החזקנו ידיים.
"אני כבר הבנתי שנעלמתי לכם, לך [[ולגיגי|גיגי]], אבל דעי לך, וזה לא תירוץ או ניסיון לנקות את עצמי מאשם, לי קרה אותו דבר כשנדיה התגייסה. כלומר אני מבין אותך, אבל ההבדל היחיד הוא שהיא מיד נישאה ונכנסה לכל המערכת הזו שאני לא רוצה לחשוב עליה, ויותר מזה, ילדה ארבעה ילדים ופיתחה קריירה וכל הכבוד לה, אך ההליכה בדרך המובנת מאליה הפכה אישה כועסת. אני בהתחלה סתם עשיתי שטויות והתאהבתי בנשים הלא נכונות, ונכון שנמאס לי מהבית הזה, שמחייב אותך כל הזמן להיות מגויס לתפקיד חיפוי על המפקד הלא מתפקד, כלומר הלא מתפקדת", אמרתי.
היא התחילה לבכות נורא, גורה המתוקה שלי. התיישבנו על ספסל בכיכר. מסביבנו נסעו מכוניות צרפתיות שבתוכן אנשים צרפתים:
"שמעי מתוקה, הגעתי לכאן בזכות סבלך, אני מבקש סליחה ואני כולי שלך מעתה ועד עולם, דברי איתי תמיד. אבל תראי את  מה שקורה עכשיו כמו סצנה בסרט, ויום אחד ניסע שנינו שוב לפריז כדי לצלם אותה, רק שאז נבוא בתור הבמאים".
גורה צחקה רק לרגע בתוך הבכי המתמשך. 
"אולי נלך להוריד איזה אספרסו, יפה שלי? את יפה, חמודה שלי, קצת רזה, אבל יפה-יפה, ועצובה-עצובה, ואני אוהב אותך כל כך".
התחבקנו והיא נרגעה מעט בתוך ידיי. היא קמה ולקחה את כף ידי, ובקול חלש מבכי אמרה: "יאללה, קפה".
עוד שתינו קפה ועישנו סיגריות. השפעת הכדור ירדה לאטה. ראיתי איך היא צונחת מולי. אמרתי לגורה שנישן הלילה יחד ואני אחבק אותה, ואם בבוקר היא לא תרגיש טוב, ניקח עוד חתיכת כדור.
"את חושבת שהגל הגדול עבר? את יכולה להמשיך?".
"אני לא יודעת".                                                                                                    "תגידי, ומה העניין הזה שאבא מתנשא?".                                                             "אין לי כוח יותר לדבר עליהם, יויו".
הלכנו לכיוון הבית, היה כבר אחרי חצות. פתחנו את הדלת בשקט, אך נדיה חיכתה לנו. מיד כשנכנסנו, היא הנמיכה את הווליום בטלוויזיה.
"אני צריכה להקדים את החזרה שלי לארץ, רוני והללי רבים כל הזמן. אני אראה להללי מה זה כשאגיע לשם, היא מתחצפת אליו. אני בחיים לא יכולה לעזוב אותם בלי שיקום קול צעקה".
"מה את מאשימה את הללי", צרחה פתאום גורה. "את לא רואה שבעלך היקר לא מסוגל לסבול שאת יוצאת מהבית לחמש דקות כי אין מי שישרת אותו? תגידי! וגם אוי ואבוי אם תיהני בטעות". פתאום התחילה גורה לצרוח כמו משוגעת. נדיה פשוט שתקה. אמנם  התרוממה והיה נדמה לרגע שהיא מתכוונת לצרוח על גורה בחזרה, אך חזרה בה ככל הנראה, התיישבה, הביטה על הרצפה ושתקה.
"מה, את חושבת שאת טובה יותר מאבא, תגידי? שגונן על האימא הדפוקה שלנו כל החיים? האימא שהייתה רודה בנו וצורחת עלינו ולא מדברת איתי ועם גיגי ימים שלמים אחרי שאתם עזבתם את הבית. אני זו שנשארתי איתה! מה אתם מבינים, שני הומואים מניאקים שכמותכם!".
גורה צרחה והשתוללה, היא לא יכלה להפסיק, רקעה ברגליים, נשכבה על הרצפה והתחילה לבכות. נשכבתי לידה על הרצפה וחיבקתי אותה, היא נרגעה לאט-לאט ולבסוף נרדמה על הרצפה. נדיה ואני הרמנו אותה והשכבנו אותה במיטה.
"אני אישן לידה ואת תישני בסלון, טוב?", אמרתי.
"טוב, אבל אני רוצה לדבר איתך קצת לפני שתלך לישון לידה".
הכנתי קפה לשנינו והתיישבתי לידה. היא שמרה על מרחק ממני. קשה האישה הזו, חשבתי, גם בשיא סבלה היא לא מתרככת. הייתי גם צריך להיזהר איתה עם הסיגריות, נזהרתי לא להגזים עם העישון כי היא העירה כל הזמן.
"תשמע, אני חייבת לנסוע. אני אנסה להשיג כרטיס טיסה בבוקר כי אין לי כוח עכשיו לטלפונים. האבסורד הוא שרוני צריך לנסוע לשבוע בעוד שלושה ימים, אבל לא משנה. מצד שני גם איתך אני לא רגועה, וסלח לי שאני ישרה איתך, אבל אני לא לגמרי סומכת עליך. מפחדת שתעשו כאן חוכא ואיטלולא מכל הבית שגדלתם בו".
"מה זאת אומרת?", עלה לי הדם לראש.
"זאת אומרת שאני לא אוהבת את כדורי ההרגעה שגורה קיבלה, ולא נראה לי שיש לה בעיה. נראה לי שהיא עשתה הצגה כדי לקבל תשומת לב. היה לי ברור שהיא לא תחזיק מעמד בפריז. היא אף פעם לא מחזיקה מעמד. אתה יודע כמה בעיות היו איתה בצבא?".
"תעשי לי טובה, אני לא מוכן לשמוע את זה. גורה היא אישה צעירה בתחילת דרכה. היא זו שהייתה צריכה לחיות עם המחלה של אימא יותר מכולנו, ובשלבים הכי קשים שלה, ואז גם אבא כבר הפך טרחן לא קטן ורטנוני כמוה". 

"אבא הוא מלאך, שתדע לך, ואמא... היא לא יכלה לשלוט בזה".
"מה לא יכלה? היא יכלה ללכת לקבל טיפול בזמן ולא לגמור את כולנו, כולל את סבא וסבתא המסכנים".
"מה אתה מבין? אתה חושב שאתה יודע הכול הכי טוב, כאילו שהחיים שלך כאלה מוצלחים, כאילו שאתה יודע משהו על סבא וסבתא".
"מה אני מבין?! מה את מבינה?! אני לא רוצה לדבר איתך יותר! שלא תעזי לדבר אליי בטונים האלה!". בטח העצירות שלך יותר טובה!".
"אתה תדבר איתי עכשיו! לא מעניין אותי מה אתה רוצה ומה לא!".
"אין לך גבולות, את בדיוק כמו אימא. למה באת הנה - כדי לעזור או כדי לברוח מבעלך או כדי לשלוט בכולם ולחשוב שאת יכולה לעשות כל מה שבא לך בתחפושת של מלאך מושיע?".
"אני לא נוסעת מכאן כי אני לא סומכת עליך, שתדע!".
"ועוד איך את נוסעת מכאן! אני לא אספר לך עכשיו את מה שגורה סיפרה עלייך קודם. לגבייך! אם את חושבת שאת כזו מוצלחת ורגישה, אז רק שתדעי שאת טרוריסטית כמו בעלך וכמו כולם, וכמו אבא ששיחק לנו אותה מלאך אבל בתכלס היה פחדן ונשאר פחדן שפוחד פחד מוות מאימא עד היום ומאפשר לה להשליט טרור, ואולי כבר נפסיק את השיחה הזו כדי שגורה לא תתעורר".
שתקנו שנינו, שנאתי אותה, רתחתי מזעם.
"הפכת פסיכולוגיסטי אני רואה!".
"אל תתחילי איתי נדיה, זה ייגמר בבכי".
הלכתי למיטה, חיבקתי את גורה וניסיתי לקרוא את הספר שהיה מונח ליד מיטתה, "אינני שטילר" של מקס פריש. אני מת על הספר הזה, הבאתי אותו לגורה, אבל לא יכולתי לקרוא, עיניי היו כבדות, המחשבות היו מעיקות. הספר צנח מידי והתעוררתי. הנחתי אותו בצד, חיבקתי את גורה ששכבה על הגב, נישקתי את עור הלחי הרך שלה. היא ישנה כמו מלאך קטן, דמעות עלו בעיניי ונרדמתי מייבב.
התעוררתי באחת עשרה וחצי. והרגשתי נקישה על ברכי. גורה עמדה מולי ערה. "אני רוצה כדור כזה", אמרה. חייכתי אליה, "לאט-לאט מתוקה, בואי נלך לראות מה עם הבכורה". קמנו שנינו, נדיה  הייתה רחוצה ולבושה, המזוודה שלה עמדה ליד הדלת. היא נראתה כמו דיילת לפני משמרת, עם חצאית צרה כחולה המגיעה עד מעל לברכיים, חולצת כפתורים כחולה בתוך החצאית, על צווארה מטפחת רכה צבעונית קשורה בגוונים של חרדל ירוק ובז' בהיר-בהיר, סולידית כדבעי. היא ענדה את עגילי הזהב היפים של סבתא, המשובצים באבנים אדומות, ועמדה זקופה וחמורת סבר:
"כתבתי לכם פתק עם כל פרטי הטיסה שלי, עם כל מה שקורה בבית. יש לי טיסה בשתיים ואני כבר יוצאת כי אני צריכה לקנות כמה דברים בדיוטי פרי. אני מאוד מבקשת מכם להתאפק ולא לעשות מעשים חסרי טעם ותועלת ולחשוב קדימה. גורה, אני חושבת שאת צריכה לחזור ארצה, את לא בנויה לחיות רחוק, את לא עצמאית".
גופה של גורה התכונן להתקפה. החזקתי אותה מלפוצץ את נדיה.
"נסיעה טובה נדיה".
"את כנראה לא יכולה לשלוט בכולם", גורה לא התאפקה. פיה של נדיה התכווץ בזעם, מחזיק את עצמו, נמנע מלסנן מילים בחזרה.
"אני נוסעת, את יכולה להגיד תודה וגמרנו גורה יקרה, כולכם אותו דבר, אגואיסטים".
"לא הוזמנת!".
"אני מציע שנעצור כאן", אמרתי. אני, לצערי, נאלצתי ללמוד שברגעים אלה אין טובה מהשתיקה אֵם כל המילים. "נדיה, אני מקווה שהכול יסתדר, נעשה כמיטב יכולתנו, תודה על הכול".
"טוב. שמרו על עצמכם, כבר הזמנתי מונית ואני צריכה לרדת".
התחבקנו ונפרדנו לשלום. מיד אחר כך כשהיא הלכה סיננה גורה אינספור קללות. היסיתי אותה. "יאללה-יאללה, גם כן אתה יצאת צדיק", אומרת לי הגורה.
"כדור?".
"כדור!".
[img[pictures/hasipoor-3.jpg]]


באותו יום לקח כל אחד מאיתנו כדור אחד ארבע פעמים - בבוקר, בצהריים, באחר הצהריים ובלילה. השארנו תחמושת עד לפעם הבאה שנלך לפסיכיאטר. בערב יצאנו לבר שבבניין של גורה, ZEBRA BAR. היו שם טיפוסים מגניבים.
"ראית מה זה? אני חיה ליד האלטרנטיבה ולא מנצלת אותה, רק שוכבת במיטה ושקועה בחרדות".
שתינו טקילה. אמרתי לגורה שאני מרשה לה דרינק אחד ושגם אני אשתה רק אחד, כי אני בכל זאת צריך לגלות מעט אחריות. היא דווקא הבינה אך ברגע האמת קרצה לי אלף קריצות. שתינו עוד. יצאנו מהבר והחלטנו ללכת ברגל קצת. הלכנו לכיוון גאר דה אוסטרליץ, נכנסנו להסתכל על התחנה. היא סיפרה לי שמכאן הייתה נוסעת לבקר את [[אלפרד]], החבר הספרדי שלמד איתה בבית הספר, ושיש לה סנטימנטים למקום הזה. היא לומדת במסלול רב-תחומי של אומניות הבמה. או איך שקוראים לזה. היא לא הייתה בטוחה מה היא רוצה ללמוד אז נרשמה לקורסים שונים. מדובר במסלול של שנתיים, לא אינטנסיבי מדי, עם אפשרות לשנה שלישית, משהו חביב ביותר.
"קשה לי לבוא לכאן ולא להיזכר בכמה מהרגעים הטובים שלי איתו. הוא היה כזה מקסים. כל ההתחלה בינינו הייתה הכי כיף בעולם, אך משלב מסוים הוא התחיל להתעייף מהאינטנסיביות של היחסים בינינו. הייתי מתקשרת אליו והוא היה כועס על כך שהתקשרתי. נפגעתי ממנו. הייתי נכנסת בו על זה שהוא לא רצה להיות איתי. הוא זרק אותי בלי לרצות לראות אותי שנייה אחר כך, הוא הפסיק ללמוד בקורס הקולנוע שלמדנו יחד. הקורס קולנוע הכל כך מקסים ואלפרד עשה פייד לשחור מוחלט".
שיואו אווה, אני קולט פתאום שכבר כתבתי לך מכתב באורך חוברת הנצחה, אבל בכל זאת אמשיך עוד קצת. דלגי על מה שאין לך כוח לקרוא. את כעת היומן שלי, הבלוג שלי. אנא שמרי את המכתבים ממני, חה. (יום יבוא וכל זה...).

גורה רצתה שנלך לשתות עוד דרינק אחד כי היה לה קשה להתמודד עם זיכרונות הפרידה הטריים מאלפרד. אמרתי לה שעדיף לקחת עוד רבע כדור בבית מאשר לשתות. שאני מפחד. מצב רוחה ירד כהרף עין לתחתיות. הייתי צריך לגרד אותה מהכביש כדי שתזוז. קניתי מים והתיישבנו על ספסל לא רחוק מהבית. ברגע שהתיישבנו, היא החלה להתייפח שוב.
"יויו, כמה כעסתי עליך שהלכת ממני. בטיפולים דיברתי על זה המון".
"איך הגעת למטפל?".
"דרך מורה שלי בבית ספר, אישה גדולה. היא קלטה אותי והציעה לי לנסות. אבא ואמא ידעו שאני הולכת לטיפול. הם לא הסכימו בהתחלה".
"אין עלייך מותק, תגידי הכול".
"הלכת והשארת את גיגי ואותי עם האמא הזאתי, שבשעה טובה לפני שנתיים הבינו שאין ברירה ושיש להודות בכך שהיא צריכה כדורים, ומאז היא נהייתה עוד יותר עציץ אבל לפחות היא לא משתוללת". גורה המשיכה לדבר ואני התחלתי לבכות. ישבנו וייבבנו עד שנגמר הבכי. 
"טוב, די", היא אמרה, המתוקה. בקול מלא דמעות וצחוק.
למחרת הלכנו לפסיכיאטר. אמרתי לגורה שאני בעד כנות. ראשית ניתן לו לדבר ואז כבר נראה, ובכל מקרה קבענו שנתייעץ בינינו לפני שניתן כל תשובה שהיא. הגענו לקליניקה המכובדת של הדוקטור [[פיליפ לומבר|פיליפ]], שאת ראשו עיטרו שערות לבנות רבות וארוכות. עורו היה מעט שחום, ועיניו היו בצבע ירוק חום. הוא הביט בנו במבט של פסיכיאטרים חומלים עד סוף העולם וחזרה. הוא הביט אל שנינו מחייך, שאל לשלומנו ואחר כך שאל את גורה כל מיני שאלות. לראשונה שמעתי למה הוזעקתי לפריז. היה לגורה איזה התקף חרדה, הוא כנראה לא היה ממש רציני, אבל היא נבהלה ודיברה על כך עם אבא והוא נלחץ. אחר כך היא פשוט בכתה ללא הרף וסבתא הודיעה שמישהו מוכרח לנסוע אליה. אחר כך היא עשתה ת'מוות לנדיה, לא דיברה ולא אכלה ולא יצאה מהמיטה. נדיה כנראה לא יכלה להתמודד איתה ולכן הזעיקו אותי.
הפסיכיאטר שאל את גורה מה היא חושבת על הכדור שנתן לה, והיא אמרה לו שהיא חושבת שכרגע הוא עוזר לה לשרוד את המציאות ולטשטש את מה שהיא לא רוצה לראות, ושהיא הייתה שמחה לקבל עוד ולבוא שוב בשבוע הבא. הגנובה אמרה לו שגם אחיה לא היה מתנגד לכמה כדורים כאלה כדי שיוכל גם הוא להתמודד ביתר קלות עם הטיפול באחותו העצובה. הפסיכיאטר צחק, הוא קלט אותנו, הוא נתן לנו עוד שבעה כדורים. רק דבר אחד הוא ביקש בדחילו ורחימו: שגורה לא תיקח יותר מכדור אחד ליום ושלא תערבב עם אלכוהול. "מצב קשה", אמרה לי גורה בעברית והניעה את ראשה כאדם שמצבו קשה. צחקתי, הדוקטור היה סקרן לדעת על מה הבדיחה שלנו, הוא אמר לנו שאנחנו מוצאים חן בעיניו ושהוא ישמח לראותנו כבר בתחילת השבוע הבא. הוא גם הוסיף שבכדור יש  THCבמינון מבוקר, בגלל הערבוב שלו עם כמה צמחים מרגיעים. הם הצליחו לייצר את התרופה הזו, הוא אמר, היא אחת העדינות ביותר והמהירות ביותר, ושאין צורך ביותר מזה, וכמו שגורה נראית לו, היא הייתה יכולה לשרוד את המשבר גם בלי המשפחה. ובכל זאת,"it is very good that you are here", אמר לי בקולו הנמוך והנעים עם מבטא צרפתי כבד. הוא ביקש שבשלב זה נבקר אצלו אחת לשבוע.
יצאנו ממנו ואצנו הביתה חרמנים לקחת איזה רבע כדור נחמד. מה שהוא לא ידע הוא, שנשאר לנו גם כדור אחד ששמרנו למקרה חירום. הזכרנו זה לזו להיות זהירים, לקחנו את הכדור, נשכבנו על הספות, גורה שמה דיסק של שלום חנוך בהופעה חיה עם משה לוי. "אוהב אותך אחותי", אמרתי לה, "איזה כיף של שירים".
על כל פנים, אנחנו מבלים בנעימים כמו שאת מבינה, הצעתי לגורה שתבוא לביקור בארץ ואז תחזור לכאן עם כוחות מחודשים, ושאולי ניפגש כולנו, וזה יהיה נחמד גם לראות את סבתא. נדיה ואבא חושבים שהיא צריכה לחזור, אימא לא אומרת כלום, רק סבתא מקווה שכולם יישארו שלמים ובריאים. קשה לי להאמין שהיא מאמינה שבתה תבריא אי פעם. הודעתי בעבודה שימצאו לי מחליף לשבוע וחצי הקרובים, כי יש מצב חירום. אורי הסכים להחליף אותי ואין שום בעיה, וכך יצא שאני מבלה עם אחותי בפריז, מבלה ומסתלבט ואף שומר עליה מכל משמר. אני לא מעז להירדם לפניה, ונתתי לה הוראה חמורה להעירני מדי בוקר לאחר שהיא פוקחת את עיניה ומתעשתת, אלא אם כן הקדמתי להתעורר לפניה.
תגידי אוושק'ה, מה שלומך את? קראת רצוף את המכתב? אני מודה לך מקרב לב על שהפכת כותל בשבילי. אשמח לשמוע ממך. מה נשמע בקפה? יניב לא מתגעגע אליי? (את חושבת שלא שמתי לב ששאלת אותו עליי?). ד"ש מגורה, סיפרתי לה עלייך ועל כך שאהבת את הסיפור שלה, והיא שמחה.
נשתמע בקרוב,
אוהב אותך,
יויו 

תמיד עניתי ליויו על כל מייל ומייל. כעבור שבוע בערך הגיעו עוד.

מכתב מה-3.7:

היי אווה, מהר כותב לך, חייב. לפני כמה דקות גורה יצאה מכאן. היא הגיעה עם אלפרד, החבר הספרדי שנטש אותה. מסתבר שעם הצרפתי זה נגמר כמה דקות לאחר שהספרדי צץ פתאום. זה כל מה שהיא אמרה לי כשהגיעה. הוא לא נראה לי הספרדי הזה, וזה לא מצחיק. שום כלום לא מצחיק אותי היום. הם הגיעו קולניים ושפוכים כמו אני לא יודע מה. צוחקים בקולי קולות. בהרגשה המיידית, אני פשוט לא מרוצה ממנו.
שמתי דיסק של דקלה שתומר שלח לי, נכנסתי לאינטרנט, היה לי מכתב מנדיה, עוד נזיפות מהשלטונות. נשכבתי על הספה והמוח שלי רץ. נזכרתי בשיחה עם [[אימא|דינה זכרה לברכה]]. אני כועס עליה רצח, אני מחליט לא לחשוב על זה, ואז אני נזכר באלה שהייתה חברה שלי. סיוטים, אווה. אני חושב על צאלה הבהמה שהייתה אחריה, סלחי לי, שאפילו אלה נראית לידה כמו מלאך. אלה לפחות אהבה אותי. צאלה הזאתי, בשנייה שלא התאמתי לה לתוכנית המקורית, לקחה את רגליה ועפה. מתתי להגיד לה שהיא אשכרה אישה מטומטמת ורדודה ברגשותיה, ותכננתי איך ארד על נדיה במכתב שאכתוב לה. המחשבות רצות ומתערפלות מהאלכוהול ומהשכיבה. אני צף בין כועס לנרדם. הכול מסתחרר לי. העיניים נעצמות. קצת מגעיל לי. רק נרדמתי וקולות צחוק העירו אותי.
"MY BROTHER SLEEPS LIKE A HORSE",
אני שומע קול. העיניים שלי מסרבות להיפתח, אני לוחץ אותן, מהדק עפעף לעפעף כדי שייפתחו. אני שומע צעדים ופוקח את העיניים. גורה מביטה בי, צוחקת בשקט צחוק גדול. בפתח עומד אלפרט, גבוה וכהה, שערו שחור ופרוע, נראה שלא הסתפר בשנה האחרונה. הוא מחייך, העיניים שלו ישר נצנצו לעברי אבל עדיין לא התייחסתי לזה. רק בדיעבד הבנתי שלא ידעתי מה לחשוב על העיניים שלו, אבל באותו רגע התעוררתי, חייכתי אל המתוקה שנראתה ב-HIGH חיוך קלוש, הוא היה קלוש כי טכנית עדיין לא יכולתי למתוח את השרירים, האלכוהול הכביד עליי:
"בא לך לעשן משהו, אחי?".
"שתיתי קודם בזברה בר, אני עוד הלום, אבל איך אפשר לסרב".
"זה אלפרד". ההוא מניד בראשו מהר כמה פעמים ברציפות במחוות נעים לי מאוד לפגוש אותך ומחייך. אני מחייך אליו בחזרה ואומר לגורה:
"את תסבירי לי תכף?".
"תכף, תכף. לך לצחצח שיניים, אני אכין קפה". יש לה תרגולת קפה לזאתי.
הם ישבו כמעט שעתיים וחצי, ואלפרד השאיר לי גראס. זה הצד הטוב של הסוף. אבל אני עצוב-עצוב-עצוב, אווה.
הוא בן שלושים וחמש, הוא נראה טוב מאוד. גבוה למדי, 185 סנטימטרים, אולי קצת פחות, חסון אבל מספיק רזה. הוא לבש חולצת כפתורים ישנה עשויה מכותנה עם פרחים על רקע לבן מעל מכנסי ג'ינס, ונעל סניקרס לבנים עם הדפס של טיןטין מאחור. יענו בסטייל של בגדים יקרים, אבל ישנים. וינטג' זרוק מתוחכם. הוא נורא התפעל כל הזמן מכמה שגורה ואני דומים. הוא היה מאוד סימפתי. בהתחלה לא הצלחתי להסתיר את הסתייגותי ממנו, ביקשתי סליחה, הסברתי שאני מותש מאלכוהול ששתיתי. משהו בפה שלו לא נראה לי. את השפתיים והסנטר לא אהבתי.
הוא צייר, וגרוש. הוא עונד תליון שנקרא מרכבה (של פירמידה משוכללת מחומשת שקשורה לקבלה אולי.) הוא לא יהודי. הוא חיובי ברמות קשות. יש לי צמרמורות. הכול היה בסדר. גורה הכינה לנו קפה. הוא היה מנומס והלך לעזור לה. היא שלחה אותו לגלגל לאח שלה. החומר העיף אותי למרחקים. פטפטנו וצחקנו וגורה סיפרה בהתרגשות איך השאירה את הצרפתי המסכן פעור פה אחרי שבזמן שהם הופיעו במיצג שהם הכינו, אגב, קטע מדליק, יש להם בבית הספר תרגילים שבועיים, לרוב  אישיים. הם מקבלים נושא והם צריכים להשתמש בכל מה שלמדו לתרגיל הזה. אז תלמידי הכיתה של גורה היו צריכים לבצע תרגיל המציג יממה שלמה בשגרת חיי אנשים במקום כלשהו, למשל כפר או בית משוגעים או מנזר, במשך חמש עשרה דקות.
התלמידים הציגו את עבודתם כמדי שבוע מול מנהל בית הספר ועוד כמה מורים. גם אלפרד היה שם כי החליט לחזור ללימודים, אבל גורה לא ידעה על כך. במיצג גורה והצרפתי היו צריכים להיות שתי כובסות שעובדות יחד בחצר המלך (משעשע, לא?). אלפרד ראה אותם מסיימים את הקטע ויוצאים שמחים יחד לשמוע את ביקורת המורים. בזמן שהם התיישבו, הוא פילס דרך לכיוונה של גורה והשתדל להישאר בשדה הראייה שלה. הוא סיפר את זה בהתלהבות. יש לו אנגלית טובה לקקה. אוף, אני לא בסדר. גורה הייתה מאושרת. חלף זמן עד שהיא ראתה אותו. גורה הקשיבה רוב קשב לביקורות של המורים, שנמשכו חצי שעה בערך. אלפרד הסתכל עליה וראה איך היא מתרגשת לשמוע את הנאמר. לאף תלמיד לא היה תפקיד ראשי, אבל גורה ניחנה בנוכחות מיוחדת, ככה הוא אמר, ובזה את תיווכחי כשתראי אותה. אי אפשר לפספס אותה בעיקר אם אתה מכיר אותה. אם אתה לא מעצבן אותה, היא לא מתעצבנת. אלפרד עדין ולא עגב על אחותי לידי ויחד עם זאת, הוא הביט בה והיה נראה מרוצה מהמצב. הוא לא עשה שום דבר לא בסדר חוץ מהעובדה שעזב את גורה, ואז היא התמוטטה ואז הוא צץ שוב, ואת כל ההמשך את כבר יודעת. חוץ מזה הוא נראה כמו מישהו מוצלח. אני לא יודע אם אני טועה או לא. האין זה בעיקר מה שאני כותב לך לאחרונה - שאני לא יודע אם אני טועה או לא? מוזר, אבל בתנועות הוא קצת הזכיר לי את אלה. משהו בהליכה עם בית החזה מובלט קצת החוצה, כאילו הכרבולת של התרנגול עברה קדימה לבית החזה והוא פותח אותה, ואז הכתפיים טיפה משוכות לאחור ונוצרת קשת קטנה בגב. כשאתה מדבר איתו, הוא מתבונן בך במבט חודר ומרוכז בכל מילה שאתה אומר. מרוכז זה כלום, מרותק ממך. כאילו כישפת אותו. אני יודע שיש את החוק הזה של הספק, שאין להאשים אדם לפני שמתבררות כל העובדות עליו, גם לא על היותו דומה לאלה למשל, מתוך כך ששפת גופו מזכירה בכמה ניואנסים את זו שלה. ומותר לבן אדם להתלבט, לא? אני מודה שגם אני התאדיתי לבחורות לא פעם ובעיקר כי לא היה לי אומץ לומר להן שאני מפחד מההיצמדות הזו או שאני לא רוצה אותן, או שפשוט לא בא לי עליהן יותר. אבל יש גם כמה שאני מצטער על כך שנעלמתי להן. היו לי כמה פספוסים גדולים בחיים, שלו הייתי חכם קצת יותר, הייתי יודע כיצד להימנע מהם. אבל זה לא קרה. ובכל זאת הם לעולם זיכרון נעים  גם  אם חיפפו אותי. שלא תטעי כאן בנקודה זו. ובעיקר יש את אלה שהתפספסו כי סתם... רגעים של תקשורת לקויה. בכל מקרה, כשכל המורים סיימו את דבריהם וגורה סובבה את פניה השמחות אל הצרפתי, היא ראתה את אלפרד. ככה בעודה מסובבת את גופה ימינה, הוא מתאר, כי ישבה כולה מסובבת שמאלה לכיוון חבר המורים, כמו שאומרים באה להסתובב אליו ובחצי הדרך של הסיבוב, הרגליים עוד לא הספיקו אבל הראש הלך מהר יותר והעיניים חלפו עליו והגיעו עד לצרפתי. היא כבר הגיבה לחיזיון, כלומר, עצרה ולא חייכה ולא נישקה את הצרפתי, רק גורה הפנתה את ראשה לצרפתי, הסתכלה עליו ישר, את הקטע הזה היא סיפרה ואמרה לו שהיא חוששת שהקשר ביניהם נגמר. הוא בכלל לא הבין מאיפה זה בא לו. היא ממש אמרה לו שהיא מבקשת סליחה. אלפרד וגורה הם אנשים מחונכים. כן. אני שם לב שמרגע לרגע ועוד רגע אני אוהב את אלפרד. אבל את יודעת איך זה, אי אפשר להתכחש לדברים הטובים (וגם לרעים), ואני נהיה פטריארך-מונרך בכל הקשור לגורה. אז בקיצור, ההוא, הצרפתי, נותר עם פה פעור. גורה אמרה לו שהיא מבקשת סליחה אבל היא הולכת עכשיו. היא קמה ויצאה חרישית מהאולם, ניסתה כמה שיותר להצניע את הדרמה המתחוללת. באולם כבר כמעט התחילו להראות את התרגיל של הקבוצה השנייה, כך שהיא יכלה לצאת בעוד מבטי הנוכחים מרוכזים באזור ששימש במה. אלפרד היה בצד הימני של האולם, ממש באלכסון הנגדי לדלת, וברגע שהוא ראה שהיא זזה, הוא זז אחריה. הם רקדו ותמרנו, מרוחקים זה מזו, טנגו מפואר ובלתי נראה עד שיצאו, כך אמרה גורה. הם נפגשו מחוץ לאולם, צעדו זה לצד זו במהירות ובשקט החוצה. גורה הלכה מהר ואלפרד הלך מהר לצדה. ככה הלכו עוד עשרים דקות עד שהתיישבו על ספסל ברחוב. אלפרד סיפר לה על הפחד שאחז בו. הם היו מתים להתנשק. הם גם התנשקו באיזשהו שלב. נטרפו. הוא גר בדירת קרקע קטנה בפרברים, זו שגורה הייתה נוסעת אליה מגר דה אוסטרליץ. אולי מפני שזמן מה לא ישבתי עם אנשים זרים ממש למינגלינג, אני נרגש מכל פרט שאני שומע. כמו שאמרתי לך, הוא השאיר לי חומר ואני כותב כמו שאני חושב. הוא דיבר הרבה על חוויות חוץ גופיות, סיפר על חבר שלו שרוקח חומרים שעושים לך את הטרנזישן הזה. את מבינה איך הצעירים היום מדברים? והוא בגילי!!! ואני בן זונה כי לא חסר לי. הוא מושפע מאוד מהאינדיאנים ומאמין בכוח הריפוי ובדרך החונכות והקיום השמאני. יש לי מצב רוח טוב כרגע. אני כותב לך שמח, מדלג בתוכי, אבל זה ה-,HIGH ויחד איתו שוב הנפילות האלה במצב רוח, מדי איזה זמן כשאני נזכר פתאום בדברים שאיני רוצה להיזכר בהם. מחשבה מובילה למחשבה. אני צונח. מרים את עצמי. ושוב מחשבה מובילה למחשבה וככה שוב ושוב, זה מתיש קצת, אבל אני רוקד בתוכי איך לומר. הזכרתי לגורה את הפגישה אצל הדוקטור ושהיא חייבת להגיע. השבעתי גם את אלפרד. הוא סימן צלב מעל לבו. אני כותב לך ונזכר בעוד רגע ועוד רגע מהפגישה. כשאני כותב לך, אני פתאום מחבב את אלפרד. אבל ברגע הראשון הוא עשה לי רע ובעצם הייתי כל הזמן צריך להשתדל להתעלם מהאנטי נטול הסימוכין כלפיו. אני מבסוט סך הכול. ג'ה שלח לי גאנג'ה. זה נותן לי מנוחה קצת יחסית, אבל אני לא רוצה יחסית. אני רוצה אבסולוטית. לא יחסית לכלום. כל דבר ודבר. כל פרט ופרט שבאופן עצמאי יהיה שלם ומושלם בלי צורך להתייחס לכלום.
שתדעי דבר אחד על בטוח, אווה. אני אוהב לדבר אלייך. בא לי הרבה דיבורים ארוכים איתך.
בין השאר סיפרתי לגורה על שיחת טלפון מאימא ועל הדואר מנדיה ועל הלחץ שהם מפעילים עליי ושאני דואג.
"אני בסדר גמור ושיפסיקו לזיין ת'מוח!!".
אמרתי לה שוב שמה שלא יהיה, אנחנו הולכים לדוקטור מחרתיים ושעד אז בלי בולים.
"שמעת!! בלי בולים!! אמרתי מחייך אבל התכוונתי באמת. ברצינות גורה, ברצינות גמורה".
אני גוסס, אני הולך לישון, זוחל למקלחת, מצחצח שיניים, משתין ונוחת על המיטה נחיתת אונס.
תודה על ההקשבה יקירתי,
ליל מנוחה,
יויו
  



מכתב מה-4.7

 
היי אוושה שושה,
אני ער כבר שעתיים, התעוררתי מחלום שבו אני מחרבן במכנסיים, ממש כך. זה היה חלום ארוך ומורכב, אני לא זוכר את כולו, רק זוכר שמה שיצא ממני למכנסיים היה בחתיכות-חתיכות כמו אוכל לא מעוכל או מעוכל חלקית, ואף היה קצת צבעוני. אבא נזף בי שאני לא שומר על גורה ושאני לא עושה עם עצמי שום דבר ממשי. נדיה שברה לי איזה כלי קרמיקה בבית וגיגי מגיעה ואנחנו רצים יחד יד ביד בין אנשים, חומקים מקהל שעומד בשני צדי דרך. החלום הזה, למרבה הפלא, היה אחרי לילה מהנה במיוחד. לפני חצי שעה צלצל תומר ואמר שיגיע בשמונה בחודש, שזה אומר שנראה את גמר המונדיאל יחד. הוא הבטיח שיביא גרעינים, חה.
הלכתי בלילה לבר שלמטה. ההיא שמוצאת חן בעיניי לא הגיעה, אבל הגיעה מוצאת חן בעיניי אחרת, ומה שיפה הוא שגם אני מצאתי חן בעיניה, כך שאחרי ההכנות שעשיתי לעצמי היה קלי קלות. כשהגעתי, היא כבר הייתה שם. אני לא ראיתי אותה כי כשנכנסתי לבר לא העזתי להביט לשום כיוון. הלכתי ישירות למקומי הקבוע, הזמנתי ושתיתי, לא הזזתי את הראש, רק הצצתי לצדדים וגם את זה עשיתי במיומנות הסתרה של אנשי מוסד. ראיתי בעיני רוחי איך אני תכף אסרוק את השטח, הזמנתי עוד וויסקי והחלטתי שהכי טוב ללכת להשתין. קמתי. בקצה הבר ישבו שלוש בחורות, הן הסתכלו עליי בזמן שהלכתי, נופפו לי בידיהן לשלום. מעדתי קלות. את יודעת... מרוב התרגשות החליקה הרגל הקצרה שלי. כבר סיפרתי לך למה אני צולע? נולדתי ככה! עם רגל אחת קצרה בארבעה סנטימטרים מהאחרת, עם רגלי O. היה לי סד תקופה מסוימת, ניסו ליישר אותי. חשתי מבוכה. חייכתי אליהן והמשכתי לשירותים. השתנתי בקיר, אך הן ארבו לי ביציאתי מהם. סימנו לי לבוא. הדוברת שלהן והראשונה שהציגה את עצמה הייתה ג'אן. היה לה חיוך יפה, שיער קצר שחור מתולתל, וגוף צנום. היא לבשה חצאית לבנה וחולצה צמודה עם תחרות בבז', ונעלה מגפיים צמודים עד לברכיים. מישל, השנייה, קמה וחייכה חיוך גדול כשלחצה לי את היד. היו לה תלתלים ארוכים זהובים, בין ג'ינג'י לבלונד, היא הייתה מלאה קצת, עם חזה גדול, פנים יפות ביופי שקט, אף קצת גדול ושיניים מושלמות. היא נעלה סניקרס ולבשה מכנסיים שצבעם ירוק זית חי שהגיעו עד ברכיה, וחולצת טי צמודה אפורה וגזורה במחשוף. השלישית, דבי, הייתה הולנדית, יפה הרבה פחות מהן, אבל הסימפתית שבהן. היא הייתה גבוהה מאוד, לבשה ג'ינס וגופייה לבנה של גברים ונעלה סנדלים שטוחים של TEVA , כמו אלה שאת רצית, שנראים קצת כמו עכביש על הרגליים. הצגתי את עצמי, ומיד אמרתי להן שאני לא מכאן ושאני דובר עברית ואנגלית קלוקלת למדי, ושכמו שהן בטח ראו, יש לי צליעה קלה כשאני הולך. עדיין רוצות שאשב לידכן? שאלתי אותן.
בטח, ג'אן קפצה ממקומה. סימנתי לברמן, והגאון מיד העביר אליי את הכוס עם הוויסקי שכבר נמס בה הקרח באופן חלקי וטעם הלימון נטמע בתוכו. ערבבתי קצת ולגמתי לגימה גדולה. הכוס נחבטה קצת בחוזקה כשהנחתי אותה על הבר, והן הביטו זו בזו וצחקו. ג'אן עומדת להינשא מחר, הן בנות שלושים ואחת. ג'אן ומישל הן חברות מהאוניברסיטה, מיד אחרי שסיימו תיכון נפגשו בפקולטה למדעים. ג'אן רצתה להיות וטרינרית אבל לא התקבלה ללימודים, ומישל, שהחליטה להיות בן אדם רציני, הלכה למרות נטיותיה האמנותיות ללמוד מקצוע רציני. דבי היא חברה של מישל, שתיהן היו בנות שליחים בארצות הברית כשהיו בחטיבת הביניים. דבי למדה לתואר שני בספרנות. ג'אן ומישל הבינו  לאחר שנת לימודים אחת בפקולטה למדעים שעשו החלטה שגויה. ג'אן החליטה ללמוד ריפוי בעיסוק ועבדה עם ילדים אוטיסטים בחצי משרה, ובחצי משרה נוספת עבדה עם מפגרים קשישים. הבעתי את הערצתי אליה על המקצוע שבחרה וגם אל דבי. מישל למדה דברים מדברים שונים וכעת היא בשנה השלישית מתוך ארבע של לימודי צילום באקדמיה. הן היו חמודות.
שמחתי שעובדת נישואיה הקרבים של ג'אן מקלה עליי את הבחירה, כי באופן טבעי נמשכתי למישל. בטח כבר הבנת שאני אוהב אותן מעט מעוגלות ובעיקר חושניות.
הזמנו ארבעתנו משקה שלישי ורביעי. אני שתיתי וויסקי והן טקילות. באורח פלא דבי וג'אן שקעו בשיחה עמוקה, ומישל ואני דיברנו בקלילות מענגת. השיחה זרמה בנחת, נשענו שנינו על הבר, ראשה של מישל היה מונח עליו, אני נשענתי על זרועי, בחנתי כל נמש ונמש על פניה המתוקות והקשבתי למילותיה. רציתי אותה נורא. דיברנו כשעה בערך, עד שהופיעה ג'אן ואמרה: "טוב, אני מתחתנת מחר, כדאי שאלך לישון, לא?". גם דבי החליטה שכבר מספיק. מישל התעוררה, הביטה בי ובהן ואמרה "אלך איתכן בנות, אני גם צריכה לקום מחר בבוקר".
נפרדנו במילים חמות, והן כבר התחילו ללכת. התעשתי ורצתי לכיוונן: "מישל...", קראתי לה ופסעתי מהר בעקבותיה. נגעתי בכתפה. היא קפצה הסתובבה אליי: "היי, זה אתה".
"כן, זה אני. אוכל להיפגש איתך שוב?".
"אשמח", היא חייכה נרגשת.
שנינו שמחנו מאוד וקבענו להיפגש בעוד יומיים בשעה עשר באותו המקום בדיוק. הלכתי לשלם והתברר לי שהבנות כבר שילמו על המשקאות של כולנו. וואו, זה עוד לא קרה לי. נתתי לברמן טיפ ועליתי הביתה שמח. גורה ואלפרד היו שם, עדיין מצחקקים:
"אחותי?".
"אחי? מה קורה שאתה נשמע כל כך מרוצה?".
"יש לי דייט עם מהממת אחת, בת שלושים ואחת".
"יששש...".
היא מיד סיפרה לאלפרד. אלפרד היה חמוד לאללה. מה אומר לך אווה, אני לא מת על הפה שלו ועל איך שהוא נושא את גופו, אבל הוא איש חמוד. אין לי שום אפשרות לטעון נגדו, אני חוזר בי מדבריי. הם היו חמודים נורא, באו לקחת דברים כי רצו לנסוע למשך הלילה כדי לראות את הירח באיזה יער מחוץ לפריז.
"תגיעי בחזרה לפגישה מחר עם ד"ר לומבר? זה בחמש".
"בטח-בטח, אנחנו רק נוסעים לכמה שעות".
"הייתה הודעה מאבא על המזכירה, הוא רוצה לשמוע מה איתנו", אמרתי לה.
עישנתי איתם ג'וינט. מתנו מצחוק. הסתבר שאלפרד הוא ממש בן אדם מצחיק. הוא השאיר לי פרח והם נסעו להם. רק אחרי שהם יצאו וכבר נעלתי את הדלת, קלטתי כמה אני מסטול. נשכבתי על הספה, העברתי לערוץ רדיו המשדר ג'ז, עצמתי את עיניי ושחזרתי את כל הערב שהיה, את המילים והחיוכים בשיחתי עם מישל, במיוחד החיוכים שלה בסופי המשפטים שלי. אני יודע שמצאתי חן בעיניה, וגם היא בעיניי. שקעתי מחויך לתוך שינה ענוגה. הלילה אשאר בבית. תכף אלך לערוך קניות במכולת של הסיני שפתוחה עשרים וארבע שעות. אהיה מוכן לפנק את גורה ואלפרד כשיבואו מחר אחר הצהריים ואולי גם את מישל, אם נסיים את הלילה פה.
אז את מבינה שאני מבסוט, אוושי.
בקרוב נשתמע שוב.
שלך,
יויו


[img[pictures/hasipoor-4.jpg]]


מכתב מה-4.7.06 קצת לפני חצות:

אווי,
יש לי עשר דקות עד שתגיע מונית לאסוף אותי לבית חולים. אני עוד לא יודע כלום. גורה בבית חולים מחוסרת הכרה, אבל היא חיה, זה מה שאני יודע. אלפרד צלצל קודם, היה מבוהל לגמרי. הוא אמר לי לבוא הכי מהר שאני יכול. איידע אותך בהמשך.
אוהב אותך,
יויו.


יומיים אחרי ששלח את המכתב על אודות פציעתה של גורה, הוא צלצל וסיפר לי את מה שאלפרד סיפר לו. הם נסעו ליער וטעו בשביל. אלפרד החנה לרגע את המכונית קרוב לקצה היער באזור גבוה. היא התרגזה עליו על כך שהתבלבל. הוא ניסה להרגיע אותה וגלגל להם עוד ג'וינט מהחומר החזק. הוא אמר לה שתכף יראה איך הם יוצאים משם, וככל שעברו הדקות, כך סיפר אלפרד המסכן, היא הלכה והתחרפנה. אלפרד לא ידע מה לעשות. הוא חשב שזה היה התקף חרדה. היא רבה איתו וצעקה עליו שתקע אותה ביער המטומבל הזה באמצע הלילה ושעכשיו הם ילכו לאיבוד. הוא ניסה להרגיע אותה. ברגע מסוים היא יצאה מהאוטו ורצה. היא החליקה והתגלגלה במורד סלעי ותלול. אלפרד רץ אחריה. הוא הצליח להגיע אליה רק אחרי רבע שעה בערך, לא היה לו טלפון נייד. הוא טיפס בחזרה ולמזלו עברו שם בחור ושתי בחורות עם רכב ארבע על ארבע וטלפון נייד. הוא צלצל מיד לאמבולנס. האמבולנס הגיע כעבור רבע שעה נוספת, התברר שהם בכלל לא היו כל כך רחוקים בתוך היער. זה היה יער מתויר, עם שבילים מסומנים. הם נסעו עם האמבולנס לבית החולים הקרוב ביותר, שהיה ממוקם בפאתי פריז. יויו עדיין לא ידע דבר. לאלפרד לא היה את מספר הטלפון שלו. והוא לא ידע מה לעשות קודם. בבית החולים חיברו את גורה להרבה מכשירים. אלפרד הצליח להשיג את מספר הטלפון של הבית של גורה מאחד החבר'ה מבית הספר. התאונה אירעה קצת לפני אחת עשרה בלילה. היא הובהלה לבית החולים ושם לטיפול נמרץ. בדיקת סי-טי הראתה כי גורה נחבלה ברקמת המוח. גם נשברו לה עצמות בבית החזה ובאגן. ההורים של יויו ירדו עליו רצח אחרי שזה קרה. אבא של אלפרד סידר לגורה בית חולים פרטי בתוך העיר. זה כל מה שיויו סיפר לי בטלפון. הוא היה שבור. הוא גם לא שכח לספר לי שהשאיר למישל הודעה אצל הברמן ובה מספר הטלפון שלו וכמה מילים על מה שקרה.

גורה הייתה מחוסרת הכרה קצת פחות משבועיים. במשך הזמן הזה יויו ואלפרד לא משו ממיטתה. יויו הלך והתאהב באיש שקיבל אחריות מלאה למה שקרה. ביום שבו התעוררה גורה מהתרדמת בה הייתה, זו בעצם הייתה תרדמת, חוסר הכרה זה היה, הוא התקשר אליי לספר לי על כך. הוא שמח היה כולו מאושר. "הגורה פקחה את עיניה", אמר נרגש. לאחר התעוררותה ציפתה לגורה תקופת החלמה לא פשוטה. השברים עדיין לא התאחו לגמרי, האזורים שנפגעו היו רגישים, באגן הכניסו לה פלטינה, גופה דאב ולא תמיד הגיב לפקודות שנתנה לו.
כחודש אחר כך הגיע אליי מייל מיויו:
אווה אווה אווה,
היי יקרה, אלוהים אדירים שבשמים, שרק יעזור לי אוושי. כבר חודש שאני לא מפסיק להתפלל. היו רגעים שבהם לא הפסקתי לשאול את אלוהים מה אני עושה לא בסדר. אני לא מוכן אף פעם לנדור נדרים אלא להתפלל. בלי תנאים. לא נשמע לי הגיוני שמדובר בתנאים. אני מאמין שהיקום הוא מערכת אינטליגנטית יותר מאשר הצבת תנאים. אני מאמין באינטליגנציה של בורא עולם, בכך שסדר העדיפויות שלו נאור ואינו תומך בטרור, כולל טרור בינאישי. עד לפני יומיים היה לי פרטנר, אלפרד, אך לפני יומיים גורה זרקה אותו, פשוט ככה. אין לך מושג איך הוא נשבר. מיד אחרי שהיא התעוררה, ראיתי שהיא מסתכלת עליו בעין עקומה. היא השתדלה להיות נחמדה אליו. היא לא דיברה על זה, אבל לא היה קשה להבחין במאמצים שלה. ראשית חשוב לציין שבימים הראשונים לאחר שפקחה את עיניה היינו בהיי לא נורמלי, התעלות כזו, את יודעת, איחוד העם והלבבות. אבא של אלפרד הגיע לבית החולים  לפני שהיא התעוררה. הוא היה איש חביב,  תכליתי ומלא בדיחות. הוא דאג שהביטוח יממן את שהייתה של גורה בבית החולים, ונראה שהוא גם שילם שם משהו. בטוח. אלפרד ומשפחתו קיבלו אחריות מלאה למה שקרה. לעומתם, מהאגף שלנו, משפחות הנחבלים, עלה הרוע לב על גדותיו. אבא התגלה כגרוע ביותר, למעשה אבא ונדיה. שתי עקרות הבית הנואשות ששומרות על פנים מחויכות גם ברגע שבו עולמן חרב. אבא בתפקיד בעלה של ברי, ונדיה בתפקיד ברי עצמה. אימא שקעה בדיכאון ופסקה מלדבר. יומיים אחרי התאונה הגיעו אבא ונדיה לפריז. איחס, שני סוטים, אני שונא אותם, משת"פים מסריחים. אני כל כך כועס על אבא. מהרגע שהגיע לכאן הוא לא הפסיק לרדת עליי - על דרך חיי חסרת התוחלת, על כך שעודדתי את גורה לעשן סמים, שלא שמרתי עליה, שלא מעניין אותי כלום. גם על אלפרד הוא ירד והתנהג אליו ואל אבא שלו באופן מגעיל. אני ניסיתי לגשר ביניהם ולרצות את כולם. אמרתי כל הזמן לג'וזף (האב הספרדי של אלפרד) שהם נפלאים, שאלפרד נפלא ושאני נורא מצטער שכך קרה. בחיים לא ראיתי את אבא כל כך אנטיפת, רע וכפוי טובה. השנים רק הרעו עמו. בכל פעם שנדיה והוא דיברו איתי, התעוותו שפתיי בלא שליטה. מתומר ביקשתי שלא יגיע, "לפחות תחכה עד שאבא ונדיה ייסעו, ואם תוכל – תבוא. חבל על הזמן שלך ועל הכרטיס. אני לגמרי לא מתפקד, רק יושב כל היום לידה, מחכה שתקיץ ומחכה שאבא ונדיה ייסעו". מישל התקשרה אליי מודאגת בערב שבו קבענו והשאירה לי הודעה. התקשרתי אליה מיד, ואמרתי לה שבינתיים אני לא זז מהמיטה של גורה, וברגע שאוכל אדבר איתה. אבא ונדיה נשארו שבוע, אבל לאחר שראו שנוכחותם אינה משנה את מצבה של גורה, החליטו לחזור הביתה. בניסיונותיי הכושלים לרצות אותם ביקשתי מדוקטור לומבר לבוא. שוחחתי איתו ארוכות בטלפון על מצבה של גורה וגם עם הרופא שלה בבית החולים. ד"ר לומבר הגיע לבית החולים מיד. הוא אמר לאבא ונדיה שגורה נראתה לגמרי בסדר בכל הימים שעברו וששימוש בגראס הוא דבר שכיח בקרב צעירים בני-גילה ושקשה מאוד לשלוט בזה. "גם אני זיקקתי THC מצמח הקנאביס לאחר שגיליתי את תכונותיו המרפאות, ואני חושב שזה אחד מחומרי ההרגעה המזיקים פחות באופן יחסי, אף כי במקרים מסוימים הוא אכן יכול לגרום לחרדות. השימוש בחומר הוא ככל הנראה רק טריגר לחרדות שהיו כנראה טמונות בגורה כהר געש פעיל".                                                                                                     "מלכתחילה לא מצא חן בעיניי העניין הזה עם הגלולות", הרימה נדיה לפתע את קולה, ונראה שאף היא עצמה נבהלה ממנו. ד"ר לומבר המסכן לא היה ער לאפשרות שהמשפט "חרדות שהיו כנראה טמונות בגורה כהר געש פעיל" עלול להפעיל את מנגנוני ההגנה הגועשים של החיות הטרוריסטיות.
את יודעת אווה? שמתי לב לכך שבגן החיות שבו גדלתי, חלק מהחיות הן חיות ג'ונגל במסווה, ואלה החיות שתמיד מפחידות אותי נורא. גם אנשים שהם חיות ג'ונגל בעליל מפחידים אותי.
"נכון", חיזק אבא את דברי נדיה. "כבר בימים שהיית כאן, כשיויו הגיע, סיפרת לי שהוא הצטרף אל גורה וניסה את הכדורים האלה!". אבא הביט בי, עיניו נפערו ומבען קפא. "ובכלל, כל הפסיכיאטריה הזאת!", הוא הוסיף והמשיך להביט בי למשך כמה שניות אחרי שאמר את המשפט הנאור הזה. ואז הוא הפנה את מבטו לד"ר לומבר. הבטתי באבא, הוא היה נראה כל כך עלוב וכפוף ורזה. הוא פנה אל נדיה שעמדה זקופה והם חייכו זה אל זו זחוחי דעת, מסכימים עם דברי עצמם, אחים לנשק, רתומים למשימה ולדעותיהם הנחושות. נגעלתי. ד"ר לומבר ואני החלפנו מבטים. הוא פנה אל אבא ונדיה ונפרד מהם לשלום, "היו חזקים, אני מקווה שתהיה רפואה שלמה ומהירה לגורה". יש לו נשמה רוסית לד"ר לומבר הזה. אני בכלל חושב שהוא פרופסור. אבא ונדיה הביטו בו שותקים והנידו את ראשם. ד"ר לומבר ניגש לגורה לפני שיצא מחדרה, וליוויתי אותו בצאתו מן המחלקה.
"אני מודה לך דוקטור, אל תשים לב לדפוקים האלה", אמרתי לו.                                              "עכשיו אני מבין יותר", הוא אמר במלוא הענווה.                                                           "כן, כל מה שאני רוצה בעולם עכשיו הוא שגורה תחלים. אני רוצה לשלם לך על הגעתך לבית חולים ולקבוע איתך פגישה לעצמי, אני זקוק לך".
"אשמח לפגוש אותך ואתה לא צריך לשלם לי. אני אוהב אתכם, את שניכם, ואני מתפלל להחלמתה של גורה. אני גם חושש שאולי הייתי צריך להשגיח עליה יותר".                                                                                                                                                                                     "נראה שישנם דברים שאינם בשליטתנו", אמרתי לו בחיוך מכווץ ונפרדנו לשלום. כשהגעתי הביתה שמעתי הודעה מסבתא החמודה. התקשרתי אליה מיד, והיא סיפרה לי שמצבה של אימא אינו טוב, שהיא בכלל לא מדברת. סבתא דאגה מאוד. לא יכולתי "לשחק אותה" ולומר לה שאני לא מודאג. סיפרתי לה שאני מרגיש אשם, שגורה הייתה מקסימה, שאבא ונדיה מתנהגים באופן זוועתי, ועל ביקור הפסיכיאטר. היא נאנחה עמוקות.
"כל שאני יכול לעשות כרגע הוא לשבת לידה יומם ולילה, להתפלל ולחכות שתתעורר, סבתא חמודה שלי".
סבתא אמרה שהיא אוהבת אותי ושאולי אחרי שאבא ונדיה יחזרו להיות עם אמא, היא תוכל לבוא לכמה ימים ולעזור לי. "אני לא מתכוון לזוז ממנה בשלב זה סבתא, ואת מוזמנת להיות לידי שם". אחרי שסיימנו את השיחה בכיתי נורא. צלצלתי לתומר, דיברתי איתו ובכיתי. צלצלתי לגיגי, דיברתי איתה ובכיתי. צלצלתי לקרן, אבל היא לא הייתה בבית אז דיברתי עם בעלה ובכיתי. במקלחת בכיתי, הכנתי קפה ודמעתי לתוכו. ניסיתי למצוא משהו לראות בטלוויזיה. הייתי חסר מנוחה. לא רציתי לחזור לבית החולים ולראות את שני מלאכי השרת בזים לקיומי. שיחקתי עם קלפי ה-"OSHO" שאלפרד השאיר, פתחתי שלושה ויצא לי: TRUST, אחר כך PATIENCE ואחר כך SORROW. לא הייתי רעב, חשבתי שאני משתגע. צלצלתי לאלפרד, ביקשתי ממנו סליחה על ההתנהגות של אבא ונדיה כלפיו. אמרתי לו שאני לא חושב שהוא אשם או שאני אשם או שמישהו אשם. זה מה שקרה ואני מבין שאף אדם אינו חסין בפני פגיעה. הוא הודה לי עמוקות ואמר שרק אחרי שקרה מה שקרה הוא מבין עד כמה הוא אוהב את גורה, ושהיא מיוחדת ורגישה. אלפרד ואני ממש "ניהלנו" רומן, אחים לצער ולתחושת האשם. אבא ונדיה נסעו לבסוף, תודה לאל, ושקט יחסי חזר למעוננו. אלפרד ואני לא זזנו מגורה, וכבר היה לנו הווי משלנו. יום אחד עברתי ליד ז'נבייב מהקוסקוס וסיפרתי לה על גורה. גם היא התחילה לבקר אותה לעתים. הגיעו גם חברים מבית הספר של גורה, כולל הצרפתי שנטשה ללא רחמים.
באחד הימים הופיעה מישל. היא נכנסה מבוישת. "התגעגעתי, ורציתי לדעת מה שלום אחותך", אמרה. היא נשארה איתנו שעה בערך, והייתה חמודה. הבטחתי לה שנדבר כשיירגעו העניינים. אבל לא ידעתי מתי אני אירגע.    
[img[pictures/hasipoor-5.jpg]]

בוקר אחד הלכתי להביא קפה לי ולאלפרד, ובדרך חזרה לגורה, במסדרון, כבר שמעתי את קריאותיו השמחות. כל האחיות ורופאי המחלקה הגיעו. גורה פקחה את העיניים! היא שכבה במיטה עם עיניים פעורות. שום שריר בפניה לא זז. הבטתי בה, ביקשתי מכולם לצאת ושרק הרופא יישאר. היא התעוררה! זהו! התקשרתי עם הבשורה להוריי, אבא אמר "יופי", אך קולו היה קר כקרח.                                              יותר מאוחר סיפרה לי גורה שהמשפט הראשון שחלף במוחה כשהתעוררה היה "דה פאק, אני בבית חולים".                                                                                   לפני יומיים הלכתי להתקלח וכשחזרתי מצאתי את אלפרד יושב על הספסל בחוץ.                                                                                                  "היא זרקה אותי", הוא אמר. "היא לא רוצה אותי יותר".
"מה קרה?", שאלתי והתיישבתי לידו.                                                                               "אחרי שהלכת היא הביטה בי, אמרה שאני איש נפלא, אך משהו מעומעם שנותר בזיכרונה מהרגע שלפני הנפילה גרם לה להבין שלא טוב לה להיות איתי, שאני מוציא ממנה כוחות מתנגדים, ועם כל העצב – יהיה טוב יותר לשנינו שניפרד עכשיו". אלפרד בכה נורא. "עזוב אלפרד, תן לה כמה ימים והיא חוזרת, היא מתה עליך. לך הביתה לנוח, תבלה, תתגלח, לא נתת לעצמך רגע של מנוחה כבר שבועיים". הוא הביט בי. 
"שתדע אלפרד, אני מודה לך מאוד ורוצה שנמשיך להיות בקשר מה שלא יהיה". הוא חייך חיוך בוכה, התחבקנו, הוא הלך לאסוף את החפצים שלו, ישב עם גורה עוד כמה דקות ויצא שפוף מהחדר.                                                      אחרי שהלך, התיישבתי ליד גורה.                                                                                       "ברוך שפטרנו".                                                                                                                   "מה?".                                                                                                                                "מה שאתה שומע, ברוך שפטרנו".                                                                        "תגידי, יש לך מושג איך הוא אוהב אותך ואיך הוא דאג לך?".
"תגיד, יש לך מושג שהוא דפקט? אני לא רציתי להיכנס ליער הזה, זה מה שאני זוכרת יותר מהכול. הוא התעקש שניכנס לשם, ומהרגע שנכנסנו, לא רציתי להיות שם, ופחדתי, וזה מה שאני זוכרת. כל הזמן ראיתי איך שנינו עם המכונית מתגלגלים למטה אל הוואדי הפעור".                                   חיבקתי אותה.                                                                                                            "עזבי את זה עכשיו, בואי אל אח שלך שאוהב אותך ונוחי. ז'נבייב שלחה לך קוסקוס שאת אוהבת".                                                                                                "אתה יודע, יויו? אני מתה עליך. תודה שאתה כאן. יותר מכל אני רוצה להחלים ולחזור לעצמי ולהמשיך הלאה. אין לי כוח לא לזוז".                       "אבל אין לך ברירה, עד הודעה חדשה רק הפיזיותרפיסטית מזיזה אותך, והרופאים המומחים מאשרים תזוזות אחרות".                                                                             "אני רוצה מחשב נישא חדש וחיבור לאינטרנט".                                                           "אין בעיה אחותי, ראי את העניין מסודר. אבל גם אני רוצה ממך משהו".
"וואלה, מה?".                                                                                                     "אני רוצה שבאיזה שהוא רגע תנסי לא להאשים את אלפרד. יכולת ממש לא לתת לו להיכנס ליער אם כל כך פחדת, יכולת לבקש ממנו לא להיכנס ליער, או לא לעשן  ג'וינט אחרי ג'וינט. אני לא אומר לך להאשים את עצמך, אבל אל תאשימי את אלפרד, מתוקה שלי. מילה מאחיך הגדול והמנוסה עאלק, רק צריך עכשיו ללמוד וללמוד ולהשתפר בלי להאשים. זה מה שאני אומר. מסכימה? זה לא תנאי, זו בקשה".                                         "אפשר עליך אח מתוק שלי? אנסה לראות את הדברים באור חיובי", ככה היא אמרה וצחקה, עדיין צחוקה אינו מלא, עדיין יש חלקים בפניה שלא נעים כמו שצריך. אבל היא יפהפייה.
עכשיו ישנה בעיה טכנית חדשה: אלפרד יצא מהתמונה לפיכך אני היחיד שיכול לשבת עם גורה וזה מפחיד אותי. הבית חסר לי מאוד. אני גם מת לצאת עם מישל. אני רוצה ללכת לישון, ולקום, בלי דאגות. כשדיברתי היום עם תומר, הוא הציע שאולי הוא יבוא בכל זאת לעזור לי. אני עדיין חושב על זה. אני הולך לישון עכשיו ומקווה לקום כמו חדש, חושב עלייך,
שלך, יויו.
יויו דאג לא מעט בימים הללו. אך היו גם ימים שבהם לא דאג כלל. ימים שבהם הוא נהנה. הוא שלח לי מדי פעם מייל ארוך ומפורט וגם שוחחנו בטלפון כמה פעמים. זמן מה אחרי שגורה התעוררה, יויו כבר לא היה צריך לשבת לידה כל הזמן ולראות אם היא מתעוררת או לא. היא כבר הייתה ערה, וישנה והתעוררה לפי שעות בית החולים. הוא קנה לה מחשב נישא, אלפרד עזר לו בזה. 


[img[pictures/hasipoor-6.jpg]]

בימים שאחרי התעוררותה, התמגנטה גורה למחשב, בעיקר לתוכנת WORD . היא הקלידה ימים שלמים והתיידדה עם הצוות הרפואי. כעבור חודש וחצי הצליחה להזיז מעט את האגן, הצלעות החלימו אט-אט והיא החלה להזדקף. היו ימים שבהם אמרה ליויו שלא יגיע. היא הייתה נחושה להחלים. היא רצתה להיות לבד או לפחות עם מי שלא הכיר אותה טרם התאונה. דוקטור לומבר נהג להגיע פעם בשבוע לשוחח איתה, יויו הגיע פעם בשבוע לשוחח איתו בקליניקה שלו. לאחר שגורה הקיצה היא רצתה קצת חופש מיויו. הייתה עסוקה בלהחלים. 
ז'נבייב מהקוסקוס שאלה אותו באמצע הקיץ אם ירצה לעזור לה בשעות ארוחת הצהריים, שעמוסות מאוד לאחרונה. יויו נדלק על הרעיון. למרות, או בזכות, העובדה שיויו גדל עם אחיות, היה לו "את זה", הוא היה מיומן בעבודות מטבח. הוא ידע לנקות היטב לשביעות רצון אמו, וידע להיות "בלתי מורגש" בעבודתו. הוא היה עוזר טבח מושלם לז'נבייב. נדיה הייתה המאמנת הראשונה שלו.                                                                      שגרת יומו הפכה אינטנסיבית. במהלך אוגוסט התייצב במסעדה מיום שני עד יום שישי בשעה אחת עשרה בבוקר. כל הסירים כבר היו מוכנים על הכיריים. הוא עזר לז'נבייב לשטוף את הכלים ולנקות ולהכין את כל הירקות הטריים עד השעה אחת בערך, השעה שבה החלו הסועדים להגיע. זו הייתה מסעדה קטנה ומתוקה ובאו אליה פריזאים מכובדים מעולמות התיאטרון, העסקים והעיצוב. רובם היו נעימי הליכות.                                                                        לז'נבייב הייתה הצניעות הנדרשת לבישול וגם הצניעות והמראה הנדרשים לזכייה באהדתם של מכובדים אינטלקטואלים. ז'נבייב הייתה אסתטיקנית מטבעה. היא גדלה במשפחה שמרנית שבה החליט האב מה יעלה בגורל ילדיו. היא נשלחה ללמוד ראיית חשבון מאחר שהייתה "ריאלית", ובאוניברסיטה הכירה את מי שהפך להיות בעלה - המרצה שלה לכלכלה. הוא היה מספיק צעיר ומספיק אמיד ומספיק מוצלח כך שהאב אישר את הנישואין, אף שלא חש חיבה אמיתית אליו. הבעל נהג להכותה מכות נמרצות בכל פעם שלא חיבב את מעשיה. תעודת המקצוע שאותו רכשה באוניברסיטה הייתה ממוסגרת ומאופסנת בארון של התעודות. בתחילה היא לא עבדה כי ילדה את בתה הבכורה, ואחר כך לא עבדה כי בעלה הצליח לטרפד את יציאתה לעבודה שוב ושוב. היא הייתה לבבית מדי לטעמו ופלרטטנית מדי והוא חשד בה כל העת. היה לה חוש הומור ויכולת הקשבה שמשכו את לב הבריות. היא נתנה כבוד לחומרי הגלם והמעיטה בתיבול. במרק של הקוסקוס היא אף פעם לא שמה קישואים. קישוא הוא הירק השנוא והמיותר ביותר בעיניו של יויו. היא הייתה בת ארבעים ושש, בתה הבכורה הייתה בת עשרים, ובת הזקונים בת שש עשרה. הן היו מגיעות לפעמים ל"שה ז'נבייב". רק אחרי שאביה נפטר העזה ז'נבייב להיפטר מבעלה, היא הייתה אז בת שלושים ושמונה. אמה עזרה לה. לאחר מאבקים קשים ועם מעט הכסף שנותר לה, היא פתחה את המסעדה. לא היו לה יומרות מלבד להתפרנס בכבוד. 
ז'נבייב וסוניה היו מגיעות למסעדה בבוקר.                                                                                         סוניה נהגה להגיע ראשונה, בשעה שש. היא הייתה הונגרייה בת חמישים וחמש שהתקשתה לישון, והחל בשלוש לפנות בוקר כבר הייתה מתהפכת במיטתה. היא הייתה גבוהה ורחבה עם זנב סוס אפור עצום שגולגל על ראשה והודק לשערה עם סיכות צבעוניות רבות. עד השעה שתים עשרה היא כבר סיימה את כל ההכנות. ז'נבייב הייתה מצטרפת אליה בשמונה או בתשע. ליויו הייתה שעה אחת איתה ביום. עם תחילת שעת ארוחת הצהריים הוא היה מוציא את המנות וז'נבייב הייתה מגישה אותן. היו במסעדה עשרה שולחנות והסועדים היו מתחלפים כל ארבעים דקות בממוצע. מומחיות הבית הייתה הקוסקוס הדקיק והלבן שסוניה הכינה בווירטואוזיות על פי המתכון של אמה של ז'נבייב. היה גם מרק ירקות עם חומוס וגזר וירקות שורש. המיוחד שבאוכל היה אפשרויות ההגשה הרבות עם הקוסקוס: ירקות מבושלים, ירקות חיים, קטניות, הרבה עשבי תיבול, כל יום בין שישה לשמונה סוגים, והטעם היה נפלא כמו ז'נבייב עצמה. מדי פעם הכין יויו סלט חצילים יווני, ופעם אחת אף הכין עם ז'נבייב במיה לפי מתכון של סבתא שלו. אמא של ז'נבייב הייתה מכינה פיתות קשות לא גדולות. לקינוח הוגשו עוגת סולת בסירופ, גלידת וניל עם פירורי עוגיות ופרי חתוך ליד (בקיץ זה היה מנגו), וסופלה שוקולד שיויו היה צריך למזוג מעיסה שסוניה הכינה לכלי מתאים ולאפות כעשר דקות בחום גבוה. לפעמים הכינה סוניה ריגו יאנצ'י. יויו שכנע את ז'נבייב להגיש בלאדי מרי עם וואסבי ועשבי תיבול או מיץ עגבניות קר עם וואסבי או פלפל שחור ועשבי תיבול - משקה שנהפך ללהיט בקיץ והיה רווחי ביותר. בשעה חמש הם הפסיקו להגיש. יום העבודה היה מסתיים לקראת השעה שבע. אחרי העבודה יויו הלך הביתה להתקלח ואחר כך הלך לגורה. הביקור אצלה נמשך בין שעתיים לארבע שעות.
יויו אהב לעבוד במטבח ואהב את המטבח שעורר אותו. הוא אהב את השיחות עם ז'נבייב. היא ביארה לו פרשיות סתומות בעיקר כאלה הנוגעות לנשים. הם הפכו להיות חברים קרובים. ז'נבייב אהבה אותו. העבודה ביניהם זרמה ללא תקלות. כשהיא גילתה שכשהוא הופך את הכיסאות על השולחנות הוא גם מנקה מתחת לרגליהם, היא אמרה לו שזה השיא מבחינתה, שאת זה אפילו היא לא עושה. יויו החל להבין ולדבר מעט צרפתית והדבר מילא אותו שמחה. הוא גם הרגיש חופשי מדאגה לגורה.  

[img[pictures/hasipoor-7.jpg]]

שבוע אחרי שגורה התעוררה, הוא טלפן אל מישל. היא הייתה עסוקה מפני שהחלה לעבוד כצלמת במגזין אוכל אינטרנטי והייתה שקועה כולה בעבודה. הוא הרגיש שהיא הייתה מרוחקת בשיחה. הוא תיאר לעצמו שהיא התבאסה מהתעלמותו ממנה והבין אותה, אך יחד עם זאת, הוא לא היה מסוגל להגיד לה כלום בעניין. הם קבעו שידברו בתחילת השבוע הבא. הם נפגשו באחד הלילות בזנזיבר ואחר כך הלכו לדירה של גורה ושכבו. בבוקר היא קמה מהר והלכה. כשהוא ניסה להיפגש איתה אחר כך, היא התחמקה. יויו היה מבואס רצח. גורה ניסתה להבין ממנו מה קרה, אך הוא שתק. מזל שז'נבייב הציעה לו את העבודה שמילאה את זמנו ומילאה אותו בכלל. ז'נבייב ניחמה אותו. הוא סיפר לה שהוא לא מבין מה קרה כי הוא ומישל היו כל כך מתואמים בחיבוקים ובנשיקות ובהיצמדויות. הוא רצה אותה מאוד. אבל לאחר שהיא חמקה במהירות מביתו בבוקר שאחרי, הוא לא ידע ולא הבין אם היא רוצה אותו או לא. הוא לא העז לטלפן אליה. הוא היה משוכנע שאין לה כל עניין בו.  תומר בכל זאת הגיע לביקור, בכל זאת, כלומר, למרות שיויו אמר לו שהוא עסוק לגמרי. הייתה לו חברה חדשה, טלי, והתחשק לו לבלות איתה בפריז. זה היה טוב שתומר היה, תומר וטלי פינקו את יויו בקניות, הכינו ארוחות וסידרו את הבית. הם גם ביקרו כמה פעמים את גורה. גורה אהבה את תומר, שהיה, מבחינתה, חלק בלתי נפרד מיויו. הביקור הזה תרם רבות בעניין מישל. יויו, שהיה עסוק, שכח את התיאום הפיזי המופלא שהיה בינו ובינה. באחד הערבים ביקרו יויו, תומר וטלי חברים ישראלים של טלי שעבדו בשגרירות או באל על בביטחון. "חבר'ה סטרייטים לגמרי", כתב לי יויו.                                                                                       "מדברים כל היום על מה שקורה בארץ בטונים צבאיים. מעשנים רק סיגריות. צעירים יחסית. גם טלי צעירה יחסית. מדובר בחבר'ה טובים ונחמדים כמו בארץ, את יודעת, ערבים זה לזה. אכלנו טוב, שתינו טוב והיה שמח". אבל מכל אלה יצא שהייתה במפגש בחורה שמצאה חן בעיני יויו, תמר שמה, שהתחילה לעבוד באל על. הם דיברו כל הערב. שניהם היו שרועים ארבע שעות מרוחים על הרצפה והיו שקועים בשיחה. הוא התגעגע לקשר עם בחורה ישראלית אף שלא עבר הרבה זמן מאז עזב את הארץ. כשהחברים של תמר רצו ללכת, היא קמה, אמרה לו שהיה לה נעים מאוד להכיר אותו ויצאה. מהשנייה שהלכה, הוא חש בחסרונה. הוא רצה להמשיך לדבר איתה. יויו, תומר וטלי עזבו גם הם את הדירה והלכו ברגל הביתה. הם רצו לשתות עוד משקה, אבל לטלי כאבה הרגל והם חזרו הביתה. יויו שכב על הספה בסלון. הוא רצה את תמר. בארץ הייתה מלחמה אבל הוא לא התעניין בה. הוא חשב שמאותה שנייה שראה אותה הוא רצה לשכב מולה, ללטף אותה, לחבק אותה ולהקשיב לה. הוא רצה כל כך לדבר איתה. הוא ראה שהיא מבולבלת ולא בדיוק יודעת מה היא רוצה. אמנם היא דיברה כאילו היא יודעת, אבל היא לא ידעה. היו לה מחוות מתוקות, והיא הייתה סימפתית, צחקנית ומצחיקה. הוא לא ידע על מה להביט יותר - על עיניה או על שפתיה שרצה לנשק. על השדיים לא היה מה לדבר, הם היו מוחבאים בתוך כותונת גברית ארוכה וענקית שצבעה אפור כהה דהוי. רק עצמות הבריח בצבצו ממנה לרגעים. היא לבשה מכנסי דגמ"ח רחבים ותכולים ונעלה נעלי אצבע בצבע נענע (סתם, אבל ירוקות). על ידה הימנית הייתה נקודת חן בולטת. הוא רצה ללטף אותה. הוא כבר רצה שיהיה בוקר ושיוכל לשאול את טלי מה עושים עם זה. איך מגיעים שוב לחבר'ה האלה ששום דבר אחר לא היה מביא אותו אליהם. בבוקר הוא ביקש מטלי לברר כיצד הוא יכול ליצור קשר עם תמר. כעבור יומיים של פנטוזים עליה, קיבל יויו מטלי דיווח על כך שלתמר יש חבר, ושהוא הגיע לבקר אותה. 
בסוף אוגוסט הגיעה מישל, בלוויית כתב, לצלם את המסעדה של ז'נבייב, שהפכה "שם דבר סופר פוליטיקלי קורקט אצל השושואיסטים יודעי הדבר", כמו שיויו כתב לי באחד המכתבים. היות ז'נבייב אם חד-הורית שמבשלת אוכל פשוט וטעים במחיר השווה לכל כיס קנתה את לב כולם.  
יויו הפך גם הוא דמות מעוררת עניין בקרב הסועדים, וז'נבייב אף נהגה ואהבה להציגו כיד ימינה במסעדה.
מישל הייתה נבוכה לראות את יויו. היא אמרה לו ששמעה על הבלאדי מרי המהמם שהם מגישים עם הקוסקוס, והוא היה גאה לומר לה שזה רעיון שלו היה להגיש את המשקה הזה. 
כשהיא ראתה את יויו בפעולה, היא חשקה בו והציעה לו להיפגש איתה. הם נפגשו, ושכבו, שוב ושוב שכבו אם כי עשו זאת באופן מכני. כאילו היו זוג שכבר מורגל שנים רבות לסקס אחד של השנייה. לאחר שהתעלסו, הם התחמקו מלהתבונן זה בזו, ומישל מיהרה לעזוב. יויו ראה שהיא לא מסתכלת לו בעיניים. גם הוא לא הסתכל לה בעיניים. העבודה אצל ז'נבייב הפכה את יויו מחוזר על ידי נשים, ולא התחשק לו להחליט כלום בשלב זה. בשלב זה בחייו, הוא חשב לעצמו, זו הזדמנות לא להחליט כלום בשנה הקרובה. צריכה להיות החלטה גורפת בכל תחום בחייו, בכל פעם שעלו במוחו שאלות על העתיד, הוא התעלם מהן דחק אותן ורק שאל את עצמו אם טוב לו בהווה, כמו שכרגע קורה, אם הוא אוהב את מה שקורה לו כל יום, אם הוא קם בבוקר מחייך אל יומו.
[img[pictures/hasipoor-8.jpg]]


בסוף אוגוסט צורף למטבח שוטף כלים ששמו דן, ונהיה שמח. דן היה אמריקאי יפה תואר בן עשרים. הוא היה בחור רגיש מאוד ובעל חיוך כובש. יויו קרא לו [[דןדן]] וכך גם השאר, אמנם בפי הצרפתים הדןדן נשמע מאולץ אך תפס.                                                       
דןדן היה נמוך קומה ואהב מוזיקה וקולנוע. כשנולד, היו עצמותיו כמעט מפורקות, כמו אצל סמואל ל' ג'קסון ב"בלתי שביר". ליויו ולדןדן היה הרבה מן המשותף. שניהם חוו ילדות מלאה רופאים כירורגיים, בתי חולים ותהליכי החלמה קשים. בעיקר דןדן, כלומר דןדן עבר לא מעט ניתוחים בילדותו. היה אפשר לראות על גופו של דןדן שאריות מאיחוי העבר. אך הוא היה בחור יפה תואר ורגיש באופן נדיר עם חיוך כובש. חלק מהסיפורים שסיפר דןדן נשמעו מופרכים מן היסוד, אך יויו היה תמים, ולא טרח לחשוב או לחשב אם הסיפורים נכונים. הוא אהב את האדם ואהב את סיפוריו. מה גם שדןדן היה עובד מצוין ומסור, הגיע תמיד בזמן, לא התלונן ותמיד רצה לעזור ולייעל.
דןדן גדל לבד רוב הזמן. אמו הייתה מאושפזת פעמים רבות בבתי חולים לחולי נפש וכעת חייתה בדירתה מקצבת ירושה שניתנה לה על ידי אמה הכפייתית. הוא לא העריך את אמו, והיה חסר סבלנות אליה. הוריו נפרדו כשהיה בן ארבע, ואביו נפטר כשהיה בן חמש עשרה. כשהיה בן שבע עשרה עבר דןדן מקליפורניה לניו יורק, ושם סחר בסמים, ואף נעצר בשל כך. סבתו שחררה אותו בערבות. הוא הגיע לפריז בעקבות ליאן, בחורה צרפתייה שהתאהב בה, והשניים גרים בדירתה ברובע השישי. בשעות שעבדו במטבח שוחחו יויו ודןדן רבות, לליאן, חברתו הקסומה, היו הורים עשירים, ודןדן הבין שכל עוד הוא גר איתה בלי להשתתף בהוצאות הדירה והמחיה, הוא ירגיש לא חופשי. רק עכשיו, לאחר שהחל לעבוד, הוא התחיל לשלם עבור חשבונות ואוכל. 
כשליאן התאהבה בדןדן והזמינה אותו לגור איתה, היא לא צפתה שיהיה מובטל ואת הקשיים הכלכליים שיהיו כרוכים בכך, ולצערה הייתה צריכה לוותר על חלק מהנאות החיים שבהן הורגלה. ברוב טובה פשוט הזמינה אותו אליה כי התאהבה בו ורצתה אותו איתה, אך היא לא צפתה את האפשרויות לפעלים היכולים או עלולים לצאת משהותו הממושכת בלא תעסוקה ובלא כסף, היא לא צפתה כמה יוקר מחייתה יעלה, היא לא צפתה שאולי תתחיל לוותר על כמה הנאות אליהן הייתה מורגלת כי גם הוריה בסופו של דבר הגבילו לה את התקציב. דןדן לא שילם ואף לא טרח לדבר על העניין עם ליאן, דןדן לא עבד במשך שמונה חודשים, וכשהחל לעבוד ולשלם לה – ליאן ביקשה שיעזוב את דירתה. רק אחרי שמונה חודשים כשהחל לעבוד ואף החל לשלם לה היא הרשתה לעצמה לזרוק אותו מדירתה, נגמר לה ממנו עוד לפני שעבד אך נטתה לו חסד. ליאן ידעה היטב מה העדפותיה בחיים ולכן ברגע שהתעשתה נזרעו זרעי תוכנית האב להעפתו מעליה.
דןדן כרגיל הבין רק בדיעבד שלליאן הייתה תוכנית מחושבת: למצוא לו עבודה, ואז לזרוק אותו. יויו הזמין אותו אליו עד שימצא היכן לגור. לקח לו בדיוק שבוע למצוא חדר קטנצ'יק, מסוג חדרי המשרתות, בעליית גג, ובתום שבוע נוסף עבר אליו. אגב, אביה של ליאן נהג לסעוד אצל ז'נבייב, ולמעשה היה לו רומן איתה. הוא זה שסידר לדןדן את העבודה במסעדה ולא יהיה מאושר מדןדן ביום בו תעיף ז'נבייב את אבא של ליאן מעליה.
בשבוע שבו גרו יחד, נהגו דןדן ויויו לבלות כמעט בכל לילה. דןדן הפגין אדישות כלפי הפרידה מליאן, אך יויו ידע כי הוא נעלב מאוד, בעיקר מהאופן המחושב שבו עשתה זאת. ידע עד כמה נעלב כשהבין שהיא תכננה את הפעולה במשך שלושה חודשים לפחות בלי להגיד לו דבר, כשבמהלך אותם חודשים התנהגה כאילו אין דבר שהיא אוהבת יותר מאשר אותו.                                                                                            "תגיד לה את זה, בן אדם", אמר לו יויו באחת השיחות. 
"אם היא ככה, אז אני לא צריך אותה", אמר דןדן.
"אבל לפחות תשחרר קצת מהמועקה", אמר יויו.                                                                                  "אין צורך", התעקש דןדן.                                                                                       העבודה במסעדה הייתה מושלמת מבחינתם. הם יכלו להתעורר בשעה תשע או עשר ועדיין להגיע לעבודה בזמן. דןדן חשב שסוניה דומה לאנג'ליקה יוסטון, ומאז היא הפכה לאנג'ליקה בפיהם. 
באחד הלילות ירדו יויו ודןדן לזברה בר. כבר בכניסה ראה יויו את אלפרד יושב ליד הבר אך לא ראה שגם מישל יושבת איתו. יויו לא העלה בדעתו שאלפרד ומישל קבעו מכל הברים בפריז לשבת דווקא בבר שבו הם יכולים לפגוש אותו. יויו חשב שבטח מישל הגיעה לשם כי קיוותה להיתקל בו. מישל בהחלט אכן קיוותה להיתקל ביויו, אך גם מאד רצתה שיראה אותה עם אלפרד. 
יויו לא ידע שאלפרד נעלב ממנו קשות. מאז החל יויו לעבוד לא היה לו זמן לכלום, והוא לרוב העדיף להיות לבד אחרי שחזר מהביקורים אצל גורה. גם הביקור של תומר וחברתו העסיק אותו. אלפרד ניסה ליצור קשר עם יויו, השאיר לו הודעות במשיבון ורצה לדעת כיצד ההחלמה של גורה מתקדמת, אולם יויו לא הגיב להן. 
הוא סיפר לו שגורה הלכה והחלימה, שהיא התייחסה לפציעתה כהמלצה מבורא עולם לשקם את עצמה בתוכנית סדורה ולא נתנה לעצמה לדעוך. לאחר שהתאחו השברים, היא עבדה ביסודיות על הגוף שלה, בין השאר בעזרת מאמנת פילאטיס שהגיעה אליה פעמיים בשבוע. לא הייתה לגורה סבלנות לקרוא, אבל היא צפתה בטלוויזיה שעות רבות, ובעיקר הייתה מחוברת למחשב.                                               "אין לך מושג יויו אילו אינפורמציות מועילות ואילו סדרות מעולות אפשר למצוא בטלוויזיה אם אתה רק מבין איפה נכון לשוטט", היא אמרה יום אחד ליויו ברגע של מצב רוח טוב. היא הייתה משוטטת בעגלתה אולם היו גם ימים שבהם חשה ייאוש כשהבינה שהחלמתה תהיה אטית בהרבה משחשבה. זה היה אחד מאותם רגעים בהם איבדה את עליצותה. היה אסור לה להעמיס על האגן. לפני העמסת פלג הגוף העליון עליו, היה צורך לחזק את פלג הגוף התחתון כך שיוכל לשאת את הגוף נכון. זו הייתה עבודה אטית, חוליה על גבי חוליה, בסבלנות, תלויה בסביבה, עדיין בבית החולים. גורה הבינה היטב את חשיבות היציבה. היא התעמקה ביציבה. היא הייתה נואמת ליויו בהתלהבות כמה היא מעריצה אותו על כך שגדל עם רגל קצרה ועקומה. 
[img[pictures/hasipoor-9.jpg]]

עם דוקטור לומבר ניהלה גורה שיחות ארוכות על הוריה, שבהן ניתחה את היכולות הרגשיות שלהם ואת חוסר המודעות שלהם. היו ימים שבהם סיפרה ליויו בשקט על הכעס שלה. היא אמרה לו שהיא תחזור לעשן ולהתמסטל, אבל שהיא עדיין לא מוכנה לזה. היא טענה שתדע שהבריאה ברגע שבו לא תפחד להתמסטל שוב, שלא תפחד להשתגע. היא חושבת שהשתגעה באותו לילה ביער. היא זוכרת את זה כחלום בלהות חשוך עם הבזקים של פחדים על מותה הקרוב. היה ברור לה שהיא הולכת למות. יויו דאג מאוד כי ראה בהתנהגותה התנהגות פנאטית. הוא דיבר על העניין עם ד"ר לומבר. באחד הימים אמר לו הדוקטור שהוא חושש שגורה רזתה מאוד, ושפניה שקעו. הוא גם אמר לו שאצור בה זעם עצום שחייב להשתחרר, ושהוא מטפל בכך אך מדובר בתהליך איטי. 
כחצי שעה לאחר שיויו ודןדן התיישבו לצד אלפרד ומישל בבר, הביט אלפרד במישל, סימן לה והם יצאו מהמקום. יויו שם לב שהם לא היו נחמדים אליו. אמנם מישל חייכה ודיברה איתו על המסעדה, אבל אלפרד לא התייחס אליו. יויו לא ידע על הצד הזה של אלפרד. אולי זה מה שלא אהב אצלו בפעם הראשונה שנפגשו. יויו ניסה לשאול את אלפרד, אבל אלפרד רק אמר שהכול בסדר גמור. דןדן הקל קצת את האווירה, הם קמו ונפרדו מהם. יויו לא נרגע, רק כשהם יצאו, הבין יויו שהם יחד. הוא הרגיש נבגד ניסה להשתחרר מהמחשבות ומתחושת הנבגדות, יויו נדכדך אחרי שראה אותם וביקש מדןדן לצאת לרחוב. הם צעדו לכיוון אצטדיון ברסי, במעלה הרחוב דןדן הציע שייקנו בקבוק אלכוהול ויחזרו הביתה. הם נכנסו לחנות משקאות. המוכר היה איש קטן קומה במיוחד, כמטר וחצי גובהו. הוא היה מסביר פנים מזמין באופן תובעני, וחזר וביקש מהם לשבת. הייתה שם גם אישה שנראתה צעירה ממנו בחמש עשרה שנים בערך, היא הייתה מכווצת פניה היו אדומות, שפתיה רטטו והיא אחזה סיגריה בין אצבעותיה המכווצות בתוך ידיה המכווצות אל גופה כאילו שקר נורא. המוכר הגיש להם בירה, לצד צלוחית עם בוטנים ואגוזי קשיו. הם חשו אי נוחות. כששאלו אותו אילו משקאות אלכוהוליים יש לו, הוא ענה שיש לו הכול. יויו נדלק. "יש הכול" הייתה אחת מהתשובות הבלתי אהובות עליו. הוא שאל את המוכר בחוסר סבלנות מופגן אם יש לו מושג כמה מקום "הכול' תופס, ואמר שלא הגיוני ששמונת המטרים הרבועים שלו יכילו את הכול, גם אם מדובר באלכוהול בלבד. האיש המזמין בהה בו מחייך לא הבין מה הוא מנסה לומר לו. הם החליטו לקנות את היין הזול ביותר, שלטענת דןדן הוא גם הטוב ביותר.
לפתע שאלה אותם האישה אם הם גרים לבד. דןדן המשיך לטעון שאין כמו יין זול. בזמן שיצא המוכר ללקוחות אחרים האישה אמרה להם שלדעתה היין הזול מספיק טוב. הם שאלו אותה אם היא אכן כך חושבת, היא סיפרה להם שהיא גרושה, שהיא רבה עם אמה ויצאה מהבית. היא נכנסה לחנות כדי ללכת לשירותים, ואז המוכר הזמין אותה לשבת ולשתות משהו. היא לא יודעת מה יהיה עליה כעת. הם שאלו אותה אם יש לה ילדים, והיא ענתה שיש לה שני ילדים בגיל העשרה וילדה בת תשע. הילדה נשארה עם אמה ושהיא לא יודעת מה יהא עליה. היא הביטה בהם במבט של כלב עזוב ומפוחד. כלב שיש לו דיסקית על הצוואר תלויה על קולר, כלב שאתה יודע שיש לו בית, כלב עם צ'יפ, אך רגלו פצועה והוא מביט בך ומראה לך את רגלו הפצועה ואת אי רצונו לשוב אל ביתו, נוהם ומביט בך ואתה עומד במעבר החצייה ומסביר לו רק במבט שאינך יכול לאסוף אותו אליך. הוא מייבב ונוהם ורץ אליך אחרי כמה שניות, אתה ממשיך להביט בו, נוהם לו בחזרה חרישית, בשלב מסוים הוא כבר מבין שלא תיקח אותו ומסיר את מבטו ממך.
יויו משך את דןדן החוצה, דןדן כבר כמעט הציע לה לבוא אליהם מרוב רחמים אך יויו משך אותו החוצה. הוא הרגיש חרא. הוא בכל מקרה הרגיש חרא והיה לגמרי חסר סבלנות, הוא אמר לדןדן בדרך, שאי אפשר לטפל בכל כלב עזוב ברחוב, ושהאישה הזאת נראית מעורערת, הוא גם הסביר לדןדן שראו עליה שהיא מעורערת, אולי אלכוהוליסטית, ושהם לא יוכלו להיות המושיעים שלה. הם קנו שני בקבוקי יין לבן זולים במכולת של הסיני והלכו הביתה. שני בקבוקים במחיר בינוני נמוך. זה היה יין לבן. הם שמו אותו במקפיא לחצי שעה. אחר כך מזגו לעצמם והניחו את הבקבוקים במקרר.
יויו הסביר לדןדן שלמרות תחושת הסופרמן שיש לו, הוא ממליץ לו להפסיק לנסות להציל כל נפש אבודה שהוא פוגש. דןדן נזכר שכשהיה בן עשר בערך, נהגו כלבי השכנים לחרבן בגינת הירקות בבית אביו בלוס אנג'לס, ואז, באחת השבתות, הסביר לו אביו מה עושים לכלבים שבעליהם אינם שומרים עליהם וקושרים אותם. הוא לקח את דןדן איתו לקצב וקנה שני קילו בשר טחון. בבית הם יצרו כדורי בשר מחלק מן הבשר ותחבו בהם כדורי הרדמה. הם פיזרו את קציצות הבשר מסביב לגינה בינות לעצי המחט. דןדן חשד שהמעשה אינו נאות, אך הוא נהנה מתשומת הלב של האב ולא העז לומר לו זאת. אביו היה מרוצה ולא הפסיק לדבר. הכלבים לא הופיעו יותר בגינה ההיא.                                                                                         "לפחות הם אכלו בשר טחון משובח לפני שהתפגרו", אמר דןדן. אם כי זמן                  רב אחר כך עדיין חזרו הכלבים להופיע בחלומותיו: הם רצים אחריו והוא נס על נפשו, אץ בחלומו, מספיק לפתוח את דלת הרשת הקפיצית של הבית  ולהיכנס פנימה, אך הכלבים קורעים את הרשת ו... בשלב זה הוא היה מתעורר מבוהל. זו הפעם הראשונה שהוא סיפר למישהו על כך. הוא מעולם לא העז לספר לאף אחד את מה שאביו והוא עשו. לאחר שנפטר אביו, נשלח דן-דן לטיפול פסיכולוגי ובו עיבד את הסיטואציה הבלתי נשכחת ההיא, שהיו בה כעס גדול על אביו ורגשות אשם מכבידים. יויו סיפר לו על הכלב שלו, שכעת חי אצל תומר. כבר היה מאוחר, יויו היה פגוע, אבל ידע שאינו יכול לבוא בטענות לאף אחד. למחרת אחרי העבודה לקח איתו את דןדן לגורה, הוא סיפר לה ליד דןדן על אלפרד ומישל, אך היא התעלמה מכך ודיברה ללא הרף על החלמתה. היא ביקשה מדןדן שישחק איתה שש-בש. היא שאלה אותו אם יוכל לבוא מחר בלי יויו ובמקומו. יויו נפגע מאוד, זה היה יותר מדי בשבילו, גופו כאב לו. למחרת ביקר דןדן את גורה. יויו נשאר בבית והחליט שהוא לא מוכן לוותר על מישל, ושהוא רוצה גראס מאלפרד. הוא טלפן לאלפרד והשאיר לו הודעה בה אמר שהוא רוצה לפגוש אותו. אלפרד ענה לו כעבור שעתיים. הוא אהב את יויו ולא סרב להזמנתו. הוא הגיע בתוך חצי שעה מצויד בשקית נאה של מריחואנה משובחת. השניים הביטו זה בזה ופניהם התרככו. הם אהבו זה את זה אלפרד משך אליו את יויו והם התחבקו. (הוא היה גבוה מיויו בראש ורבע ופעם ושישית רחב ממנו), אלפרד גלגל ויויו הכין קפה. אלפרד סיפר לו שלא היה ולא יהיה כלום בינו ובין מישל. אבל הוא גם סיפר שלמישל יש רומן ממושך עם המרצה שלה לאסתטיקה, איש מבוגר ונשוי, ושהיא כל הזמן נפרדת ממנו וחוזרת אליו. אלפרד הוסיף וסיפר שמישל מאוהבת גם ביויו ונקרעת בין שניהם. היא סיפרה לו שכאשר פגשה את יויו, היא הייתה משוכנעת שייפסק הרומן עם המרצה, אך מאחר שהעניינים התמהמהו ביניהם היא חזרה אליו. מאוחר יותר הגיע דןדן ואמר שגורה ביקשה ממנו לבוא לבקרה לבד גם מחר. הוא הסביר שגורה רוצה להיות עם אנשים שלא יודעים עליה דבר, שלא הכירו אותה בריאה. אלפרד טען שיויו עדיין יכול להשיג את מישל, דןדן גם חשב ככה, אך לעומת אלפרד טען, שמהפעם הראשונה שזוג נפרד, מאותו רגע ממש, הניסיון לחזור הופך חסר סיכוי. שניהם אמרו לדןדן שהוא קטן ומה הוא מבין. יויו ניסה בכל זאת את מזלו אצל מישל, אבל היא עדיין לא החליטה במי לבחור, התמהמהה בטענה שהיא צריכה להחליט מה עדיף לה. הוא נפגש איתה כמה פעמים, אך המפגשים הפכו גועליים, והוא הרגיש שהוא יכול לשמוע אותה מחשבת חישובי תועלת, אבל כמו עם אלה, המשיכה הגופנית שלו אליה הלכה וגדלה. הוא היה זקוק לחוש גוף אישה.
בוקר אחד, בעוד מישל והוא עולים במדרגות הגבוהות של מטרו ברסי הוא נתקל בתמר שירדה מולם. היא חייכה אליו. "תודה לך על החיוך, יפהפייה", הוא אמר לה בעברית. היא התרגשה לראות אותו, וכמובן שהוא אותה. הם דיברו קצת. הוא הציג אותה בפני מישל. תמר אמרה שהיא לא יודעת כמה זמן היא תישאר בפריז. הם נפרדו. הוא היה מסוגל באותו רגע לשלוח את מישל הביתה. פניו נפלו. מישל הבינה מיד, היא שמה לב איך נשימתו נעצרה כשראה אותה יורדת במדרגות. מאותו יום נפגשו מישל ויויו רק פעם בשבוע או שבועיים. יויו לא אהב אותה, אבל הוא חיבב אותה ונמשך אליה. היא הייתה נפגשת קצת איתו וקצת עם הפרופסור וקצת עם אישה בת ארבעים ושלוש, נשואה ואם לארבעה ילדים. יויו בז לעצמו על פגישותיו עם מישל, אך לא היה מסוגל לנתק איתה קשר. דןדן הצליח לשכנע את גורה להיפגש עם אלפרד. הוא גם הצליח לשכנע אותה לאכול יותר, אם כי היא עדיין אכלה מעט מדי. יויו התעקש לבוא אל גורה, אך משום מה היא כעסה עליו. בחלוף הזמן החלו מתגלות תופעות לוואי נוספות לפציעתה - התפרצויות זעם קיצוניות ושִכחה של מה שרצתה לומר. חוט המחשבה היה יכול להיחתך אצלה פתאום ולא לחזור. אלפרד אמר ליויו שיאפשר לגורה לכעוס עליו, כי פירוש הדבר שהיא מרגישה מספיק בטוחה איתו כדי להפוך אותו מטרה נוחה. אלפרד הבין שגורה אינה בת זוגו, אך הוא אהב אותה. 

[img[pictures/hasipoor-10.jpg]]


באחד הימים הגיע דוקטור לומבר עם גורה ישובה בכיסא גלגלים למסעדה של ז'נבייב. הם תכננו להפתיע את יויו. דןדן יזם את הביקור. הוא הציע לגורה להיפגש עם אלפרד ואביו לארוחת צהריים אצל ז'נבייב, וכך, הוא אמר, היא תוכל להודות להם על דאגתם אליה. גורה ידעה כמה דאגו. גורה הסכימה איתו שהסליחה יכולה לעזור לה להחלים, זו אולי הייתה הסיבה המניעה בפעולתה זו, אך התנתה את המפגש בנוכחותו של דוקטור לומבר.                                                                                  גורה והדוקטור הגיעו בשתיים וחצי.                                                                       גורה הייתה במצב רוח מצוין. דוקטור לומבר נהג בה בג'נטלמניות האופיינית לו. היא ביקשה ממנו שיגיעו למסעדה במטרו, וכך היה. השמש וההסתובבות ברחובות עשו לה טוב. באותו זמן היו יויו, ז'נבייב, דןדן ואנג'ליקה עסוקים בהגשת האוכל במסעדה. לפתע קראה גורה בשמותיהם. דוקטור לומבר הסיע אותה פנימה בכיסא הטיטניום המפואר שלה, מתמרן אותו בכניסה, וחייך במבוכה. דןדן, ששטף כלים, הרים את ראשו, אנג'ליקה פסקה מלנגב את משטח העבודה, יויו בדיוק מזג רוטב קארי לתוך הכלי עם הבצל הירוק הקצוץ, וגם ז'נבייב, אף שהייתה בסוד העניינים, הופתעה. כולם הביטו בגורה. שערה החלק היה אסוף לקוקו שכבר הספיק להתפרע, היא לבשה מכנסי בד אפורים שהיו ענקיים עליה וטי שירט ענקית מהוהה עם הדפס של ביורק מהתקליט הראשון. היא נעלה את הסניקרס הלבנים עם ההדפסים של אופניים באדום ושחור שאלפרד קנה לה. עיניה בערו ונראו ענקיות עוד יותר בשל רזונה. על פניה היו שתי הצלקות. כל אלה נוסף על יופייה והכניסה הכריזמתית שלה למסעדה הסעירו את כל הנוכחים, שהתקשו להסיר את מבטם ממנה. אנג'ליקה הייתה הראשונה לפרוץ בצחוק מתגלגל ואחריה גם הסועדים. כולם חשו את הריגוש שבסצנה אף שלא ידעו דבר על גורה. גורה הכוכבת בכל מצב, ודוקטור פיליפ האהוב. זו הייתה הפעם הראשונה שבה נפגשו אנג'ליקה וגורה. שתיהן כמובן שמעו זו על זו.  גורה אהבה את הסיפורים שדןדן היה מספר לה על המסעדה, ואנג'ליקה שמעה את שיחותיהם של יויו ודןדן על גורה במטבח. לאנג'ליקה היה חוש לשפות והיא שלטה לא רע גם באנגלית. בתוך דקות אחדות פינו להם שולחן. כאמור אלפרד ואביו היו בדרך. כעבור זמן קצר הם הגיעו. ד"ר לומבר הציע שגורה תשתה כוס יין אחת ושהוא יהיה איתה אם תזדקק לו. היא חיבקה אותו וליטפה את פניו. יויו התבונן בהם. הוא לא היה מודע לקרבה שנוצרה ביניהם. ז'נבייב הגיעה אליהם, וכשהדוקטור שאל אותה איזה יין יש, היא הציעה להם לשתות את נקטר הוודקה עם מיץ העגבניות, הוואסבי ועשבי התיבול של יויו. יויו הכין לגורה משקה עם מעט וודקה. גורה לא שמה לב לכניסתם של אלפרד ואביו. ג'וזף צעד לעבר השולחן של גורה. היא חייכה אליו. גם ז'נבייב, אף שהייתה מבולבלת מקסמו של ד"ר לומבר. "ג'וזף", הציג אביו של אלפרד את עצמו בפני הדוקטור ובפני ז'נבייב. הוא גם הניד בראשו לעבר היושבים במסעדה, מציג 'כניסה' של כוכב, ולא יודע דבר על כניסתה של גורה לחדר. הוא חיבק את גורה, הם התנשקו, הוא הביט בה קצת התרחק ממנה והחמיא לה על יופייה. הוא התיישב מולה, וז'נבייב הביאה גם לו את משקה הבית. אלפרד, שפחד פחד מוות מהפגישה, מיהר להתבצר במטבח אצל יויו ודןדן. דןדן אמר לו שגורה התכוננה היטב לרגע הזה. הם ליוו את אלפרד אל השולחן. הסועדים הביטו מדי פעם בסקרנות במתרחש. הדרמה התעצמה כשאלפרד המהסס התקרב לשולחן מלווה בדןדן ויויו. גורה הייתה שקועה בשיחה ערה עם ג'וזף ולא ראתה את אלפרד שהתקרב אליה וחיכה לפגוש את מבטה כפי שחיכה לו ביום שבו חזר לבית הספר אחרי הפרידה שלהם. בשנייה שראתה אותו קפאה על מקומה בתוך החיוך שחייכה לג'וזף. חלפו כעשר אולי חמש עשרה שניות שבהן התבוננה בו והיה אפשר לדמיין עולם שלם שחלף בראשה. לראות על פניה את הכעס, את הבוז ואת הסלידה שחשה כלפיו. את הפישוק הקל של השפתיים, מתחילות כמעט לסנן מילים, את ההתכווצות של הגוף, את ההתפקחות, את ההרהור, את ההחלטה. היא הסירה את מבטה ממנו, גופה נרפה. 
"קהל הסועדים השתדל לשדר עסקים כרגיל", כתב יויו. גורה החזירה את מבטה לאלפרד, שעדיין עמד, ואז והרימה את קצות שפתיה לחיוך. גם אלפרד חייך. דןדן ויויו משני צדיו.                                                                 "אנחנו משאירים אתכם להתנהג וחוזרים לעבוד", אמר דןדן ושניהם חזרו בלי להניד שריר בפנים למלאכה הרבה. אלפרד התיישב וכמעט לא דיבר. ג'וזף וד"ר לומבר ניהלו שיחה, גורה הביטה בהם וחייכה ללא הרף. ז'נבייב קרקרה סביבם וניסתה להחליט מי מהם מוצא חן בעיניה יותר.
הם אכלו מכל מה שהיה. אלפרד לא העז להביט בעיניה של גורה כמעט בכלל.  בהתחלה היא באמת דיברה בעיקר אל דוקטור לומבר ואל ג'וזף האב. האב ליטף המון פעמים את אלפרד שישב חפוי ראש אוכל לאט ומחייך לתוך עצמו ומפסיק. הדוקטור והאב היו חכמים מספיק לא לנדנד לאלפרד, רק הביטו בו מידי פעם יודעים כל אחד בליבו שאלפרד יודע שלבם אתו. האוכל היה טעים. 
                                                                   בשלוש וחצי הלכה אנג'ליקה. גורה לא הפסיקה לדבר על תגליותיה מעולם האינטרנט והטלוויזיה ועל הדברים שהיא כותבת.                                                                     "תגיד דוקטור יקר, כשנפצעתי, מה נתנו לי שם לשיכוך הכאבים?", היא שאלה את ד"ר לומבר.
"מלא מורפיום", אלפרד קפץ. 
"המממ", המהמה גורה, "התעוררתי הלילה מחלום שהשאיר אותי ערה וגרם לי לחשוב. בחלום ראיתי שמנסים לדבר אליי ושאני לא עונה, וזה גרם לי להבין פתאום שזה משהו שכבר היה בזמן הקומה. היה בזה משהו הזייתי". 
אלפרד נדלק והתחיל לשאול את גורה עוד ועוד שאלות, הוא ירד לפרטי פרטים. לרוב השאלות לא היו לגורה תשובות, אך היא אמרה לו שהיא תחשוב עליהן. הדוקטור אישר שמדובר בתופעה ידועה בעת קומה. אלפרד הוצף אהבה אל גורה, הוא הרשה לעצמו להביט בה ארוכות בזמן שדיברו. הם ישבו כבר שעתיים וחצי כשיצאו אחרוני הסועדים. האוכל נגמר בארבע בערך. יויו ודןדן סידרו את המטבח, אלפרד הלך לעזור להם. גורה לא רצתה שהוא ילך, הם המשיכו לדבר ולשתות לאט וודקה אל תוך הערב. המטבח כבר היה מצוחצח. המסעדה הייתה שטופה. גורה ביקשה מאלפרד שיחזיר אותה לבית החולים. ז'נבייב הייתה צריכה לסגור את הקופה. ד"ר לומבר קם ונפרד באדיבות מכולם.
"למה שלא ניפגש שוב?", הציע ג'וזף. דןדן ויויו שמו לב שהוא מעוניין להכיר יותר את ז'נבייב. דןדן אמר ליויו שבא לו לעשות משהו, שהוא לא רוצה לחזור הביתה כרגע. יויו התנדב מיד להצטרף אליו לשיטוטים ברחובות. ג'וזף שאל את ז'נבייב אם יוכל לארח לה לחברה עד לסגירת המסעדה.                                                                                          "אני מבטיח לא לשים לב כמה כסף את סופרת", הוא אמר לה וחייך. היא הייתה נבוכה. הבנים נפרדו והלכו.
יויו לא כל כך אהב לא להתקלח לפני שהוא ממשיך, אך התגבר. הם לקחו מטרו למרה. אלפרד וגורה התקדמו בנחת לכיוון המטרו, גורה ביקשה להמשיך עוד קצת ברגל. הם התיישבו על ספסל. אלפרד אחז בכפות ידיה. היא נמלאה חמה באחת. אלפרד נבהל ולקח את ידיו חזרה אל גופו. היא אחזה את לסתותיה: "אני מבקשת שלא תיגע בי".                                                 "לא אגע בך".                                                                           
"אז תתרחק ממני ותיקח אותי עכשיו מהר לבית החולים".
הוא הסיע את כיסא הגלגלים במהירות לעבר המטרו. כשהעלה את הכיסא לקרון הוא הצמיד את גורה אל גב הכסא כדי שלא תיפול. היא הפליקה לו על היד ופלטה "שלא תיגע בי, שמעת?". הוא לא העז לענות ועמד לידה דומם בעת הנסיעה. הם לא החליפו מילה עד שהגיעו לבית החולים. בכניסה לבית החולים היא אמרה לו שמכאן היא תסתדר לבד ושהוא יכול ללכת. היא הודתה לו על המסירות ונכנסה פנימה. האחות התורנית אמרה לה שהם דאגו. היא ענתה לה שהכול בסדר ושיעזבו אותה בשקט.
[img[pictures/hasipoor-11.jpg]]

ג'וזף נשאר עם ז'נבייב עד שהיא כיבתה את האורות במסעדה וסגרה אותה. היא אמרה לו שהיא לא יודעת מה תעשה אחרי שיויו ודןדן יעזבו ושהיא מוכרחה לרוץ הביתה. בתה מחכה לה ויש להן תור למטפל. זה שנה שז'נבייב הולכת עם בתה בת העשרים לטיפול משותף. ג'וזף אמר לה שישמח לפגוש אותה שוב. היא נתנה לו את מספר הטלפון שלה. אחרי שגורה נפרדה ממנו, אלפרד לא ידע מה לעשות עם עצמו. הוא קנה קפה הפוך וטלפן ליויו. יויו הזמין אותו לשתות איתו ועם דןדן. הם קבעו במועדון קטן במרה. הייתה שם אחלה מוזיקה וקוקטיילים מגניבים. אלפרד סיפר להם מה קרה, והם אמרו לו שלעתים גורה נתקפת זעם. דןדן שלח לה אס.אם.אס. היא לא ענתה. יויו צלצל לבית החולים והאחות האחראית אמרה לו שגורה חזרה נסערת ושהיא ישבה איתה עד שהיא נרדמה. השלושה המשיכו עם הוודקות. יויו כמעט התעלף כשראה לפתע את תמר. 
"תסלחו לי", עשה עצמו מזיז מעליו את דןדן ואלפרד. הוא קם ממקומו, הלך לעברה בהליכה של קאובוי ונעמד מולה. היא הייתה עם בחור שליטף לה את הרגל. יויו הביט בעיניה. הוא נשאר באותה פוזיציה פשוקת רגלים וזרועות מביט לה ישר בעיניים.                           
"הוא מדבר עברית?", שאל אותה.                                                                               "לא".                                                                                                               "אז בואי איתי".                                                                                      "לא עכשיו".                                                                                            "עוד חמש דקות? תסגרי איתו עניינים ותבואי איתי? אני יושב שם עם שני חברים שלי ומחכה לך, מתאים?".                                                                          "אני לא עושה כאלה דברים".                                                                    "משהו חד-פעמי, בשביל שיהיה לך עוד וי קטן בקורות חיים".
"אתה שיכור".                                                                                                       "אני דלוק לך על התחת".                                                                           "לך עכשיו מכאן ותן לי לחשוב מה אני עושה".                                                 "טוב, אז אני מחכה".
יויו סובב את ראשו לכיוון הבחור ואמר בעברית בזמן שהוא מחייך אליו:                                                                                 "אני יושב שם ומחכה עד שאת מסירה אותו מעלייך, יושב ומחכה".                             אחר כך הוא הסתובב והלך באותה הליכה אל דןדן ויויו. גם מולם נשאר עם אותה עמידה.  הוא סיפר להם על היכרותו את תמר. שניהם חשבו שהיא מהממת. "מעולם לא העזתי להיות כזה בוטה", הוא אמר. אחר כך אמר לדןדן שמחר לפני העבודה הוא הולך לבקר את גורה. דןדן אמר לו שהוא מוכן לבוא איתו.  בינתיים תמר קרבה אליו. היא אמרה לו שהלילה היא תיתן לבחור ללוותה הביתה והבטיחה לו שמחר הם ייפגשו.                                                                                          "די כבר להיות מנומסת!", הוא סנט בה. מזל שאף אחד שם לא הבין מה הוא אומר לה.                    "אתה יודע מה? תגיד לי איפה אתה גר ואני מגיעה לשם בעוד שעתיים".                          לא היה כזה מאוחר. היה רק אחת עשרה וחצי. 
"אני הולך לטרוף אותך", אמר לה מאושר.                                                        "אני לא אבוא אם תמשיך לדבר ככה". 
                                                         "להתראות יפהפייה עולמית שכמוך, אני לא יכול לחכות".
"אני טס מכם הביתה להתקלח ולהתארגן"                                                        "יא זונה", ברך אותו דןדן ואלפרד אמר: "האלכוהול לא מזיז לי ת'תחת מרוב שאני מבואס.." 
"תעשה חיים אח", אמר לו אלפרד.                                                                                דןדן אמר לו שיעיר אותו בשמונה.                                                            דןדן ואלפרד המשיכו לשבת ולדבר. דןדן היה סוג של כמוסת הרגעה מהלכת. בתוכו נקרע גם הוא, גם אלפרד. הם נפרדו במטרו. הלכו לישון. בבוקר יויו לא התעורר. דןדן הלך לגורה לבד. היא הייתה מבואסת ולא רצתה לדבר. דןדן הבטיח שיבוא שוב בערב. היא ביקשה שימסור ליויו שהיא לא רוצה לראות אותו היום ולא בימים הקרובים.
יויו ותמר עשו אהבה כל אותו לילה. הוא הלך שמח לעבודה, שר ושרק כל הדרך. נפל כשדןדן סיפר לו על גורה. הוא התקשר לד"ר לומבר וביקש שיילך אליה לראות מה איתה. אלפרד הגיע בסוף היום ועדיין היה מבואס. הוא קבע עם אבא שלו אצל ז'נבייב. ד"ר לומבר אמר להם שאולי הוא יתחיל לתת לגורה משהו להרגעה, ושהוא יתייעץ עם הרופא במחלקה שלה. יויו היה עצוב ושמח חליפות. באותו ערב, באמצע ספטמבר, הוא שלח לי מייל, ומאז לא שמעתי ממנו חודשיים.
[img[pictures/hasipoor-12.jpg]]

אחרי חודשיים.
עמדתי במטבח ורדדתי את הבצקים הפריכים, כשלפתע הרגשתי מגע יד עדין על כתפי.                                                                                                   "מחכים לך בחוץ", אמר יניב והיה מבסוט מעצמו. "את מוכרחה לבוא עכשיו". הוא משך אותי החוצה. על הדרך אני עוד תופסת מגבת ומנגבת את הידיים השמנוניות. יניב מוביל אותו בגאווה בין השולחנות החוצה. יויו וגורה עמדו מולי. לא ידעתי במי להביט קודם. השתוללתי משמחה. השיער של יויו ארך והוא נראה רזה יותר, ואפילו נראה כאילו גבה.
"אנג לי, [[מייק לי]], או [[ספייק לי]]?",                                 שאלה אותי גורה, ועל פניה מרוח חיוך מאוזן לאוזן. יויו הסתכל עליי וצחק. הבטתי בו ואחר כך בה.                                                                        "גדול!.. שאלת שאלה קשה, יקירתי. את שלושתם אני אוהבת. אבל ללא ספק ספייק לי מבחינתי לוקח. דווקא האמריקאי שבחבורה, אני אוהבת את ההתבגרות שלו".                                                                             "תשובה נכונה", אמרה גורה, "חשבת פעם על כך שמייק לי הוא אנגלי ואנג לי הוא טייוואני וספייק לי הוא אמריקאי?".                                                                                    "וואלה, לא חשבתי על זה. בבית חולים באו לך המחשבות הללו?".
"הכול מבית החולים", אמרה גורה וחייכה.                                                                          "אני שמחה לשמוע".                                                                              גורה ישבה על כיסא הגלגלים שלה והביטה בי, מגלגלת את עצמה טיפה אחורנית.                                                                                              "את יודעת?", היא אמרה לי, "אני מנסה להבין מה עבר עליי בשבועיים שבהם הייתי בתרדמת. וסלחי לי שאני מתנפלת עלייך ככה".                                                                                   "זה כנראה משפחתי אצלכם, להתנפל עליי", אמרתי ושלושתנו צחקנו. היא ללא ספק הייתה תקשורתית הרבה יותר מאחיה.                                                                                          "לבית החולים בפריז הגיעה קבוצה של חמישה עשר סטאז'רים מבית ספר לרפואה אלטרנטיבית. המטפל שטיפל בי היה בן שלושים ושלוש, ג'ינג'י, שאהב נורא מוזיקה. רגע סליחה, המורה שלהם הסביר לנו שלכל תלמיד יש תחום התמחות ושכולם עברו קורסים שונים ומשונים. מה שאת לא רוצה אווה, את לא מאמינה, והאמיני לי, אווה, כשהצרפתים הופכים רוחניים הם עוד יותר ביזארים. ואז כל אחד הציג את עצמו. בקצרה, הם עושים את זה בהתנדבות במשך שנת לימודים אחת, כלומר שני סמסטרים. אני נדלקתי על הג'ינג'י הזה. רוז'ה שמו. מבחינה טיפולית, כמובן. כשהוא הציג את עצמו, הוא צחקק כל הזמן והיה נבוך, וזה מצא חן בעיניי. הוא אמר שמצבים לא שגרתיים של המוח מעניינים אותו מאוד. למשל תרדמת. ביקשתי להיות המטופלת הראשונה שלו.
"טוב, שתקי כבר", הרעים יויו בקולו וצחק.                                                                  "דבר כבר אחינו יויוקה, אתה נראה מצוין עם השיער הזה".                                                        
"אמא שלנו נפטרה לפני שבועיים", אמר יויו. לקח לנו יומיים להתארגן על עצמנו והגענו ללוויה".                                                                                                      
"אויישש... אני מצטערת לשמוע. ממה היא נפטרה?".                                         
"יותר מדי תרופות", אמר יויו.                                                                             
" יותר מדי תרופות? מאיזה כיוון? היא לקחה יותר מדי תרופות?".                                  
"היא לא לקחה מנת יתר, אם לזה את מתכוונת", אמרה גורה.                            "מדובר בשימוש בתרופות נגד דיכאון, שכנראה לא היו כל כך מתאימות והדיכאון עצמו, היה לה קריש דם עצבני שגרם לשבץ מוחי והיא מתה בתוך יומיים. נשארנו עם אבא החמור, סבתא וסבא המתוקים והאחיות המגוונות שלנו".                                                                                               
"אני מבינה", אמרתי.                                                                                                           
"את נראית לי בחורה מאוד מבינה", אמרה גורה.                                                                                
"ואת נראית לי אחלה בחורה".  צחקנו שוב. כשגורה ויויו הגיעו לארץ, כבר הייתה כל המשפחה מכונסת בבית הוריהם. אמנם גורה הלכה על שתי רגליה, אבל בחלק מן הזמן היא עדיין העדיפה להשתמש בכיסא הגלגלים שלה. בצד שמאל של פניה היו שתי צלקות תפורות. אחת, שאורכה כארבעה סנטימטרים, הייתה על הלחי, והאחרת, קטנה יותר, הייתה על המצח. היא הייתה רזה מאוד והיה לה קשה להזיז את ראשה.                                                                                     
"רואה? אם מישהו מבהיל אותי ואני צריכה לסובב את הראש במהירות, הוא פשוט נתקע", אמרה לי. עד לכאן הוא מגיע, "עדיף ממש שלא יבהילו אותי. ובכל מקרה                      עכשיו אני כמו חדשה. אני הרוסה מכך שלא נפרדתי מאמא כמו שצריך. זה ממש הדבר היחיד שכרגע שמטריד אותי. זה, ועדיין אני צריכה לראות איך אני נפטרת לחלוטין מהתקפי זעם שפוקדים אותי מדי פעם. הגוף יהיה בסדר, עד כמה שהוא יוכל להיות בסדר, הרי תקועה לי פלטינה באגן וזה לא כזה פשוט. אני חולמת על אמא ורוצה לחבק אותה ולאהוב אותה ולנחם אותה יותר מכל דבר אחר.                                                                                         "בעוד עשרה ימים אני והקוף חוזרים לפריז. אני רוצה לסיים שם את הטיפול. חבר של ההורים סידר לי עבודה משרדית במשרד הביטחון. הקוף כבר יספר לך את כל השאר, נכון קוף?".                                                               
היא הפנתה את מבטה ליויו וחייכה אליו. הוא חייך ועשה את פני הקוף המתוקות שלו, ופניו הרצינו שוב. מחייך את חיוכו מכווץ העיניים אבל אני רואה שלא עד הסוף ופניו מרצינות שוב.
"אנחנו נלך עכשיו", אמר יויו. "אני אתקשר אלייך ואקבע איתך פגישה לאחד מימי השבוע. בסוף השבוע ז'נבייב מגיעה לכאן עם ג'וזף, אבא של אלפרד".                
"אז אולי ניפגש קודם?".                                                      
"מצדי אפשר הלילה".                                                                                               
"מגניב! אצלצל אליך כשאסיים כאן את העבודה, וגם אותך אני רוצה לראות לפני שתיסעו".                                                                                              
"רצונך הוא פקודה לי הוד מצוינותך".
 גורה קדה קלות עם השכמות, והניחה את כף ידה השמאלית על הסרעפת. נפרדנו והמשכתי לעבוד.

[img[pictures/hasipoor-13.jpg]]

בלילה הגיע יויו עם בקבוק וויסקי. התחבקנו והוא פרץ בבכי תמרורים. התיישבנו מחובקים על הספה.                                                               
"אני כל כך מתגעגע לאמא שלי. אני רוצה לחבק אותה. אני משתגע מזה שלא נפרדתי ממנה".                                                                              הוא המשיך להתייפח, עד שבקושי הצליח לנשום.                                    
"כל התקופה הזו שלא כתבתי לך, אוושושי, אני לא יודע מאיפה להתחיל. הרע והטוב התערבבו. גורה לא רצתה לראות אותי במשך חודש וחצי, ורק לדןדן הרשתה לראותה.
הוא היה הולך אליה פעמיים-שלוש בשבוע. היא לא הייתה מוכנה לשמוע עליי או ממני. לא רציתי לספר להורים כי הם היו שולחים כוחות תגבור לא רצויים. את המסר הזה מסרתי לה עם דןדן, והוא דווקא היה מקובל עליה. עכשיו, במבט לאחור, חבל שלא סיפרתי להם. אולי אם אמא הייתה באה, היא לא הייתה מתה".                                                                                                                             
יויו התחיל לבכות שוב.                                                                          
"עכשיו הייתי לוקח את האבא הזה וגוזר אותו לחתיכות קטנות ומעיף אותן לכל הרוחות".                                                                                       
"מה קרה יויוקה?".                                                                               
"כרגע אני נע בין שנאה עזה לאבא ובין רחמים עליו, או בין זעם עצום על אמא לגעגועים אליה. אני מרגיש עצב עצום. אני מרגיש לא בסדר, ואז שונא אותו שוב. בא לי להרביץ לו".                                                                
 "תשמע, היה לי חבר במשך שנתיים, שרק טמבלית כמוני הייתה יכולה להיות חברה שלו. יש לי חלום לעמוד מולו כשמסביב עשרות אנשים שמכירים אותו, ולהגיד לו כמה הוא מטומטם ולא כישרוני ומגעיל ואיגנורנט זבל לבן! במבט מלמטה הוא היה נראה כאור לגויים, אבל הוא היה חתיכת חרא, זבל, אפס גמור שקרה לעצמו אמן, ואני באמונת שוטים נתתי בו את אמוני. יואו, איך בא לי לגרום לו לרצות למות ממילים".
"אמא נפטרה, אבא צלצל, גורה ואני הגענו יומיים אחר כך. גם את זה גורה כבר סיפרה לך. נכון שהיא מתוקה לפחות כמו שאמרתי לך? ואז הייתה הלוויה, אחר כך ישבנו שבעה שהייתה רגועה יחסית, מהבחינה המשפחתית אני מתכוון. כולנו עוד היינו מאוחדים, מאופקים, טובים זה אל זו. אבא היה אדיב ומעשי וגם נדיה, אף שהיא הייתה חלשה יותר. סבתא וסבא היו  עצובים נורא והיו צמודים אל גורה ואליי. הם לא בכו בכלל. גיגי מתוקה ושקטה. בשבועיים האחרונים היא בילתה יותר מכולנו עם אמא. קרן פטפטה ללא הרף. כמויות עצומות של אנשים עברו בבית בשבוע הזה. היו אפילו רגעים יפים, את יודעת, כמו במלחמות, אחוות לוחמים אחים. אבל מאחר שלא מדובר כאן ב'זרוע החוק השחורה', זו לא הייתה אחווה אמיתית. אני לא יודע, אולי הייתה אמיתית אבל זמנית. אחרי שבוע עלינו לקבר. קרן כבר הייתה צריכה לחזור למשפחה שלה, נדיה הייתה כל הזמן בסביבה. אבא חיבק אותנו המון.
"אחרי יומיים נוספים אבא תפס אותי במטבח בבוקר. אמר לי שהוא רוצה לדבר איתי בארבע עיניים. יצאנו לגינה. 'יויו', הוא אמר לי בפנים רציניות ובחוסר שקט שלא אופייני לו. 'אתה הראשון שאני מספר לו, אבל אני לא יכול יותר לעצור את זה, ולא מתכוון יותר לעצור. אם לא אוציא את זה, אתפרק לחתיכות. אני יודע שזה ייקח זמן מה עד שכולם יעכלו את המידע, אך אני בטוח שכגבר אתה תבין אותי'. אמרתי לו שיספר לי כבר ושאני מבטיח לקבל כל מילה כמו גבר. 'יש לי אישה', הוא אמר לי. האמיני לי שלזה לא ציפיתי, לא היה לי מושג מה לענות לו.                                                                                                                      
א'קיצר שתקתי. הרס אותו שאני שותק. ביקשתי שיספר לי מה הקטע, כמה זמן וכל זה.                                                   
'אני מכיר אותה בערך כמו שאני מכיר את אמא שלך. היינו כולנו יחד בצבא'.                                                                                        'וכמה זמן זה כבר נמשך?'.                                                                     'שנים'.                                                                                               
'ואמא ידעה מזה?'.                                                                                               'בחלק מהזמן'.                                                                                                                      'וממתי אמא הייתה בדיכאון?'.                                                             'אחרי שאתה נולדת. בעצם, פגשתי את תרצה בתקופה שאמא הייתה בהיריון איתך. יויו, אתה עוד לא יודע מה זה להיות גבר שהתחתן עם אישה שנכנסת להיריון ויולדת שוב ושוב, והבית, והדאגות, והיחסים. פגשתי את תרצה בעבודה בכנס כלשהו, מיד קבענו להיפגש ומיד זה הפך קבוע. בשנייה שראיתי אותה הבנתי מה היה חסר לי. אחר כך היא התאלמנה, בשנת 1973. אמא גילתה את זה רק אחרי שגיגי נולדה, אבל לא בגלל זה היא חטפה דיכאון'.                                                                                            'אתה יכול לעצור כאן, אבא', אמרתי לו זועם, סותם את אוזניי. 'הספיק לי בינתיים המידע, ואני רוצה שתקשיב לי עכשיו טוב'.                                                            'אני רוצה שתבין אותי, יויו', הוא אמר לי מתחנן לרחמיי.
'הנקודה היא, אבא, לא אם אני מבין אותך, כי אני חושב שאני מבין יופי, אלא אם אני רוצה להבין, וכרגע אני בכלל לא רוצה להבין אותך.  עכשיו, כשאתה כל כך זקוק להבנה מבנך הגבר, אני חושש שאין לי ממנה בשבילך. אני חושב שאתה חצוף מאין כמוך'. ממש צרחתי עליו אווה. 'כבר בפריז היית בלתי נסבל, והגרוע יותר בלתי מבין לחלוטין ובלתי מתחשב. אתה חושב שאין קשר בין איך שאמא ואתה הייתם ובין מה שקרה לגורה? תגיד? מה אתה חושב לעצמך?! אתה חושב ששבוע אחרי שאמא שלי מתה, שגם את זה אני לא יודע איך לאכול, אני מסוגל לשמוע את הווידוי שלך? תענה לי כבר!!. הוא התחיל לענות לי אבל לא נתתי לו והוא השתתק מיד. 'ואי לכך, אני לא רוצה להבין אותך ולא רוצה שתרוץ עכשיו, חמש דקות אחרי שאמא מתה, לזרועות אישה אחרת, ולא אכפת לי מה היא אישה הזו בשבילך. אתה מגעיל אותי, אבא. אני בז לך. ממש ככה. כולך כוחניות וחישובים. הכול חישבת, איזה יופי! גם מתי אמא תמות חישבת? איזה יופי! שיחק לך המזל ואמא מתה כשאתה מספיק צעיר לחיות כמו שבאמת בא לך סוף-סוף. תראה איזו מדהימה אמא, אפילו השאירה לך מספיק זמן בשביל האישה האחרת שלך. אתה רוח קרה אבא, אתה מקפיא אותי'.
"אבא ביקש ממני סליחה ואמר שהוא מקווה שיום אחד אבין אותו ואסלח לו. התפרצתי עליו. 'אתה יודע מה הכי מעצבן אותי, אבא? הכי מעצבן אותי זה שכל השנים הללו נתת לנו להאמין שאתה מלאך משמים קורבן למחלתה של אמא, שאף לא הוגדרה חולה כדי שאנחנו נוכל להתנחם בעובדה שאנחנו בסדר גמור. אז אם ככה נתת לעצמך לעבור את החיים שלך, או יותר נכון, להעביר את החיים שלך, אתה תלך עכשיו לטיפול ותנסה להבין למה אתה כזה חמור!'. "לא ידעתי מה לעשות עם עצמי. יצאתי מהחצר והלכתי לעץ האלון שליד קופת חולים וטיפסתי עליו. התיישבתי על הענף שכל חיי הייתי בורח אליו, נשכבתי והתחלתי שוב לייבב. גם מלבכות כבר לגמרי נמאס לי. התגעגעתי לתמר. בכיתי עד שנמאס לי. ייבבתי חרישית כדי שחלילה לא יגיע קול בכיי אל איזה עובר או שב. ככה עד שנרגעתי. נשכבתי על הגב ועצמתי את העיניים. ספרתי, כמו תמיד כשאני לא רוצה לחשוב על כלום. נרדמתי לכמה דקות.  גשם העיר אותי, ירדתי מהעץ והלכתי הביתה. תומר חיכה לי שם. אצל גורה היו חברות. 
אחרי כמה ימים באתי לאבא ואמרתי לו שאני מוכן לסלוח לו, אבל שיש לי תנאים.                                                                                           'יויו, לא נשמע לי העניין הזה של תנאים', הוא אמר.                                                           'תנאי ראשון הוא שתחכה קצת עם היציאה מהארון. תן לסבתא וסבא להירגע מהמוות של אמא'.                                                                                                               'סבתא וסבא יודעים, אף שלא אני סיפרתי להם'.                                             'ממתי?'.                                                                                                                  'מאז נודע לאמא'.
"הוא ישב זקוף על הכיסא, רגליו צמודות זו לזו והוא לא הסיר ממני את עיניו, שהתרוצצו בחוריהן כמו צמד עכברים מורעלים. 
'וגם סבא ידע?'.                                                                                                   'סבא הוא זה ששכנע אותי להישאר עם אמא ואיתכם ולהשאיר את הרומן עם תרצה בצד'.                                                                                                       'אלוהים שישמרני, אבא, גם אותנו תכננת לעזוב?'.                                               'לא אתכם, אבל את הבית. לא הייתי מפסיק לראות אתכם, אבל ברור שלא הייתי גר איתכם אם הייתי עובר לחיות עם תרצה. ובבקשה יויו תקל עליי, אני לא רוצה לפתוח את הכול עכשיו'.                                                                        'אבא, אתה לא ממש מקל עליי, ואל תצפה ממני כרגע להקלות. חרבת לי את הראש עכשיו. וחוץ מזה יש לי עוד תנאי אם אתה רוצה גיבוי ממני: ללכת לטיפול פסיכולוגי'.                                                                                                                'אין סיכוי!'.                                                                                                           'אין דבר כזה אין סיכוי! אתה תדאג עכשיו לדעת איך להתמודד ולטפל בכל הילדים שעשית, בעיקר בגורה וגיגי. אין לי בעיה לשמור על גורה. כבר בילדות אתה ואמא הפלתם את זה עליי בלי לתת לעצמכם שום דין וחשבון, וגם על נדיה, אבל מנדיה אני לא מצפה לכלום, היא נהייתה כהת חושים ומרת נפש, ואני דואג לגיגי העצובה כי גורה ואני עפים מכאן בחזרה לפריז בקרוב'.                                                                              'אני לא הולך לשום פסיכולוג!', הוא צרח.                                                           'אבא, במשך חייך עם אמא, אתה אפשרת לה לרדות בנו! אני לא יודע אם אתה מודע לזה, אבל קוראים לכך שיתוף פעולה. אתה הסתתרת אחריה כמו שפן ושיחקת אותה אדם טוב לב. עכשיו אני מתחיל להבין שהיית פחדן עלוב. מלבד האמפתיה לאישה האחרת, אתה לא אמפתי לכלום ולא מבין כלום ולא מודע לכלום, ומעולם  לא עשית חשבון נפש!'.                                                                                                                           'הו, יויו, אין לך מושג כמה שאתה טועה, כל יום אני עושה חשבון נפש'.                                                                                                        'חשבון נפש של מי אתה עושה? אתה בטוח שמדובר בנפש שלך שאתה עושה לה חשבון, או שאולי אתה עושה חשבון לכל שאר הנפשות חוץ מזו שלך? רוצה לעלות כיתה בבית ספרי? לך לטיפול! זה התנאי! והאמן לי שאתה תודה לי על זה. אני לא אשתף איתך פעולה אם לא תלך לטיפול ולא מעניין אותי... אין מצב.. תשכח ממני!'                                                                                                    
"סיפרתי הכל לתומר, הוא אמר לי שאני טמבל שלא יודע כלום על החיים, רוב המקרים שהוא שמע עליהם לא עוברים בלי רומנים מהצד. ולחשוב שהוא הולך להתחתן עם טלי שלו הבן אדם.                                                                                                              'אתה יודע, אנחנו כבר בני שלושים ושש', הוא אמר לי.                                             'מה זה קשור?', צרחתי עליו. 'מה, זו משימה שחייבים למלא אותה? מה, אני צריך ילדים שיגדלו כמוני?'.                                                                                                         'למה מה לא טוב בך? תראה איזה בוז'בוז'ון אתה', חייך תומר חברי האהוב. 'אחי האהוב, מה יהא עליך ועל כולם אם לא תבין ותסלח? אני לא אומר שאני כזה תותח, אבל כבר שנה שאני הולך לטיפול ואצלי הסיפור לא כבד כמו אצלך, אבל גם לי היה על מה לסלוח להורים שלי. אתה יודע איך אמא שלי עם החרדות שלה, ואבא שלי עם הסגפנות שלו והאינסוף ביקורת. אני פשוט מרגיש שעם טלי אני יכול לדבר וזו הדרך היחידה להסתדר ולחיות עם אנשים'. תוך כדי שיחה בהליכה... יצא לי חרוז, ראית מה זה פואט אנוכי?'.
"בערב תומר צלצל וביקש שנצא.                                                   נסענו לקיסריה, לים. הוא הביא גראס וּויסקי כמו שאנחנו אוהבים, דיברנו והייתי מסטול רצח, ונמלאתי פתאום אהבה לעולם. פתאום הבנתי את אבא. הרגשתי את לבי מתרחב. אמרתי לתומר שאני הולך לעזור לאבא ולאהוב את אמא כמו שאלפרד לימד אותי, שאני כבר מרגיש איך אני אוהב את אבא ואיך אני מחבק את אמא ומלטף אותה. למחרת אמרתי לאבא שאני רוצה להיפגש איתו בים. לקחתי אותו לסלע שתומר ואני ישבנו עליו. הבאתי וויסקי. הוא נורא שמח ונראה רגוע.
'תראה מה זה. ברגע שהחלטתי שאני אתגבר על יצריי ורצונותיי ואתן לזמן לעשות את שלו, באת אליי וביקשת לשוחח איתי', הוא אמר לי.
'או, וואו, איזו התקדמות אבא, בוא נשתה לכבוד התובנה', אמרתי לו בסרקסטיות. 'בכל אופן, אני חושב שאני מוכן להבין אותך, אבל קודם אנחנו צריכים לדבר עם סבתא המתוקה, ולראות איך היא מגיבה, ואחר כך תצטרך כל אחת מהבנות להתמודד עם זה שיש להן חרא אבא’, המשכתי וחייכתי, ’בטח עשית כמיטב יכולתך, ותודֶה גם לתומר ולאלפרד, שהתייחסת אליו ואל אבא שלו באופן מגעיל, כי הם שני אנשים מדהימים בפתיחותם ובטוב לבם, והם שעזרו לי לקבל את החיים כמו שהם ולא להתנגד להם'.
אבא הסתכל עליי כלא מאמין למשמע אוזניו.                                                                                             'כל כך שימחת אותי עכשיו', הוא אמר.                                                                                      'אבל אתה לא עומד לזכות באור מן ההפקר, והוא גם לא יבוא לך בירושה מבנך, אבא. עכשיו אתה תצטרך לחצוב הרבה בסלע, נוסף על טיפול פסיכולוגי תצטרך להיות פתוח לכל שוני בי או בשאר בני משפחתך, ואני מקווה שאתה מבין מה אני אומר', הוספתי.                                                                                                                         'אני מבין מותק שלי. מבין. האמן לי. אלמלא תרצה לא הייתי מבין כלום, היא מדברת בדיוק כמוך, אלא שלה יש סבלנות אליי'.                                                                                                       'אתה משתפר, אבא. ג'וזף וז'נבייב יגיעו בעוד כמה ימים וחסר לך שלא תהיה נחמד אליהם'.                                                                                             'מבטיח'. 
"את מבינה אווה, אבא נתן לי את הבטחתו, ועכשיו הוא יראה מי מאלף את מי בבית הזה".
[img[pictures/oto-mitriya.jpg]]

!!![[אירי]]:

בילדותי, המרחק מבית הורי לבית הספר היסודי, היה משהו כמו 400 מטרים, הכוללים שלוש פניות.

בקיץ זו לא הייתה בעיה, וגם היו לי אופניים, אבל בחורף תמיד [[חלמתי|דעתניות]] שיש לי אוטו-תלת אופן, עם כיסוי בצורת מטריה ענקית שקופה.




<<englink [[Umbrella car]]>>
[img[pictures/belisima.jpg]]

!!![[תומר]]:

בקרליבך 39, מול הסינמטק, סמוך לפינה של קריית ספר, שוכנת בצנעה [[אופטיקה בליסימה|https://www.belisima.co.il/]], חנות משקפיים מצויינת עם המוכרות הכי נחמדות.

[img[pictures/orez-lavan-matconim.jpg]]

!!![[גורה]]:

//ראשית זה בעצם גם המתכון לאורז לבן - רק שאם רוצים אורז לבן לא מוסיפים את הצנוברים :)//

בסיר של שני ליטרים שמים, כף שמן צמחי וכוס אורז, ומטגנים אותו מעט מעל להבה בינונית.
 
מוסיפים שתי כוסות מים חמים, חצי כפית מלח ים גס, ומבשלים על אש נמוכה רבע שעה-עשרים דקות. (או עד שהאורז נראה יבש ונפערות בו מערבולות קטנות.)

בזמן שהאורז מתבשל קולים חצי כוס צנוברים בתנור או על מחבת.

מכבים את האורז ונותנים לו לעמוד עשר דקות.

כעבור עשר דקות "פותחים" אותו בערבוב קל. סוגרים שוב את המכסה ומשאירים את הסיר סגור לעשר דקות נוספות, והאורז מוכן להגשה

את הצנוברים הקלויים מפזרים מעל, ואפשר לפזר גם עשבי תיבול קצוצים.


<<englink [[White rice with pine nuts]]>>
[img[pictures/downton-abbey.jpg]]

!!![[גורה]]:

כל בית צריך אימא אוהבת, מקבלת ומסייעת, [[ובאחוזת דאונטון|https://www.imdb.com/title/tt1606375/?ref_=nv_sr_1]] הענקית שתי אימהות נהדרות. קורה, [[האימא המלאכית|https://www.imdb.com/name/nm0001527/?ref_=tt_cl_t9]] של מעלה, ורוז, [[האימא הכי בעולם|https://www.imdb.com/name/nm0517642/?ref_=ttfc_fc_cl_i8]] של מטה. הן שתיהן דואגות לסדר את הדברים שקורים בשום וטוב לב, כי דמויות רבות מתגוררות באחוזה ועוד רבות מגיעות לבקרה.
מהתצלום [[הזה|http://d2buyft38glmwk.cloudfront.net/media/__sized/images/canonical/downton-abbey-s6-house-trivia-1920x1080-scale-800x600.jpg]] ציירתי את הציור, והדמות הצועדת בה היא [[הרוזנת האלמנה ויולט קרולי|https://www.imdb.com/name/nm0001749/?ref_=tt_cl_t12]], אחת הדמויות האדירות, למרות שהיא יצאה קצת יותר כמו [[איזבל קרולי|https://www.imdb.com/name/nm0934362/?ref_=ttfc_fc_cl_t13]], דמות נפלאה גם כן. אבל מה עם [[דייזי|https://www.imdb.com/name/nm2904789/?ref_=ttfc_fc_cl_t10]] ההולכת ופורחת, [[מיסטר מוזלי|https://www.imdb.com/name/nm0236413/?ref_=ttfc_fc_cl_t14]] הנפלא, [[גברת פטמור|https://www.imdb.com/name/nm0630149/?ref_=ttfc_fc_cl_t11]] הבובה, [[ברנסון|https://www.imdb.com/name/nm1395602/?ref_=ttfc_fc_cl_t15]] המענטש, [[ליידי מרי|https://www.imdb.com/name/nm1890784/?ref_=ttfc_fc_cl_t5]] שיכולה להיות כלבתא אך גם חברה טובה, [[ליידי אדית'|https://www.imdb.com/name/nm3882295/?ref_=ttfc_fc_cl_t2]] מלאת האהבה והכעסים, [[האבא|https://www.imdb.com/name/nm0095017/?ref_=tt_cl_t1]] של מעלה השמרן המתגמש, [[האבא|https://www.imdb.com/name/nm0141697/?ref_=ttfc_fc_cl_t3]] של מטה שאט מתרכך מעט, [[בייט'ס|https://www.imdb.com/name/nm0185354/?ref_=ttfc_fc_cl_t4]] הגבר, [[אנה|https://www.imdb.com/name/nm0296219/?ref_=ttfc_fc_cl_t6]] האישה, [[תומאס|https://www.imdb.com/name/nm1674947/?ref_=tt_cl_t7]] שהיה רשע ולמד בדרך הקשה. קשה לי להפסיק כי שימת הלב לדקויות הנפש האנושית והתפתחותה של המשפחה המאושרת בדרכה היא סוף כל הסופים שמשוחק מוש. מחיאות כפיים סוערות.




<<englink [[Downton Abbey]]>>

[img[pictures/achot-coen.jpg]]

[[שלום ואהבה|Imagine]].

<<list-links filter:"[tag[אחות כהן]]">>

<<englink [[Coen sister]]>>
[img[pictures/ahayot-huz.jpg]]

!!![[גורה]]:

[[ליויו|יויו]] יש את הנטיה להיקשר רגשית גם לאנשים שלא יודעים כלל על קיומו, עד כדי שהוא מרגיש שהם אחיות שלו. כאלה הן אחיות החוץ - ויש הרבה מאד אחיות חוץ מבחינתנו. כאן [[בגנזך|נאמני הגנזך]] אנו מוסיפות מפעם לפעם, באהבה והערצה, כשאחות חוץ כלשהי צצה בזכרון מי מאיתנו, בהקשר לדברים שרצתה להגיד או משהו.



<<list-links filter:"[tag[אחיות חוץ]]">>

<<englink [[Outer sisters]]>>
[img[pictures/achayot-chatul.jpg]]

!!![[יויו]]:

כששואלים אחות כהן איזה חיה היא - היא מיד עונה - חתול.

<<englink [[Cat Sisters]]>>
[img[pictures/achayot-la-choshen.jpg]]

!!![[יויו]]:


אם לקחת בחשבון שכולם נולדו מכולם, אז כולם גם כוהנים, ולא בקטע של דת, כי מבחינתי דת היא לא פקטור.

אני זכר יהודי, כי נולדתי זכר יהודי. שם הבתולין של סבתי היה כ"ץ, ככה שברשמי זורמת בדמי כוהנות, אך פרט לאלה, כולנו [[אחיות לחושן|https://he.wikipedia.org/wiki/%D7%97%D7%95%D7%A9%D7%9F]], אנושות אחת, ללא הבדלים, [[ולא בקטע של סמלים|Imagine]], ולא לעולם חוסן.




<<englink [[Breastplate sisters]]>>
[img[pictures/achsanminbalash.jpg]]

!!![[ראשל]]:

התמהיל הסיפורי שגיבורו בלש טוטאלי, מאותגר חברתית ברמה כזו או אחרת, ובעל חושים חדים ואינטואיציה מפותחת, הוא אחסן מן אחסן. הבלש, שיכול להיות גם איסלנדי, פיני, בלגי שהיגר מטורקיה, מגיע בתחילת הפרק לזירת רצח, שתתברר, מיד או בהמשך, כזירה של רוצח סידרתי - לפעמים כזה שכבר פעל בעבר, לעתים צץ חקיין. אל הבלש שיכול להיות במטרופולין או בקרת, ייצטרף בלש או בלשית חדשה, שהוא אינו שש לבואה, והם יוצאים לדרך. יש להם בוס ולבוס יש בוס, ומישהו שם למעלה מושך בחוטים. יש להם גם איש מחשבים שהוא האקר ברשות החוק, פתולוג מעט מוזר ומגניב, אנשי קשר, בני משפחה, בעיות אישיות, ועלילות שנשזרות זו בזו. עד לרגע האחרון הצופה במתח, חושד בדמויות השונות המעוררות חשד, ויודע שכבר ראה את הפושע ממש בתחילת הסידרה, והוא דווקא חשד בו קצת אבל הספיק לשכוח מזה. ליבנו יוצא אל הקורבנות, בין צמד הבלשים מתחזקת רעות שכזאת, אנחנו גם רוצים להיות בלשים בהלסינקי, אבל עד לאז צופים בסדרות.




<<englink [[Achsan min balash - أحسن من بَلَاش - Better then nothing]]>>
[img[pictures/afternovafestival.jpg]]





<<englink [[Nova music festival massacre]]>>
[img[pictures/isadora-duncan.jpg]]

!!![[אירי]]:


[[איזדורה דאנקן|https://he.wikipedia.org/wiki/%D7%90%D7%99%D7%96%D7%93%D7%95%D7%A8%D7%94_%D7%93%D7%90%D7%A0%D7%A7%D7%9F]] לא אהבה את קשיחות הטכניקה של המחול הקלאסי, ואת התכחשותו לכח הכבידה. היא טענה כי הוא מגביל את יכולת הביטוי שלה. היא הסירה את נעלי הריקוד, ונתנה לתנועות ולקשר עם האדמה לקחת את הגוף - וכל זה בתחילת המאה ה-20, וזה עוד לפני שהזכרנו את חייה האישיים של האישה המהפכנית הזו.



<<englink [[Isadora Duncan]]>>
[img[pictures/ayala-malach-pines.jpg]]

!!![[יויו]]:

בתקופה שאחרי [[אלה|כוכב המשאלות 04]], הבוס שהיה לי אז, נתן לי פתק עם מספר הטלפון של [[איילה מלאך|https://he.wikipedia.org/wiki/%D7%90%D7%99%D7%99%D7%9C%D7%94_%D7%9E%D7%9C%D7%90%D7%9A_%D7%A4%D7%99%D7%99%D7%A0%D7%A1]] ואמר: "תתקשר אליה, היא פסיכולוגית רצינית, היא קולגה של אשתי, בלי פשלות".

היו לי בעיות קשות לפתור באותם ימים, והיא תמיד הקשיבה, חייכה והבינה. היה ברור שזה ייקח זמן, אך במבט מלטף היא אמרה לי: [[הכחול כבר כאן]], והבנתי. והיום אני כבר יודע כמה היא צדקה.

בהשראתה נולדה [[נשמה]]. יהי זיכרה ברוך.

<<englink [[Ayala Malach Pines]]>>

[img[pictures/ima-mehaagadot.jpg]]

!!![[אנג'ליק]]:

כמו שיש סוגים של כפות ידיים או סוגים של גפיים, כך גם יש סוגים של אימהות. סוג האם שקיבלתי, הוא אימא ביולוגית אמנם, אך שבפועל מתנהגת כאם החורגת מהאגדות.

זו אם, שלא זקוקה לתפוח. היא יורה מילים מורעלות, ומבטים מלאי רעל דרך קבע. עליך להישמע להוראותיה, ואף להבין את הקוד האתי הפנימי שלה, שמשתנה באופן כאוטי ולא אתי.

לפעמים, היא פתאום מחייכת, ומעמידה פנים שהיא חשבה עלייך. אסור לא לחייך אליה בחזרה כשזה קורה. הבעת מורת רוח לא באה בחשבון. 

בעזרת הקוד ששתלה באבי, בי ובשתי אחיותי - כך שנפחד תמיד, ושתמיד נתבייש ונחוש אשם - היא מפרידה ומניעה את כולנו כבובנאי. גם כשהתגוררתי רחוק מבית הורי, או בתקופות בהן לא הייתי בקשר איתם - היא הצליחה להפעיל אותי וגם כעת, לאחר שחשבתי  זמן מה, שאבי הוא חבר שלי, לאחר שסלחתי ויצאתי מגדרי,  לבי נשבר ומתּי. 


<<englink [[A Fairy Tale's Mother]]>>



[img[pictures/ima-shel-jazz.jpg]]

!!![[תומר]]:

מצחיק אבל רק לא מזמן גיליתי שאימא של [[ג'אזז|Jazz]] עבדה איתי [[בטלוויזיה|מערכת תל אביב]].

<<englink [[Jazz's mom]]>>
[img[pictures/ima-sheli-iri.jpg]]

!!![[אירי]]:

באפריל אמי, ששמה הוא עדנה, הגיעה אלי לביקור, ואחד מהדברים שהיא סיפרה לי הוא, ששנתיים לפני שנולדתי, לאחר שמונה חודשי הריון, היא ילדה ולד מת. לאורך כל השנים אמי תהתה בינה לבינה, וגם בינה לבין אבי, אם לספר לי או לא, אך שניהם לא הצליחו מעולם לעשות את זה, וכעת לאחר הפרידה מאבי, החלה ללכת שוב לטיפול, ואחד מהדברים שנתבקשה מהמטפלת שלה הוא, לספר לי על כך, שהיא ואבא אהבו מאד זה את זה כשנפגשו והכירו. היא אמרה, שלאחר המקרה, רוחה נפלה, ובנקודת הזמן ההיא, היא חושבת, שהחל להתפתח מרחק בינה ובין אבי. 

ויש לי דבר אחד להגיד על זה

קשה לי בשלב הזה של החיים לחשוב על יחסים.


<<englink [[My Mother]]>>

[img[pictures/PrYBW9yDkBFFqCB6.jpg]]


זאת דנה. והיא כתבה את הסיפורים שאינם כאן עדיין.




<<englink [[Mom, grandma and I]]>>
[img[pictures/imahot.jpg]]


 יש אימהות שזה אחלה, ויש אימהות [[שזה גדול|https://www.youtube.com/watch?v=QnAoG1e0hDw]]

<<list-links filter:"[tag[אימהות]]">>

<<englink [[Mothers]]>>
[img[pictures/iri.jpg]]

!!![[אלפרד]]:

אירי היא הנשמה של העולם, ולמרות או בזכות שאני מסטול עכשיו בצורה הכי טובה שאפשר להיות, אני יכול ככה לכתוב על אירי. ה"אחיות כהן" הן אחת אחת, ובכל זאת ולמרות שברגע אחר הייתי יכול לכתוב את אותן המילים בדיוק על מישהו אחר, אני כותב אותן עכשיו על אירי, שהיא הנשמה של העולם וגם אלופת עולם. 

אתמול הלכתי איתה סתם לטייל בעיר, והיום אנחנו יושבים כל היום סתם בבית, ולועסים את עצמינו לדעת. אולי בגלל שפסחתי על שנות העשרים של חיי, נעים לי לחוות אותן עכשיו עם החבורה חסרת הגיל, אך מהבחינה שאנחנו כל הזמן יחד. [[תמיד יש מישהו בדירה|המשק האוטרקי שלנו]], וזה מאד עוזר כשאתה נפרד מחברה.

אני מביט בה עכשיו. היא מכינה לנו טוסטים. ניסיתי לעזור לה [[אבל היא ביקשה לבד|אירי טוענת]]. היא נעה בשקט זקופה, כמו נזיר בקאטת מטבח מערבית. צועדת לעבר המקרר וחוזרת למשטח העבודה. חותכת את הירקות בריכוז, ומניחה אותם על פרוסות הלחם הלבן מהן חתכה את הקשה. מציעה לי קוקטייל אננס טרי ורום. מכינה אותו בבלנדר עם קרח. אחרי שהקוקטייל מוכן היא מוציאה את הטוסטים מהתנור ומניחה אותם על הדלפק. אנחנו יושבים על הדלפק אוכלים ושותים. אני שואל אותה על [[האלכסנדר|שיטת אלכסנדר]] שלה והיא מספרת לי. אני מרגיש איך גופי מתארך ומתרחב כשהיא מדברת. אנחנו שותים ואוכלים והיא מדברת ונעה ברצינות גמורה ועם חיוך. היא מכינה עוד קוקטייל בבלנדר. הפעם היא מוסיפה לו מיץ לימון. תוך כדי שהיא מכינה את הקוקטייל ומנקה את הכלים והכיור, היא ממשיכה לספר לי איך היא חושבת אלכסנדר גם ברגע זה בו היא מדברת איתי. מניחה לצוואר להיות חופשי. [["כשהתנועות נעשות מתוך המחשבה של ההנחה לצוואר"|קפיץ ספירלי]], היא אומרת לי, "הן יוצאות נכון יותר מן הגוף".

אני מבקש ממנה, והיא מתקשרת למורה שלה לאלכסנדר וקובעת לי שיעור ראשון.

ובכדי שתבינו עוד, אני ממליץ כאן על ארבעה דברים:

1. [[הרקוויאם של פורה]], תוך כדי קריאת מה שאירי כתבה.

2. [[הסיפור שגורה כתבה על אירי, ושנמצא ב"אגב בתוך אגב"|מחפשת את אירי]].

3. [[דיוויד בואי]].

4. [[אירי טוענת]]


<<englink [[Iry]]>>








[img[pictures/asakim-caragil.jpg]]

!!![[אירי]] [[וגורה|גורה]]:

''כן, למרות שהגענו לכדור הזה, אנחנו משדרות,  עסקים כרגיל.''

<<list-links filter:"[tag[אירי וגורה]]">>

<<englink [[Iry and Gura]]>>

[img[pictures/iri-toenet.jpg]]

!!![[גורה]]:

אפילו בעבודה [[אצל ז'נבייב|הקוסקוס]], אירי עולה על כולנו. 


<<list-links filter:"[tag[אירי טוענת]]">>

<<englink [[Iry claims]]>>
[img[pictures/iris.jpg]]

!!![[אווה]]:

בפינה הזו של [[המטבח של הנחלה]], איריס הייתה יושבת בסוף כל יום עבודה, ומעשנת שלוש-ארבע סיגריות בזו אחר זו ובוהה.

איריס היא אותה אישה נפלאה, שלימדה אותי לעבוד במטבח, שלימדה אותי לאפות, שהייתה לי כאם, שעזרה לי לנוס מן הנחלה ושאת שמה נתתי [[לבתי|איריס הבת]].


<<englink [[Iris]]>>

[img[pictures/iris-habat.jpg]]

!!![[גורה]]:

איריס בתה של [[אווה]], והיא ילדה זרחנית. זורחת באור ובחושך.

<<englink [[Iris the daughter]]>>
[img[pictures/cohen-brothers.jpg]]

!!![[גורה]]:

  [[האחים איתן וג'ואל כהן|https://he.wikipedia.org/wiki/%D7%94%D7%90%D7%97%D7%99%D7%9D_%D7%9B%D7%94%D7%9F]], שיויו אימץ בתחילת שנות האלפיים, והפך אותם לאחיו, ואת עצמו [[לאווה כהן|אווה כהן]], אחותם - שהיא קונדיטורית הונגריה, היו [[ראשית האחיות|המעבדה]].

הוא לגמרי לא [[היחידי שמת עליהם|פארגו]] ועל [[הראש הנפלא שלהם|ביג לבובסקי]].

<<englink [[Ethan and Joel Coen]]>>



[img[pictures/acram-humus.jpg]]

!!![[תומר]]:

בירידה מרוטשילד, [[בשיינקין 59|https://www.google.co.il/maps/uv?hl=en&pb=!1s0x151d4b7e8db95f5f:0x3662145826c17cb6!2m22!2m2!1i80!2i80!3m1!2i20!16m16!1b1!2m2!1m1!1e1!2m2!1m1!1e3!2m2!1m1!1e5!2m2!1m1!1e4!2m2!1m1!1e6!3m1!7e115!4shttps://lh5.googleusercontent.com/p/AF1QipMFFlj1e4GWNWYyh4WV9xERQb5ic8WeueoQwqki%3Dw213-h160-k-no!5z15DXm9eo150g15fXldee15XXoSAtIEdvb2dsZSBTZWFyY2g&imagekey=!1e10!2sAF1QipMFFlj1e4GWNWYyh4WV9xERQb5ic8WeueoQwqki&sa=X&ved=2ahUKEwjRxtmgvtnfAhUNxxoKHTlkAUkQoiowCnoECAYQBg]], בבוקר, אכרם, חמודי וג'וני, לפעמים פוטנה גם, מחכים עם חיוך, עם החומוס, מרק חם, ופלאפל טוב, לדרים בסביבה וברחוב.


<<englink [[Acram Hummus]]>>
[img[pictures/elishaandparry.jpg]]


<<englink [[Elisha and Parry]]>>
[img[pictures/alexandra.jpg]]

!!![[גורה]]:

ביתה הבכורה של [[ז'נבייב]]. היא ילידת 1995, ובקרוב תתחיל ללמוד פסיכולוגיה. בינתיים היא ממלצרת [[בקוסקוס|הקוסקוס]].

<<englink [[Alexandra]]>>


[img[pictures/elementary.jpg]]

!!![[הצוות]]:

[[שרלוק|https://www.imdb.com/title/tt2191671/]] בגרסת [[ג'וני לי מילר|https://www.imdb.com/name/nm0001538/?ref_=tt_cl_t1]], צופה בשבעה מסכים בו"ז, כשמבטו מונח על נקודה דמיונית מעל ובמרכז המסכים, כך שהוא למעשה רואה את כולם, ובאם דבר מה חריג קופץ לעיניו, הוא עוצר את התמונה, ויודע שכאן יש דבר. [[ווטסון|https://www.imdb.com/name/nm0005154/?ref_=tt_cl_t2]] המתוקה משלימה את מילותיו. בקאט הבא הם ידברו על זה עם [[מרקוס|https://www.imdb.com/name/nm3586347/?ref_=tt_cl_t3]] [[וגרגסון|https://www.imdb.com/name/nm0001644/?ref_=tt_cl_t4]], והתעלומה נפתרת או תיפתר ממש בקרוב. סידרה של כייף ליגה.
<<englink [[Elementary]]>>
[img[pictures/alan-ball.jpg]]

!!![[גורה]]:

את הציור  עשיתי מהתמונה [[הזו|https://www.npr.org/sections/monkeysee/2012/08/25/160004142/alan-ball-on-leaving-true-blood-behind]] של [[אלן בול|http://www.imdb.com/name/nm0050332/?ref_=tt_ov_wr]].

רק לפני שבועיים התוודעתי לקיומו, כי רק לפני שבועיים ראיתי את [[עמוק באדמה]] ממנה כל כך נהניתי, ויומיים אחרי שסיימתי את עמוק, עברתי [[לדם אמיתי|דם אמיתי]] שהיא בידור לא נורמלי. עכשיו אני רואה מידי שבוע פרק של [[כאן ועכשיו|http://www.imdb.com/title/tt5923012/]] וזה הולך ונהיה מעניין. [[ראו את הפשוש|https://www.youtube.com/watch?v=hPhhF-NbUvw]].

<<englink [[Alan Ball]]>>
[img[pictures/alfred.jpg]]

!!![[גורה]]:

דברים לוקחים זמן. לקח לי זמן להיות יכולה לנסות לצייר את אלפרד ולכתוב עליו, אבל אלפרד הוא חלק בלתי נפרד מחיי ומחיי [[כולנו|האחיות כהן]]. כשהוא נכנס לחדר, נכנס ענן חם וטוב. הוא [[סבל|מסוכנת]] לא מעט בחייו, ובכל זאת נשאר אדם בעל לב טהור.

הכרתי אותו בפריז, בלימודי התאטרון. הפכנו לזוג. רציתי אותו מאד, הוא עזב אותי, נפגעתי, חזרנו, נפצעתי, הייתי בקומה, התעוררתי מהקומה כעבור שלושה שבועות, זרקתי אותו לכל הרוחות, יויו שמר איתו על קשר, [[אמנו נפטרה|יויו וגורה]], דןדן ואני [[נסענו להודו|מחפשת את אירי]] להביא את אירי, חזרנו, עברנו [[לדירה|כוכב המשאלות 01]], סלחתי לו, היה לנו טוב, [[דןדן נסע]], התפרקתי שוב, הוא השגיח עלי בעדינות, גם [[אביו|ג'וזף אברואה]].

הוא חכם, כשרוני, חרוץ, סקרן, חייכן - למרות שבחרתי לצייר אותו מרוכז במחשב ולא מחייך. הוא לא מכיר בערך עצמו, כולל שאין לו מושג כמה שהוא חתיך.



<<englink [[Alfred]]>>



[img[pictures/angelic.jpg]]

!!![[אירי]]:

אנג'ליק היא הג'ינג'ית היפה וירוקת העיניים שהגיעה אלינו עם [[אלפרד]] [[לארוחת הכריסמס|ארוחת כריסמס]]. שניהם [[ודניאל|דניאל]] הכירו בקורס ל[[כירולוגיה פסיכודיאגנוסטית]].

היא עדינה מאד [[ורגישה|הולכת על חבל]], אבל גם ראיתי אותה מתעצבנת. היא מטפלת בתנועה, היא בת 32 ויש לה אבא, [[אימא|אימא מהאגדות]], ושתי אחיות.


<<englink [[Angelic]]>>

[img[pictures/JcnhaFI7DwaT9664.jpg]]

!!![[יויו]]:

אנה של [[רוז'ה]] נולדה בברלין, וכשהייתה בת 5 הוריה היגרו לפריז. 

היא בת 30. היא למדה בוטניקה. 

היא מייצרת תכשירים קוסמטיים ומרפאים מחומרים טבעיים. היא מייצרת את טיפות האוזניים היעילות ביותר אי פעם, והנשים שלנו, אווה וז'נבייב מאד מרוצות ממסכת הפנים שלה, שעשויה מתערובת אדמה כלשהי, שארוזה בקופסה, ומגיעה עם בקבוקון שמן, אותו מערבבים אל תוך תערובת האדמה לפני השימוש.



<<englink [[Anna]]>>
[img[pictures/aunt-jemima.jpg]]

!!![[גורה]]:

אנט ג'מיימה היא חבורה של ארבעה חברה ילידי [[העיר|מצפה ראשית]] השוכנת לחופי [[ים טתיס]]. 

מידי ערב הם מנגנים ושרים [[בקפה מילר|קפה מילר]].



<<englink [[Aunt Jemima]]>>
[img[pictures/eytan-sheli.jpg]]

!!![[פיליפ]]:

יש לי שני בנים, מקס ואיתן.

מקס  בן 27, והוא ילד מהספרים. הוא עושה תואר שני בגנטיקה, הוא נפרד לאחרונה מחברה אותה הכיר אחרי שאמו נפטרה.(הוא היה בן עשרים אז). הוא מבלה ועושה חיים ואוהב את אבא שלו.

איתן פחות אוהב את אבא. 

איתן הוא ילד שנולד עם העיניים הרגישות של אימא שלו.

הוא בן 25, סופר כשרוני, מנגן, שר, כותב, משחק ורוקד נפלא. הוא גיי והוא כל הזמן כועס עלי.

כל הזמן.

הוא זוכר לי לרעה את התקופה שהמצב בין ריטה, אשתי המנוחה, וביני היה בכי רע.

זה היה כשהוא היה בן כמעט 17. זמן קצר אחר- כך, נתגלה שלריטה יש סרטן קטלני, וששה חודשים אחר-כך היא נפטרה.

הוא חושב שריטה חלתה בגללי. אני לא יודע איך הוא מבלה את זמנו הפנוי. אני מממן אותו.  הוא גר למטה בעיר, ולמרות שהוא מאד אוהב את אווה, קשה לי מאד להביא אותו אלי, ואני דואג לו. 



<<englink [[I, the psychiatrist]]>>

[img[pictures/ani-machna.jpg]]

!!![[אווה|אווה כהן]]:

מהרגע שאני מתעוררת בבוקר, אני מסדרת. בדרך למקלחת, אני מתחילה לאסוף דברים ולהחנות אותם בדרך ליעדם הסופי. בגדים, כוסות, ספלים, מאפרות.

אני מתארגנת, יורדת למטה, מכינה קפה, וממשיכה לאסוף. לכיור, למכונת הכביסה, מחנה על המדרגות את מה שיגיע לקומה העליונה לכשאעלה, שוטפת כלים, מקפלת כביסה, מכינה איזו [[עוגה|טורט]] או [[בצק|שמרים קרנץ]].

אחרי שנראה כי סיימתי את מטלות הבוקר, מגיע הרגע הנכסף. אני מכינה קפה שני, עולה למרפסת, מעשנת סיגריה שקטה של בקר, נזכרת בשני המתוקים הנמים במיטותהם, ואושר ממלא את לבי.






<<englink [[I do park]]>>


[img[pictures/ani-roza.jpg]]

!!![[גורה]]:

אחת ולתמיד אני רוצה להנתצל בשם כל ההתנצלויות על התנהגותי הלא אחידה בין חמודה לכועסת,  מגעילה ומתוסבכת, צועקת ובועטת. בין מרוצה למתוסכלת מתנצלת, בפני  [[דיוויד ביירן]] על שלא מצליחה לצייר אותו (לא רק), ובפני [[דןדן|https://www.youtube.com/watch?v=1MV1a-UcLHc]] שכל כך אהבתי. את כולם אוהבת.

<<list-links filter:"[tag[אני רוצה להתנצל]]">>


<<englink [[I would like to apologize]]>>

[img[pictures/Assaf-Amdursky.jpg]]


!!![[יויו]]:


[[אסף אמדורסקי|https://he.wikipedia.org/wiki/%D7%90%D7%A1%D7%A3_%D7%90%D7%9E%D7%93%D7%95%D7%A8%D7%A1%D7%A7%D7%99]] כתב ועשה דברים יפים ומעניינים  [[לפני|https://www.youtube.com/watch?v=KQBQBAdsR3o]] וגם [[אחרי|https://www.youtube.com/watch?v=Rjr2gUvhdI0]] מנועים שקטים אבל [[מנועים שקטים|https://he.wikipedia.org/wiki/%D7%9E%D7%A0%D7%95%D7%A2%D7%99%D7%9D_%D7%A9%D7%A7%D7%98%D7%99%D7%9D]], הוא אחד מהאלבומים של החיים שלי, שאיתו התרסקתי עד שהגעתי [[למעבדה|המעבדה]], אחר כך יצא האלבום לייב עם גרסה [[למעיין|https://www.youtube.com/watch?v=dH4hfVXD2Jw]] הנהדר. 

את [[התקפת לב|https://www.youtube.com/watch?v=YS1C6lJImOc]] לא העזתי לשמוע עד לא מזמן - כשהשיא היה ללכת עם [[תומר]] לא מזמן להופעה לכבוד עשרים שנה לאלבום הנפלא הזה.



<<englink [[Assaf Amdursky]]>>
[img[pictures/asparagus.jpg]]

!!![[אווה]]:

* חולטים חבילת אספרגוס במים רותחים שלוש דקות.
* מסננים ומייבשים.
* מחממים מחבת כבדה, ומוסיפים לתוכה שתי כפות חמאה.
* מטגנים בחמאה שתי שיני שום פרוסות.
מוסיפים פנימה את צרור האספרגוס וצולים כמה דקות.
* בוזקים מלח ים גס, מערבבים בקלות, ומגישים. (אפשר גם לאכול במהלך היום או לשמור במקרר יומיים).



<<englink [[Asparagus]]>>
[img[pictures/afiya.jpg]]

[[אווה|אווה כהן]]:

עכשיו זה הזמן הטוב ביותר לאפייה, כי האוויר קר והקונדיטוריה אוהבת קור וגם אני. התעוררתי הבקר ערוכה נפשית ותכנונית. תוך כדי הכנת הקפה התחלתי למדוד את החומרים, ולערבל את הבצק שאחר כך יתפח שלוש שעות לפחות במקרר. בצק השמרים של [[הקרנץ|שמרים קרנץ]] ממשיך לתפוח במתינות הרצויה גם מחוץ למקרר. לא צריך למהר לרדד. כמעט ולא צריך לקמח את המשטח עליו מרדדים. מלית החמאה-שוקו לא רכה מידי, וגם הרידוד שלאחר הקיפול הוא תענוג, שלא לדבר על קליעת הצמות. 

את המתכון הזה [[איריס]] לימדה אותי עוד בימי [[הנחלה|הנחלה בה גדלתי]]. העבודה השקטה והמדודה, המחשבות על מה לפני ומה אחרי. חימום התנור. מראה של שוקולד מומס מתערבב לתוך קרם בהיר. בועות סירופ שמתרבות ומבהירות. בועות סירופ שמשחימות והופכות לקרמל. ביצים שמוקצפות עם סוכר והופכות לקצף עבה וזוהר. חומר שנמזג לתוך תבניות. עוגה גובהת בתנור. רחש סכין שננעצת בעוגה מוכנה ויוצאת יבשה.

<<list-links filter:"[tag[אפייה]]">>


<<englink [[Baking]]>>
[img[pictures/equalizer.jpg]]

!!![[רוז'ה]]:

רעיון האקולייזר בבית החזה התחיל עם רעיון [[הכרבולת של יויו|כרבולת בבית החזה]], שאמר שהוא שם לב שבכל פעם שהאגו שלו מתחיל להתנפח הוא מרגיש כאילו כרבולת של תרנגול מתנפחת לו בבית החזה והתחלתי לשים לב לזה וזה היה ממש נכון. אחר כך, בתקופה שכל הזמן מדדתי לעצמי דופק, הרגשתי איך שכשאני נלחץ זה כאילו שהלב גואה אבל לא רק, אלא מעין מערבולת מתחוללת מאחוריו ומעליו. שמתי לב שקו המשווה של זה נמצא שתי אצבעות מעל החלק התחתון של עצם החזה. כשדברים כאלה קורים, אני מפנה את תשומת לבי למקום הזה, נושם לאט אל  מתחת לקו, שואף ונושף בשקט, עד שהמתח יורד, או הכרבולת, או הדופק או כולם.


<<englink [[Equalizer in the chest]]>>

[img[pictures/aruchot.jpg]]

!!![[יויו]]:

אצל [[משפחת באומן]] תמיד היו ארוחות. כשעיני עוד היו נשואות אל [[נדיה]], אחותי הבכורה, היא הכשירה אותי לעבודת מטבח נקייה כשבראש הרשימה [[סדר ונקיון|מנקים היטב]], אליהם [[אימי|דינה זכרה לברכה]] הייתה כה רגישה. לימים פגשתי את [[אווה|אווה כהן]] ואחר כך את [[ז'נבייב]] ואת [[סוניה]] - אשר לימדו אותי  את העבודה המקצועית במטבח. 

אני אוהב שבארוחה תהיה הרמוניה בין מיני המזון, ושהכי חשוב שיהיה [[טעים, כייף, שמח ורועש|https://www.youtube.com/watch?v=LzOhLNDRLNA]].

<<list-links filter:"[tag[ארוחות]]">>


<<englink [[Meals]]>>
[img[pictures/aruchat-christmas.jpg]]


!!![[אווה]]:

מבחינתי ספויילרים זה סבבה. 
כן, יצא לי משפט יויואי או גורני, אך אלה הם פני הדברים.

בחיים עצמם, כך הבנתי די מזמן, ספויילרים לא יעזרו לך, גם אם תלך לכל העכו"מים שבעולם.

ישנם מצבים בהם אתה יכול לראות, שהכרוניקה ידועה מראש, וזה לרוב קורה כי הכתובת נמצאת על הקיר.

ומה היה אחר כך?

[[רשמקול בפיתה, אך מה זה משנה|https://www.youtube.com/watch?v=IixwNBmGiPE]].

החל משלב מסויים בחיי (נכון יותר לומר - מאז שקראתי את [[עד שאמצא אותך|https://en.wikipedia.org/wiki/Until_I_Find_You]] של [[ג'ון אירווינג]], התחלתי לראות את הדברים דרך המשפט:

''התבונה הגיעה לקצה יכולתה ורק האמונה נותרה בעינה.''

וארוחת הכריסמס 2015 היא הנותנת.

כרגע אומר כך: [[הגעתי|אווה כהן]] לביקור אצל [[יויו]], [[גורה]] ו[[דןדן]] יומיים לפני הארוחה. למחרת [[אירי]] הגיעה. [[אלפרד]] ביקר ויחדיו עשינו קניות, הכנות וסידורים. אל הארוחה הגיעו לפי הסדר הזה:
אלפרד, [[ג'וזף|ג'וזף אברואה]], [[דניאל]] ו[[אנג'ליק]].
[[סוניה]] ו[[מרק]].
[[קואנג]], [[ג'ונג]], [[פה]], [[צ'נג]] ו[[צ'ן]] ו[[גואן יין]].
[[ז'נבייב]] היפה והאלגנטית הגיעה עם שתי הבנות, [[אלכסנדרה]] ו[[ראשל]]. 
[[רוז'ה]] ו[[אנה]].
[[דוקטור פיליפ לומבר|פיליפ]].

בקישור הבא כתבתי את [[מה שבאמת קרה בארוחת כריסמס]].

ובזה שאכתוב עכשיו את [[מתכוני ארוחת הכריסמס]].

יול.

<<englink [[Christmas dinner]]>>







[img[pictures/aruchat-rosh-hashana.jpg]]

!!![[יויו]]:

ראש השנה התשע"ח היה משהו. כלומר, שבסופו של דבר היה מעולה. גם ההתחלה הייתה אחלה. אבל באמצע, גורה לקתה במרמרת מסויימת. היין שהיא שתתה לא עשה טוב בעניין הזה. ז'נבייב ורוז'ה דיברו על [[המעדנייה|דליקטסן אצל ז'נבייב]] שעומדת להיפתח במקום [[הקוסקוס]]. השניים משוחחים בנחת על חשיבות מקור חומרי הגלם, כי בעצם ז'נבייב רוצה "לעלות כיתה" מהבחינה הזו. בקיצור, גורה נתנה נאום גועלי על "כמה שכולכם נהייתם לי פיינשמעקרים". היא גם הסתלבטה על אירי ועלי [[והקניידלך|מרק עם קניידלך]]. "כמה תרחיקו לכת? עד לאן תרוצו כדי להשיג סלק בן יומו או סרטן עם טעם של פעם? היא צרחה, קמה והלכה לחדרה. כעבור שעתיים - כשרובינו צופים [[בפרק האחרון|הסוף נשאר פתוח]] של הסופרנוס. מבסוטים על עצמינו. מבושמים מאוכל, שתייה, פינוקים [[והסידרה הסופנית|הסופרנוס]] היא הופיע מביטה בנו. חייכנו אליה כולנו, היא התיישבה בין אווה ופיליפ. היה נפלא [[א-לה-דובונאז'|ליל הדובונאז']].

<<englink [[Rosh Hashana dinner]]>>

[img[pictures/arnon-chen.jpg]]

!!![[אירי]]:

ארנון חן הוא אבא שלי, והוא ללא ספק "דמות עגולה", למרות שהוא ללא ספק אדם רזה.


<<englink [[Arnon Chen]]>>
[img[pictures/businesslady.jpg]]


!!![[גורה]]:

נאדיה היא אשת עסקים מזן ה-K. היא נראית מבוגרת, ומתלבשת מבוגר וחום (פוליאסטר וטרילין), מתהדרת ביושר, בידע והבנת העולם. נשואה ובוגדנית.




<<englink [[The business lady]]>>
[img[pictures/barby.jpg]]

!!![[תומר]]: 

בשבת לפני שבוע לקחתי מונית [[לבארבי|https://www.barby.co.il/]] לראות את [[Jazz]] שהיא שכנתי האהובה, ובאמת עושר מוסיקלי היה [[בפסטיבל היפ הופ של ערב אחד|https://yuvalerel.com/2018/08/18/%d7%9e%d7%a1%d7%99%d7%91%d7%aa-%d7%94%d7%a9%d7%a7%d7%99%d7%a2%d7%94-%d7%a9%d7%9c-%d7%90%d7%9e%d7%a6%d7%a2-%d7%94%d7%9c%d7%99%d7%9c%d7%94/]]. (הקישור הזה לכתבה על הפסטיבל הכוללת גם קטעי וידאו לקוח [[מהבלוג של יובל אראל|https://yuvalerel.com/]], שאוהב ומתעד מוסיקה). ג'אז שהיא יסמין היקרה, הופיעה עם הרכב שנקרא [[שאזאמאט|https://www.youtube.com/watch?v=uWkQ_lFnKE4]], אחלה חבורה של בחורים שמנגנים ושרים יפה וכיף. הם ניגנו איתה יפה מאד שיר שלה וקצת יותר מאוחר היא הופיעה עם השירים שלה. היה מעולה.



<<englink [[Barby]]>>
[img[pictures/genevieve-aruchat-boker.jpg]]

!!![[ז'נבייב]]:

אם קורה שאני לא אוכלת בבוקר [[קרואסון|טורט]] כלשהו ושותה [[קפה|הספלים מהם אנו שותים]], אני כל היום כמו תינוק שפסח על שלב הזחילה, [[המוטוריקה|https://he.wikipedia.org/wiki/%D7%94%D7%9E%D7%A2%D7%A8%D7%9B%D7%AA_%D7%94%D7%9E%D7%95%D7%98%D7%95%D7%A8%D7%99%D7%AA]] שלי משתבשת.



<<englink [[In the morning]]>>
!!![[יויו]]:
//''''
לפני כמה ימים [[קיבלנו|האחיות כהן]] מכתב [[מדןדן|דןדן]], אחרי  שלא שמענו ממנו [[שנה בערך|דןדן נסע]]. אני כל כך  אוהב אותו ומתגעגע אליו. באישורו, אני מעתיק לכאן את המכתב:


''
''//


[img[pictures/babait-shel-fini.jpg]]

חברים שלי,

אני חושב עליכם כל יום, אוהב אתכם ומלא יסורים, ומתוך כך שאני רוכש כבוד לאינטליגנציה של כולכם, לא אזכיר זאת שוב ושוב, למרות שאתם מתארים לעצמכם, שאני שוב ושוב על הסף.

כבר שנה שאני אצל מוֹ, דודי המתוק, ששומר עלי כמו ששומרים על תינוק. אני אומנם מפעיל את השלט לבד  - אבל תינוק.

אנחנו שנינו ברוב רובם של הימים בבית. סבתא שלי נפטרה בחודש שעבר - עד אז ביקרנו אותה מידי שבוע. אני אוכל טוב, מעשן המון, רואה הרבה [[סדרות]] וסרטים. לפעמים הילדים של מו מגיעים. אני מתגעגע אליכם מאד. אני שולח מכתב בנפרד לגורה.

לפני שאני נפרד מכם, אני מוכרח לספר סיפור שמוקדש  [[לדניאל|דניאל]]: 

בתקופה של ניו יורק, זה לא שאני רשע, אבל פחדתי והייתי די חסר נסיון. הייתי קונה מפיני ומוכר. פיני היה בחור די יפה ומלא קעקועים, בטח בן שלושים ומשהו. את החומר שלו הוא שמר בארון בתוך ארון שנמצא מאחורי קיר כפול שנע על מסילה שנמצאת בתוך משקוף הדלת. על הקיר הקדמי של הקונסטרוקציה הזו מונחים המייבש מכונת הכביסה, ומדפים עם דברים. כל הגוף הכבד הזה מופעל על ידי שלט. אתם יודעים [[שכביסה זה אני|הכתיבה]], אבל זה לא סיפור יפה עלי. אני לא הייתי אמור לדעת על החדר. במקרה באחת הפעמים שהגעתי אליו, הוא שכח להכין לי את החומר, והיה לו לא נעים. הוא בטח בי, והראה לי את הפטנט המדוגם.

לרוע מזלו כמה חודשים אחר כך נתפסתי, ואיימו עלי, ופחדתי, והשטנקרתי, והוא אכל אותה ונכנס לכלא, ואני יצאתי חרא גדול.

לפני כמה ימים הייתי בחקירה (עדכנתי את כתובתי לדירה של מו. שוחררתי די מהר, כי היה ברור שאין לי קשר לסיפור, אבל גם הבנתי שהוא עבד ברשת גדולה, ששייכת לאדם מסוכן, ואני מקווה שהוא יצא מזה).

כואב לי על פיני

אני מבקש סליחה ממנו וגם מכם. אני לא בטוח שאני ראוי לכם.

אוהב אתכם מתחתית לבי ומתגעגע

שלכם 

דןדן

<<englink [[Chez Finnie`s]]>>
[img[pictures/baderech-lean.jpg]]

!!![[יויו]]:

[[הדבר היפה|תהפוכת]] בין [[אנג'ליק]] לביני נגמר. לא נגמר ברע נורא אבל גם לא בטוב. פשוט נגמר.



<<list-links filter:"[tag[בדרך לאן שהוא]]">>

<<englink [[On the road to somewhere]]>>



[img[pictures/baderech-lesarona.jpg]]

!!![[תומר]]:

בשבוע שעבר הלכתי להיפגש עם חבר [[בשרונה|http://www.saronatlv.co.il/]], ובמעבר [[מרחוב הארבעה|https://he.wikipedia.org/wiki/%D7%A8%D7%97%D7%95%D7%91_%D7%94%D7%90%D7%A8%D7%91%D7%A2%D7%94]] זה מה שראיתי (הבניינים באמצע הם [[המערכת ז"ל|מערכת תל אביב]]).

<<englink [[On the way to Sarona]]>>
[img[pictures/bechavat-hachayot.jpg]]




!!''[[מאד מאד כייף וגם|https://he.wikipedia.org/wiki/%D7%97%D7%95%D7%95%D7%AA_%D7%94%D7%97%D7%99%D7%95%D7%AA]]''



<<list-links filter:"[tag[בחוות החיות]]">>



<<englink [[In the Animal Farm]]>>






[img[pictures/the-big-lebowski.jpg]]

!!![[יויו]]:

אני מת על [[האחים כהן|איתן וג'ואל כהן]], אבל[[ ביג לבובסקי|http://www.imdb.com/title/tt0118715/]] הוא אבן דרך, ואני מרגיש [[דודיסט|https://www.youtube.com/watch?v=92EChuYNV-M]]. זה מאד עצוב [[שדוני|סטיב בושמי]] מת בסוף, ואז [[הדוד|ג'ף ברידג'ס]]  [[ווולטר|ג'ון גודמן]] הולכים [[לפזר את האפר שלו|https://www.youtube.com/watch?v=Wk61MeDmk2M]].

<<englink [[The Big Lebowski]]>>

[img[pictures/bjork.jpg]]

!!![[ראשל]]:

[[ביורק|https://he.wikipedia.org/wiki/%D7%91%D7%99%D7%95%D7%A8%D7%A7]] היא ממש מגניבה מכל כך הרבה בחינות. 

אני בחרתי לשים כאן עכשיו את [[זה|https://www.youtube.com/watch?v=loB0kmz_0MM]]. אוהבת את השיר ואוהבת את [[הוידאו|מישל גונדרי]].



Emotional landscapes

They puzzle me

The riddle gets solved

And you push me up to this

State of emergency

How beautiful to be!

State of emergency

Is where I want to be

<<englink [[Bjork]]>>
[img[pictures/AMMWBcSauRNlvNUR.JPG]]

!!![[גורה]]:


ליום הולדתה הרביעי קיבלה אירי מדודתה, שחזרה מביקור בהוואי, בית אננס עשוי בד מרופד. בתוך האננס גרו אבא הוואי, אימא הוואית, בתם הקטנה שלימים הפכה לזהבית נערת הגומי, ובייבי אננס שאירי אהבה להתפאר בו. ב[[ליל הדובונאז']] הלך הבייבי אננס לאיבוד, ואירי לגמרי ממורמרת על זה. מן הצד השני נוסד האתר [[דובונאז' אלסטיק|http://coensisters.org/doobonage.html]] 




<<englink [[Iry's Hawaiian pineapple house]]>>
[img[pictures/belinda.jpg]]


!!![[תומר]]:

הבוקר כשהלכתי לקנות [[לחם|לחמים בקורונה]] החלטתי שאם [[בלינדה|https://belinda.co.il/]] כבר פתחה את החנות, אקנה לננו את הכפכפים המתוקים שרציתי לקנות לה כשהתחילה הקורונה, והיא הייתה פתוחה ושמחנו להיפגש ודיברנו קצת על המצב תוך כדי שבחרתי ושילמתי. 




<<englink [[Belinda]]>>
[img[pictures/b-parich.jpg]]

!!![[אווה|אווה כהן]]:

לפני תחילת העבודה כמה דברים על בצק פריך:


בצק פריך בסיסי זקוק לקמח, נוזלים ושומנים.
מכאן כל תוספת תעשיר אותו

*הקמח יכול להיות לבן, מלא, סולת, שקדים ועוד.
*הנוזלים יכולים להיות, מים, חלב, מיץ, חלבונים..
*השומנים יכולים להיות חמאה, מרגרינה, שמן, חלמונים, טחינה, שמנת חמוצה..

ככל שהבצק יהיה עשיר ושומני כך יהיה קשה לעיבוד - כלומר - דביק יותר.

עיבוד קצר וקור הם שני תנאים בסיסיים להצלחתו, ולכן, אם משטחים את הבצק ולא מרדדים, כדאי לקחת חתיכות לא גדולות, ובמהירות, עדינות ומינימום של שימוש בעוד קמח, משטחים למשטח אחיד.

באופן אישי, לרוב, אני משתמשת בבצק פריך למאפים מתוקים - אך כמובן שגם לפאי או [[עוגיות מלוחות|עוגיות קימל]] הם מצויינים.

המתכון הבא, מבחינת המרכיבים, הוא מתכון שמתאים כבסיס לפאי, הוא נח לרידוד ואפשר להכין ממנו גם עוגיות.

אופן ההכנה מתאים לכל הבצקים הפריכים:

החומרים:

*200 גרם חמאה
* 2 כפות סוכר
* כף סוכר וניל
* 2 כפות חלב
* ביצה+חלמון
* 2 כוסות+ 1/3 כוס קמח
* כפית (שטוחה) אבקת אפיה
*קורט מלח

במעבד מזון :

1.  חמאה , סוכר , סוכר וניל  - עד למשחה חלקה

2. מוסיפים את שאר החומרים ומעבדים עד לכדור בצק חלק 

3.  עוטפים בניילון נצמד ומקררים כחצי שעה.


<<englink [[Crust dough]]>>
[img[pictures/berry-sakharof.jpg]]

!!![[יויו]]:

[[זה|http://magazin.org.il/userfiles/DSC_7393.JPG]] [[ברי|https://he.wikipedia.org/wiki/%D7%91%D7%A8%D7%99_%D7%A1%D7%97%D7%A8%D7%95%D7%A3]] שהיה נסיך שבעיקר [[ניגן|https://www.youtube.com/watch?v=qcP_q2kfRCA&list=PLBmjKCWbbNAvbkO0ngXchr31HaV5OtCSl]] והיה למלך שכתב [[על נהר אספירין ישבנו|https://www.youtube.com/watch?v=2LH8kvivV-A]] והלחין את [[אבן גבירול|https://www.youtube.com/watch?v=iSJfAJ0VDN4]] ושר [[מאיר אריאל|https://www.youtube.com/watch?v=yOd4AIP_FSg]] ואין מילים.

<<englink [[Berry Sakharof]]>>
[img[pictures/birkat-hashemesh.jpg]]

!!![[אירי]]:

נכחתי לא מעט פעמים בשיעורי יוגה בשיטות שונות, ונשארתי בסוף עם [[ברכת השמש|https://en.wikipedia.org/wiki/Surya_Namaskara]]. הוא תרגיל מצוין, כי הוא עובר דרך הרבה תנועות ושרירים, אך גם אותו הייתי ממליצה לעשות בזהירות, ולתת את הדעת על  הלחצים שיכולים להיווצר בתנועות או תנוחות מסויימות, על [[הצווארים|צווארים]] ובכלל.

[[גם אותו|תרגיל לבלטה]], אני אוהבת לעשות עם מוזיקה, למשל [[זה מה|https://www.youtube.com/watch?v=cM4kqL13jGM]] ששמתי היום, ותודה [[לשמש|https://www.youtube.com/watch?v=CtaUWSdgdHE]].

 

<<englink [[Gratitude for the sun]]>>
[img[pictures/birkat-cohanim.jpg]]


!!![[יויו]]:

בפורים התש"פ תכננתי להתחפש [[לכהן|https://he.wikipedia.org/wiki/%D7%91%D7%A8%D7%9B%D7%AA_%D7%9B%D7%94%D7%A0%D7%99%D7%9D]], אבל הקורונה השאירה אותי בבית עם מסכת מגן ארוכה כמעט עד הברכיים.




<<englink [[Birkat Cohanim]]>>
[img[pictures/bishvil-haprachim.jpg]]

!!![[תומר]]:

[[חנות הפרחים|https://bishvilflowers.co.il/]] המתוקה והיפה ביותר עם הפרחים והסידורים והכלים היפים ביותר בעיר כולה.


<<englink [[Bishvil Haprachim]]>>
[img[pictures/basdera.jpg]]

!!![[תומר]]:

אחרי [[הלחמניה|לחם תושיה שינקין]], אחרי [[שורצקי]], אחרי [[שרלי|שיח קפה]], אנחנו עולים חזרה לשדרה, תיכף נפנה ימינה לחשמונאים, והנה מגיעים.


<<englink [[The boulevard on the way home]]>>
[img[pictures/beta-ve-grega.jpg]]

!!![[תומר]]: 

[[בתה וגריגה|https://www.haaretz.co.il/gallery/night-life/bars/location-1.3446197]], זה כאילו שסבתות כל האזור התכנסו, סיכמו מי מהן תכין מה, וככה נשב בלבונטין 2, [[ננו הגרגרנית|ננו שלי ואני]] ואני בפינת לבונטין ואלנבי, מול [[המגדלור]], ונאכל כריך, ומלפפון חתוך עם מלח גס, וקוסקוס עם מרק, ומשקה מנטה יאמי, ובסבוסה, והפוך קטן חזק, ועוגיה, ויהיה לנו טעים, ונהנה, ונצחק, ונסיים, ונשלם ממש לא הרבה, ואני אכניס את המתוקה לעגלה, ונעלה במעלה לבונטין. כבר ערב ונחזור הביתה.


<<englink [[Beta VeGriga]]>>
[img[pictures/coffee-shops.jpg]]

!!![[הצוות]]:

בחפשנו במרשתת אחר בית קפה ממקום כלשהו שהוא לא אירופה, למעט ארצות סקנדינביה, ולא המזרח הרחוק, כי אם בית קפה באיזה שום מקום כלשהו, מצאנו את הדבר [[הזה|https://upload.wikimedia.org/wikipedia/commons/b/b6/Durkee%2C_Oregon%2C_cafe.jpg]], שנמצא [[בדורקי,אורגון|https://en.wikipedia.org/wiki/Durkee,_Oregon]]. שאלנו את עצמנו אם זה רעיון טוב לבקר שם ביום מן הימים, נראה כמו מקום קול. בינתיים גורה ציירה אותו. לזכור ולא לשכוח.




<<list-links filter:"[tag[בתי קפה]]">>


<<englink [[Cafés]]>>
[img[pictures/batim.jpg]]

!!![[הצוות]]:

[[בבית, זה איפה שאני רוצה להיות, אך אני מניח שאני כבר שם|https://www.youtube.com/watch?v=cUEiMQfSrZw]]

[[דיוויד ביירן]]



<<list-links filter:"[tag[בתים]]">>

<<englink [[Houses]]>>
[img[pictures/jo-ve-norma.jpg]]

!!![[אווה]]:

ג'ו [[ונורמה|סיפורים שסיפרתי לנורמה]] אספו אותי אליהם ואימצו אותי, כשהגעתי בת 18 [[מהנחלה|הנחלה בה גדלתי]] לארץ.



<<englink [[Joe and Norma]]>>
[img[pictures/jozef.jpg]]




!!![[גורה]]:

ג'וזף אברואה הוא גבר יפה, גבוה וחכם. הוא בן 60, רוב חייו כתב מאמרי דעה בעיתונים בספרד. הוא שמאלן, הוא טוב לב, הוא סופר נחמד, [[גרושתו|מריאן]] עזבה והשאירה אותו עם ילדיו, והוא אבא של [[אלפרד]] ובן זוגה של [[ז'נבייב]].

כשאלפרד ואני היינו יחד, ונסענו ליער ונפצעתי, ג'וזף דאג לי ולהכל לאורך כל הדרך, ומאז כולנו חיים באושר ועושר.

<<englink [[Jozef Abaroa]]>>

[img[pictures/john-irving.jpg]]

!!![[גורה]]:


[[ג'ון אירווינג|https://he.wikipedia.org/wiki/%D7%92%27%D7%95%D7%9F_%D7%90%D7%99%D7%A8%D7%95%D7%95%D7%99%D7%A0%D7%92]] הוא סופר הנשמה של יויו, והוא עומד בשורה אחת [[כאחות חוץ|אחיות חוץ]], עם [[האחים כהן|איתן וג'ואל כהן]], 

 <<englink [[John Irving]]>>






[img[pictures/john-goodman.jpg]]

!!![[יויו]]:

אם תגידו לי [[ג'ון גודמן|http://www.imdb.com/name/nm0000422/]], גם כשאני בשיא הדכדוך זה ישמח אותי ואני אחייך ואזכר בחיוך המתוק הטוב והמצחיק. 

[[דן קונר|http://www.imdb.com/title/tt0094540/characters/nm0000422?ref_=tt_cl_t2]] בעלה של [[רוזאן|http://www.imdb.com/title/tt0094540/?ref_=nmbio_mbio]],  [[וולטר סובצ'אק|http://www.imdb.com/title/tt0118715/characters/nm0000422?ref_=tt_cl_t2]] [[מביג לבובסקי|ביג לבובסקי]], [[פרד פלינסטון|http://www.imdb.com/title/tt0109813/characters/nm0000422?ref_=tt_cl_t1]]  ועוד דמויות סופר אהובות ובלתי נשכחות.

<<englink [[John Goodman]]>>
[img[pictures/jong.jpg]]

!!![[גורה]]:

"אני אגיע במטרו", היא התגובה לכל קביעה עם ג'ונג.

הוא [[ישות עצמאית|משתדלים לא להגזים]], הוא מעשן כבד, הוא חייכן. הוא טוב בהברגות, בסוף כל עבודה הוא עובר ובודק אם הכל מחובר ומוברג כמו שצריך, כך גם בצביעה.

יש לו אחות שצעירה ממנו בחמש שנים, שמה [[ya|יה]]
והיא [[אחות|אחות כהן]].

מבחינתו גם כשהוא במטרו הוא לבד.





<<englink [[Jong]]>>




[img[pictures/dojo-lyon.jpg]]

!!![[אירי וגורה]]:

חוץ מזה [[שג'ונג|ג'ונג]] מגיע לכל מקום [[במטרו|תחבורה ציבורית]], פעם בחודש בערך הוא לוקח רכבת לליון [[לדו'ג'ו|https://dojolyon.fr/]] של המאסטר שלו [[לאייקידו|https://he.wikipedia.org/wiki/%D7%90%D7%99%D7%99%D7%A7%D7%99%D7%93%D7%95]].



<<englink [[Jong goes to Lyon]]>>
[img[pictures/james-gandolfini.jpg]]

!!![[הצוות]]:

[[ג'יימס גנדולפיני|http://www.imdb.com/name/nm0001254/]] האהוב, שנתן את כל כולו.

<<englink [[James Gandolfini]]>>
[img[pictures/jane-fonda.jpg]]

!!![[אווה]]:



השבוע הזמנתי את הבנות אלי לצפות [[בסרט הדוקומנטרי|https://www.imdb.com/title/tt7689958/]] המרתק בחמש מערכות על [[ג'יין פונדה|https://www.imdb.com/name/nm0000404/]] - האישה עם הניצוץ בעיניים. עשיתי את זה אחרי שסוניה [[המתוקתקת|לא חברמניות]] אמרה שהיא חושבת להזריק קצת פה ושם.

בחלק החמישי של הסרט (שעה ו54 דקות מתחילתו) אומרת ג'יין:

//אני שמחה שאני נראית טוב לגילי, אבל גם עברתי ניתוחים פלסטיים, אני לא אשקר באשר לכך. מצד אחד אני שונאת את העובדה שהייתי צריכה לשנות את עצמי פיזית כדי להרגיש שאני בסדר, הלואי ולא הייתי כזו. אני אוהבת פנים מבוגרים, אוהבת את הפנים של ונסה רדגרייב, הלואי והייתי אמיצה יותר, אך אני מי שאני.//


[[מהתמונה הזו|https://www.biography.com/.image/ar_1:1%2Cc_fill%2Ccs_srgb%2Cg_face%2Cq_auto:good%2Cw_300/MTU1MTA5MjA5NjczODM1ODg2/photo-by-tibrina-hobson-getty-images-square.jpg]] ציירה גורה את ג'יין הפנומנלית והאהובה.


<<englink [[Jane Fonda]]>>
[img[pictures/jim-jarmusch.jpg]]


!!![[גורה]]:

אני חושבת שראיתי את רוב הסרטים של [[הנסיך|https://he.wikipedia.org/wiki/%D7%92%27%D7%99%D7%9D_%D7%92%27%D7%90%D7%A8%D7%9E%D7%95%D7%A9]] היפה והרגיש הזה, ואת כולם אהבתי, כי משהו בו הוא קצת אני.



<<englink [[Jim Jarmusch]]>>
[img[pictures/jeff-bridges.jpg]]

!!![[יויו]]:

באתר של [[ג'ף ברידג'ס|http://www.jeffbridges.com/]] אפשר לראות שהוא עושה הרבה דברים כולל הרבה מאד [[סרטים|http://www.jeffbridges.com/filmography.html]]. אווה אומרת שהוא השחקן הכי חתיך שיש, אבל ז'נבייב, שלאחרונה הפכה צופה אדוקה של [[האוס]] טוענת [[שיו לורי|http://www.imdb.com/name/nm0491402/?ref_=tt_cl_t1]] לוקח אותו. גורה אומרת שהוא סופר חתיך ושהיה לה קשה מאד לצייר את כל תווי החתול שלו, בסופו של דבר בחרה תמונה [[מנערי בייקר המופלאים|http://www.imdb.com/title/tt0097322/]]. אני אומר שאני מת על ג'ף ברידג'ס, אבל הכי מהכל הוא [[the dude|http://www.imdb.com/title/tt0118715/characters/nm0000313?ref_=tt_cl_t1]], למרות שבהמלך צילומי הסרט הוא חדל מלעשן מריחואנה. 

<<englink [[Jeff Bridges]]>>
[img[pictures/gever-privilegy.jpg]]

!!![[יויו]]:

נכון, אני גבר פריבילגי, ולא שקל לי לכנות את עצמי גבר, הייתי מעדיף בחור, אך בקרוב מאד ימלאו לי 40.
  
אינני מתנצל על כך שאני גבר פריבילגי. אינני חמדן. אני לא בודק מה יש לאחרים.

אולי רק אדם פריבילגי, יכול להרשות לעצמו לא לבדוק מה יש לאחרים, אבל כל אחד יכול לראות את יתרונותיו היחסיים.

[[אני גבר עם הרבה בעיות|עושים שלום]], ויש לי בעיית דימוי עצמי קשה.

נולדתי עם רגל אחת קצרה מן השניה עד כדי צליעה קלה, וסבלתי מכאבים באגן הירכיים. בילדותי עברתי ניתוחים. הייתי ואני עדיין - נמוך. אני כל הזמן מנסה לרצות, וזה מגיע לשיא, כשמדובר בנשים.

דווקא כשמדובר בנשים, המילה אישה, עושה לי את זה.

<<englink [[A Privileged Man ]]>>
[img[pictures/gabriel-faure.jpg]]

!!![[גורה]]:

אירי טוענת, שגם [[גבריאל פורה|https://en.wikipedia.org/wiki/Gabriel_Faur%C3%A9]] המיוסר היה [[גייז|https://en.wikipedia.org/wiki/Gender]].

כמו כן היא סבורה, שגם המנעד הג'נדריאלי ההולך ומתרחב, קשור לחיים כאן [[בגלות|גלות]].


<<englink [[Gabriel Fauré]]>>
[img[pictures/guen-inn-mitpara.jpg]]

!!![[גואן יין]]:

אצלינו בקבוצה של [[הסינים]], דואגים שהילדים יקבלו השכלה גבוהה, וירכשו מקצוע יאה. אמי היא תופרת מלומדת וכשרונית. וידיה היו תמיד מלאות בעבודה. כשהייתי בת עשר אבי נפטר לפתע. ונשארנו שתינו. בסוף בית הספר היסודי אמנם רציתי רק ג'ינס אמיתי, אך היא כעסה, כי מבחינתה רכישת בגדים הייתה מעשה שלא יעשה ונכנעתי.

היא תפרה לי בגדים יפהפיים. בגיל צעיר כבר ידעתי מה אני רוצה ללבוש - והיא אפילו תפרה לי ג'ינס, אך בין גיל 13 ל-17 בערך, הייתי מהילדים האלה, שלובשים רק שחור ומלא תכשיטים מכסף, ומכסים את הפנים עם השערות. אימא שלי הייתה הרוגה מזה. היא לא ידעה איך להתמודד עם זה מול השכנות. היא כל-כך התביישה.

אני כמובן גם, בקושי דיברתי איתה, ורק כעסתי ונזפתי בה. טוב קרו עוד כל מיני דברים, כמו שתמיד קורים כל מיני דברים, אך קצת אחרי גיל 17, אני ממש זוכרת את הפייד אאוט הזה של השחור, שפתאום התחילו לרוץ לי הצבעים בראש, וכל הזמן התחברו לי בדים שונים עם דוגמאות שונות בכל מיני גזרות.

התחלתי לתפור, אספתי את השיער, חזרתי לחייך. אימי הייתה מאושרת.

שנתיים אחרי התיכון למדתי עיצוב אופנה באקדמיה, לאחר שסיימתי את הלימודים עבדתי בכמה בתי אופנה, ולפני ארבע שנים פתחתי את "גואן אופנה".

אמי מנהלת את העבודה. אנחנו גוזרות יחדיו, ומעסיקות שלוש נשים. 

הפסקתי לגור איתה רק לפני כמה שנים. לא קל לה עם זה שאני עדיין לא נשואה, ושעדיין אין לי ילדים, אבל הסברתי לה, [[שהחיים לא קלים|החיים נועדו למי שלא יכול להתמודד עם סמים]].


<<englink [[Guan Fashion]]>>
[img[pictures/guen-inn.jpg]]

!!![[גורה]]:

גואן-יין, היא סינית קטנה ומתוקה, שהגיע אלינו עם חמשת [[הסינים]] המופלאים.

היא מעצבת אופנה, ויש לה [[סדנה|גואן אופנה]] וחנות, שם היא מעצבת ותופרת גזרות קלסיות עם הכוון שלה. יש לי כמה חצאיות שלה, שאני לובשת המון, וז'קט שכל חלק שלו עשוי מבד אחר, והוא סופר שיק.

בחנות שלה היא מעסיקה כמה נשים עליהן מפקדת אימה, שבצעירותה הוכשרה כתופרת בסין.

גם היא אחת מבני המזל שגדלו יחדיו בקבוצה, שהגיעה מסין בשנות השבעים, והייתה בת כיתה של חמשת מיודעינו, וגם היא באפס זמן הפכה [[לאחת מאיתנו|האחיות כהן]].


<<englink [[Guan-yin]]>>

[img[pictures/gviyashelhaziya.jpg]]

!!![[אווה|אווה כהן]]:

בשלוות הבקר, אני שוטפת את הירקות ושומעת את [[פיליפ]] קורא מן האמבט: "יש גוויה של חזיה בכיור". "אוי, שכחתי ממנה לגמרי", אני עונה ואצה לשטוף אותה.





<<englink [[A corpse of a bra in the sink]]>>
.
[img[pictures/gura.jpg]]

!!![[יויו]]:

גורה אחותי היא בייב בהכחשה/בילבי בת-גרב.


היא משוש חיי ואשמור עליה לנצח.

את התמונה הזאת מצאתי זרוקה בפח שליד המייבש הכביסה. כן, היא אמרה לי שכבר כמה ימים היא מנסה [[לצייר את עצמה|החיים זה לא דיבורים]], אבל לא הולך לה.

היא בת הזקונים להורי, [[דינה זכרה לברכה]] ויואל שיבדל"ח, שהולידו את חמישתנו: [[נדיה]], [[קרן]], [[אותי|יויו]],  [[גיגי]] ואת הגורה.

אחרי שנפצעה [[כתבה|עיר בנויה מרחובות]] וקראה כל הזמן.

וגם עכשיו - מהרגע שפתחתי את [[האתר הזה|האחיות כהן]], [[היא לא מפסיקה לכתוב|הכתיבה]], ממלאה ומעטרת ומשתדלת להתנהג כיאות.

<<englink [[Gura]]>>
[img[pictures/mechapeset-1.jpg]]


אירי כבר שכבה כמה שעות טובות על המיטה ללא כל תזוזה, כשלפתע יד נעלמה ענקית אחזה בבד כותונת הלילה המהוהה שלבשה והרימה אותה מן המיטה תלויה. ידיה ורגליה שמוטות. ראשה שמוט. שדיה שמוטים יוצאים מצדי הכותונת שאת שרווליה הארוכים גזרה ביום קיץ חם. היד הנעלמה משכה אותה דרך התקרה. אירי ניסתה לצרוח, אך יד ענקית שנייה סתמה את פיה בעדינות וקול היסוי נשמע. עיניה היו עצומות בחוזקה, ולרגע קט שבו פקחה אותן יכלה לראות איך תקרת ביתה נסגרת ואיך היא ממשיכה להילקח דרומה ומזרחה. היא חזרה לעצום את עיניה, לא מעזה להזיז שום חלק מגופה. 
כעשר דקות אחר כך היא הונחה על גג ברחוב הוברמן שליד היכל התרבות. מוזיקה עצומה וקולות של אנשים היו שם במלוא עוצמתם. 
במשך כל זמן ה"תעופה" והרבה יותר מזה, מיד כששמעה את קולות האנשים, ראשה קדח מדאגה בנוגע להופעתה. איך תיראה כך ברבים. אפילו תחתונים אין לה. ולא חזייה. היד הניחה אותה בעדינות על מזרן שהיה על הגג שעליו הייתה כרית ענקית ורכה. היא כיווצה את עצמה לידי כדור ולא העזה ולו לרגע לפקוח אף לא אחת מעיניה שמא תראה שמביטים בגופה הנלעג. כך חשבה. לרגע קט פקחה עין ודחקה עצמה עמוק, מתכסה בחלק מהמזרן ובכרית. בחורה ענוגה שריח חתולים עלה ממנה התיישבה עליה מבלי משים, אוחזת בידה כוס פלסטיק עם יין ובשנייה תיק קטן וסיגריה.
"אאוץ'", קראה אירי. "את מוכנה בבקשה לזוז קצת?". האישה הצעירה והחיוורת הייתה מופתעת. אירי יכלה לראות את הדרקון הגדול שהיה מקועקע על השוק השמאלית שלה. 
"מה זה?", היא הביטה בה ושאלה, מופתעת כאילו חלום חדר לה לתוך חלום שחלמה. היא הרימה את קצה המזרן, פניה של אירי ניבטו אליה.
"מה את עושה כאן?", היא שאלה את אירי.
 "לפני שאענה לך אני מבקשת שתעני לי על שתיים-שלוש שאלות, בסדר? את מוכנה?". האישה הצעירה לא הגיבה, ואירי שאלה:
"תגידי, איפה אנחנו?". 
"ברחוב הוברמן 8, ליד הבימה", ענתה האישה ברצינות.
"אויש, זה בדיוק המקום שרציתי להגיע אליו", אירי מלמלה לעצמה. היא הביטה בבחורה.
"נעים מאוד, שמי אירי", הגישה אירי לאישה את ידה, מסתירה זרועותיה מתחת למזרן ולכרית.
האישה הגישה לה את ידה. "אני טניה", היא הביטה באירי. אירי ראתה איך עיניה מתגלגלות בחוריהן ובבום היא נפלה אחורנית ונשכבה בלי לזוז. אירי חזרה כמה שיותר למחבואה מתחת למזרן. קולות גניחותיה של טניה נשמעו. היא הקיאה שלולית ענקית ממש קרוב לרגליה של אירי, שאם חשבה שהיא עומדת למות, עכשיו הייתה משוכנעת בכך. ריח הקיא הרג אותה. הווליום של המוזיקה היה עצום והמוזיקה הייתה מצוינת. (וואו איך הייתי רוקדת עכשיו) הגיחה לה מחשבה בתוך הדאגות. אלמלא הקיא הייתה לוקחת את הזמן אך לא יכלה לשאת את הריח. מה גם שהאישה הצעירה הקיאה עוד פעמיים. המזרן היה רחוק חמישה מטרים מפאתי אזור הריקודים. אותו מזרן (אחד משניים) הונח מתחת למין פיר שבגינו נוצר סוג של מחבוא. בחור ובחורה ישבו בחלקו העליון. הם קלטו את ההקאות אך היו שקועים בעצמם ולא שמו כל כך לב. על המעקות של הגג הענקי נשענו לא מעט אנשים שרויים בענייניהם. אירי הניחה את המזרן שהיה מעט עבה אך לא כבד על כתפיה החשופות. היא הייתה מוטרדת מאוד מכך שזרועותיה חשופות. את חוסר החזייה היא כיסתה בקצוות המזרן. אט אט החלה זוחלת ומתרחקת מטניה ומהשלולית הבלתי נסבלת. היא ניסתה לראות היכן נמצאת הכניסה לדירה ואיך זה נראה ואם היא יכולה לקוות לעזרה מכיוון כלשהו. בצלע עמוד הפיר המשיכה בזחילה 90 מעלות ימינה, לא מביטה אחורנית, זוחלת חרישית, אבנים קטנות ואבק וסיגריות נדבקים לגופה בעת הזחילה. האבנים הקטנות נשארות ומטרידות אותה. גרגרי חול משייפים את ברכיה. היא בוכה בתוך עצמה בלי קול. זוחלת עוד אחורנית, מרגישה שרגליה הנה נוגעות בקצה. הקצה היה רך. "אוחחח" נשמעת גניחה. היא לא רוצה להביט אחורנית. מרגישה ידיים נשלחות למותניה ומלטפות אותם. את האגן. כפות הידיים חמות ונעימות למגע, הן יורדות לעכוזה. המוזיקה מרחוק יפה, מפתה. "אוחח איזה גוף", לוחש הקול הגברי. קול תזוזת הגוף נשמע. איברו מתחכך בה. אירי מסדרת לה את הכרית, מניחה את בית החזה לנוח. אירי צועקת צעקה מחרישת אוזניים. האיבר הקשה חודר לפי הטבעת שלה באחת. ללא כל התרעה. חזק. כואב. קפוא. "לאאאא". אירי מעזה לצרוח שוב. תנועת האגן הגברית לא פוסקת. אירי בוכה מכאב. הוא יוצא גונח ומדביק על גבה את זרעו, נשען לאחור. אירי מתכסה שוב ומסתתרת. פיה פעור כדי חצי מיכולת הפעירה. קפוא. לא זז. עיניה פקוחות לרווחה. היא שומעת קולות מלמעלה קוראים שמות. ונרדמה.






<<englink [[Gura narrates 01]]>>
[img[pictures/mechapeset-2.jpg]]

כעבור שעתיים האיר היום. אירי עוד ישנה כשיד טופפה על כתפה. היא פקחה את עיניה ומולה עומד בחור ארוך ורזה מחייך מאוזן לאוזן. "אני חושב שכדאי שכבר תלכי", הוא אמר לה ממשיך לחייך. היא הביטה בו לא מסוגלת להגיב. בכלל לקחו לה כמה שניות להבין איפה היא נמצאת. זיכרון השעות האחרונות הכה בה. היא שמעה שהוא מדבר אבל לא יצא קול מגרונה. היא התקפלה בתוך הכרית. "אני אזוז, אבל אני מבקש מימך לקחת את עצמך מכאן מהר ככל האפשר", הוא אמר והמשיך לחייך. אירי ניסתה לחייך אליו בחזרה אך שרירי פניה לא זזו. את העיניים בקושי יכלה לחייך. הבחור זז ממנה. ברגע שהלך היא הסירה את הציפית של הכרית הגדולה. עם שיניה קרעה בחוזקה שני פתחים לידיים בצדדים ואחד לראש למעלה, שהיה קצת קטן, ובכל זאת הצליחה להשחיל ראשה פנימה. זה כאב. טיפות דם היו על הכרית ליד פתח הראש. היא נצמדה במהירות לקיר ונעה לאורכו עד שראתה דלת ברזל קבועה בקיר מולה. היא רצה מהר לעבר הדלת, מביטה לצדדים, בודקת שלא רואים אותה. הגג היה ריק כמעט לגמרי מאנשים. היא ראתה שדי רחוק שוכבים כמה אנשים, אולי ישנים. היא לא יכלה לראות את פתח הדירה. לקחו לה כמה דקות לפתוח את דלת הברזל הכבדה והחלודה. היא לא הייתה נעולה, אבל הסוגר היה חלוד ויבש. הדלת נפתחה לבסוף והיא עברה דרכה. היא לא יכלה לראות כמעט כלום, את הדלת היא סגרה מאחוריה כמעט לגמרי, רק חריץ צר מאוד נותר. היא ראתה תחילתן של מדרגות בחלל הצר. היא חשבה לעצמה שבהוברמן 8 אין בתי דירות גבוהי קומה, ואי לכך, שיערה, לא תצטרך לרדת הרבה קומות. היא החלה יורדת למטה. בתחילה מגששת רגלה קדימה. בודקת את גובה המדרגה שמתחת. ממשיכה לרדת עוד ארבע מדרגות. המעקה מסתובב והיא איתו ממשיכה לרדת. כך ירדה שלוש קומות ולא יכלה לראות שבתחתיתן מדרגה גבוהה. היא שלחה את רגלה, שלא נגעה בשום רצפה, רק גופה החליק, ונפלה, מנסה לבלום עם ידה. פרק היד התעקם וגם הקרסול. הצוואר נחבט. היא נפלה על הצד. הרצפה הייתה מלאה חול. היא בכתה אבל קמה, הדלת למטה הייתה חלודה גם. כוחה כמעט אזל לחלוטין מגופה כשלא הצליחה לפתוח את הדלת. היא המשיכה לבכות. היא הסתובבה שם בתחתית המדרגה דופקת על הקירות, מנקה את ברכיה מהחול והאבנים הקטנות. הרוכסן של הכרית נתקע לה בברך ופצע אותה. היא התחילה לעלות חזרה במדרגות בריצה, כמעט משלימה עם זה שתיאלץ לעבור בדירה ההיא כדי לצאת, אך חוזרת בה ויורדת. ואז משנה דעתה ושוב עולה. ושוב יורדת.
היא התיישבה על הרצפה. מתבוננת בדלת. מתבוננת בקרסולה הימני, שנראה לה נפוח מזה של רגל שמאל. הוא כאב והיא אחזה בו. ייבבה שוב. היא התרוממה. עוזרת לעצמה לפסוע שוב לדלת כמה פסיעות קטנות החלה למשש לאט את הדלת. ממששת את הדפנות. מחפשת סוגר. מוצאת אותו. מרימה אותו אט אט הוא עולה. היא לוקחת כמה צעדים אחורנית כדי לתת בעיטה הגונה בדלת. מתכוננת. בועטת. רגלה כמעט עפה. הדלת נפתחה בקלות. עיניה התכווצו מול קרני השמש החודרות, מולה שביל, היא ממשיכה לצעוד עליו לכיוון הכביש. הקרסול כואב והיא בקושי יכולה לדרוך עליו. היא קופצת על רגלה השמאלית, אך הכאב בקרסול הימני מתעצם מהדף הקפיצות. הצוואר כואב לה וגם האמה. היא רואה שבעוד כמה צעדים היא תגיע לרחוב. באור היא רואה שהציפה של הכרית היא בתכלת ושהיא מטונפת. בתוך הבוקר גל חזק של ריח עלה מגופה ומכסותה. היא ירדה מטה ברחוב לכיוון אבן גבירול, היא הייתה צריכה נורא לשירותים והרגישה את הכאבים בעכוזה. היא המשיכה ללכת. מנסה באבן גבירול לעצור מונית. היא חיכתה די הרבה זמן עד שמונית עצרה לה כשהיא בוכה וממשיכה לפסוע לכיוון דירתה. היא רצתה להסביר לנהג אך לא יצא מגרונה קול. היא סימנה לו לעט ונייר. הוא הצליח לגרד עיפרון ומפית של "ארומה". היא כתבה לו על המפית: "נקלעתי למצב מביך. אין עליי ארנק. אוכל לשלם לך כשנגיע לביתי". היא לא לקחה בחשבון כי ייתכן שהבית נשאר נעול מבפנים, קיוותה ששותפתה תשמע את דפיקותיה ובכלל, מה אם היא לא ישנה בדירה הלילה? היא המשיכה ורשמה לנהג שהיא תדאג לשלם לו גם עבור הזמן שיצטרך לחכות לה. "לאן לקחת אותך?", הוא שאל אותה בסבלנות. היא רשמה לו על צדה השני של המפית את כתובתה. היא נכנסה לאט למונית והתיישבה לאטה. הנהג פתח את חלונות המונית כשעצר לה בזנגביל 9. "תהיי בריאה חמודה, שמרי על עצמך, את לא צריכה לשלם לי, שבת שלום". חיוך עלה על שפתיה, היא ציירה לו חיבוק ויצאה.
למזלה שותפתה הייתה בבית, היא עמדה לצאת להדריך טיול בסטף ופתחה לה את הדלת בחלוק, לא מביטה, רצה מהר חזרה לחדרה. אירי הדליקה את הבוילר והלכה לחדרה לחכות עד שהמים יתחממו, כשחיכתה שכבה על המזרן שהיה מונח על הרצפה. כעבור זמן מה קול הדלת הנסגרת העיר אותה, היא התעוררה מביטה בתקרה, שוב עוברים בראשה זיכרונות השעות האחרונות. היא הקימה עצמה, עושה סיבוב בבית, צולעת, רואה שהוא ריק כבר, בדקה את המים, התפשטה, זרקה את כל מה שעליה לשקית אשפה, סגרה אותה והניחה אותה ליד הדלת, היא פתחה את ברז האמבטיה, שטפה את גופה מכל הטינופת, חפפה שערות והסתבנה היטב, אז החלה ממלאה את האמבט. היא הוסיפה למים קצף בריח אורנים. היא נשכבה באגן ונתנה למים לכסות את גופה, מדי פעם צוללת אל תוך בועות הסבון. כאב החדירה לא עזב אותה, גופה היה עייף, היא שכבה כך במים כמה דקות, ואז קמה, התנגבה ונכנסה מהר לתוך מיטתה, כיסתה את גופה בשמיכה עד מעל לראש התקפלה לכדור, כך נרדמה.




<<englink [[Gura narrates 02]]>>
[img[pictures/mechapeset-3.jpg]]

היא התעוררה. קרן אור חורפית סינורה אותה, משך זמן מה לא זכרה מי היא כלל, עיניה נפקחו בזו אחר זו, היא לא הבינה באיזה יום היא נמצאת. זה היה ראשון בבוקר. היא לקחה עיניה לשעון המעורר שעל השידה הקטנה שליד מיטתה, נאלצה לאמץ את צווארה כדי להגיע ולראות, הוא הראה שמונה. עוד קצת והבינה שיום ראשון בבוקר ושעוד מעט תצטרך ללכת ללימודים. היא הבינה שהיא ישנה יממה בערך אחרי ליל שישי. תמונות מהחושך על הגג חלפו בראשה, היא קמה באחת כמעט קופצת והלכה לשירותים, רחצה עצמה, הדליקה את הקומקום החשמלי. דלת חדרה של השותפה הייתה סגורה, היא שיערה שהיא כבר יצאה לעבודה. תוך כדי לבישת בגדים חמים יותר וגריבת גרביים היא שתתה את הקפה וחשבה לעצמה שהיא יכולה לא ללכת היום ללימודים. היו לה שעתיים בין שתיים לארבע. היא החליטה עוד לנוח בינתיים ולא להחליט אם היא הולכת או לא. היא החליטה להתקלח שוב. להירגע. אך לא ידעה איך. רעב הכה בבטנה. היא לקחה איתה את שקית האשפה עם כל ראיות הלילה שהייתה מונחת אבלה ליד הדלת. ירדה למכולת וקנתה ביצים, לחמניות קטנות עם סומסום, גבינת שמנת ושלוש עגבניות. עלתה והכינה לעצמה שתי ביצי עין, פרסה את העגבניות דקדק כמו שהיא אוהבת, פיזרה עליהן מלח, ערכה לעצמה את השולחן, בחרה מפית עם ציור ילדותי של נוף ומכונית קטנה נוסעת במעלה כביש, הניחה עליה את הסכו"ם, שמה את [[waltz for debby|https://www.youtube.com/watch?v=dH3GSrCmzC8]], והתיישבה לאכול. חוצה את הלחמנייה, מורחת גבינה. הצלילים מניעים את גופה, היא מניחה עין אחת מהשתיים על חצי לחמנייה מרוחה בגבינה ונוגסת. חום הביצה היה נעים לה. היה לה טעים. הגוף שלה היה זקוק לביצים. היא חושבת שאולי בכל זאת תלך לשעתיים לימודים הללו. ידעה כמה רע היא תרגיש אם לא תלך, אם תשב בבית ותדע שיכלה למלא את מחויבויות חייה... בעודה שקועה במחשבות דלת חדרה של השותפה נפתחה בקול גדול וממנו יצאה בחורה גדולת גוף עם שיער ישר עד הכתפיים וחיוך ענקי שנייה אחרי שעיני שתיהן נפגשו. אירי חייכה אליה בחזרה. היא נראתה לה משונה, היו לה עיניים קטנות וצרות ופנים גדולים ומלאים וגוף משונה ומלא למדי. חולצת הטריקו שלבשה לא הצליחה לכסות את כרסה, והגומי של החצאית שלבשה הגיע עד מתחת לבטן. בלי לצחצח את השיניים היא ניגשה לאירי וחיבקה אותה ארוכות תוך כדי שהיא מצחקקת, ואז שחררה את חיבוקה ואמרה לה ששמה [[עמליה]], שהיא גדלה עם מעיין שותפתה לדירה של אירי, שהיא חזרה מטיול ארוך בהודו ושהיא מתכוונת להתאקלם קצת וכנראה תדור אצלם איזה ימים עד שתחליט איך היא ממשיכה הלאה. תוך כדי שהיא סיפרה לאירי את כל אלה היא לקחה מהלחמנייה השלמה שהייתה על השולחן, בצעה ממנה וניגבה מהעין שנותרה בצלחת, מדברת ולועסת, אירי יכלה לראות את אשר פיה המדבר לועס, זה קצת הגעיל אותה, אך מצד שני הצחוק שלה שעשע אותה. עמליה ידעה לא מעט דברים על אירי, מעיין עדכנה אותה וביקשה ממנה להיות מנומסת. עמליה צחקקה גם כשאמרה את אלה.

"את עסוקה היום?", היא שאלה.
"בדיוק עלו בי מחשבות כפירה בנוגע ללימודים היום, יש לי שעתיים בין שתיים לארבע וחשבתי שאולי אוותר לעצמי היום לאחר הסופשבוע שעבר עליי, אך רגע לפני שיצאת מן החדר חשבתי שאולי עדיף בעצם שכן אלך, כי אם לא אלך אכעס על עצמי, אני כבר מכירה את עצמי בעניינים האלה", ענתה אירי, לא מבינה מאין יצאו הקול הצלול והבוטח הזה והמשפט הארוך.
"אולי אבוא איתך ללימודים ולאחר שתסיימי נעשה משהו ביחד?".
"אוקיי, איך שבא לך", השיבה לה אירי. השעה עכשיו הייתה תשע (כלומר עוד ארבע שעות נצטרך לצאת מהבית) חשבה לעצמה אירי (אולי לא כל כך בא לי שהיא תבוא איתי), עברה בה המחשבה.
"רגע, יש לי רעיון", עמליה אמרה וקמה מהכיסא, היא נכנסה לחדר של מעיין ואז חזרה עם חפיסת קלפים ביד, היא הורידה מהשולחן את הכלים לכיור והניחה אותם ברישול על השיש.
"רגע, אבל, אשטוף את הכלים", אירי קמה והלכה לסדר את המטבח, חושבת על זה שעמליה עדיין לא צחצחה שיניים ועדיין לא ביקרה בשירותים. עמליה הלכה אחריה למטבח ועמדה לידה בזמן ששטפה את הכלים. היא העזה לשאול אותה איך זה ייתכן שהיא לא מוכרחה לבקר בשירותים מיד כשהיא מתעוררת.
"זה משהו שלמדתי מאיזה באבא הודי, מיד כשראה אותי אמר לי שהייתי באבא בגלגול הקודם וביליתי איתו כמעט שבועיים. הוא לימד אותי להתאפק, מאז אני לא בלחץ על כלום", אמרה ושוב צחקקה, אך עם זאת, כך סברה אירי באותו רגע, האמינה עמליה שהייתה באבא הודי.
"לא יודעת... כשאני מתעוררת אני דבר ראשון מוכרחה לעשות פיפי, לצחצח שיניים, לשטוף פנים ולשתות כוס קפה".
"את יודעת מה, למענך אעשה זאת, יש לי הרגשה שזה יקל עלייך", אירי חייכה וצחוק עמליה נשמע שוב.
בסופו של דבר אירי לא הלכה ללימודים באותו יום, היא נשארה עם עמליה בבית, הן בילו בוקר דומסטי, כאשר אירי מסדרת, ועמליה הולכת אחריה ומדברת. לא היה הרבה מה לסדר כי הדירה הייתה די ריקה. אירי רק איבקה את המדפים והחפצים עם מגבת המטבח שהייתה קצת רטובה, החזירה דברים למקומם וטאטאה. בינתיים עמליה סיפרה לה על הודו ועל החברים שלה. אירי הקשיבה לה רוב קשב תוך כדי שהתנועות וההבעות המשונות של עמליה מרצדות על משהו כמו מסך, כך ראתה אירי, שהיה מובנה בחלקה האחורי של גולגולתה. זה היה בדיוק מעל המגרעת שמעל הצוואר. העובדה שעמליה לא לבשה חזייה, הבטן השמנמנה והחשופה, הגב המעט כפוף, החיוך שהיה בו משהו לקקני במובן הלשוני של המילה... מחשבות חלפו בראשה של אירי כשעמליה לקחה לידיה שוב את חפיסת הקלפים. היא קמה בנחישות, מפזזת לעצמה, מצאה במטבח נר קטן והניחה אותו על צלחת, מעבירה אחד אחד את הקלפים, מסבירה לאירי שכך היא מטהרת אותם, היא קמה שוב ופתחה את החלון, ערבבה את החפיסה וביקשה מאירי שתשאל שאלה.
"מה יהיה איתי?". 
"טוב, זו שאלה קצת כללית... אבל זה מתאים בתור סוג של פתיחה כללית". עמליה פרסה את החבילה וביקשה מאירי לקחת חמישה קלפים. עמליה הפכה אותם על השולחן והסבירה לאירי שהיא במצב רגיש שבו עליה להתכנס אל תוך עצמה, לדעת שהכול פתוח בפניה, שהקוסמוס דואג לה, שהכול בסדר וכל שעליה לעשות הוא לשחרר ולהיות בטראסט. אירי הקשיבה. עמליה אמרה שהיא רעבה והן הלכו להכין צהריים. עמליה רצתה נורא לעזור לאירי, אך אירי לא יכלה לשאת את תנועתה במטבח. אירי אמרה לה שהיא אוהבת לעשות ושזה מאה אחוז איתה. היא הכינה אורז עם ירקות ותה והן הלכו לאכול בגינה שברחוב. כשהן הגיעו לגינה עמליה פרשה לונגי צבעוני שהפתיע את אירי לטובה, בכלל המזג העליז של עמליה היה מרענן עבורה. תוך כדי שהן אוכלות ומדברות והשמש החמימה באמצע דצמבר, אמרה עמליה: "תגידי, מה קרה לך ברגל?". 
"סתם... נפלתי בבוקר כשחזרתי מהמסיבה... הייתי נורא שיכורה". 
"זה בקרסול?".
"זה גם בקרסול וגם השתפשפה לי הברך". 
עמליה מיד החלה לעסות את קרסולה של אירי... אירי התרתחה, אך החניקה את כעסה ורק ביקשה ממנה לא לגעת כי זה כואב מאוד.
"אוי תקשיבי, יש לי סיפור מעולה בשבילך, אני מוכרחה לספר לך אותו...". אירי הביטה בה נותנת לה להמשיך. "ובכן...", אמרה עמליה תוך כדי שהיא שולפת מנרתיק קטן חבילת טבק ומכינה לעצמה סיגריה, מדליקה ומספרת:



''
הנסיכה שהתבלבלה''


[img[pictures/mechapeset-3a.jpg]]

היה הייתה נסיכה שנולדה בחצר המלך... אמה הייתה המלכה... ואביה היה ליצן החצר... בימים ההם הפלות לא עלו על הפרק. אמה גילתה על אודות הריונה כשכבר הייתה בחודש החמישי אולי... המחזור שלה לא היה סדיר מעולם והיא אף לא סבלה מתופעות קדם וסתיות.
עם המלך לא באה המלכה במגע כבר שנים רבות, עם ליצן החצר כבר שנים באה במגע.
קשה היה שלא לראות שהמלך אינו אביה, היא דמתה מאוד לאמה אך היה בה גם לא מעט מליצן החצר.
אביה הליצן היה רווק מושבע.
הוא הגיע אל המלך לאחר ליצנים רבים שלא צלחו את תובענותו המתישה.
חלומו של המלך היה שייוולד לו בן נסיך ובת נסיכה, אך אמה המלכה לא נכנסה להריון.
היא כבר הייתה בת 40, והמלך היה בן 69.
אמה של הנסיכה הייתה אשתו השלישית של המלך, אשתו הראשונה נפטרה כשהייתה בת 29 והוא בן 40. היא לא הרתה מעולם. היא מתה ממחלה. אומרים כי המלך היה קשה אליה וכעס על שאינה מתעברת.
אחר כך נישא לעוד אישה שלא הרתה, אותה גירש לאחר שראה את אמה, שהייתה אז בת 18, יפהפייה מאין כמוה, והתאהב בה.
המלכה, מלבד היותה יפהפייה עוצרת נשימה, הייתה טובת מזג ובעלת יכולת הקשבה וסקרנות לסיפורי הבריות. לא היה אדם אחד בממלכה שלא אהב את המלכה הטובה, שלא יכלה להתנגד להצעת הנישואין מהמלך. גם היא לא הרתה במשך 22 השנים שחייתה עמו.
המלך למורת רוחו החל להבין שבעיית הפוריות אולי הינה שלו, על אף זאת הוא הלך והזדקן ולבו הקשיח מיום ליום.
ככל שהלך המלך והתמרמר הלכה המלכה ויפתה והרחיבה לבה, הייתה מקשיבה לכל אדם ומעניקה מטוב לבה ומעצותיה הנבונות.
כשגילתה המלכה על אודות הריונה הפכה בראשה הלוך וחפש אחר פתרון הולם לבושה העצומה והבלתי אפשרית. לאחר שבועיים כמעט, שבהם לא אכלה ובקושי שתתה, אגב הליכה בלתי פוסקת הנה ושוב עלה בה הפתרון, היא ביקשה מהמבשלת להכין ארוחה הגונה ומשקה, היא הזמינה את המלך במתיקות, לאט לאט החדירה בו את הסיפור, כי לילה אחד עת השתעל הלכה היא לכסותו וראתה כי זקפה אדירה לו. לא היססה, התיישבה עליו, עד שבא בה, והוא הפסיק להשתעל (לא לפני שפתחה את החלון הפונה צפונה), אז הלכה לישון שמחה וטובת לב, חשה בתוכה את התהוותו של צאצא. היא הוסיפה ואמרה לו כי חיכתה כמה חודשים מכיוון שלא רצתה להפיח בו תקוות שווא ושלהרגשתה זו בת. הזקן ישב. בכה וצחק. קרא בקול: "אני עומד להיות אב... אני עומד להיות אב... "עם זאת לא פסק מלהגיד שוב ושוב שהוא אינו זוכר דבר ושזה לא יכול להיות. המלכה הסבירה לו, תוך כדי שהיא בעדינות רבה מניחה עליו את ידיה החמות, שהזיכרון חמקמק הוא. "כמו חומרים שלא נתפס עליהם צבע", היא המשיכה והסבירה, "על פורמייקה שום צבע לא נתפס... ככה הזיכרון... כל אחד והפורמייקה שלו".
"את מאוד חכמה הוד מלכותה...", הביט המלך במלכה ואמר. לא היה מאושר ממנו מצפה לצאצאו. כעבור חודש יצאו המלך והמלכה בהודעה אל אנשי הממלכה על אודות הציפייה וכעבור כארבעה חודשים נולדה הנסיכה במזל"ט, בריאה ויפה כשמש.

עמליה צחקקה ומחאה כפיים לסוף האגדה.
אירי צחקה אף היא הפעם.
"מה הביא אותך לספר לי את האגדה הזו ומאיפה הגרלת אותה?", שאלה תוך שפנתה לעמליה.
"לא יודעת למה סיפרתי לך אותה", עמליה השיבה, "אני שומעת אותך... ואני לא יודעת מה את לא מספרת, אבל אני בעיקר שומעת שאת לא מספרת".
"אין לי מה לספר, הכול אצלי בסדר גמור, החיים מלאי חוויות... תגידי... הנסיכה גילתה מתישהו מי אביה האמיתי?".
"מה נראה לך?".
"נראה לי שכן".
"למה כן?".
"כי דברים חייבים לצאת".
"גם אלה שלא נדבקים לזיכרון?".
"אולי בעיקר הם?".
"אולי?".
הן צחקו, ואירי החלה מחבבת את עמליה, עמליה אוספת אותה אליה, מקשיבה לה ומספרת לה מיני סיפורים. "ודרך אגב", אמרה לה עמליה, "סיפרה לי אותה אישה שפגשתי בהודו, ישראלית בגיל המעבר, היא הייתה חמודה, נראה לי שהיא המציאה אותו". 







<<englink [[Gura narrates 03]]>>
[img[pictures/mechapeset-4.jpg]]

משך כל הימים הבאים אירי [[ועמליה|עמליה]] לא נפרדו. הכאב בעכוז ליווה אותה עוד מספר ימים. אירי חישבה והגיעה למסקנה שלכבוד סוף הסמסטר היא מרשה לעצמה להשתמש בחיסורים המותרים לה אותם שמרה לימים גשומים. היא שיתפה את עמליה בהתלבטויותיה ועמליה תמכה בה.
"כמה נחמד", אמרה עמליה, "להשתמש במה ששמרת לימים גשומים בימים שטופי שמש".
יומיים לפני חג המולד, במהלך חנוכה, הן נסעו לעיר העתיקה, בשוק הקצבים שברובע המוסלמי הן אכלו חומוס ומרק תרד שטעמו לא עזב את לשונה של אירי כל אותו יום. ברובע הנוצרי הן קנו קישוטים של חג המולד, אירי הציעה שאולי יחגגו את חג המולד שיחל יום או יומיים אחרי חנוכה.
"אני לא מרגישה שאני עושה שום עבודה זרה או שרוצה להיות ככל הגויים ומחפשת לי אלים אחרים", אמרה אירי לעמליה, "אלוהים הוא אחד וכל השאר אלה המצאות שהמציאו האנשים כדי להצליח להסתדר עם הנוירוזות שלהם".
"זה פרויד אמר את זה על הנוירוזות, לא?".
"משהו כזה, עמליה... אי אפשר להפתיע אותך, מה?".
"אני זוכרת את זה כי פעם כשהייתי חולה ולא היה לי מה לקרוא ניגשתי למדפים של אמא שלי ונפלתי על הספר הזה 'טוטם וטאבו' של פרויד".
"וואו", התפעלה אירי, "זיכרון מרשים, עמליה". 
"כן, אצלי בזיכרון הכול נדבק, בור סוד שאינו מאבד טיפה".
"אצלי למשל כלום לא נדבק לזיכרון, כלומר זה לא מדויק, אני אזכור איזה נעליים נעלו כל מיני אנשים או איפה ראיתי אותם ומתי... יש לי זיכרון לאנשים, לקולות, למראות, לריחות, אבל דברים שקראתי... אם לא אקרא אותם אלף פעמים לא אזכור דבר... אני הכרתי את 'טוטם וטאבו' בלימודים בשנה שעברה כשהייתי צריכה לעשות עבודה לאיזה קורס פילוסופיה ואני לא זוכרת דבר, למרות שלבדי קראתי את החומר והכנתי את העבודה, וכל שאני זוכרת זה את מה שכבר אמרתי לך". 
"אבל רואה? זכרת ובתוכך את מבינה למה הכוונה, וזה מה שמשנה".
"יכול להיות שבאיזה גלגול קודם היית נזירה? או נזיר?", שאלה עמליה, אירי הרימה את עיניה ועמליה צחקה.
"זה מרגיש לי ככה... כאילו... מצד אחד את כזו פתוחה וחייכנית ומושכת ומדברת, ומצד שני יש בך משהו מאופק וסגפני... ועם כל החיבה העזה הזו לחג המולד... את למשל אוהבת לאכול אך מחמירה עם עצמך בכל המדובר בניקיון", הוסיפה עמליה.
"מעניין ”, אמרה אירי, "דווקא אני מרגישה נוח עם הרעיון הזה, זה כאילו נשמע לי מוכר... על גבול הדה-ז'ה-וו". עמליה שרקה את "איזה יום שמח לי היום".

"את שומעת? סיפרה אירי לעמליה בהתלהבות, האגדה שלך הזכירה לי, לפני שנתיים בשנת הלימודים השנייה היו לנו שיעורי פסיכולוגיה מעניינים מאוד, המורה היה פסיכולוג ומשורר והעביר לנו כמה סדרות נושאיות של שיעורים לא תיאורטיים כי אם חווייתיים, אני זוכרת שהיו כמה בכיתה שמחו על כך, ואני כל כך כעסתי, כי האדם הזה נתן לנו מתנות שאי אפשר לקרוא בשום ספר. אז הייתה סדרה על אהבה והייתה סדרה על אגדות... אז באגדות הוא ביקש מכל אחד מאיתנו לספר את אחת מהאגדות המפורסמות, אחרי שסיפרנו ורשמנו הוא ביקש שנלך ונקרא את האגדה במקור, בשיעור הבא השווינו בין מה שזכרנו ובין הסיפור המקורי... זה היה מרתק לראות מה אנשים שוכחים, מה זה בעצם אומר... הייתה אחת, היא עזבה כבר את הלימודים, לא חושבת שאי פעם אשכח את זה, ששכחה בסינדרלה את הדלעת. את מוכנה להסביר לי איך אפשר לשכוח את הדלעת!?", קראה אירי בקול גדול וצוחק.
"אני חושבת שלשכוח את הדלעת זה כמו לחיות בתחושה שאין פתרון", עמליה אמרה.
"אני לא חושבת כמוך, כי הפיה הרי היא זו שמביאה את הפתרונות... ואת הפיה היא לא שכחה."
"כן, אבל מהדלעת נוצר כלי התעבורה, זה שהביא את סינדרלה אל הנשף".
"את לא חושבת שהפיה כבר הייתה מוצאת איזה פתרון יצירתי?".
הן צחקו והחליטו שמן הראוי לבדוק את עניין הדלעת. אירי יכלה לראות מימד של חשיבות עצמית בעמליה דרך ההתייחסות הזו שלה, הרצינית, ובמענה שלה הנושא טונציה לוגית יודעת כול.
"אבל דווקא מסקרנת אותי האגדה שסיפרת לי קודם. הייתי מתה לדעת מה היה אחר כך. לאיזה מין אדם גדלה והייתה הנסיכה ואיך נראו חייה", אמרה אירי.
"מה היית רוצה שיהיה?", שאלה עמליה.
"הייתי רוצה שהנסיכה תהיה מתוקה ויפה וצחקנית ומצחיקה... שהמלך הזקן והנרגן והמעצבן הזה ימות כבר, ושאם אפשר להרחיק לכת ואם הן המלכה והן ליצן החצר מעוניינים בכך ממש הם יוכלו לחיות באושר עד סוף ימיהם. ושהנסיכונת תחיה טוב כמובן, ומה כבר יכול אדם לבקש".
בזמן שהיא דיברה אירי הרגישה איך היא הולכת וחושקת בעמליה, רצתה אותה ממש.
היה להן יום נפלא בירושלים. כשחזרו הביתה עמוסות בקישוטים לחג הן מצאו את מעיין מקולחת לאחר ששבה מטיול נוסף. עמליה והיא התחבקו ארוכות והחלו לדבר במהירויות מטורפות ובקודים פנימיים שאירי לא הבינה.
"התאהבתי בשותפה שלך", אמרה עמליה למעיין.
"כולן מתאהבות בה, תירגעי", השיבה לה מעיין, ואירי שמעה את זה כמעט כמו טענה. אירי חייכה את חיוך המבוכה שלה והלכה להדליק את הדוד.
"אני אלך להתקלח ואז אתחיל לארגן את עצמי לקראת החיים האמיתיים", אמרה אירי לבנות, "בינתיים תיהנו אחת מן השנייה".
אבל בימים הבאים אירי הלכה ונעלמה מהחיים שהיו חייה באותה תקופה.
[img[pictures/mechapeset-5.jpg]]

באחד מימי ינואר, כשחזרתי הביתה מטיפול אצל [[רוז'ה]], חיכה לי פתק [[מיויו|יויו]] ובו הודעה האומרת שאמא של אירי התקשרה. חייגתי אליה מיד. זה לא נשמע לי טוב העניין הזה וזה באמת לא היה טוב במיוחד.

"היי עדנה... זו גורה".
"הו... שלום לך חמודה, טוב שהתקשרת".
"מה שלומך?".
"מודאגת...". 
"מה?".
"אירי נעלמה לי".
"מה זאת אומרת?".
"זאת אומרת שכבר כמה שבועות שלא ראיתי אותה... בפעם האחרונה שראיתי אותה היא הגיעה לכאן עם איזו עמליה... סיפרה שהיא מאוהבת בה... הגיעה מוכנה, ששה אלי קרב נגדי... לקחו לי כמה דקות להוריד מעליי את הפנים ההמומים, היא מיד כעסה... נשארה עוד טיפה ואז הן נסעו... התקשרתי אחרי כמה שעות, הנייד היה מכובה, רק יומיים אחר כך תפסתי את מעיין, השותפה של אירי לדירה... והיא אמרה שהפעם האחרונה שהיא ראתה את אירי הייתה לפני כמה ימים ושהיא חושבת שהיא נסעה עם עמליה חברה שלה מהקיבוץ... אל תשאלי גורה... אני לא יודעת מה לחשוב".
"מה זאת אומרת? מעיין לא יודעת לאן הן היו יכולות ללכת?".
"מעיין, אחרי בקשות חוזרות ונשנות מצדי, הודתה בפניי שעמליה היא טיפוס פרובלמטי... שהיא עשתה לה טובה, אמנם, ואירחה אותה כמו שמארחים בני משפחה, וביקשה סליחה על כך שלא השכילה להזהיר את אירי מפני עמליה".
"וזהו? חוץ מזה לא ניסתה לעזור לך?".
"היא ניסתה כמובן... אולי אני אתקשר אלייך שלא תעלה לך השיחה?".
"תהיי רגועה, עדנה, אין שום בעיה", אני חושבת תוך כדי שאת מדברת ושואלת את עדנה, "תגידי, מה עם ארנון?".
"ארנון בחו"ל עכשיו, נסע לחודש, ובכל מקרה אירי לא מדברת איתו ולא מוכנה לשמוע ממנו ולא בא לי לספר לו".
ארנון היה אביה של אירי. 
"אוי... אני מצטערת לשמוע... ומה את כבר כן יודעת?".
"אני יודעת שהן היו בקיבוץ של ההורים של עמליה הזו... גם הוריה של עמליה לא ידעו לאן זו נסעה... הגענו לכמה מהחברים של עמליה מקיבוצים ליד... היה בחור אחד שהן ביקרו אצלו, אבל גם הוא לא ממש ידע לאן הן המשיכו ולא רציתי להוציא הודעת חיפוש במשטרה כדי שאירי לא תכעס עליי... ואני לא יודעת מה לעשות יותר...".
אמא של אירי פרצה בבכי. תוך מחשבה מהירה אמרתי לה שתיתן לי כמה שעות ואחזור אליה. החלטתי שאסע לארץ. ירדתי לרחוב ולקחתי מונית לקוסקוס. סיפרתי ליויו ולדןדן מה קורה ושאני רוצה לטוס ארצה. יויו כמובן דאג לגופי, אך הרגשתי שאם אשמור על עצמי אני כבר יכולה לנוע לבד.
"הכי טוב היה אם הייתי נוסע איתך", יויו אמר לי.
"אתה יכול?".
"את יודעת... לא נעים [[מז'נבייב|ז'נבייב]]... חוץ מזה אני יכול... כמה מהר חשבת לצאת מכאן?".
"לא יודעת... מה אתה אומר?", שאלתי אותו והרגשתי את עצמותיי הכואבות בגופי.
"אני חושב שאת צריכה להגיד לעדנה שתודיע למשטרה על היעלמה של אירי, לחכות אולי כמה... יום-יומיים, ואם אין חדשות לנסוע אז, ועד אז נוכל גם לראות אם ואיך אוכל להתארגן ואולי להצטרף אלייך".
"טוב אח שלי... עכשיו אין לי מושג מה אעשה עם עצמי".
"תישארי איתנו, מתוקה".
נשארתי איתם אבל לא הייתי רגועה, רציתי להגיד כבר לעדנה שכן כדאי שיתחילו לחפש את אירי. דיברתי איתה בחנוכה, אני לא יודעת איך להגיד שהיא נשמעה לי אז, אולי אפשר לומר שלא הייתה לה הרבה שמחה בקול, היא צחקה כמו תמיד, אבל לא חושבת ששמחה. מצד שני גם אני לא ממש הייתי בשיא השמחה באותה שיחה. אם אני חושבת על זה, זה היה אחרי שאמא מתה.
זה היה אחרי תקופה ארוכה שבה לא יצא לנו לדבר.
בכלל בשיחה ההיא אני חושבת שבעיקר אני דיברתי. [[אירי]] רצתה לדעת הכול עליי. סיפרתי לה באותה שיחה על [[דןדן]], שהוא הבנאדם העיקרי בחיי כבר כמה חודשים. סיפרתי לה על הטיפולים אצל רוז'ה ועל המחשבות על אמא, שהלכה לעולמה בלי שהספקתי לתת לה נשיקה או חיבוק ופשוט לאהוב אותה בלי להאשים אותה בכלום, את המתוקה הזו. "איזה עוול, אני לא יוצאת מזה", אמרתי לה.

הגעתי הביתה והתקשרתי לעדנה וסיכמנו שהיא משאירה הודעה במשטרה. המשכתי לשכב על הספה ולחשוב.
כשהגעתי להלוויה של אמא התראינו די מעט, היא הייתה בתל אביב ועבדה. אני רוב הזמן הייתי בבית עם המשפחה ועם כל האנשים שהגיעו, היא הייתה בדיוק בתקופה שהחליטה לנסות שוב לחיות עם גבר ולא עם אישה, היא הגיעה אחר צהריים אחד בימי השבעה ולנה אצל הוריה, באותו הלילה היא נשארה עוד אחרי שכולם כבר הלכו.
עיקר הדברים שהיא הזכירה היו שהיא לא בטוחה שמה שהיא לומדת הוא מה שהיא תרצה לעשות בחיים ושהיא לא בטוחה איזה מבין המינים היא מעדיפה. היא מתרגשת מנשים, אבל היא לא מצליחה לחיות איתן. היא רוצה לנסוע, אבל עדיף שהיא תסיים את הלימודים.
"למה עדיף שתסיימי את הלימודים?", שאלתי אותה.
"כי אני כבר בסוף יחסית, לא חבל?".
"אם את לא חרמנית על משהו עד הסוף, אז אני לא חושבת שהוא ראוי".
"אני תוהה גוריקי אם אי פעם אהיה חרמנית על משהו עד הסוף".
"בטח תמצאי אותה בסוף". 
"אסיים כבר את הלימודים ונראה כבר מה יהיה. אסחב עוד קצת וכבר לפחות אסיים משהו".
גם ממעיין השותפה כבר נשבר לה, היא לא יכלה לסבול את אורחות חייה ואת זה שהשתמשה לה בדברים בלי חשבון ולא ניקתה כמעט. היתרון היחסי בנוגע למגורים איתה היה שהייתה יוצאת לא מעט לטיולים של כמה ימים, דבר שהיה משאיר לאירי את כל הדירה לעצמה חצי מהזמן בערך. זה היה יתרון עצום, אבל בזמן שמעיין כן הייתה נוכחת אירי עמדה להשתגע.
העניין הזה עם לנסות בחורים בעצם היה אחרי שהיו לה לא מעט מערכות יחסים עם נשים, כל אחת בת כמה חודשים טובים, אך הרגישה שהן - והיא שנאה לדבר בהכללות - שואבות אותה, מערבלות אותה, טורפות אותה תרתי משמע וגוזלות ממנה את חירותה. היא לא הצליחה להבין איך זה יכול כן להצליח, היא כעת חיכתה לרגע שתוכל לגור בדירה משל עצמה, ללא שותפות ולא שותפות.
לא יודעת כמה זמן שכבתי ככה עד שהטלפון צלצל. עדנה הייתה על הקו. היא אמרה שאירי התקשרה זמן קצר אחרי שפרסמו את דבר היעלמה. היא כעסה עליה נורא ואמרה לה שהיא בגליל, שהכול בסדר ושתירגע כבר. עדנה הייתה ממוטטת. אירי הבטיחה שתשלח לה אס.אמ.אס פעם בשבוע כדי שלא תדאג.
"כנראה היא רוצה חופש כלשהו".
"עמליה הזו לא מצאה חן בעיניי בכלל, גורקל'ה, אני דואגת".
לא כל כך ידעתי איך לעודד אותה. אירי שמרה את הנייד שלה מכובה, שלחתי לה הודעות אך לא הגיעה כל תגובה.
[img[pictures/mechapeset-6.jpg]]


[[אירי]] מאז ועד עולם היא החברה הכי טובה שלי, מן הרגע שבו נפגשנו כשהיינו בנות 11 לא נפרדנו מעולם. לפעמים לא התראינו במשך כמה חודשים, אך גם אם לא התראינו או לא דיברנו יכולנו להרגיש זו את זו. תמיד כשמצבי היה נמוך היא הייתה מצלצלת פתאום ממרחקים ומבררת מה שלומי. אני זוכרת את הפעם הראשונה שבה נפגשנו כאילו הייתה אתמול. הגעתי אליה אחרי שיובל ואלעזר אמרו לי שהגיעה ילדה חדשה בגילי חמודה מאוד. יובל ואלעזר ובני התיידדו עם אחיה הגדול, כשנפגשנו לא אמרנו זו לזו כמה נקשרו נפשותינו או משהו כזה, גם לא חשבנו במונחים הללו. זה קרה. למעשה עד לרגע זה לא חשבתי במונחים האלה. היינו כל אותו קיץ בין ו' לז' ביחד. כשהתחילה שנת הלימודים אז כבר התראינו פחות. היינו בכיתות שונות, היו לנו חוגים אחרים, אבל תמיד שמרנו על קשר ותמיד היינו חברות און אנד אוף לפי המצב בחיינו. בט' היא עברה לבית ספר אחר ובי' או בי"א חזרה לתיכון שבו אני למדתי. לכל אחת מאיתנו היו מעגלים חברתיים נוספים ושונים, ועוד חברות - עם זאת היינו תמיד זו במעגלה של זו.
רק בצבא הבנתי סופית שאירי נמשכת לנשים. הייתי די נאיבית בעניין הזה. אפשר לומר שאלמלא יויו אחי היקר אמר לי את זה כשהיינו בי"ב לא הייתי מעלה זאת בדעתי בשלב ההוא. הוא הגיע באיזו שבת לביקור אצל ההורים, ואירי הגיעה אליי. הוא ראה אותה, והם שמחו כמו תמיד, אבל אחרי שהיא הלכה הוא שאל אותי אם היא כבר יצאה מהארון, ואני ניסיתי להגיד לו שזה ממש לא נכון, שכבר היו לה שני חברים.
לא הייתי חושבת על זה בעצמי, אבל בתחילת הצבא כשבאה מבסוטית איזו שבת, ושאלתי אותה מה שלומה, והיא שאלה איך נראה לי, ואני אמרתי שנראה לי שיש לה חברה. היא לא הפסיקה לצחוק, קיללה אותי, שאלה ממתי אני יודעת. ביקשתי ממנה שלא תיטור ליויו על היותו מזהה מקצועי לג'נדר מאז ועד עולם. היא כמובן לא כעסה, היא אף פעם לא כעסה, גם אני לא הייתי איזה טיפוס מי יודע מה כועס עד לתאונה, אבל אותי עוד אפשר היה לתפוס חוטפת את העצבים בלי חשבון ונכנסת באנשים ומתפרצת... האמת שזה לא בדיוק ככה, גם לאירי היו כמה תקופות בחיים שהייתה יכולה לחטוף את העצבים. אם היא לא אהבה מישהו לא היו סיכויים שהוא לא יבחין בכך. למעשה לשתינו היה פתיל קצר, אך אצל כל אחת מאיתנו היה נדלק מעניינים אחרים, וכן, שלי היה קצר יותר. כל אותו אחר צהריים אחרי שהתקשרתי לעדנה שכבתי על הספה וחשבתי על אירי, על אירי ועליי. ניסיתי להעלות בזיכרוני את השיחות האחרונות שלנו בתקווה לקבל רעיון בנוגע לדבר היעלמה. 
[img[pictures/mechapeset-7.jpg]]


מצאתי אותה לאחר תשעה חודשים בדרמסאלה. [[דןדן]] ואני מצאנו אותה למעשה. היא נסעה אחרי [[עמליה]], הסתבר שהיא רצתה אותה עד מעל לאוזניים. לעמליה היה ככל הנראה מנגנון התנהגותי כלשהו שידע להפעיל ולהפיל בחשקיה את כל מי שרצתה למרות היותה, כביכול, ככל הנראה, לא מושכת בעליל. היא ידעה להשתמש באיזו מניפולציה מזן נחות במיוחד שכמובן לא עובדת על כולם אך ישנם אלה שהיא עובדת עליהם. דןדן ואני כמעט הקאנו כמו ההוא מ"ליטל בריטן" כשלבסוף נפגשנו איתה.

שישה חודשים בערך אחרי הטלפון הראשון מעדנה קיבלתי ממנה טלפון נוסף. במהלך החודשים דיברתי איתה לא מעט. עם אירי, לעומת זאת, לא דיברתי כלל, למעט אס.אמ.אסים ספורים שבהם רק כתבה לי: הכול טוב אחותי, הסירי דאגה מלבך לא שמעתי ממנה. את ההודעה הראשונה קיבלתי ממנה רק חודש אחרי הטלפון הראשון מעדנה, היא מיאנה לתת הסברים וכמובן שלא דרשתי, נאלצתי להסביר את זה גם לעדנה מדי פעם, את העניין הזה שאין לנו כל זכות, גם לא לאמה, להתערב לה בחיים, ושהיא אדם בוגר, גם אם מעשיו נראים ואף יהפכו לבלתי הגיוניים. אני חושבת כך גם עכשיו למרות מה שקרה.
בכל אופן, באותו טלפון עדנה סיפרה לי שאירי התקשרה אתמול בלילה מאוחר, ולכן היא מתקשרת על הבוקר, היא חיכתה שיהיה עשר כדי מה שפחות להעיר אותי, היא צלצלה שהיא בדרך ליציאה מן הארץ, כבר יש לה כרטיסים, וכן היא נוסעת עם עמליה, שהיא מאושרת כמו שלא הייתה מעולם, ושלא תדאג, היא תמשיך מדי פעם להודיע לי שעדיין נשמה באפה.
"אלה כולם ביטויים שלה", אמרה לי עדנה, "מין טון כזה, אני לא יודעת איך לתאר לך, אם יותר קר מציני או יותר קפוא ממה?", היא אומרת לי, "נגמרו לי כבר המחשבות גורקל'ה".

עברו עוד חודשיים וחצי והפעם עדנה ביקשה שאסע לחפש אותה ואמרה שהיא מוכנה לשלם הכול. לפי מה שהיא הבינה אז אירי בדרמסאלה ושהיא תיתן לי את כל שאר הפרטים ברגע שאודיע לה מה קורה.
היה ספטמבר, אבא ותרצה זוגתו היו אמורים להגיע בסוכות וגם גיגי. זו לא הייתה בעיה כמובן.
מיד נסעתי לקוסקוס כדי לדבר עם דןדן ותוך שלושה ימים יצאנו. תוך שבוע נוסף מצאנו את אירי. על כל דקה בכל אחד מן הימים הללו אפשר לספר בלפחות עשר דקות בממוצע, אבל אני רק רוצה לספר לכם איך מצאנו את אירי.

אתחיל מזה שנחתנו [[בדרמסאלה|https://he.wikipedia.org/wiki/%D7%93%D7%A8%D7%9E%D7%A1%D7%90%D7%9C%D7%94]], ומשם עברנו למקלוד גאנג' שמעליה. דבר ראשון ביררנו איפה ישנים, למזלי, בעקבות מצבי הגופני הייתי חייבת לישון במלון מהסוג הטוב יותר. מלון מסוג זה הוא לא בדיוק המקום לפגוש אנשים מזן המטיילים כמו אירי ועמליה, זה כמובן לא הדאיג אותנו, לרגע לא חשבנו שלא נמצא את אירי. עם עדנה קבעתי שהודעה כתובה אחת כל יום אלא אם יש חדשות רציניות יותר. זה היה רעיון של דןדן. זה היה קצת יותר מדי בשבילי לשמוע אותה דואגת ועצובה על בסיס יומי. בנסיעה לדרמסאלה היו לי כאבי גוף איומים, דבר ראשון לקחנו מקום במקלוד גאנג' במלון חמישה כוכבים מדורג. כשהגענו נשכבתי ולא יכולתי לזוז יותר יום שלם. דןדן לעומתי החל לרוץ. הכנתי לו פתקים, בעברית ובאנגלית, תיאור הדמויות ככל שידעתי. הוא הגיע גם לכפרים הסמוכים כדי לתלות שלטים. מעיין השותפה הקרצייה של אירי הואילה בטובה לשלוח לי תמונה של עמליה שהשיגה דרך הוריה, שעל פי עדותה של עדנה היו בלתי נסבלים.
את אף אחד מהם לא עניין כלום מהקורה אצל בתם.
היה לי ברור שכאשר אמצא את אירי, ואם תשוב ארצה, לא אתן לה, עניין שאתערב בו, לשוב לגור עם חתיכת הזבל הזו הבת זונה, תסלחו לי. לא יכולתי לסלוח לה על העניין הזה. מה שהטריד אותי יותר זו האפשרות שעצם הגעתה של עמליה מכאלה אנשים אולי מעיד על כך שעמליה גם כזו, לחברתה מילדות לא היה בזין לשתף פעולה מינימלית עם עדנה, הוריה היו אדישים להלוך וחזורים שלה, כנראה.

לקחו לנו חמישה ימים עד שהגענו לקונקשן שהביא אותנו אל אירי, ששכנה בבית מבודד ומרוחק ממקלוד גאנג' אך שייך אליה. זה היה בחור הודי שכנראה הכיר את עמליה מקרוב, אם אתם מבינים למה אני מתכוונת. הייתה לו אנגלית טובה, הוא היה נחמד מאוד ורזה וארוך יחסית לרזונו, הפנים שלו היו יפים. אגב ההליכה הניד את ראשו הנה והנה והוביל אותנו עמוק עמוק בהר. הלכנו לאט. אני הייתי צריכה להיעצר כל חצי קילומטר למנוחה. חלק מהפעמים הספיקו לי עשר דקות מנוחה וחלק קצת יותר. לבסוף, כעבור אולי שעתיים של הליכה, הגענו לשני בתים קטנים שעמדו זה לצד זה. שניהם עומדים על צלע ההר ולשניהם מרפסות הפונות אל המדרון. בחוץ עמדה אישה קטנה בת חמישים או שישים ובחצר הסתובב איש קטן כמוה שהגיע מיד כשראה אותנו. ההודי דיבר איתם, והם ליוו אותנו לעוד בקתה מאחור. שם מאחור, בבקתה, שהייתה חדר אחד גדול, אירי שכבה, לבנה לבנה ורזה רזה ומקסימה. נראית כמו אוויר, מרגישה כמו אוויר, כולה באוויר, לא מחוברת לכלום, מנותקת, מרחפת. ובאותו חדר עמליה ועוד בחור ישראלי נעים פנים וקטן גוף. עמליה מסתובבת עם כל הגוף הזה שלה והשפה הלא מושכת שלו, החלק העליון של האגן שלה נוטה קדימה ומלווה בכפיפות בגב, צווארה הלא ענוג נוטה קדימה בהמשך לשכמות המכופפות, ורק הראש עולה טיפה קדימה מכרסם בחלל. לא התעלמתי ממראה אף על פי שפניי פנו בעיקר אל אירי. בין לבין כל המבטים שהעברנו כולנו זה על זה וזה בזה, הסתכלתי גם על המבטים של דןדן. באופן כללי הם בעניין של לשתוק, כך הם סיפרו לנו.
אין להם כמעט כלום בבית, הם אוכלים אורז עם ירקות ושותים תה ודופקים בבאנג.
אירי שוכבת על מזרן שסדין צחור מונח עליו, המזרן צמוד לזווית הקיר ולצדו שטיחון מטריקו לבן עשוי שתי וערב. עיניה פעורות לרווחה, גלגלי העיניים, שנראים כאילו בעוד רגע יזנקו מחוריהם, נעים מעלה ומטה.
לבחור קראו מיכאל, כך הציג את עצמו, עמליה קראה לו מייקי. הוא התרוצץ סביבנו ובדק אם אנחנו עייפים או רעבים או צמאים.

הוא אמר שהיא שוכבת ככה ימים. הם מתרגלים ויפאסנה. "אירי לא התכוונה ולא רצתה לתרגל ויפאסנה בהתחלה, אך למרבה האבסורד, בסופו של דבר היא הצטרפה אלינו ועכשיו היא זו השותקת כל הימים", הוא אמר, "היא כל כך בנאדם עמוק, שברגע מסוים היא אמרה לי שהיא רוצה לשתוק עכשיו הרבה זמן ושהיא חייבת להבין מה זה אומר לשתוק".

במהלך השעות הקרובות גילינו שאת מייקי, חבר של חברים של עמליה, הן פגשו כאן בדרמסאלה. עמליה קבעה איתו מראש שיהיה מגניב אם ייפגשו לאחר שגילו את צירוף המקרים המ-ד-ה-י-ם, שמועדי הגעתם למקום חופפים. מבין המילים הבנתי די מהר וראיתי שגם דןדן הבין - אירי נפלה ברשתה של עמליה והתאהבה בה באופן מוחלט ומלא. ההיא – עמליה - נהנתה מהתלות ומההערצה של אירי אליה ואף נהנתה לפלרטט בה בעת הן עם אירי והן עם מייקי.

למייקי לא ממש היה אכפת, גם הוא היה שפוט של עמליה וגם לא היה לו רע כל כך, כנראה, להיות ביחסי "צרות" עם אירי. כשהוא אמר את זה חשבתי שבטח גם לאירי לא כל כך הפריע שמייקי הוא "צרה", אולי אפילו קל וחומר מסיר מעט מנטל העמליה ממנה.


התחלתי הולכת ומבינה מה עבר על אירי. עמליה לא דיברה אך גם לא זזה מאיתנו, אף את עיניה לא העזה להזיז מאיתנו. בעודי יושבת שם ראשי החל לעבוד. אמרתי לעצמי שאני לא זזה עכשיו מאירי עד שאני שומעת את קולה או קולטת ממנה תגובה כלשהי.
ביקשתי ממייקי שיארגן לי משהו לשכב עליו ליד אירי. הוא ניגש אל האישה שבחצרה התגוררו. היא מיד שלפה מביתה עוד מזרן ועוד מצעים צחורים. ההודית כיבסה עבורם, מסתבר, זה היה כלול בדמי השכירות. מייקי היה מסדר ופה ושם מנקה קצת את הבית, אבל הבית לא היה נקי מספיק.
לאחר שסידרנו את המזרן נשכבנו שנינו, דןדן ואני, מול אירי, דןדן חיבק אותי מאחור, זו הייתה פעם ראשונה שממש שכבנו מחובקים אף על פי שכבר חודשים ארוכים הוא החבר הכי טוב שלי. הוא חיבק אותי בעדינות, היינו הרוגים מעייפות. הבחור ההודי הלך כמה שעות קודם. ביקשנו ממנו שיחזור בעוד יומיים. דןדן שכב מאחוריי, שנינו הבטנו באירי. זה היה חיבוק מענג וקרוב. נרדמנו ככה, צללנו אל תוך חלום בלי להתקשר לעדנה.


[img[pictures/mechapeset-8.jpg]]

את דןדן הכרתי בשנה האחרונה, זה היה אחרי שנפצעתי ולא רציתי לראות אף אחד. נכון יותר יהיה לומר שלא רציתי לראות את יויו.
יש לי הרבה מאוד מה לספר לכם עליו, אבל אני מנסה להיות עניינית. דבר דבר.
דןדן הגיע אליי עם יויו לבית החולים, זה היה קצת אחרי שהתעוררתי מחוסר ההכרה שבו הייתי שרויה כעשרה ימים ומאז הוא החבר הכי קרוב אליי.


בבוקר קרן שמש אימתנית סנוורה אותנו וחיממה את פנינו. התעוררתי לפני דןדן. פקחתי את עיניי מחובקת מאחור על ידו וממולי פניה השקופים של אירי ומיד זכרתי שלא צלצלתי לעדנה.

זה הבהיל אותי והתחלתי לנער את דןדן שיקום. הוא לא קם, ועברה בי המחשבה שכדאי שאתעשת ואתחיל להיגמל מהתלותיות שפיתחתי מאז התאונה ולהתחיל להיות קצת יותר עצמאית. הדבר הראשון שעשיתי עכשיו היה מסרון לעדנה.
השעה הייתה אולי שש במקלוד גאנג' בינות לעצים, כלומר שלוש לפנות בוקר בערך בארץ, כלומר בטח עדנה ישנה, חשבתי לעצמי.
אך לא כך היה. אס.אמ.אס בהול מעדנה חזר ודפק על צג הסלולר בחוזקה בתוך שניות:
"אפשר להתקשר?". 

ביקשתי ממנה עשר דקות. קמתי לאטי, הלכתי לשטוף פנים בכיור שבפינת החדר ויצאתי החוצה לחכות לצלצול.
מיד כשהתקשרה דיווחתי לה [[שבתה היקרה|אירי]] כאן וחיה ונושמת וקיימת. וואו כמה שעדנה בכתה מאותו הרגע. הקשבתי להתייפחותה המתמשכת, לאחר גלי בכי עולים ויורדים ועולים היא החלה להירגע. הבטחתי לה שאיידע אותה בכל רגע על כל שינוי או דבר והסברתי לה שאירי לגמרי שלמה אך לא ממש מתקשרת עם הסביבה. אני גם קצת הבטחתי לה שלא תדאג.

"עדנה", אמרתי לה, "תחשבי... היא חיה... שזה כל מה שביקשת לך בשלב זה זוכרת?". 

אחד הדברים ששמתי לב אליהם הוא העניין הזה שאנשים, ברגע שקיבלו משהו שרצו מאוד, תוך זמן לא רב שוכחים שקיבלו את מה שכה פיללו לו ושוכחים להודות עבור מזלם הטוב ומיד ובלי משים הם כבר רוצים עוד.

"אני יודעת מותק", היא ענתה לי, "אבל את יודעת... אני מוצפת כולי, לא יודעת איך לאכול את כל התבשיל הזה, ואת יודעת שארנון כבר כמעט שנה לא בבית, וזה שאירי ניתקה איתו כל קשר אחרי שהייתה כל כך קשורה אליו, אז הכול ביחד. הרי שנים לא דאגתי לדעת להסתדר לבד...". 

"כן, אני יודעת עדנה, צר לי על כל אלה, מקווה שיהיה רגע שבו תגלי שהכול לטובה". 

"לא יודעת אם לטובה או לרעה או מה, רק יודעת שכעת אני לבד ודואגת ולא ישנה בלילות ושמנתי ובקרוב יימלאו לי שישים... אז תגידי לי גורינקה, מי ירצה אותי? אפילו הבת שלי לא רוצה אותי". 

"הכול זמני, עדנה, אני מבטיחה לך. יהיה גבר שירצה אותך ואף את אותו, אירי בסופו של דבר תעבור את המשבר הזה ותתיישר... ואולי עם הגבר החדש תביני על עצמך כל מיני דברים. את אישה מקסימה עדנה, תמיד רציתי אמא כמוך, זה דבר שמעולם לא סיפרתי לך, ואם זה מנחם אותך... אז אחרי שאמי היקרה נפטרה גילינו שכל השנים לאבא היה רומן עם תרצה, בת הזוג שלו". 

"תגידי גורקל'ה, היא לוקחת סמים הילדה שלי ?". 

"לא עדנה, היא לא לוקחת סמים, אבל היא גם לא מדברת בינתיים, רק פעורת עיניים, ושתדעי, אני לא זזה ממנה בשלב זה, בזה את ממש יכולה להיות בטוחה, עד שלא אחליט מה לעשות ואיך לעשות אני כאן שומרת על אירי, עדנה, אל תדאגי, דןדן ואני שומרים כאן עליה".

"את מבינה שארנון החליף אותי באישה שהתאהב בה?... צעירה ממני?... את מבינה שאלמלא הפרידה היינו כבר שנינו כעת בדרמסאלה לא משנה מה...? ועכשיו... עכשיו... מה נעשה עכשיו?". 

"אתם ביחסים סבירים [[ארנון|ארנון חן]] ואת?", שאלתי.  

"בהחלט, הוא כמובן יוצא מגדרו ומעצמו כדי לרצות אותי ולהיות בסדר". 

"אז אולי תתקשרי אליו?", הצעתי.

"טוב גורל'ה מתוקה". 

"אבל עדנה, יש דבר אחרון שאני רוצה להגיד לך ממרומיו הלא גבוהים של גילי".

"דברי חמודה, אני מקשיבה לך". 

"כשאמא נפטרה הרבה שלדים יצאו מהארון המשפחתי שלנו, שמבחוץ נראה היה די מסודר ותמים. למעשה הם החלו לצאת לאחר התאונה שלי, כשהייתי בפריז ויויו הגיע אליי והכול, ואחר כך אבא ונאדיה באו ונתנו מופע רע של יהירות. למרות התאונה עדיין הייתי זחוחת דעת, כואבת מאוד אך זחוחה. מותה של אמא היה המכה האמיתית שניחתה עליי. הרבה תובנות ומחשבות יש לי בזמן הזה ואני רוצה מאוד להגיד לך, ואת בטח יודעת את זה אבל עדיין, יותר מכול אני מבינה בימים הללו שאין לנו שליטה במה שקורה לנו בחיים. בן אדם קם מדי בוקר ליום שיש לו תוכנית מסוימת, וברגע קט הכול משתנה. פתאום נהייתי נכה יום אחד, פתאום הפכתי יתומה יום אחד... פתאום גילינו כולנו [[שלאבא|אבא יואל]] הייתה אהובה כל אותן שנים שבהן היה כל כך מסור אלינו ומגונן על [[התא המשפחתי שלנו|משפחת באומן]], ושסבא [[וסבתא|סבתא שלנו]] ההורים של אמא ידעו מזה וביקשו ממנו להחזיק מעמד... ואחרי כל אלה אני רוצה להגיד לך, שבקושי רב אני מתמודדת עם כל כמויות המידע הללו כולל תגליות על שאר בני המשפחה... ולסיום המהלך אומרת לך רק, שיגיע רגע שבו את תשמחי שכל זה קרה, וכעת עם כל הקושי יש לך איזו קלות מסוימת וחופש ולא פחד גדול או ציפייה לארנון". 

"את צודקת מתוקה, אני צריכה להתמודד ולהיות אופטימית יותר".

"טוב עדנה יקרה, אעמוד איתך בקשר ואמסור לך כל פרט ודבר". 

"תודה חמודה שלי, מחכה לשמוע ממך, נשיקות וגם לאירי אם תוכלי, מסרי לה כל מה שתוכלי וכל שאת רואה לנכון למסור, אני סומכת עלייך". 

סגרנו את הטלפון, ואני נשארתי שם בחוץ בלא תנועה.

[img[pictures/mechapeset-9.jpg]]

כבר [[כשאבא של אירי|ארנון חן]] היה צעיר היה עם הרבה נשים, כלומר הוא גם הבין שזה שאתה אוהב אישה, אפילו אוהב מאוד אישה, לא צריך להפריע לך לעשות סקס עם כמה נשים אחרות שבא לך. 
זה לא בדיוק ככה, כי כשהוא הכיר את עדנה הוא כבר היה גבר מנוסה. גבר צעיר עדיין, בתחילת שנות השלושים של חייו, אך כבר גבר מנוסה. כבר חווה מערכות יחסים ארוכות עם נשים. הוא רצה בית וכבר הבין שעל משהו צריך לוותר. הוא גם כבר הבין שסקס בין גבר לאישה ממילא מפסיק להיות מספק החל משלב מסוים, שמה שחשוב הוא אישה טובה, חכמה, שתהיה אמא טובה ואפילו בלבוסטה. 
ואמת, שנים רבות מאוד, כל עוד חי עם אמה של אירי, שהמיניות שלה לא הייתה הצד הדומיננטי של קיומה, הוא שכב עם הרבה הרבה מאוד נשים. את כל זה הוא סיפר לי בתקופה ההודית שלנו.
אבא של אירי ואמה, עדנה, התגרשו לפני שנה, אחרי שלושים שנות נישואים.

לפני כשלוש שנים הכיר בעבודה שלו אישה בשנות החמישים לחייה ונהיה שקט. פתאום הסתפק באישה אחת ורצה רק אותה. פתאום הבין את אותם גברים שתמיד נראו לו מגוחכים בתשוקתם והערצתם לאישה שלהם.
אירי כמובן לא בטחה בו כלל בעניין הזה אף על פי שהייתה קשורה אליו מאוד. 
אירי זעמה עליו.
היא זעמה עליו כמה פעמים: פעם אחת על כך שבגד באמה כל אותן שנים, פעם שנייה על כך שנטש אותה בגיל מבוגר יחסית ובכך גזר עליה הזדקנות לבד ובפעם השלישית על כך שפירק את משפחתם שהייתה כה נפלאה בעיניה. עכשיו היא בברוגז איתו באופן כללי, ותכף היא תתחיל שוב לדבר איתנו. 

ארנון, מצדו, ולמרות רצונו הבלתי נגמר בעוד ועוד נשים, לקח באותה עת החלטה והבין שכך אי אפשר להמשיך יותר. הוא החליט לעשות מעשה וורן בייטי באנט בנינג ולהתמסר לאישה אחת אחרי שהיה עם 12,775 נשים [[(על פי הפרסומים)|http://www.usmagazine.com/celebrity-news/news/warren-beatty-addresses-rumor-he-slept-with-12775-women-w442348]] במהלך חייו (וורן, לא ארנון).

אף על פי שלא אהבתי את היות אביה של אירי "רודף שמלות", כן, זה הביטוי שאומרים על איש כמוהו, אף על פי שהוא לא ממש רודף כי אם פשוט אוהב נשים ובעיקר לשכב איתן. את האיברים הנשיים, את הגוף הנשי. חיבבתי אותו מאוד. הוא היה אבא מסור, שתמיד היה מוכן לעשות הכול למען אירי. אירי הייתה השמש של חייו. היא אולי גם הסיבה לכך שארנון בסופו של דבר כן נפרד מעדנה. נכון שעדנה זרקה אותו, אך לו היה מתאמץ הם היו יכולים להישאר יחד איכשהו. אני יודעת שזה נשמע קצת כמו דבר והיפוכו זה שאירי היא מה שגרם לו ללכת בסופו של דבר, מה גם שמדובר כאן בהשערה שלי, אך יש דברים שכבר הצלחתי להבין שאני מבינה... כלומר... אפשר לראות לפעמים מה מניע אדם. 

עכשיו, כשהגיע להודו, ובאותן שעות ארוכות של התבוננות משותפת באירי הבלתי מגיבה ומהשיחות שהיו לנו הבנתי שאהבתו של ארנון לנשים מעט דומה לאהבתי לסמים. התמכרות זו המילה. מילה גדולה וקשה אבל קולעת ממש. פרט להתמכרות ולתלותיות בסם הזה יש עניין האהבה אליו, אל הרגע שבו אתה מאבד את החושים ואחר כך מנסה עוד ועוד לשחזר. זאת אומרת שההתמכרות החלה מאהבה גדולה, מאהבה לשחרור ולהתמסרות, והפכה להתמכרות מן הסוג שאתה לא מסוגל להיפרד ממנו, לאחר שברגעים מסוימים הוא הדבר הטוב ביותר שקורה לך ובאחרים הוא לגמרי מיותר. 




שלושה שבועות אחרי שהגענו אירי פצתה פה. היא "התעוררה", כלומר "יצאה מעצמה", חמישה ימים קודם. לפני שאספר לכם על הרגעים שבהם כולנו - כל הנוכחים בבית הקטן ההוא שהיה צמוד לעוד בית גדול יותר וצבעוני יותר שבו התגוררו שני ההודים החביבים - היינו מופתעים, נרגשים, נסערים ובעיקר לא מאמינים, אני רוצה לספר לכם עוד כמה דברים.

ארנון הגיע 11 ימים אחרי שדןדן ואני הגענו. הוא לא הפתיע אותנו עם הגיעו, אך בניגוד למתוכנן הוא הגיע בלי החברה שלו.

במהלך אותם ימים המשכנו בשגרת השמירה הצמודה על אירי. ברוב הזמן היא שכבה בעיניים פקוחות אך ללא תנועה מרובה של האישונים או של הגלגלים או משהו שמעיד על תנועה של מחשבות שחולפות בראשה. היא הייתה קמה לשירותים מדי פעם. זה היה מוזר כי את הפעולות האלה הייתה עושה בעצמה, בשקט גמור ובתנועה מינימלית. פעם ביום מתקלחת בבוקר כשהיא קמה וכך גם תה. הם כל הזמן דאגו לה לתה. יש לציין שעמליה הייתה דווקא זו שהקפידה על כך שאירי תשתה מספיק. [[היה לי קשה לשאת אותה|עמליה]], אך יכולתי לראות גם את מנת הדאגה שהעניקה לה.

ממה שמייקי בעיקר סיפר הבנו, ששילוב של לא מעט סדנאות ויפאסנה, ובזמן האחר לא מעט עישונים, אכילה מועטה וככה התעוררה בקר אחד לפני חמישה שבועות, שוכבת בלא תנועה, וככה נשארה. הם הביאו שני רופאים ישראלים שהיו בטיול משפחתי שנראה היה להם שהכול בסדר. לא ידעו להגיד. מייקי היה אוסף כל מיני מקומיים שמתמצאים בריפוי, מביא אותם לאבחון, כל מיני תיירים שאסף, כולם סברו כי מדובר בעניין של זמן. את החותמת הסופית נתנה דווקא בעלת הבית הקטנה, שהסתובבה סביב אירי בכל הזדמנות. מדי פעם הייתה מניחה עליה את שתי הידיים במשך שלושים או ארבעים דקות, והיא בשלב כלשהו אמרה לבחור ההודי, שתרגם למייקי ולעמליה, שיש לה גוש של קשר ענקי שממלא את כל הראש והוא יתפוגג בתוך זמן מה, עניין של שבועות...

דןדן ואני הרגשנו שזה באמת עניין של זמן, ועדיין, עם כל הכבוד, זה היה מלחיץ לסמוך רק על ההרגשה.
במודע אני לא מתארת את עמליה כי הבחורה הזו מוציאה ממני רק רעל. באופן כלשהו הצלחתי להתעלם ממנה כך שגם דיברנו וגם לא דיברנו. הווה אומר, דיברתי איתה לא מעט, אבל על כלום ובאי חשק. לדןדן היא לא הזיזה, והוא כהרגלו הסתובב וצחק איתה ופטפט איתה והיא איתו הכי אדיבה. גם אליי היא השתדלה. עם חוש הומור בריא וחכמה, אך ללא הועיל. לרגעים יכולתי לדבר איתה מעט. לאחר שבארבעת הימים הראשונים היא לא זזה מאיתנו, ביום החמישי מייקי והיא יצאו לסיבוב בעיר. ככה זה נמשך גם בימים הבאים. בכל ערב עם חזרתם הביאו תשורות קטנות וסיפורים מלאי צחקוקים ושביעות רצון עצמית ונסים ונפלאות.
[img[pictures/mechapeset-10.jpg]]

כאמור לאחר 11 ימים ארנון הגיע, מאחר שידענו על בואו התכוננו. סידרנו לו מזרן נוסף ליד המרפסת לא רחוק מאירי, קנינו פירות וירקות וממתקים צבעוניים. עמליה ודןדן הלכו לאסוף את ארנון מדרמסאלה; מייקי ואני נשארנו עם אירי. דןדן העדיף שמייקי ילך איתו, אבל היה הגיוני יותר שהוא זה שיישאר איתי. לבסוף מזגו הטוב של דןדן הפסיד וככה הוא היה זה שזכה בחברתה לשעות שיבואו. 

(דבר שלא סיפרתי הוא שבימים האלה מול אירי התחלתי להתחזק מעט. הדם בגופי זרם טוב יותר. האוויר הצח והאכילה המרובה של ירקות עשו לי טוב. שוב התגלתה היכולת המוזרה הזו והמרשימה, הכוח לברוא כוח ולהיות חזקים יותר בעת הצורך. אני לקחתי אחריות על אירי. הסתכלתי בה כל היום כמה שרק כוחי עמד לי. שרתי לה שירים. דיברתי אליה. השעות הארוכות האלה איתה היו יקרות מפז עבורי. גם [[דןדן]] הבריא אותי בימים האלה עוד יותר מאי פעם, וכבר רציתי להיות בריאה ולא תלויה. וכבר רציתי שאירי תחזור לדבר איתי ושנוכל ללכת קצת לטייל. רציתי לעלות לדרמקוט ולבגסו ולראות את המקדש של הדלאי למה, ובכלל ממה שהספקתי להרגיש במעט שכן ראיתי עד שמצאנו את אירי רציתי עוד מזה. גופי רצה לנוע עוד אך עדיין לא היה מספיק חזק.)

אחרי שעמליה ודןדן הלכו, מייקי ואני התיישבנו במרכז החדר על כריות. שתינו תה ושיחקנו אינספור פעמים שש בש. שרנו שירים בקול רם למדי. מייקי הוריד ראשים ורציתי נורא רק אחד קטן אבל פחדתי. לא הרשיתי לעצמי, ידעתי שגם אם כן אז רק אחרי שאירי בסדר. ניצחתי אותו ברוב הפעמים. פעמיים היה מארס. הייתי מבסוטה.

"אני שמח שהכרתי אתכם", מייקי אמר פתאום. 

"גם אני, מייקי, שמחה מאוד שהכרתי אותך". 

"יודע מייקי? בעוד פחות מחודש תימלא שנה למות אמי. נראה לי שכדאי שאירי תפתח ת'פה עד אז כדי שאוכל להגיע לשם בזמן. ממש לא יהיה אכפת לי אם אגיע בשנייה האחרונה ישר משדה התעופה לבית העלמין. אבל העיקר שאגיע". 

"וואו גורה. באמת?". 

"כן, באמת, מה לא רואים עליי?". 

"לא יודע. אני מנסה לחשוב אם אמא שלי הייתה מתה לפני פחות משנה באיזה מצב הייתי, לא חושב שאני יכול לדמיין".

"אני לא חושבת שאפשר באמת לדמיין הרגשות עתידיות, בעיקר כשקורים דברים שמפתיעים אותך. אני בכלל עוד לא יודעת ממה להיות המומה או ממה להחלים, מהתאונה שהייתה לי או מהמוות של אמא שלי. מזה שגיליתי שלאבא שלי הייתה אהובה כל השנים שבהן חי איתנו ועם אמא בבית ורגע אחרי שאמא מתה עבר לחיות איתה, או מזה שכרגע עוד לא חזרתי ללמוד או לעסוק בשום דבר שבונה את עתידי". 

"עתידך נבנה ברגעים אלה ממש. עברת חתיכת שנה גורה, אני רוצה להגיד לך שאת אדירה". 

"תודה מייקל'ה. מבין? כל אלה מתמזערים כרגע לעומת כמה שאני רוצה שאירי תדבר אליי רגע או סתם תביט בי ואראה שהיא איתי". 

"ודןדן?". 

"מה איתו?". 

"מה את לא אוהבת אותו?". 

מצאתי את עצמי מסמיקה ושותקת, ומייקי מחייך מבסוט ואני מסתכלת על אירי ורואה שהיא מתבוננת בי. התבוננתי בה בחזרה. אולי שתי שניות חלפו ושוב היא נעלמה פנימה.

"נראה לי שהוא מת עלייך. אני לא מבין איך הוא עוד לא אנס אותך אלף פעמים עד היום, תגידי, את מוזרה את יודעת? מה קורה איתך?". 

"לא יודעת. מייקי! אבל תקשיב! קרה כאן משהו לפני ממש כמה רגעים מעטים... אירי התבוננה בי ממש, נראה לי שהיא התבוננה בנו כשדיברנו ולא שמנו לב, וברגע ששמתי לב הבטתי בה בחזרה, והיא תוך שניות צללה חזרה פנימה שוב, כמו חיית בר שברגע שראתה שהסתכלת עליה נסה על נפשה, אבל בשתי השניות האלה הסתכלנו זו לזו בעיניים". 

"מגניב, את חושבת שהיא שולטת בזה?". 

"מה מגניב?... אבל שאלה טובה מייקי, איך אני יכולה לדעת?... אבל האמת מגניב, מעניין לאללה". 

"נראות לי ברגע זה שתי אפשרויות, אפשרות מספר אחת נראה לי שהיא פוחדת לצאת, והשנייה שהיא לא רוצה", הוא אמר. כבר הפסקנו עם השש בש. 

"מה את חושבת, הם יגיעו בקרוב?". 

"אני מרגישה כמו במבחן אינטואיציה", חייכתי אליו. הוא חייך בחזרה ואמר, "נזכרתי בהם פתאום אז אולי מה? אולי נפגשו כבר? אולי כבר חוזרים?". 
"נראה לי שזה ייקח להם לפחות עוד שעה. לגבי אירי נראה לי שיש אפשרות שלישית שמשולבת משתי האפשרויות שלך, היא גם חוששת מההתמודדות בחוץ וגם די אוהבת להיות בפנים". 

"שמת לב מה אמרת?". 

"כן. ואתה? שמת לב מה אמרתַ?". 

"כן, אמרת שאת מבינה שהיא יכולה להיכנס ולצאת כרצונה. זו יכולת שנשמעת פנטסטית, לא?". 

"וואו מייקי, ואני עוד חשבתי שאני יודעת להיכנס לתוך עולמי הפנימי. איפה אני ואיפה היא". 

"זה מרגיע, לא?". 

"כן, מאוד. זה מרגיע מאוד שהיא הסתכלה וזה קצת הלחיץ אותי כי המבט שלה... אלוהים מייקי, ואנחנו גם עדיין לא יודעים מה זה אומר. אתה מבין מייקי? תכף ארנון יבוא... ארנון הוא לא בשאנטי... הוא לא מעניין אותו עכשיו מה מי אמר... הוא גבר אסרטיבי, והוא יהפוך הכול כדי שלא תישאר שום אפשרות שהוא לא בדק".

"טוב, אז אני מקווה שהיא מהר תשוב אלינו... שתאזור אומץ החמודה הזו, כי אני מתגעגע אליה, איזו נפלאה ואצילת נפש", הוא אמר וחייך לעצמו וצחק, "איזו בחורה מתוקה".

"נכון מייקי, אירי היא נפלאה. אבל תגיד, אגב דןדן, מה בינך ובין עמליה ובין אירי אולי תסביר לי?". 

"אנחנו מין שלישייה, ומה אגב דןדן ואת שלא ענית לי...". 

"אז אתה ממש אוהב את אירי?".

"קודם תגידי לי את על דןדן". 

"אני אוהבת מאוד את דןדן, אבל לא שכבתי איתו אף פעם ואפילו לא התנשקנו אף פעם עם השפתיים ואף פעם לא הבענו רחשי חיבה זה לזה ועדיין דברים לא הולכים לכיוון הזה ואני לא יודעת". 

"גם אני אוהב מאוד את אירי, אבל גם אני לא שכבתי איתה למשל. וזה בכל מקרה לא אותו דבר כמוך וכמו דןדן". 

הוא אמר ודי שתק אחר כך. שנינו קמנו יחד, התיישבנו לידה ורק הבטנו בה עוד ועוד. הבטתי בפניה אחרת עכשיו. כמו בכל הימים אני רואה את הפנים חסרות המבע ויותר מכול העיניים שבקושי נעות הורגות אותי, אך כבר די מבינה שזה משהו שהיא עושה ביודעין. הסתכלתי עליה עוד פנימה לתוך האישונים בלי להפסיק וכמעט בלי למצמץ. ניסיתי לראות אם אני יכולה לצלול לתוכה. כל הדברים שבעולם הציפו אותי. נזכרתי נורא באחות שלי גיגי, שיש בה משהו קצת כמו אירי. ובאבא ובאמא וכולם בערך עברו במחשבותיי וזה הגיע אל דןדן, וזה נעצר שם בתור תמונה של הפנים שלו על מסך טלוויזיה ישן ודי קטן בתוך סלון משנות החמישים-שישים, ואני יושבת על הספה ליד סבתא שמחבקת אותי, ואני קטנה וגופי נטוי אליה וראשי מונח על החזה שלה והיא מלטפת אותי.
[img[pictures/mechapeset-11.jpg]]

ככה עוד שתקנו זמן מה והם הגיעו בסופו של דבר. לא יודעת אחרי כמה זמן. הדלת נפתחה, דןדן פתח אותה ונכנס ראשון מחייך אלינו וממשיך לדבר עם [[ארנון|ארנון חן]], מפנה לו דרך ומראה לו בידו את המזרן שעליו אירי שוכבת. ארנון מיהר להיכנס אחריו ואז עמליה נכנסה. ארנון מיד רץ לאירי ונגע בה. ראה שהיא חיה, כורע על ברכיו, נוגע בה שוב לאט ובעדינות, מניח את ראשו לפני גופה, מתעשת, מרים את עצמו, מסתכל עליה, מסתכל עלינו. אחרי שהעביר מבטו על כולם חזר אליי, חייך חיוך גדול, קם ונתן לי חיבוק אבהי טוב כזה. בה בשנייה התייפחנו שנינו.

אחרי שסיימנו את החיבוק הוא ניגש ולחץ את כף ידו של מייקי וגם את זו של עמליה. הוא הודה להם, הוא חייך אל דןדן, חיבק אותו, הוא ניגש שוב לאירי, התיישב מולה והביט אל תוך עיניה הפקוחות בלא זיע.

הסתכלתי על דןדן היפה ומאיר הפנים והרגשתי איך לבי יוצא אליו, ניתקתי את מבטי ממנו והסתכלתי סביב. התרגשנו מאוד לא יודעים מה לעשות עם עצמנו. אני חושבת שאבן נגולה מעל לב כולנו ברגע שארנון הגיע והיה על מי לסמוך. לא יכולה הייתי לצפות שארנון יתנהג כמו שהתנהג. כמובן שסמכתי עליו בעיניים עצומות, אבל הכרתי אותו הרבה פחות רגוע. הוא לא סר מאירי זמן ארוך, דןדן ואני הכנו אוכל ותה והסתובבנו בחדר מרפרפים זה סביב זה.

תוך כדי שאני מגישה לארנון את קערת האורז שלו דןדן צץ מאחוריי כמו ליצן על קפיץ, ואני רואה את ארנון מביט בו ואישוניו מעניקים הסכמה. דן דן מקפיץ ברוך את שפתיו אל אוזניי ומזמין אותי לצאת לטיול אלי ערב, ואני מרגישה ואלס (ש)רוקד בי.

[img[pictures/mechapeset-11a.jpg]]


אני חושבת שבשנייה שארנון הגיע ונכנס וניגש לאירי והתיישב לידה והביט בה, באותה השנייה ממש הלב שלי נפער אל עבר דןדן והרגשתי שזה לא יכול להיעצר יותר. זה אולי קרה אפילו ברגע ההוא, כשראיתי אותו במחשבות שלי אצל סבתא שלי בסלון, בתוך הטלוויזיה, אך ברגע זה זה היה לממש. מאוחר יותר באותו ערב הבנתי, שבדרך אלינו בעודם הולכים, דןדן סיפר לארנון את כל הסיפור שלנו, כשעיקר עניינו של ארנון היה לדעת מיהן הדמויות שמקיפות את בתו שאותה יראה עוד מעט, וכך שדןדן איכשהו נפתח לספר לו שהוא אוהב אותי כבר כמעט שנה ואת כל מה שקרה בינינו. ארנון עודד אותו לא להתמהמה ושזה הזמן אף על פי שהוא לא יודע כלום ולא ראה אותנו יחד.
[img[pictures/mechapeset-12.jpg]]

במהלך הימים הבאים התורנויות היו בין ארנון, דןדן וביני. עמליה ומייקי האריכו שהותם בחוץ בימים האלה, חוזרים בלילה מהלכים על קצות האצבעות. ארנון רצה שעמליה ומייקי ימשיכו לדרכם, אך עמליה התעקשה להישאר בסביבה וייאמר לזכותה כי היא אכן דאגה לאירי. הדאגה של עמליה לאירי לצד הדמות שאני ראיתי בה לא התיישבו זו עם זו בראשי, דבר שגרם לי לתסכול, אך התנחמתי בכך שגם לארנון היא גרמה לתחושות דומות לאלה שחשתי אני. לא הייתה לנו כל זכות לדרוש מעמליה לעזוב או צידוק כלשהו לבוא אליה בטענה כלשהי. התנחמנו זה בזה והפכנו לסוג של כנופיה מחתרתית פאסיבית מול עמליה. המתח נכח בחדר הלא גדול במשך כל הזמן הזה. כמעט בכל הלילות ישנו כולנו על המזרנים... תמיד מישהו ער פחות או יותר. זה היה מתיש, אך עשינו הכול להיות נעימים וחיוביים ולהתגבר... זו הפכה הבדיחה של ארנון ושלי בכל פעם שמישהו מאיתנו היה על סף שילוח לשונו – מתגברים. בעל הבית ואשתו אפשרו לנו להשתמש בחלק משירותי ביתם. ארנון, כמוני, לא סר מהחדר כמעט, למעט שימוש בשירותי ההודים. דןדן היה יוצא פה ושם לקניות עם עמליה ומייקי. דןדן ואני היינו מאוהבים עד השמים, אך עדיין לא שכבנו. כל הזמן רקדנו זה סביב זה. אלה ללא ספק היו שעות חסד בלתי נשכחות של הרבה שיחות וחום והעמקת ההיכרות. ארנון היה מודע לכך שאירי לא סלחה לו עדיין על כך שאמה והוא נפרדו ועם זאת היה "דלוק" חזק על מאיה, בת הזוג החדשה שלו, וזה הקפיץ אותו מעל כל מסוכה. אני סיפרתי לארנון המון. סיפרתי לו על אמא ואבא, על יויו, על פריז, על האחיות שלי, על בית הספר, על אלפרד, על הפרידה, על התקפי החרדה, על ד"ר לומבר, על הפציעה, על ההתעוררות מן הפציעה. סיפרתי לו על הרגע הראשון שבו ראיתי את דןדן ומבטי נלפת אל שלו. סיפרתי לו איך קלטנו זה את זה במיידית ואיך הוא הפך להיות זה ששומר עליי. 

"שמעי נא גורקל'ה, אני לא רוצה להישמע זקן למרות שרשמית אני גבר ישיש שמקבל הנחות של ישישים, אך אינני מרגיש זקן. את חושבת שאת יכולה לשמוע ממני דברים אישיים מאוד?", הוא שאל כשישבנו מתחת לעץ הגדול שבחצר.

"אני חושבת שכן", עניתי לו.

"יש לי צורך עז לספר לך על מאיה ועל עדנה ועל מה שהיה כי אני רווי רגשות אשם ואני מוצף רגשות בכלל... רוצה שתביני שעד שנתקלתי במאיה לא היה לי מושג שיש חיה כזו רגשות אשם או שרגשות זה דבר שיש להתחשב בו... הייתי 
אשכרה בהמה במובנים מסוימים. את יודעת... הסתובבתי, נסעתי, טיילתי, עבדתי, הכרתי אנשים ונשים וחשבתי שאני באמת שולט ברזי העולם, אך ההיכרות עם מאיה הבהירה לי שאני לא. אני כל כך מתבייש היום בסגנון החיים שחייתי. הייתי נרקומן נשים שבכל פעם היה בטוח שזו 'המנה' האחרונה שלו. הייתי מכיר אישה, אומר לעצמי שזו הפעם האחרונה, צורך אותה, הולך ממנה, מרגיש חולה ואז רוצה רק עוד 'מנה' אחת. קרה לי בעבר שהייתי עם נשים כאלה ואחרות לתקופות והיו לי רומנים אפילו נחמדים מאוד, אך אף פעם לא הסתפקתי באחת, הייתי זקוק לאחת נוספת תמידית. אם הייתי רואה אישה מושכת, ויש רבות כאלה האמיני לי, הייתי קולט אותה ממרחקים... עט עליה, נוחת עם הטפרים שלי כמו ציפור טרף נטולת עכבות. הקשר בינינו החל ביוזמתי על בסיס של תשוקה והפך לקשר גופני שאין לי מילים לתארו בפנייך וגם נראה לי לא יאה עכשיו", אמר וחייך את החיוך השובבי שלו, "אבל כמובן שזה לא הלך בנפרד מהרגש. בהתחלה חשבתי שאני שולט בזה וכמו תמיד גם זה יעבור. זלזלתי, ומאיה הלכה. היא הסבירה לי שההתנהגות שלי מגעילה ועלובה ושהיא נובעת מסיבות עלובות ושהיא לא רוצה לשמוע ממני יותר לעולם. רק אחרי שהלכה הבנתי את גודל הדבר. התחלתי להיות חסר סבלנות בכל מצב. מאיה לא הסכימה בשום פנים ואופן להיות בשום סוג של קשר איתי. היא אמרה שעדיף שאשאר עם עדנה, שלעולם לא תעזוב אותי. פישלתי כל דבר שרק היה אפשר לפשל, ואלמלא זוג חברים שלה ראה אותי יושב עם מישהי בבית קפה די צדדי ברמת גן והחליט לספר לעדנה על כך היא הייתה ממשיכה לא להעז לשאול אותי כלום לנצח גם כאשר מטר של מסרונים קולניים נחת לטלפון הנייד שלי באמצע ארוחת ערב או כשלא עניתי לצלצול טלפון באמצע החדשות. היא הייתה בולעת כל שאלה או מבע אל תוך עצמה. הפעם שברתי לה את האגו מול חברים שלה ובכך הגדשתי את הסאה מבחינתה עד כדי כך שסוף סוף נשבר לה ממני והיא זרקה אותי לעזאזל. זה היה כבר מאוחר מדי לנסות להתנהג כמו שצריך עם עדנה. לא במובנים הטכניים – באלה לא הייתה בעיה כלל – אך הפכתי צל רטנוני ובלתי נסבל. ברור לי שהזנתי אותה כל השנים בחומרים נוגדי בריאות ושעשיתי לה עוול איום ונורא. אני מתגעגע כל כך למאיה עכשיו וצריך אותה, אך בעיקר מחכה שאירי תתעורר כבר ואז תגיד לי שהיא סולחת לי".  

"תגיד", אמרתי לו פתאום, "אולי נמשיך את השיחה הזו ליד אירי... יש לי הרגשה שאולי ובלי שנשים לב היא תטה אוזן לשיחתנו ואולי תקדים את יציאתה מתוך עצמה... חשבת על כך שהיא סוג של גולם כרגע? גולם שמחליט בעצמו מתי יצא מן העטיפה". 

"את מצחיקה, גורקי, אבל אני חושש מאוד". 

"אל תפחד, כי הפחד במילא לא יביא שום תועלת. אני מאמינה שבסופו של דבר אירי תסלח לך... אני גם יודעת בוודאות שהיא אוהבת אותך מאוד. מעניין ארנון, בעודי מדברת אני שמה לב שהשתמשתי במילים די דומות כשדיברתי עם עדנה". 

"יודעת גורה? האהבה לילדים שלך אינה מופעלת על ידי אותו השריר שמפעיל את האהבה הבין-מינית, האהבה הבין-מינית באה גם מן התשוקה, בעוד שהאהבה לילדים היא ה-אהבה בה"א הידיעה. אהבה מן הסוג ההולך וגובר עם השנים ומשאיר מאחוריו כל דבר אחר... הדאגה לילדים שלנו והצורך בנוכחותם ובקיומם. אני מודה שלצד הדאגה והמחשבה על הילדה שלי אני תמיד נכון לציד. כמה שאני אוהב את מאיה אני תמיד מסתכל על נשים, זה אינסטינקט בסיסי. קולט אותן בשניות, רוצה רק שיבחינו בי, זה הכול. ויתרתי על הכיבוש בפועל".

"ומה עם אהבה של ילדים להורים?", שאלתי אותו כשכבר היינו ישובים ליד אירי הישנה. תופעה נוספת לגבי אירי הייתה שגם בשנתה הייתה כל הזמן על הגב ובלא תזוזה כמעט. ההבדלים היחידים היו שכשישנה עיניה היו עצומות ונשימותיה נשמעו.

"אהבת ילדים להוריהם היא עולם של שאלות בלתי פתורות עבורי וגם אהבת אחים. עם אחי אני לא מדבר ואחותי ואני בקשר אך אין לי כל געגועים אליה או מחשבות עליה כמעט אף פעם. קשה לי עכשיו כי חשוב לי כל כך לדעת שאירי אוהבת אותי ולא רואה אותי כאידיוט מוחלט". 

"אין לי מושג מה עובר על אירי כבר הרבה זמן, ארנון. מאז שנסעתי לפריז דיברנו פחות ופחות. היא התעופפה לאן שהתעופפה וכך גם אני. זה לא משנה את העובדה שאני אוהבת אותה אהבה עצומה וחושבת שהיא אחד האנשים הכי שווים שאני מכירה מכל הבחינות".

"את הנועם היא קיבלה מאמא שלה ולא ממני, אני חש אשמה עצומה כלפי עדנה ומנסה לרפד אותה כמה שיותר, אך הריפוד לא מתקן את השבר בספה", הוא אמר וצחק צחוק בלתי מרוצה מעצמו אך מרוצה מההברקה של עצמו.

שרתי לו: 
"לוקח לי אחר הצהריים חיובי נוסע לנמל
לעצמי אני אומר בדרך שגם מזה עוד נצטרך להיגמל
עצמי עונה לי בהגיענו אז נתחיל כל יום להתעמל

טרמינל ז'ה טם איי לאב יו
טרמינל בלה מיה".

"מה זה, חמודה?", הוא שואל וצוחק.

"זה מאיר אריאל. ארנון ידידי, כמו הרבה דברים אצלי, זו ירושה מיויו אחי הגדול שאני ממש מתגעגעת אליו עכשיו. לעומת זאת אני לא מתגעגעת לנדיה אחותי הבכורה, לקרן אני מתגעגעת כמו למישהי מהתיכון שאשמח לראות אבל לא יותר מזה ולגיגי אני מתגעגעת דווקא, אבל לא נראה לי שאני יכולה ממש לבלות איתה לאורך זמן כמו עם יויו. עם יויו זה משהו אחר, לא קשור לזה שאנחנו אחים מבטן ומלידה, אולי אפילו הייתי אומרת שלמרות העובדה שנולדנו לאותם הורים אנחנו כל כך קשורים"... אמרתי והתחלתי לצחוק.

"את באמת מצחיקה גורקי, אבל תסתכלי עליה, התעוררה הגברת. לפתע שמתי לב שאני לא שומע את הנשימות שלה, אז העפתי מבט וראיתי את עיניה הפקוחות". 

הסתובבתי אליה בו ברגע, הבטתי לתוך עיניה ואמרתי לה: "נו צאי אלינו כבר בבקשה", אך היא שוב נעלמה מיד אל תוך עצמה.
ביום שלמחרת אירי הביטה לנו שוב לתוך העיניים. זה היה שישה ימים אחרי שארנון הגיע. דןדן ואני שיחקנו שש בש לידה, וארנון קרא ספר בצד על המזרן. דן דן זרק את הקוביות כשהרגשתי איך העיניים שלה נוגעות לי בעורף. לקח לי כמה שניות, כנראה, להבין, אבל הסתובבתי מיד אליה והיא הביטה בי... דןדן, שהיה מבסוט מהשלוש שלוש שהתאים לו בדיוק, שם לב רק כעבור עוד כמה שניות, ואני בקול שקט למדי ניסיתי לאותת לארנון וגם הוא הצליח לראות ולהיראות. היא הביטה לכל אחד מאיתנו בעיניים הלוך וחזור. היא לא עשתה איפה ואיפה עם אף אחד מאיתנו. הלוך וחזור עליי, על דןדן ועל ארנון וחוזר חלילה... כמה סיבובים של מבטים עד שנעצרה, התכנסה ויכולנו לראות ממש איך היא מחזירה את עיניה בחזרה אל תוך עצמה, המבט החוצה נעלם ועיניה חוזרות להיות חסרות הבעה. שוב משך כמה שעות שתקנו שלושתנו. לא הצלחנו לזוז ממנה. בקושי הזזנו ממנה מבט. בערב, כשעמליה ומייקי שבו מהסיבוב שלהם, קפצנו עליהם שלושתנו כמו ילדים שחיכו כל היום לספר להוריהם, ששבו לבסוף הביתה, על מה שחוו. עמליה מיד קפצה בקולי קולות וגם מייקי.

"כנראה הקשר שבראשה מגיע לפרימה מלאה", אמר מייקי מחייך כולו.

שמחנו עד כדי ששוחחתי עם עמליה ארוכות ובפתיחות רבה. עמליה ידעה להקשיב והייתה חכמה למדי. היא אמרה שכל הזמן הבינה שאירי עמוקה באופן מיוחד במינו. "יש לה עומקים גבוהים", היא אמרה לי. באותו הרגע סלחתי לה. חשתי חיבה אליה ושריון הברזל שלבשתי מולה נמס. זו הייתה הקלה. היה לנו ערב נעים. עוד דאגה השתחררה. צחקנו בלי סוף. מייקי ודןדן הפכו באותו ערב לצמד קומי קופצני שמתרחק זה מזה ומתקרב זה אל זה תוך חילופי הלצות ובתיאום מושלם. 

עמליה הציעה לי לצאת איתה למחרת להליכה קלה וזה הדליק אותי. היא גם ללא ספק עשתה עיניים לארנון. למעשה היא עשתה עיניים לכל אחד ואחת. גם לי. זה היה הקטע שלה. 
[img[pictures/mechapeset-13.jpg]]

עברו חמישה ימים נוספים עד שאירי פתחה את הפה שלה. התחיל להיות קר מאוד וקיווינו שתוך עשרה ימים לכל היותר נוכל לחזור לארץ. היינו צפופים למדי בחלל הקטן. הציפייה הנרגשת איחדה אותנו. 

היא תפסה אותנו מוכנים אירי... כלומר שעות אחר הצהריים המוקדמות, כולנו היינו בסביבה, בחצר, בחדר הקטן, קצת אוכלים, קצת מדברים, כשהיא בשקט גמור יצאה מעצמה והביטה... ארנון שם לב כשהיא כבר הסתובבה אל צדה והחלה מתיישבת, השמועה בדבר התיישבותה התפשטה בינינו כאש בשדה קוצים. לקח עוד זמן מה עד שהיא הזדקפה והרימה את ראשה אלינו כשרגליה מונחות זו על זו, מביטה בנו, כולנו כבר ישובים מולה דרוכים ואז השפילה מבט שוב. 

היא החלה לדבר בסופו של דבר וללא הקדמות מיותרות. "אני רוצה לספר לכולכם", היא אמרה ולקחה אוויר. היא לא הביטה בנו אך המשיכה... "יום לפני שפגשתי את עמליה עברתי חוויה, שאני רוצה לספר לכם עליה. אני לא יודעת אם אצליח, אבל אני מוכרחה. אין קשר בין מה שקרה לי באותו לילה לקשר בין עמליה וביני. עמליה היא האדם שראיתי ממש אחרי המקרה וזה קרה באופן מקרי וכך קרה...". היא המשיכה לשבת ישיבה מזרחית על המזרן, מדי פעם עוצרת את מילותיה, מביטה פנימה אל תוך עצמה. מרימה ראשה שוב וממשיכה לדבר: 
"הכול מתמלא ומתרוקן כל הזמן. הכול כל הזמן הוא דבר והיפוכו. אני עצובה עכשיו. הזיכרונות עולים וצפים בי כמו ניוקי מוכנים על פני המים שחייבים להישלות. הצלחתי להימנע מהם ברוב רובו של הזמן, אך עם רגע היציאה הסופית שלי החוצה אליכם מן המאורה הפנימית שלי הם באו איתי. שתי היציאות הן בלתי נמנעות.
אני גם שמחה וגם עצובה. 
הבנתי משהו שהוא רציני ביותר לדעתי. כבר רבים הבינו זאת לפניי, אך הבנתי זאת בגופי. הבנתי שהמשאב היקר ביותר בחיים האלה הוא החיים עצמם, ולכן אני הולכת לחיות". 
היא כמעט לא נעה באומרה זאת שקופה וזקופה.

"אנחנו האנשים מנסים להבין את פשר החיים. אני לא מבינה את פשרם, אבל אני חושבת על ההמשכיות. המשכיות לא במובן של הקמת משפחה, כי אם המשכיות במובן של הנשמה שממשיכה וממשיכה להתגלגל. אני רוצה להגיד לכם כל כך הרבה. מבחינת השהייה שלי בפנים אני שמחה. נזכרתי גם איך שכשהגעתי לגג בהוברמן 8 בליל אותו שישי עם הכותונת הגזורה והבחורה הרוסייה שהקיאה עליי ושהתכסיתי בציפה ההיא ועדיין חשבתי שהמוזיקה כיפית ואיך בא לי לרקוד". ארנון נע, משנה תנוחה ולא פוצה פה. מביט מרותק באירי בלבד.
"זה דבר שמאפיין אותי, הדבר הזה, שברגע זה שבו אני עצובה מאוד אני גם שמחה על ההתנסות הזו של השהייה בפנים. אני המון דברים עכשיו. אני רואה את אבא. אני רואה את גורה ואני רואה את עמליה. אני רואה את דןדן וגם את מייקי אני רואה. אני גם חושבת על אמא. אני שמחה שאני רואה את כולכם, אבל אני גם עצובה. כרגע אני לא מפנימה, אני כרגע מוציאה". 

היא עצרה את דיבורה ולאט נשכבה שוב על המזרן... כפות רגליה מונחות עליו, ברכיה מביטות אל התקרה. היא הניחה את ידה השמאלית על עצם החזה ואת הימנית על בטנה, כך היטיבה את מנח גופה וראשה והמשיכה:

"בלילה לפני שפגשתי את עמליה הונחתתי באורח פלא על גג הבניין ברחוב הוברמן מספר 8 שליד הבימה. זה היה מקרה מוזר מאוד, כי הוזמנתי למסיבה שם באותו הערב, אך לא הלכתי. רציתי אך התעצלתי ללכת. שכבתי סתם ככה על המיטה לבושה בכותונת הגזורה והמהוהה שלי בדירה, אחרי ששתיתי כמה שוטים טובים של אלכוהול והתייאשתי מלחפש את השלט של הטלוויזיה ולפתע משהו לא ברור, כמו יד נעלמה, העביר אותי דרך הגג של הבניין היישר לגג שבו הייתה מסיבה טובה מאוד.
נבהלתי, שאלתי בחורה רוסייה שיכורה שהתיישבה עליי בלי משים איפה אני ולאחר שענתה הקיאה ממש למרגלותיי, רגע לפני זה ארגנתי לי כסות מציפית של פוף שהיה שם. התחלתי לזחול לאחור מהבחורה ומהריח הנוראי, מתתי לרקוד, המוזיקה הייתה טובה, הרגשתי זוג ידיים חמות מונחות על האגן שלי, זה היה נעים. רגע אחר כך פילח אותי איבר מן זכרי. בעכוז, אבא", היא הדגישה, ממשיכה להביט בתקרה. "וזה כאב". ארנון התחיל לבכות בכי תמרורים, אבל אירי לא הפסיקה את שטף המילים האטי והקבוע.
"אני חשבתי שאני מתה. מזל שגופי היה רפוי מהעייפות ומהאלכוהול כך שהיה משוחרר יחסית. זה לא שלא החדירו לי זין לתחת בחיים, אפילו די נהניתי מזה כמה פעמים. לא לקח זמן רב ונרדמתי. הפעם הבאה שבה הייתי ערה באה בעקבות טפיפות על כתפי. כבר החל אור שחר כאשר בחור רזה וארוך עם חיוך אווילי ביקש ממני להסתלק כמה שיותר מהר. לקח לי כמה שניות לקלוט איפה אני ומהיכן צץ הבחור. הייתה שם דלת ברזל ומאחוריה חדר מדרגות חשוך. תוך כדי שירדתי בקושי רב פספסתי מדרגה ונפלתי. קמתי והמשכתי והגעתי לדלת, שאותה ניסיתי לפתוח בבעיטה לאחר שנואשתי מהמנעול. לא יכולתי להעלות בדעתי שאצטרך לחזור שוב לגג ולהיראות שוב בפני האנשים שעבורם הייתי כה בלתי רצויה. עבור הבעיטה אספתי כוחות במשך כמה שניות, דבר שנתברר כמיותר לחלוטין. הדלת נפתחה בקלות ועפתי מעוצמתה.
יצאתי מסריחה אל האור, עטופה בציפית שנתגלתה כתכולה ומטונפת. צלעתי למטה לכיוון אבן גבירול. למזלי, נהג המונית שאסף אותי היה נחיתה אנושית ראשונה ורכה שלי לאחר החזרה מהמסיבה שאליה הגעתי בלי שהלכתי אליה. נזכרתי שאם מעיין לא תהיה בבית אז אין לי מפתח כדי להיכנס. נזכרתי שאין לי כסף ושאין לי נייד. רשמתי על מפית של "ארומה" שהנהג נתן לי והוא הסיע אותי בסבלנות רבה. אולי יום אחד אוכל להודות לו.
למזלי מעיין הייתה וגם מיד יצאה להדריך טיול. רווח לי.
התקלחתי מהר, ארגנתי חבילת זבל מכל הזבל שהיה על גופי והלכתי לישון.
התעוררתי מורעבת והבנתי שישנתי יותר מיממה. ירדתי למטה וקניתי כמה דברים, עוד קודם השלכתי את שקית הזבל לפח למטה, עליתי חזרה והכנתי ארוחת בוקר. כשאכלתי דלת חדרה של מעיין נפתחה פתאום ודרכה גחה עמליה".
היא המשיכה לדבר, מסובבת את ראשה לעבר ארנון המתייפח.

"ברגע הראשון שראיתי את עמליה כל מערכות גופי אמרו איכס. גם כשלקחה מהצלחת שלי עגבנייה ולעסה בפה פתוח בלי לצחצח שיניים ולשטוף פנים היא הגעילה אותי, אך ככל שהמשכנו לפטפט ההרגשה שהייתה לי לגביה הלכה והתמוססה. היה לי כיף איתה. היא השכיחה ממני את תלאות ליל אמש. אני לא מעוניינת להגיד לעמליה כרגע דבר מלבד תודה. אני גם לא מעוניינת להביט בה. מבחינתי, היחסים החבריים שלי איתה הגיעו לקצם. אני אוהבת מאוד את מייקי, אבל אני יודעת בידיעה ברורה שהוא עדיין על משהו שאני כבר לא. יש לנו סוד עבר משותף כמו לכאלה שהיו יחד בכת או בכיתה".
אפשר היה לשמוע את נשימת עמליה נעצרת. 

"ברגעים שבהם הייתי כן בתגובה ביני וביני בשוכבי כאן על המזרן התבוננתי במתרחש בחלל החדר הזה והבנתי כל מיני דברים. אני חושבת שברמה מסוימת אני אולי מבינה למה נתתי שיקרו לי כל מיני מקרים בחיים ואני כלל לא מצטערת, אך על אלה אינני מעוניינת לדבר בפורום הזה ועם זה אני רוצה להודות לעמליה שעזרה לי להגיע למזרן המסוים הזה. אני מבקשת להפסיק רגע לדבר ולשתות תה... שנשתה תה?", היא אמרה, עדיין ראשה מסובב לעברנו וזיק קטן נדלק בעיניה. כולנו זינקנו לעבר הקומקום, ארנון ביקש להיות מי שיכין תה לאירי. "עם הרבה סוכר, אבא", היא הביטה בו והמשיכה לשבת בשקט ללא תנועה כמעט. ארנון הכין לה תה, ודן דן המשיך אותו והכין לכולנו. דן דן המלך שלי. לא העזנו לעשות דבר מלבד ללגום איש איש מכוס התה שלו ובלי להעז להביט זה בזה. ארנון לא הסיר לרגע אחד את המבט מבתו. 
את הסיפור הזה של אירי עוד שמעתי ממנה כמה פעמים ולפרטי פרטים מאוחר יותר במשך הזמן. היא גם סיפרה אותו לדןדן. אני סיפרתי אותו לדןדן מאוחר יותר באותו ערב. כעבור דקות ארוכות אירי ביקשה להמשיך לדבר: 

"שמעתי מספיק בזמן השהייה במאורתי הפנימית. נכנסתי פנימה לתוך עצמי במטרה להיות ככל יכולתי באין תגובה ולרפא את עצמי. ככל שצללתי כך הבנתי כמה יש עוד לרפא, כמה קשרי קשרים על קשרי קשרים על שכבות שוכבות זו על זו ומחכות להיפרם. אני מאושרת, אבא, אני מרגישה שאני כבר יודעת מי אני. עדיין לא בטוחה מה אהיה או מה רוצה, אבל מרגישה כמו ציפור שרואה שקוף. אני רוצה לבקש מכם כמה דברים וברור לי שלא תסרבו. אני רוצה בשלב זה לא לראות את עמליה יותר. זה לא דחוף, אתאפק עד אחרי שנצא מכאן. מייקי, אתה על הכיפאק לי", היא הביטה בו, "אך למיטב הבנתי תמשיך לבלות איתה, וזה לא באמת משנה, כי אני רוצה לזוז מכאן. אני רוצה לחזור לארץ. אני רוצה להיות באזכרה של אמא של גורה ואני רוצה לראות את אמא שלי".

"אולי נצלצל אליה רגע?", קפצתי. "אחר כך, גורה, אני צריכה כוחות כדי לדבר בשח רחוק, דברי איתה את בבקשה, ואמרי לה שבקרוב נגיע. אני אוהבת את דןדן". היא הביטה בו. "אני רוצה שנעבור מכאן כמה שיותר מהר לבית מלון ונארגן את החזרה. אני גם מבקשת שיישארו לנו יומיים-שלושה ושנלך למקדש ונבלה פה עוד קצת כולנו, טוב?". ארנון ייבב עדיין. "אלך לארגן לנו בית מלון", דןדן התנדב, "כמה חדרים לקחת?", הוא שאל.
"לדעתי שניים", אמרתי, "אחד מהם עם שלוש מיטות, אירי בבקשה, את לא ישנה לבד", אמרתי לה, "אבל בבקר דןדן, לא עכשיו", אמרתי לו.
"אני לא מרגישה כמו מישהו שרוצה לישון", אירי אמרה. ארנון חייך סוף סוף. "אולי מותר לי לחבק אותך ילדה שלי?". 
"מותר לך, אבא, נמשיך לדבר כשאוזני עמליה יהיו רחוקות יותר".
[img[pictures/mechapeset-14.jpg]]


כולנו הספקנו להגיע לאזכרה של אמא שלי, כך שהסירו דאגה מלבכם. הכול קרה כמו שאירי רצתה. את הערב ההוא העברנו עדיין בבקתה הקטנה של ההודים. קראנו להם והם הביאו איתם מהממתקים ההודים וצ'אי מתוק וטעים. ההודית הסתובבה חסרת מנוחה וחיבקה את אירי שוב ושוב ומלמלה בינה ובינה מילים כלשהן. עמליה יצאה לבדה והלכה לאן שהלכה ומאז לא שמענו ממנה. אנחנו חגגנו ורקדנו לצלילי מוזיקה הודית שההודי שם לנו בטייפ קסטות גדול. בבוקר שלמחרת דןדן וארנון הלכו לקחת לנו חדרים, ומייקי כרכר סביבנו בחוסר מנוחה. 

"מוזר אירי, אני הייתי במצב אין תגובה בעקבות התאונה שהייתה לי ואת הקדמת תרופה למכה ונכנסת למצב מרצונך, למרות שהסיפור על הגג הוא תאונה איומה ונוראה פי אלף מזו שקרתה לי", נזכרתי תוך כדי דיבור. 
"בואי נרד מהתחרות על למי הייתה תאונה יותר גדולה", היא אמרה. חיבקתי אותה והיא עדיין לא השיבה לחיבוקי אך המשכתי.

הם שבו לאסוף אותנו. נפרדנו מההודים. מייקי ליווה אותנו ועזר לנו עם התיקים. בימים הקצרים שנותרו לנו עד לטיסה טיילנו במקלוד גאנג' עם ארנון שדי התפעל. "תראה אבא, אחרי הכול הבריטים הבינו שמקלוד גאנג' הינה פינת חמד והפכו את הכפר למקום נופש למפקדי הצבא שלהם". 
"אני אוהב אותך", הוא אמר לה... "אני רוצה להקשיב לך כל הזמן".  

שבנו לארץ שבוע לפני האזכרה. בארץ היה כיף. עדנה ואבא ותרצה חיכו לנו בשדה התעופה וגם סבא וסבתא. הם פינקו אותנו כהוגן. יויו הגיע חמישה ימים אחר כך עם ג'וזף וז'נבייב. אלפרד לא העז לבוא איתם. למחרת האחיות שלנו הגיעו עם בני המשפחה שלהם ליום שלם. גם אווה הגיעה כשיכלה, לפעמים עם בתה ותמיד עם עוגות. דןדן ואני היינו מאוהבים כמו מטורפים. כשיויו הגיע וראה אותנו הוא השתגע משמחה. הבית שלנו שקק חיים. אירי בילתה איתנו חלק גדול מהזמן וגם ארנון. מאיה עזבה אותו שוב והוא סבל מזה מאוד. אכלנו ושתינו ודיברנו ועישנו וניחמנו כולנו את כולנו ללא הרף. יויו וארנון התחברו חזק. שניהם היו שבורי לב. תומר חבר של יויו עמד להיות אבא בקרוב ומזג האוויר היה נפלא. 

לקראת האזכרה כתבתי טקסט ארוך ולא פשוט לעיכול על אמא. על זה שאמא כמעט אף פעם לא הייתה שמחה. על זה שאמא הייתה פרח שצריך להשקותו ולדשנו תדיר ובכמויות משתנות. פרח שזמני הפריחה שלו אינם ידועים מראש ועל כן כולנו עמלנו בכל רגע בחיינו סביבו בניסיון להביאו ולו לחיוך... אך אירי ביקשה שאוותר. "תוותרי על הצורך הזה להראות לאנושות כמה את רואה וצודקת גורה יקרה שלי", היא אמרה. "לא הכול תמיד מתאים למרות שצער צף. בבית הקברות יהיה קשה לאלה שיבואו להשתתף בזכרה של אמך לשמוע אמת כה כואבת, ותחשבי על סבא וסבתא שלך, אל תכאיבי להם גורי. אני מציעה שמתוך השקט תכתבי משהו עדין שאולי יסביר משהו בלי לתאר את הקושי, כי אחרי הכול, הכול קרה לטובה לפחות נכון לרגע זה ועזבי אותך ממערומיו של המלך עכשיו".

"את צודקת אירי יקרה שלי, יש לי בעיות בחומרה, חושבת שיש לזה פתרון?". 

בבית הקברות אחרי שיויו, אבא וסבא קראו יחד את הקדיש ואחרי שנדיה קראה מילות געגוע לאמא עליתי אני ואמרתי את מה שכתבתי בלילה שלפני...

"אנחנו,
הלומי חיים
כולנו,
פוסעים כמו סומים תוך כדי שנתם.

הידיים,
מפנות מכשולים 
מדומים,
בתוך המדבר מחפשים מעיין. 

אמא יקרה, אחרי שהלכת והמשכת בדרכך נתת לנו כוח להמשיך כרואים - ואני מודה לך על כך ואוהבת אותך ומתגעגעת". 

זכיתי למחמאות על המילים הללו. היה לי חשוב להגיד משהו אחרי השנה הזו ואף אמרתי. בשנתיים האחרונות יויו ואני הרחבנו את המשפחה שלנו, היה לנו סניף צרפתי ענף. ז'נבייב וג'וזף נסעו כעבור שבוע. שבועיים מאוחר יותר יויו, דןדן ואני חזרנו לפריז. אירי נשארה כאן בארץ. היא החליטה ללמוד ברצינות אלכסנדר אחרי שתעשה השלמות לסיום התואר בסמינר, ועם זה החליטה להצטרף אל דןדן ואלי. דןדן ואני החלטנו לנסוע לכמה חודשים להודו לא לפני שנחזור להתרווח מעט בפריז וליהנות זה מזה. ביקשנו מאירי שתבוא אלינו לביקור. כנראה ארנון והיא יגיעו בפר נואל וגם אווה והבת שלה. אחרי השנתיים האחרונות היינו זקוקים עוד אלה לאלה. 

סוף
[img[pictures/gigi.jpg]]

!!![[יויו]]:

גיגי היא חברה [[באימן|https://en.wikipedia.org/wiki/Emin_(esoteric_movement)]]. היא גרה בהוד השרון, והיא משתייכת לקהילה המשונה הזו. יש לה שני חתולים ולברדורית לבנה. יש לה בית עם גינה, היא מורה בבית ספר יסודי, מחנכת וכל זה. היא חמודה נורא, היא נשמה והיא נורא עצובה, ככה גורה ואני קוראים לה באהבה גמורה, העצובה. בתיכון היו לה המוני פצעים על הפנים, היא התכנסה בתוך עצמה, הייתה ממושמעת כך שמעולם לא היה על מה להלין בעניינה, היא הייתה סימפטית, ומאז היא מן חוקרת כזו, תמיד לומדת עוד ועוד. היו לה כמה רומנים רציניים בחיים, עם גברים שווים דווקא, אך היא חיה עם הקהילה שממלאה את חייה ככל הנראה.

<<englink [[Gigi]]>>
[img[pictures/ginat-kiryat-sefer.jpg]]

!!![[תומר]]:

עוד [[מזל שכונתי|https://he.wikipedia.org/wiki/%D7%92%D7%9F_%D7%A7%D7%A8%D7%99%D7%99%D7%AA_%D7%A1%D7%A4%D7%A8]] שקיים בזכות תושבי השכונה שעצרו בניית חניון נוסף. 


<<englink [[Kiryat Sefer Park]]>>
[img[pictures/glam.jpg]]

[[אימא של ג'אזז]]:

יש ימים כאלה שהם גלאמים במיוחד.


<<englink [[Glam]]>>
[img[pictures/gilgulim.jpg]]

!!![[רוז'ה]]:

כמו שאני דמיינתי את זה, גלגול נשמות זה כמו מדיטציית פתיחת צ'קרות או כמו משחק מחשב, זאת אומרת שאתה מתחיל מלמטה, קרוב לאדמה - נשמה חדשה שחוזרת ומתגלגלת כאן על הכדור צעד ועוד צעד עד שהיא יכולה כבר "לשבור את תקרת הזכוכית". לא חשבתי מעבר לזה. 

[[אירי טוענת]], שהכדור הזה הוא [[גלות]] לנשמות שבאות מכל מיני כדורים מכל מיני גלקסיות ומרחקים באינסוף.

[[יויו]] חושב, [[שגם בין הגלגולים|נשמה]] וחגורות המרחק יש היררכיה וטוב ורע ושאתמול מלאו שנתיים לנסיקתו מכאן של [[דיוויד בואי]].



<<englink [[Metamorphosis]]>>
[img[pictures/galoot.jpg]]


!!![[אירי]]:



הדבר שאני חושבת בעת האחרונה, (זה התחיל   בשנה האחרונה, עם מותו של דיוויד בואי, שמחרתיים תמלא שנה למותו), הוא שבדומה [[לשליחתם בעבר של פושעים לאוסטרליה|https://he.wikipedia.org/wiki/%D7%90%D7%95%D7%A1%D7%98%D7%A8%D7%9C%D7%99%D7%94#.D7.94.D7.99.D7.A1.D7.98.D7.95.D7.A8.D7.99.D7.94]], כך כדור הארץ הוא גלות לנשמות מכוכבים אחרים.

אולי לא רחוק היום בו נוכל ממש להגיע, למה שקרוי בפינו, כוכבי לכת אחרים. כמובן שמנקודת זמן זו, לא נראה כי אנחנו אלה שנוכל [[לשנע עצמינו לשם|עם הפנים החוצה]], וכי אם אכן יש משהו בדברים הללו אזי, כאן זה אוסטרליה.

הרעיון שכאן זו גלות, ברגע גרם לי לחשוב על רעיונות להסברים לשלל דברים, אך אם לתמצת אותם למשפט אחד אזי - ובשאיפה למבט מעצים, כמו שאומרים היום - אולי הגלות הזו כאן, היא [[טקס בגרות כלשהו|גבריאל פורה]], שאולי אחרי שעוברים אותו, אפשר סוף סוף להגיע לכוכב שלך, שזה אולי מה שהבודהיסטים קוראים [[נירוונה|https://he.wikipedia.org/wiki/%D7%A0%D7%99%D7%A8%D7%95%D7%95%D7%90%D7%A0%D7%94]]. לא נשמע לי סביר שכשאנחנו מגיעים לכוכב שלנו הכל נהיה קל - אבל זה לא קל שמרגיש בבית.



אני רוצה לחשוב, [[שדיוויד בואי|דיוויד בואי]] חזר לכוכב שלו בשלום, ובכך השלים את משימתו אם לא למעלה מזה.


<<englink [[Exile]]>>


[img[pictures/galey-zachal.jpg]]

!!![[גורה]]:

אחת מתוך שתי תחנות רדיו מקומיות של [[מצפה ראשית]], שנמצאת [[בחנות הדיסקים|חנות דיסקים]].



<<englink [[Zzzen radio]]>>



[img[pictures/galsi.jpg]]

!!![[תומר]]:

צריך מסמך? צריך לשלוח פקס? צריך כרטיסי ביקור? צריך לסרוק? צריך עיפרון? בדרך  לכל מקום  עוצרים [[בגלסי|http://www.galsi.co.il/]].


<<englink [[Galsi]]>>

[img[pictures/gam-ani-machane.jpg]]

!!![[יויו]]:

תוך כדי סידור הבית אני מקפל את [[הכביסה|כביסה]] היבשה [[ומחנה|אני מחנה]] אותה להתחממות קלה על המיטה עם הסדין החשמלי.




<<englink [[I do park, too]]>>



[img[pictures/idopark2.jpg]]

!!![[תומר]]:

את שטיחוני האמבט החמימים מהשמש, הנחתי לרגע על התנור הפועל, בדקתי אם [[הבייגל|טל בייגלס]] הפשיר והתחמם דיו, והמשכתי איתם למקומם [[שבחדר השינה|גם אני מחנה]].




<<englink [[I do park, too 2]]>>
[img[pictures/gan-ya.jpg]]

!!![[יויו]]:


בשפת [[הראסטפאריס|https://he.wikipedia.org/wiki/%D7%A8%D7%90%D7%A1%D7%98%D7%A4%D7%90%D7%A8%D7%99]] גנג'ה היא הצמח המופלא. ג'ה זה אלוהים.

כלומר, יה.

נראה לי היגיון פשוט לחשוב שמדובר בצמח שמקורו בגן-יה, ותודה לך בורא על המתנה הזו.

כי כמו שאלפרד נוהג להגיד:

[[החיים נועדו למי שלא יכול להתמודד עם סמים]].


<<englink [[Gan-Ya]]>>
[img[pictures/JOI7qxUSCqd04xay.jpg]]

!!![[גורה]]:

בניין, הנמצא [[במצפה ראשית|מצפה ראשית]], שעל ים טתיס. הבניין נמצא באזור התעשייה של העיר התחתית. הוא בן שש קומות ושייך ל[[שלום]].
בקומה 4 נמצא [[ההוסטל]], בו לנים עוברי אורח בעיר.
בקומה שלוש ישנם שלושה משרדים.
בקומה שתיים [[מערכת עיתון אזוטרי|מערכת העיתון]].
בקומה אחת בית קפה, [[קפה מילר]] שמו, ולו רחבה ובתוכו [[המספרה|מספרה]], [[חנות דיסקים]] והקפה עצמו.
לבניין גם מרתף בו גר [[סטלין]], שרת הבניין. במרתף נמצאים גם המחסנים.

געזונטהייטס הוא הזירה המרכזית, [[של כל מה שקרה (אולי) וכל מה שקרה (כמעט) ב HH|HH]]. 




<<englink [[Gesund-Heights]]>>
[img[pictures/gratin.jpg]]


!!![[דניאל]]:

זה המתכון שאני מכין לכל ארוחה שאני מוזמן אליה. אני יודע להכין שלושה דברים. גרטן תפוחי אדמה, סלט חסה וטירמיסו שפעם אימא של חבר שהיה לי לימדה אותי, בכוסות של ויסקי.

החומרים הדרושים:

* ק"ג תפוחי אדמה
* מיכל שמנת מתוקה
* חצי כוס חלב
* שליש כוס גבינת פרמז'ן או גבינת גרוייר מגוררת
* 2 שיני שום כתושות
* פלפל שחור גרוס
* אגוז מוסקט מגורר 
* מלח



1.  מחממים תנור ל-170 מעלות.

2. פורסים קילו תפוחי אדמה לאפייה במנדולינה.

3. משמנים תבנית בסדר גודל של 16X24 ס"מ.

4.מערבבים את השמנת המתוקה, החלב והתבלינים ויוצקים מעל תפוחי האדמה באופן שווה.

5.מפזרים מעט גבינה מגוררת ואופים 60-50 דקות, או עד שתפוחי האדמה רכים ושחומים והנוזלים נספגים.


6. מקררים רבע שעה ומגישים .


<<englink [[Potatoes' Gratin]]>>
[img[pictures/grasyani.jpg]]

!!![[תומר]]:

כשאני הולך נגד כוון השעון אני שותה את הקפה של הבוקר עם סנדביץ' קטן וטעים - למשל זה עם הנקטרינה והגבינה הלבנה בתוך לחם אגוזים - [[בגרציאני|https://easy.co.il/page/10008537]], שנמצא ביהודה הלוי מול [[הגינה|גינת קריית ספר]]. בשבת בבוקר אני לוקח גוז'רים טעימים ממש, או בורקיטס תרד, או קרואסון או לחמניות או משהו מאד טעים אחר. 




<<englink [[Grasyani]]>>

[img[pictures/adashim-ketumot.jpg]]

!!![[הצוות]]:

החומרים:

*1 בצל לבן קטן קצוץ
* 4 עגבניות קטנות ובשלות חתוכות לקוביות קטנות
*1 כוס עדשים כתומות
*4 כוסות מים
* כפית תבלין קארי
* חצי כפית ג'ינג'ר מגורר
* מלח ים גס
*קורט פלפל שחור

אופן ההכנה:

1. בסיר בינוני מחממים שמן (חמניות/קנולה/תירס) ומטגנים את הבצל עד שהוא הופך שקוף

2. מוסיפים את העגבניות, וממשיכים לצלות כ-20 דקות על להבה נמוכה

3. מוסיפים את המים, העדשים והתבלינים, בוחשים בכף עץ ומבשלים 40 דקות עד שעה על להבה נמוכה (בוחשים מידי פעם)

4. מגישי  על [[אורז לבן|אורז לבן עם צנוברים]]



<<englink [[Orange lentils' dal]]>>

[img[pictures/dabke.jpg]]

!!![[אירי]]:

גם אם דבק [[בדבקה|https://he.wikipedia.org/wiki/%D7%93%D7%91%D7%A7%D7%94]] חיידק הלאומנות בחלק מהמקומות - במקורה, היא ריקוד עם, בו אוחזים ידיים במעגל או בשורות, ורוקדים בקצב של 4/4, ממש כמו [[בהורה|הורה]].



<<englink [[Dabke]]>>
[img[pictures/da-vinci-2.jpg]]

!!![[תומר]]:

זה לא כל כך נעים לראות רדיו סגור, אבל כשאתה מתגורר כאן בגטו  לפעמים דה וינצ'י 2 זה בדרך, ואני רגשן [[מתגעגע|https://www.youtube.com/watch?v=SPg4IwGZMvM]].

<<englink [[2 Da Vinci ]]>>
[img[pictures/mental-generation.jpg]]


[[גורה]]:


הדור הזה, שנושא על גבו דורות על גבי דורות של אנושות בלתי מודעת ולא מטופלת. הילדים הללו, אלה הקרויים דור ה-Z, דור המסכים, אלה שמזכירים לנו מידי יום ומבקשים שנבין שגם הנפש עברה אבולוציה. אחרי יותר ממאה שנים מאז פרויד התחיל להעיר אותנו מהתרדמת הנפשית בה היינו שרויים. הדור הזה של עכשיו, מאובחן, כועס, מודע לזכויותיו כילד וכאזרח, מכיר בזכויותיו של האחר ובשונה ממנו עצמו, מתמודד עם גוש עצום ולא מזוהה שמתפוצץ לו בפנים, צועק ומשתולל בחופשיות יחסית [[עוד מאז דור הX|https://www.youtube.com/watch?v=lldS41Px5_s]].





<<englink [[Mental generation]]>>


[img[pictures/david-bowie.jpg]]

!!![[אירי]]:


בעשרה בינואר  2016 [[דיוויד בואי|https://en.wikipedia.org/wiki/David_Bowie]] נפטר. התעוררתי מאוחר באותו בקר. נכנסתי לדירה דרך המרפסת. [[I cant give everything away|https://www.youtube.com/watch?v=OZscv36UUHo]] היה בווליום חזק. 

למעשה לא היינו אמורים להיות מופתעים כי חודש או יותר לפני, כבר היה אפשר לשמוע את בלאק סטאר ביוטיוב, ויויו אמר לנו יותר מפעם אחת, שנראה לו שזה האלבום האחרון של דיוויד, ושאפשר לשמוע שהוא יודע שאלה פני הדברים. דןדן בישר לי את הבשורה המעציבה מיד כשנכנסתי. 

אחרי המוות ו[[האלבום החוֹתֵם|https://www.youtube.com/watch?v=kszLwBaC4Sw&list=PL_VDqxGpwYjUPsYUReXDVZM67bJd40na9]]. [[זיגי סטארדאסט|https://www.youtube.com/watch?v=5UQvBzo_rJA&index=6&list=PLuR3CWq59OyrTdWAeVkqH3F6UziQICYeN]]. הדברים שיויו אמר. הסוג של רקוויאם לדעת יויו, שבואי כתב לעצמו - הכול ביחד – חשבתי שבטח עכשיו הוא סוף סוף חוזר לכוכב המקורי שלו, ושאולי בכלל הוא נשלח מאותו כוכב רחוק, לגָלוּת כאן בכדורינו הנידח. 

דיוויד בואי הוא אולי האדם הכי חייזרי במובן הטוב ביותר של המילה, ששהה על הכדור הזה בתקופה הזו, והוא היה הכי שאפשר מכל בחינה שהיא, כולל [[המגדר הלא מוגדר|גבריאל פורה]]. הרעיון שכדור הארץ הוא בעצם [[גלות]] תפס אותי. לא פעם חשבתי שיכול להיות שהנשמה יכולה להתגלגל בין כוכבים במרחב האינסופי. כשהייתי ילדה נהגתי לספור את נקודות החן שעל גופי, וחשבתי שבטח החיבור ביניהן הוא צורתו של הכוכב ממנו הגעתי. עד כיתה ב' היו לי 27 נקודות חן, ובערך אז הפסקתי לספור. 

מצחיק שבאחת מהארוחות שהיו בחג, שיחקנו מן משחק כזה – לו היו נותנים לך לחיות את חייו של מישהו אחר, את חייו של מי היית רוצה לחיות, ויויו אמר מיד: דייוויד בואי. הרעיון כל כך מצא חן בעיני עד שאימצתי אותו, ולמרות שאמרתי שהייתי רוצה להיות [[פרדריק מתיאס אלכסנדר|פ.מ.אלכסנדר]], בואי נשמע לי הרבה יותר האנקי דורי. 



<<englink [[David Bowie]]>>
[img[pictures/david-byrne.jpg]]

!!![[יויו]]:

[[תראו אותו|https://www.youtube.com/watch?v=hpPYKJAnwUo]], כבר לא ילד, אבל [[אותו הילד|https://www.youtube.com/watch?v=av3j4WStj2A]].

זה [[דיוויד ביירן המתוק|http://davidbyrne.com/]].

<<englink [[David Byrne]]>>
[img[pictures/david-chase.jpg]]

!!![[יויו]]:


[[בהלוויה|https://www.usatoday.com/story/life/tv/2013/06/27/james-gandolfini-funeral-sopranos-star/2463931/]] של [[ג'יימס גנדולפיני]],  דייויד צ'ייס אמר, שלמרות שהוא היה מבוגר ממנו ב-16 שנה:
 

@@.ltr
 I always felt we were brothers. We had
different tastes, but there were things we both love: family, work, people in all their imperfection, food, alcohol, talking, rage and a desire to bring the whole structure crashing down.
@@

וכן, תודות [[לאנג'ליק|אנג'ליק]], כולנו נדבקנו,  ובאיחור של כמה שנים טובות, בחיידק הסופרנוס. [[גורה]] מידי כמה ימים מנסה שוב לצייר את פניו, (כמו שהיא מנסה לצייר שוב עוד פנים). היא עדיין לא באמת מצליחה, אבל: "לפחות שיראו כמה הוא טוב לב וחכם וחייכן מבפנים. שיראו את שרירי החיוך המפותחים שלו", היא אומרת. רק לאחרונה הבנתי, [[שדייויד צ'ייס|http://www.imdb.com/name/nm0153740/]], שיצר את [[הסופרנוס]], הוא אותו דייויד צ'ייס של [[חשיפה לצפון|חשיפה לצפון]]. תמיד הרגשתי בבית [[בסיסלי, אלסקה|http://northernexposure.wikia.com/wiki/Cicely,_Alaska]]. בסופרנוס, לבי יצא אליו, ואני אוהבת אותו [[כאחות|האחיות כהן]]

 אני ממליץ על [[ראיון|https://www.youtube.com/watch?v=_7jgaAfWS64]] מרתק בעיני, בו [[פיטר בוגדנוביץ'|http://www.imdb.com/name/nm0000953/]], שהיה הפסיכולוג של [[הפסיכולוגית|http://www.imdb.com/title/tt0141842/characters/nm0000966?ref_=tt_cl_t2]] של [[טוני סופרנו]], הוא המראיין.

<<englink [[David Chase]]>>
[img[pictures/diyur-mugaz.jpg]]

!!![[גורה]]:

דיור מוגז [[שבמצפה ראשית|מצפה ראשית]], הוא הפנינה, שהגיעה תודות לצינור של [[אסדת טתיס|ים טתיס]].



<<englink [[Gassisted living]]>>
[img[pictures/ima-shel-gura.jpg]]

!!![[גורה]]:

ככה [[פעם|כשאנשים עוד היו אופטימים]], אימא שלנו, של יויו ושלי, הייתה מבלה את רוב שעותיה, יושבת על כסא הנדנדה במרפסת וקוראת, ומידי פעם רוטנת או צועקת את מה שצריך לעשות ומרבה בנזיפות. 

היא נפטרה כשכבר שנינו היינו בפריז, כבר אחרי התאונה שלי.

גידלו אותנו ממושמעים, ומעולם לא העזנו לסרב לדרישותיה של אימי כל עוד גרתי בבית הורינו.

כשהתגייסתי ויצאתי מן הבית, והתחלתי להכיר אנשים ולשמוע סיפורים ואמירות הנוגעות להורים, התחיל לבעבע בי כעס, וגם היום יש לי [[התפרצויות זעם|אני רוצה להתנצל]] שיכול לעלות בשניה בגלל שטות.

כשזה קורה משתנה לי הקול ושפת הדיבור שלי משתנה. אני צועקת ומדברת לא יפה.

אני אומנם מטופלת מכל הכוונים, אבל רק לאחרונה, אחרי [[שדןדן נסע|דןדן נסע]], יויו צילם אותי בוידאו משתוללת על [[אלפרד]], וזה נראה פויה. ממש מביך.


<<englink [[RIP Dina]]>>
[img[pictures/delicatessen-tel-aviv.jpg]]


!!![[תומר]]:

[[יויו]] לעולם לא היה יורד לרמה הזאת של לראות תוכניות בערוץ מסחרי, אבל שידבר איתי כשיהפוך לאבא עייף שמתבטט מול המסך הקטן באזור תשע עשר מידי ערב, וכעת הוא צופה ב- MKR, והתוודע כמו כל צופי האפיק [[לרותי ברודו|https://he.wikipedia.org/wiki/%D7%A8%D7%95%D7%AA%D7%99_%D7%95%D7%9E%D7%AA%D7%99_%D7%91%D7%A8%D7%95%D7%93%D7%95]] - השופטת הכריזמטית והכנה - שאוחזת בכמה מעוזי קולינריה איתנים - וכן - גם אני לפעמים וגם הבוקר פניתי שמאלה ליהודה הלוי ועצרתי  [[בדליקטסן|https://www.delitlv.co.il/]],  וקניתי קפה ומאפה ולחם לטוסטים והמשכתי לצעוד מבסוט [[לאלנבי|קפה וממתקים]].



<<englink [[Delicatessen]]>>
[img[pictures/delicatessen.jpg]]

!!![[ז'נבייב]]:

זהו, שה ז'נבייב דליקטסן נפתח שלשום. אני מאד שמחה אך זהירה - כי זו בהחלט משימה יומרנית לבחור מה יהיה, מה אני מציגה, הן מבחינת חומרי גלם, הן מבחינת אוכל מוכן. בסופו של דבר ובתוספת החנות הצמודה שהתפנתה, יש חנות, שדלפק האוכל המוכן שבה נמשך לתוך החלל שבו אפשר לאכול בהגשה עצמית. המטבח נשאר באותו גודל ומהחלונות שלו אנו מוציאים, כחלק מהקניה, ירקות מאודים או צרובים על פלנצ'ה. יש גבינות, נקניקים, בשרים. סנדביצ'ים, תבשילים. מבחינת חומרים גלם, כולל פרות וירקות - אנחנו מוכרים ממה שקנינו בשוק לבישול שלנו וגם נותנים מתכונים למי שרוצה להכין בבית, ויש כמובן פינת קפה.

<<englink [[Delicatessen Chez Genevieve]]>>
[img[pictures/readymadedelicatessen.jpg]]

!!![[יויו]]:

[[דליקטסן אצל ז'נבייב]] הקדים את זמנו, במובן הזה, שכבר הפכנו למעדנייה ממנה אפשר לקחת מן המוכן מזון ומשקאות, ולצאת אל הטבע העירוני ולאכול בנחת וללא מסכות עוד לפני פרוץ קוביד 19. 

<<englink [[Ready made delicatessen]]>>
[img[pictures/true-blood.jpg]]

!!![[יויו]]:

אחחחח איזה טעים זה [[דם בלאדי|http://www.imdb.com/title/tt0844441/?ref_=ttep_ep_tt]] של [[מושבניקים|https://www.youtube.com/watch?v=OWq7FYyYarU]] החיים על אדמת לואיזיאנה ויש להם אחות פיה. יותר טעים מזה [[שבבקבוקים|http://www.fictionalfood.net/wp-content/uploads/2012/11/Tru-Blood.jpg]].


<<englink [[True blood]]>>
[img[pictures/dandan.jpg]]

!!![[דןדן]]:

אני לא כזה, מהאנשים הטכנולוגיים. אני יודע לעשות דברים עם הידיים אבל אני לא טוב במכשירים. אני טוב בלשטוף כלים ולעשות סדר. אני אוהב לשייף. לצבוע.
אני אוהב להכניס למגירה של [[מכונת הכביסה|כביסה]] את אבקת הכביסה בתא השמאלי, ובתא האמצעי את המרכך. לסגור את המגירה תוך כדי שאני מכוון את התכנית בטאץ', ושומע את המכונה מתחילה לפעול. אני אוהב את הימים בהם אני מתעורר בקלות ויוצא עם [[אירי]] להליכת הבוקר שלה. אני אוהב לשבת עם [[אלפרד]] על מדרגות המונמרטר לפנות בוקר ולעשן ג'ויינט. אני אוהב [[שז'נבייב|ז'נבייב]] מחבקת אותי לשלום כשאנחנו מסיימים יום עבודה, ואומרת לי שאני נהדר ושהיא אוהבת אותי. 
עד שהכרתי את [[יויו]] וחבורתו לא היו לי חברים ממש. רוב חיי זזתי ממקום למקום, ובגיל העשרה הייתי דילר בניו יורק. בחלק מהמקומות בהם גרתי היו לי חברים, אך לא שמרתי על קשר עם אף אחד מהם. אני מסוגל לשכב שעות בלי לזוז. אני יודע להקשיב לדיבורים. אבא שלי היה יכול לדבר שעות בלי להפסיק.

לפעמים אני מתגעגע לדודי מו ולאימא, אבל זה לא שאני באמת צריך לראות אותם. לפעמים אני חושב על אבא ומתגעגע אליו. אני אוהב להיות לבד בחגים. אני אוהב לשוטט בערים המקושטות כשהן ריקות, ורק הבודדים מסתובבים ברחובות. אני אוהב לקנות לעצמי איזו ארוחה במכולת כלשהי, ללכת הבייתה ולעשות מקלחת ארוכה וחמה. לשכב מול הטלוויזיה, ולהעביר ערוצים.

את יום הולדתי ה 18 חגגתי עם אמי, שהייתה מאושפזת באותה תקופה בסנטוריום בוטיק בקולורדו.  יום הולדתי חל בפברואר. היה קפוא. ישבנו בחדרה החם והנעים. הזמנו מיליון מנות של אוכל, ממסעדת מזרח רחוק, ואכלנו בתאבון ופטפטנו. אפילו התרופות החזקות שהיא קיבלה לא הצליחו לנטרל לגמרי את השובבות שלה ואת טוב ליבה. היא אמרה לי שהיא רוצה שיהיה לי טוב בחיים.

טוב לי עכשיו בחיים. אני חי עם אנשים שאני אוהב. אנחנו עושים המון דברים. אני מרגיש אהוב ורצוי. אני מפרנס את עצמי ביושר וחושב על זה. ואגב, שמי המלא הרשמי הוא דניאל ג'סי ווינמן.

!!![[אירי]]:
 
ביוני [[דןדן נסע]].



<<englink [[Dandan]]>>
[img[pictures/dandanisback.jpg]]

!!![[גורה]]:

לא ראינו את דןדן למעלה מ6! שנים.
לפני חודש קיבלתי ממנו מייל בו הוא מספר, בנימוס רב, ושואל אם זה בסדר שהוא יבוא לבקר בקרוב. אמרתי לו שזה בסדר.  
לפני יומיים הוא הגיע, הוחלט כי אני אהיה זו שתפתח לו את הדלת, הוא לבש סווטשירט כמו [[בקופנהגן קאובוי|https://www.lemonde.fr/en/culture/article/2023/01/05/in-copenhagen-cowboy-nicolas-winding-refn-creates-an-enigmatic-superheroine_6010366_30.html]], עמדתי כמו קלוצית, הוא היה נבוך וחייך, התחבקנו רגע והמשכנו פנימה.


<<englink [[Dandan is back]]>>

[img[pictures/dandan-nasa.jpg]]

!!![[אירי]]:


ב 27 ביוני בשלוש לפנות בוקר, דוֹדוֹ, אחיה של אמו של [[דןדן]], התקשר, ואמר לו שאמו במצב לא טוב ושמוטב שיבוא מהר ככל האפשר. מצאנו כרטיס של הרגע האחרון ובלילה הוא המריא. הוא שלח לנו מסרון כשנחת. הוא המשיך להתכתב עוד כמה ימים עם גורה וגם אתנו, אבל אחר כך לא שמענו ממנו כמעט שלושה חודשים. 


בשבת האחרונה של ספטמבר הגיע מדןדן מייל שיועד לכולנו ואני מעתיקה את כולו לכאן:



חברים אהובים שלי,

אני ראשית מבקש סליחה מגורה במיוחד, ומכל אחד ואחד מכם, על כך שלא הייתי אתכם בשום קשר בחודשיים וחצי האחרונים. כבר כמה ימים שאני כותב את המכתב הזה ואני רוצה להסביר את עצמי:

הגעתי לאל איי, ודוֹדי מוֹ חכה לי בשדה התעופה. הוא לקח אותי לסבתי בת ה-90 שמתגוררת בבית אבות אלגנטי בסנטר של אל-איי. סבתי היא אישה מרושעת ועשירה אך היא אוהבת אותי ונחמדה אלי יותר מאשר לכל אחד אחר. לאורך השנים היא ניסתה לחבל בכל ניסיון של אמי לתפקד, אך כעת לא הייתה לה ברירה והיא נאלצה לצאת מעצמה ולהתעניין בבתה, כי לאמי מצאו סרטן בכל הגוף והיא כבר הייתה במצב סופני והיה צריך להביע תמיכה. הרופאים טענו כי נותרו לאמי לכל היותר ארבעה-חמישה שבועות לחיות, ומוֹ ביקש מאמם כי תאפשר לה את התנאים הטובים ביותר כמתנת פרידה. דודי הוא אדם אמיד ונדיב אך הוא חשב שאמם צריכה להעניק את הדבר הזה לאמי היקרה שסבלה ממנה כל חייה. הוא לא העז לומר לה ישירות שהיא השתלטה על כספה של אימא, אך הוא לחץ. זה לא היה פשוט, כי אם יש משהו שסבתי קשורה אליו רגשית נפשית כל כולה הוא ממונה. הוא מקור תחושת העליונות והשליטה שלה. היא התעללה באמי, שהייתה בשל כך, ילדה ונערה פצועה, ובגרה להיות אישה פצועה עד יומה האחרון. אמי גם היא דפקה אותי כהוגן ואת זה אתם יודעים, אך מגיל צעיר הבנתי אותה על התנהגותה ואורחות חייה. מגיל צעיר מאד אמי שכבה עם טריליון גברים וצרכה הרבה מאד סמים והסתובבה בהרבה מאד מקומות. לאורך השנים אושפזה מספר פעמים במוסדות לבריאות הנפש, וגם אחרי שהולידה אותי המשיכה אמי לנהוג כפי שהייתה רגילה. כן, נולדתי עם גוף מפורק ועברתי הרבה ניתוחים והיטלטלתי בין אבי לבין אמי לבין פנימיות עד שנפלטתי מהמערכת בכתה ט'. אך בין אם היו לאמי חשק, כוח או יכולת, ובין אם לאו, היא תמיד רצתה אותי. אבי נפטר כשהייתי בן 15 וחצי. הייתי ילד רחוב וסוחר סמים ונווד צווארון לבן עד לא כל כך מזמן. כשסיימנו את הביקור אצל סבתא, מו לקח אותי לאימא, ששהתה בסנטוריום רחב ידיים ששכן על הגבעות המזרחיות לכביש מספר 1, מרחק שעה נסיעה צפונה מאל איי. מו, מוזס, הדוד שלי – תמיד היה האדם האנושי ביותר והשפוי ביותר במשפחתי העקומה. הוא לא דומה לאף אחד. הוא צעיר מאמי בשבע שנים, ובניגוד לאמי – שסבתא לא סבלה לרגע מעולם, בו היא הייתה מאוהבת. תופעה אנושית מוכרת. היה לי נעים לפגוש את דוד מו. שמענו מוסיקה בנסיעה ודיברנו, וכמובן שהיה לו עשב נקי. הגענו לאימא שהתגוררה בחדר ענקי עם חלונות גדולים שפונים לחורש עוצר נשימה. גרתי אתה בחדרה שלושה שבועות עד שב-14 ביולי נפחה את נשמתה. ממש ראיתי כשבאחת פלטה את נשימתה האחרונה. זה היה רגע מוזר. החדרים במקום תוכננו כך שהחולים יוכלו לבלות עם יקיריהם בימיהם האחרונים. אלה היו שלושה שבועות רגשיים מאד, והייתי חזק, וחשבתי שזה נהדר שאנחנו נפרדים ככה. טיפלתי באימא, שהייתה שבר כלי מטושטש עם כאבי תופת, ולב מיוסר. ההוספיס המיוחד במינו הזה, בנוי מעץ חום כהה במבנה של ספירלה עולה, ונפתחת, שמתוכה יוצאים חדרי ענק הפונים החוצה אל הנוף, כמו פריסקופים על שיח מטפס. מחלונותיהם ניבטים עצי ענק יפהפיים שבלילה מוארים באור שקט וענוג. בעיקר בלילות הרגשתי כמו על מתקן דומם בלונה פארק, ודימיתי איך אני מתחבר לאינסוף כמו שאירי לימדה אותי. כיביתי את הנייד ולא השתמשתי במחשב. רציתי להיות עם אימא בלבד. מו הגיע לבקר כל כמה ימים, ופעמיים הביא לביקור את סבתא בכיסא גלגלים. החדר כלל את המיטה שלה, שהייתה גדולה ונוחה ופנתה אל החלון. סמוך אליה ניצבה כורסה נוחה ירוקה ושולחן קטן. הייתה בו גם פינת ישיבה, טלוויזיה מחוברת לכבלים, חדר אמבטיה ועוד פינת שינה נעימה בה ישנתי אני. אני יודע שזה לא בסדר שלא כתבתי לכם כלום ואני בוש בעצמי. במשך הימים נשאבתי לטיפול באימא וכל כולי הייתי עסוק בלהביט בה, לדבר אליה, לקרוא לה ספרים ועיתונים, להביא לה ולי אוכל מחדר האוכל ולהאכיל אותה ולאכול בעצמי. היא דיברה מעט, ובימים האחרונים היא הייתה מטושטשת כבר רוב הזמן אך היו לנו כמה שיחות יפות. אפשר להגיד שלפני שבוע התעוררתי מהמאורע הזה. אחרי שאימא נפטרה וגופתה נשרפה, מו ואני פיזרנו את אפרה סביב העצים שמתחת לחלון בו בילתה את ימיה האחרונים, ואחר כך עצרנו בבר הראשון שהיה בדרך חזרה לאל איי, ושתינו את עצמנו לדעת. מאותו הרגע ועד לפני שבוע הייתי שיכור תחת ומסטול מוות  24/7 פחות או יותר. המזל הגדול שלי הוא שסבי, אביה היקר שאהב אותה מאד חילק בצוואתו את ממונו ורכושו. לסבתי הוריש מחצית מהכול ולאמי ולדודי את החצי השני, אך סבתי השתלטה על הרבע של אמי באחד מאשפוזיה וכעת הפכתי ליורשה היחיד של אמי, ולמזלי שליטתה בכסף הזה לא חלה עלי – יורשו. כשסבתי תלך לעולמה אחווה סיבוב נוסף, מאחר שבצוואתו ציווה סבי על סבתי אותה הכיר היטב, להוריש את רכושה וממונה לבתה ולבנה בלבד ובאופן שווה.       
בכל אופן זה לא העניין ואולי זה קשור. העניין הוא שחזרתי לסורי למשך קצת פחות מחודשיים בהם לנתי בדירה קטנה בתוך מלון דירות קטן, ששכרתי ברגע שהגענו לאל איי. ברוב היום הסרחתי מסטול במיטה וראיתי טלוויזיה. פה ושם הלכתי להשיג סמים ואוכל ולבקר את סבתי. את הטלפון הנייד כיביתי כמעט כל הזמן, ולפני עשרה ימים מו הגיע לכאן לאחר שהחליט שלא ייתן לי ליפול, וסחב אותי לביתו ומכאן אני כותב לכם. הוא גר בבית דירות הממוקם במרכז העיר גם כן. הדירה שלו גדולה ונוחה, והוא עבר אליה לאחר שהתגרש לפני שנתיים. בנו ובתו כבר בקולג', והוא לגמרי חופשי. במרכז הדירה יש מטבח גדול, ובו שולחן-בר עשוי זכוכית, עליו מפוזרים ארבעה מחשבים. מסכי פלזמה תלויים מעל ומקרינים במקביל כל מה שמעניין אותו לדעת. הרבה בורסה בשעות היום, וכאן הוא חי, ומכאן הוא עובד כמשקיע הון סיכון. גם הוא לא יוצא כמעט מהבית. כל צרכיו מגיעים עד דלתו, את רוב פגישותיו הוא מקיים בתווכם של מסכים, ואני חושב שאתם תאהבו אותו. אני מביט בו עכשיו וחושב על זה שהייתם אוהבים אותו.
ועכשיו לחלק הקשה כי מו אינו מרפה. 
אני לא כתבתי לכם, כי לא יכולתי לכתוב לכם והרגשתי אשם שאני לא כותב לכם, אך הערפול עזר לי להשכיח את רגשות האשם. אני אוהב אותך גורה, ואני אוהב את כולכם, אבל בהתחלה, כשאימא עוד הייתה בחיים חשבתי שאני לא כותב לכם, בגלל שאני רוצה כל כולי להיות אתה, והרבה בזכותכם רציתי לתת לה את כל כולי. רציתי להיות טוב כשחשבתי עליכם. רק לאחר שהיא נפטרה, ומצאתי את עצמי במיטה מרחם על עצמי, הבנתי שאני מפחד לדבר אתכם, כי אני מפחד להגיד, לך גורה בעיקר - אבל לכולכם, שאני רוצה להיות לבד. יש לי אהבה לכל אחד ואחד מכם ואתם החברים הכי טובים שיהיו או היו לי אי פעם, והאנשים הכי נפלאים ומהנים, ואני לא יודע מה לעשות עם עצמי, כי אינני רוצה לפעול מתוך תחושת חובה או אשמה. אני רוצה להסריח במיטה בלי להצטרך להיות טוב, בלי לעשות כלום בבקר, בלי שעון מעורר, בלי בית נקי, בלי עבודה, בלי שאיפות. להיות סרחן עצלן. למזלי מוֹ התעקש ולקח אותי בכוח, כי כמויות האלכוהול ששתיתי הן קטלניות. אני יודע שאני ילד בן 22, אבל אני שייך לאותם ילדים שנאלצו להתבגר מוקדם, ואולי לכן אני כל כך לא רוצה להיות מבוגר. מוזס הזמין לי לכאן בימים האלה כל יום מטפל מסוג אחר, כולל שיחות עם פסיכולוגית שמאד עוזרת לי. אני מתגעגע אלייך גורה, ואני מתגעגע מאד אל כולכם ורוצה לשמוע אתכם, אבל אני לא מסוגל לדבר אתכם עכשיו. אני מאד רוצה להיות כן, כי מי אם לא אתם ראוי לכנות. אני סיפרתי עליכם לסוזי המטפלת. סיפרתי לה המון על גורה ועל כולכם, והיא כמובן מעודדת אותי לחזור אליכם. היא אפילו הציעה שאסע ונדבר שוב על מי אני ומה אני אתכם ועבורכם, אך משהו מוזר עובר על הגוף שלי והוא אינו מסוגל לקבל את המחשבה הזו. כלומר, בכל פעם שאני חושב על חזרה לפריז, גופי העקום מתקשח כמטיל וטו. אני מעט מאובן גם עכשיו. אני יושב עם הדוד מו סביב שולחן העבודה שלו ומסיים את המכתב. 
אוהב את כולכם ומבקש סליחה,
שלכם תמיד למרות מה שכתבתי,
דןדן.


<<list-links filter:"[tag[דןדן נסע]]">>

<<englink [[Dandan went]]>>





[img[pictures/29wJW52SFPcRk5HR.jpg]]

!!![[דןדן]]:

אני בחרתי לכתוב על דניאל, משום שהוא אחד האנשים שבאו אלי משום מקום ועל המקום קלט אותי. הוא כמובן הגיע עם אלפרד [[לארוחה|ארוחת כריסמס]], וזו הייתה הפעם הראשונה שנפגשנו. הוא בן 27, והוא סיים תואר ראשון בפסיכולוגיה לפני שנתיים. בשנת הלימודים הקרובה, הוא מתחיל תואר שני בפסיכולוגיה מחקרית. המחקר שלו קשור בעישון מריחואנה והזכרון לטווח קצר. ומי אם לא אלפרד, נקרה בדרכו בקורס [[כירולוגיה פסיכודיאגנוסטית]]. קנדידט אולטימטיבי שמעריץ את ה[[גן-יה]].
הוא די גבוה, יש לו בלורית נאה ועיניים חומות  ומתקן ליישור שיניים. הוא נע כל הזמן באי נוחות מצד לצד, אבל לא כמו יויו. [[יויו]] הוא יותר מתנדנד, ודניאל יותר מעביר משקל מרגל לרגל באי נוחות, ועימם את האגן ואת הראש.
הוא אחד הבודדים ש"עלו עלי". לרוב אני הוא זה ש"עולה" על אחרים, כמו שכתוב [[בסיפור של אווה|כוכב המשאלות בעל תשע הצלעות]].
הוא מצטרף אל אלפרד ואלי לא מעט כשאנחנו משפצים רהיטים, ובודאות הוא ראה בדיוק מה קרה לי בניו יורק כשהייתי בן 17 [[בבית של פיני]]. הוא מעשן וויד רק פה ושם, ובאותו יום עישנו.
[[צ'נג]] והוא התחילו את ה[[וויקי שלנו|האחיות כהן]], ובכך אפשרו לכל אחד מאיתנו למלא וליצור עוד ועוד וויקי'ס ובתנאי [[ששרל'ה הייתה אוהבת את זה|שרלה הייתה אוהבת את זה]].


<<englink [[Daniel]]>>
[img[pictures/daataniyot.jpg]]

אחת הבעיות איתנו הנשים, ויש לא מעט כאלה, היא, שקורה שאנחנו דעתניות.


<<englink [[Opinionated]]>>
[img[pictures/dafni-abaroa.jpg]]

!!![[אלפרד]]:

אל תתעסקו עם הדפני.

היא הייתה בת ארבע כשנולדתי, וזמן קצר אחרי הולדתי, הורי שמו לב, שהיא החלה ללכת על קצות האצבעות ולהשתולל, כלומר, להתנגד לכל דבר, לקחת כל דבר, לצעוק בלי להפסיק.  בילדותה ונערותה הייתה רזה, ספורטיבית, ומושכת, היא התגברה, יחסית, על "ההפרעת הליכה", אך נשארה [[מסוכנת]].

<<englink [[Daphne Abaroah]]>>
[img[pictures/theartist.jpg]]

!!![[גורה]]:

ניסיתי לתאר את סרות טעמה של הדי, K SISTER סרת טעם במיוחד, אך כנראה שלא מאד נכנסתי לזה, כי הדי היא סרת טעם בהרבה ממה שרואים בתמונה הזו. 

שיערה קצוץ, אך משערות ערפה יוצאת צמה ארוכה. היא מאותגרת משקלית ונוהגת להתכסות במיני טייץ, מעליהן היא נוטה לעטות טוניקות צבעוניות או שחורות, מעליהן היא עונדת כמות אדירה של תכשיטים ענקיים מלאי אבנים מלאות בסיפורים מלאי רגש. בת המזל אף נשואה לבעל בעל אמצעים.



<<englink [[The artist]]>>

[img[pictures/house.jpg]]

!!![[הצוות]]:

אחרי שבמסגרת המיזם השיקומי של [[וילסון|http://www.imdb.com/name/nm0000494/?ref_=tt_cl_t3]] את [[האוס|http://www.imdb.com/name/nm0491402/?ref_=tt_cl_t1]], משלם וילסון [[לפורמן|http://www.imdb.com/name/nm0004898/?ref_=tt_cl_t2]] [[וצ'ייס|http://www.imdb.com/name/nm0817980/?ref_=tt_cl_t4]] ([[לא רק|https://www.youtube.com/watch?v=Xz3oTbcxFkA]]) בעבור שיצאו איתו לבלות, מגיעה [[סצנת קריוקי אדירה|https://www.youtube.com/watch?v=BVGGG2J0_7M]] עם השיר [[רכבת חצות לג'ורג'יה|https://www.youtube.com/watch?v=v78-ftcqpNw]] שהיה להיט ב-1973. זה קורה לקראת סוף העונה השישית, בה האוס, שהכניס עצמו לאשפוז גמילה ושוחרר ממנו, הולך ומשתפר וכך גם התסריט. [[זה|http://www.imdb.com/title/tt0412142/]] נהיה נעים ומצחיק יותר. גם [[13 הורסת|http://www.imdb.com/name/nm1312575/?ref_=tt_cl_t9]]. עוד לא סיימנו את עונה 6, כלומר יש  הסוף של 6 ועוד שתיים, אבל לפי [[הקליפ הזה|https://www.youtube.com/watch?v=O8pCxcUURaw]] - עוד קצת טוב ונשתגע.





<<englink [[House]]>>
[img[pictures/ksisters.jpg]]

!!![[גורה]]:

K-SISTER [[לעולם תהיה|HH]] K-SISTER


<<englink [[The K Sisters]]>>
[img[pictures/bloot-sisters.jpg]]

!!![[אווה]]:

בשעות אחר הצהריים המאוחרות של ימי רביעי, [[ז'נבייב]], [[סוניה]] ואני נפגשות לארוחה ומשקה ולהיפך, ומשוחחות להנאתנו, 




<<list-links filter:"[tag[האחיות בלות]]">>

<<englink [[Menopause sisters]]>>

[img[pictures/coen-sisters.jpg]]



<<englink [[Coen Sisters]]>>


!!![[יויו]]:

שלום רב,

בדצמבר 2015, עשרה ימים לאחר שנכנסנו, גורה דןדן ואני ל[[דירה|כוכב המשאלות 01]], ארחנו חברים ל[[ארוחת כריסמס]]. זו הייתה ארוחה פנטסטית [[א-לה-דובונאז'|חיות אוכל]]. אני בעיקר זוכר את עצמי עומד מתנדנד ומבסוט על עצמי בשגעון.

כדברי פתיחה, אני מעתיק לכאן את הקטע בו אווה מתארת אותי עומד שם ונואם בפני חברי ב[[כוכב המשאלות בעל תשע הצלעות]]:

לפני די הרבה שנים, 13-14 שנים, הייתה לי כזו... תקופה. הייתי סטלן אימים, וללא קשר, תמיד אהבתי [[להמציא|חלומות שחלמנו]]. אחד מהדברים שהמצאתי אז הוא, שאני אישה הונגריה בסיסית, ששמה [[אווה כהן]], ובעצם מבחינתי הייתי אחותם של האחים [[איתן ויואל כהן|איתן וג'ואל כהן]], למרות שבכלל יואל הוא שם [[אבי|אבא יואל]] ובכלל אין לי אחים כי אם ארבע אחיות, ממש כמו ל[[דוקטור דרק שפרד|https://en.wikipedia.org/wiki/Derek_Shepherd#/media/File:Dr._Derek_Shepherd.jpgD7.AA_.D7.91.D7.A1.D7.93.D7.A8.D7.94]]. הרעיון נשאר אתי והמשיך להתפתח, ועם הזמן החלטתי, שאני רוצה להקים קבוצת יצירה ליוצרים בלתי תלויים זה בזה אך קשורים זה לזה ושמה ''האחיות כהן''.  אני שיתפתי בזה את [[גורה]] אחותי הקטנה והיפה. גורה ואני [[ישבנו|האסיפה הראשונה]] ימים ולילות רבים, ופתחנו את האג'נדה והדמויות, את הקונספט והדרמה. כתבנו [[תשתית לסדרה|HH]] בת שמונה פרקים על האחיות עם אפשרות להמשך.. ולמה אני מספר לכם את זה? כי כשהגעתי לדירה כבר הבנתי שזהו מתקן השיגור של האחיות, ולכן בניתי את [[המעבדה]] בחדר השינה שלי. ועכשיו לדבר עצמו. אני מזמין כל אחד ואחת מכם להצטרף לחבורה. תנאי בסיסי לכניסת מיזם לתחומי האחיות הוא, ש-[[שרלה הייתה אוהבת את זה]]. מי זו שרלה? שרלה היא אישה שנפטרה מסרטן במח, כמו ש[[מאיר אריאל]] מספר בסרט [[מסע הבחירות של מאיר אריאל|https://www.youtube.com/watch?v=yFXUEoXCkT8]],  (5:30 דקות מתחילת הסרט), על האישה שנלקחה צעירה, והיה לה ראש מאד מעניין, והלוואי והיא הייתה המורה לספרות שלו. הוא מספר על צחוקיה המשגעים והחכמים ביותר, ועל הצורך שחש לכתוב לה משהו של פרידה ביום השלושים לפטירתה, משהו כמו שיר אהבה למורתו שאף היה מבקש ממנה ציון עליו. ומי מחליט אם שרלה שהלכה לעולמה הייתה [[אוהבת|אהבה]] את זה או לא? הדבר התמים שאני שואף אליו הוא שלעולם לא אצטרך לנהוג [[כפוליטיקאי|פוליטיקאי]] או מי מחברי האחיות, כי אני בטוח שאת זה שרלה לא הייתה אוהבת.

או כמו שגורה ואני כתבנו בשעתו, כשגרתי [[בין האלונים|המעבדה]].


[[שאלון האחיות]]

היו טובים.

<<englink [[Coen Sisters]]>>





[img[pictures/the-brothers.jpg]]

!!![[יויו]]:

[[תומר]] לקח אותנו כבר בפעמים הקודמות שביקרנו את [[אבא|אבא יואל]], לאכול [[באחים|http://www.haachim.co.il/]], וברגע שנכנסנו היה ברור שמדובר [[באחיות|שאלון האחיות]]. תמיד מלא שם באנשים שנראים מאד שמחים ונהנים, אלכוהול לא יקר יחסית לרפובליקה, צוות הכי נחמד ואדיב. יש שולחנות בחוץ על המדרכה, ובחלק הפנימי,  נמצאים שולחנות מסוגים שונים, הבר של "הפס הקר"  ובר המשקאות, גם סביבם אפשר לשבת. יש מוסיקה כזו כאילו שנכנסת לסרט של אמיר קוסטוריצה שפגש את [[טוני סופרנו|הסופרנוס]] רק בלי הרציחות והמכות, ואז הם הלכו להיפגש עם היווני [[מהסמויה|הסמויה]] בקטע טוב, ופגשו את אריק לביא. ממש ממש טעים שם. בשרים וירקות על האש אבל לא רק, ירקות בכל מיני צורות. אני מת על החומוס שלהם ועל הפיתות, והכי על הלבנה. ביקור אצלם תמיד נותן לי השראה כשאני חוזר [[למטבח|דליקטסן אצל ז'נבייב]].


<<englink [[HaAchim]]>>
[img[pictures/altermanz.jpg]]

!!![[תומר]]:

בתוך החום הצהוב שאחרי שכחת אבק הכוכבים של ימי הקורונה, אני נח בצהריים על הגב עד שאצטרך לאסוף את ננו, ומעלעל מוכנית באינסטגרם, מתגעגע לאיזו [[גרסת כיסוי משמחת|https://www.youtube.com/watch?v=GdAGHNFTH2E&list=PLN6LsdjEZU6JR5u7bsYz-QtTXMzZZVHss&index=5]] או [[טיק טוק ספונטני|https://www.youtube.com/watch?v=5DM087bjfU4&list=PLN6LsdjEZU6JR5u7bsYz-QtTXMzZZVHss&index=16]] של [[האב האוהב|https://he.wikipedia.org/wiki/%D7%A2%D7%99%D7%93%D7%9F_%D7%90%D7%9C%D7%AA%D7%A8%D7%9E%D7%9F]] [[ושני ילדיו האהובים|https://www.youtube.com/watch?v=UmrsOJCCTNc&list=PLN6LsdjEZU6JR5u7bsYz-QtTXMzZZVHss&index=6]], שתרומם נפש [[בשירים ומנגינות|https://www.youtube.com/watch?v=RVCg4xGvNKM&list=PLN6LsdjEZU6JR5u7bsYz-QtTXMzZZVHss&index=7]], [[בתופים ובמחולות|https://www.youtube.com/watch?v=YMRiTxDz2sc&list=PLN6LsdjEZU6JR5u7bsYz-QtTXMzZZVHss&index=10]]. 





<<englink [[The Altermans - the cover version]]>>
[img[pictures/greys-anatomy.jpg]]

!!![[יויו]]:


כל אחד [[פריבילגי|גבר פריבילגי]] בדרכו. ברור שאם נולדת לבנה, יפה, חתיכה, אינטליגנטית, סקסית ובתה של [[דוקטור גריי המיתולוגית|https://www.imdb.com/name/nm0123632/?ref_=ttfc_fc_cl_t42]], ובאת להתמחות - אף אחד לא יהיה אמפתי לכך שהיא לא ראתה אותך ממטר.
[[הכל מתחיל|http://www.imdb.com/title/tt0413573/]], כשדוקטור [[מרדית גריי|https://www.imdb.com/name/nm0690186/?ref_=tt_cl_t1]] מגיעה להתמחות בבית החולים "סיאטל גרייס", [[אחרי לילה סוער ומסעיר|https://www.youtube.com/watch?v=Fou8hTxSdxQ]], עם מי שמתברר אחר כך, [[כמק דרימי|https://www.imdb.com/name/nm0001131/?ref_=tt_cl_t5]] - מנתח המוח החתיך, שייהרג בסוף עונה 11 לאורך פרק שלם. השיחות האינטימיות ביותר קורות מעל פציינטים מורדמים, עם גוף חתוך. [[שונדה|http://www.imdb.com/name/nm0722274/?ref_=nv_sr_1]] יודעת להראות את מורכבות ההיררכיה האנושית, לתת בראש כשצריך, ותמיד לרגש.




<<englink [[Grey’s Anatomy ]]>>
[img[pictures/hunky-dory.jpg]]

!!![[יויו]]:

אני מת על הביטוי הזה [[האנקי דורי|https://www.merriam-webster.com/dictionary/hunky-dory]],  ואני מת על [[האנקי דורי|https://www.youtube.com/watch?v=NNfY091jDRs&list=PLfIDINzT3xf0PCHAwYIAu2JJDxYcVt42Z]] של [[דיוויד בואי]], ואני מת על דיוויד בואי שמי יותר האנקי דורי ממנו.

<<list-links filter:"[tag[האנקי דורי]]">>






<<englink [[Hunky Dory]]>>
[img[pictures/asefot.jpg]]

!!![[פיליפ]]:

הפגישה הראשונה של כולנו, היתה [[בארוחת הכריסמס המונומנטלית|ארוחת כריסמס]], שהתחוללה בדצמבר 2015, ומאז בעצם אנחנו מתראים כל הזמן. הצעירים ממש עובדים יחד, ואני מגיע או מגיח לארוחות משפחתיות וכיו"ב.

לפני שבוע, (כלומר, למעלה משנה אחרי אותה ארוחה), זו הייתה הפעם הראשונה מאז, שיויו ביקש מכולנו לבוא, וממש כולם חוץ [[מדןדן|דןדן נסע]] שנסע, היו, כולל [[איריס|איריס הבת]], ביתה של אווה אהובתי.

יויו עמד מול כולם, ובדרכו המתנדנדת ביקש [[מפה|פה]] לעמוד קרוב אליו, וסיפר איך לפני כמה ימים העליב אותו,  כשלא לגמרי הבין את כוונתו של יויו, כשערכו את הפרק הראשון של סדרת הפורנו האינטרנטית שלו.

"זה קרה לפני חמישה ימים, [[שפגעתי|ממשיכים לדמם]] בפה, וזה לא הניח לי מאז. אני ממש מתבייש, כי ממש צעקתי עליו ודיברתי לא יפה. מצד שני, אני רק בנאדם, ובסופו של דבר קראתי לכם, כדי להגיד לכם, שכולנו כואבים וכולנו מכאיבים, וחוץ מהדברים המגניבים כאן בגנזך, אני חושב שאם רוצים באמת להשפיע, אז צריך לספר את [[הסיפורים האמיתיים|סיפורים אמיתיים]] כמו שהם, ושאין מה להתבייש בכלום, אפילו לא בהתקפי הזעם של גורה, ואני מבקש שתכתבו - לא בקטע של מרגש - כי אם בקטע של [[חשוב|Imagine]], 

כשהוא אמר את זה נזכרתי באיתן שלי, בני הצעיר, וכמה קשה לי איתו, אני הפסיכיאטר, [[הולך יחף|אני הפסיכיאטר]].

<<englink [[The first assembly]]>>





[img[pictures/haarbaa2.jpg]]

!!![[תומר]]:

מה שכובש אותי בבנין הזה שנקרא הארבעה 2, זה השעון שנמצא בצד הימני.


<<englink [[HaAarba`a 2]]>>
[img[pictures/thetidycloset.jpg]]


<<englink [[The tidy closet]]>>
[img[pictures/harry-dean-stanton.jpg]]

!!![[יויו]]:

[[אתמול|https://www.theguardian.com/film/2017/sep/15/harry-dean-stanton-actor-dies-paris-texas-alien-repo-man]] הלך לעולמו [[הארי דין סטנטון|http://www.imdb.com/name/nm0001765/]], שבשבילי הוא היה, יותר מכל, טראוויס, [[מפריז-טקסס|http://www.imdb.com/title/tt0087884/?ref_=nmbio_mbio]].

<<englink [[Harry Dean Stanton]]>>
[img[pictures/barista.jpg]]

!!![[תומר]]:

בגטו הבועתי, זה ששמו יצא למרחקים כמי שתושביו ההזויים ויפי הנפש, יושבים ומלהגים ימים כלילות בבתי הקפה את ליהוגיהם השמאלניים והדקדנטיים, האצילות מחייבת - [[ובריסטות|https://he.wikipedia.org/wiki/%D7%91%D7%A8%D7%99%D7%A1%D7%98%D7%94]] רבות ורבים טובות וטובים מכינים לנו את הקפה במלוא הרצינות הניכרת במבטם המרוכז בחלב בעת הערבוב והמזיגה, במנח הגוף ובשקט עבודתם.

(צולם [[בלחמים|לחמים]])




<<englink [[The baristas here]]>>
[img[pictures/thebartender.jpg]]

גורה - הצעירה בבנות, היא ברמנית שמג'אנגלת מלים ומשקאות, לרוב מצליחה לא לעורר התנגדויות למרות שבהתחלה טועים לחשוב שהיא אנטיפטית/ עצבנית/סנובית. יש לה זכרון פנומנלי. 

תחביבים: [[שואה]], כדורגל, פתרונות סופיים, וכלי רכב בכלל עם עדיפות לארבע על ארבע.

בעלת טנדר פורד ירוק וישן. (מכונה הקטנה)

<<englink [[The bartender]]>>
[img[pictures/hubermanst.jpg]]

!!![[אירי]]:

כמה כיף בגטו של [[תומר]] אליו באתי לביקור. יצאתי איתו ועם [[אימא של ג'אזז]] לסיבוב, וראיתי את הגג [[מהמסיבה ההיא|מחפשת את אירי]]. ביקרנו גם את [[דליה, המורה לאלכסנדר|החדר של דליה]] ועוד ועוד ועוד והייתי ועודני שורקת בגיל.



<<englink [[The roof in Huberman st.]]>>


[img[pictures/haguf-mitadken.jpg]]

!!![[אירי]]:

כשהייתי בת 11 לקחתי איתי מאושרת, את המצלמה שקיבלתי מסבתי וסבי ליום ההולדת, לטיול בית ספרי [[לכרמל|https://he.wikipedia.org/wiki/%D7%94%D7%9B%D7%A8%D7%9E%D7%9C]]. בין השאר ביקרנו באתר מלא האפיל - [[נחל הקישון|https://he.wikipedia.org/wiki/%D7%A0%D7%97%D7%9C_%D7%A7%D7%99%D7%A9%D7%95%D7%9F]]. נראה היה לי יפה מרחוק [[כל הארובות|https://he.wikipedia.org/wiki/%D7%A4%D7%A8%D7%A9%D7%AA_%D7%94%D7%A7%D7%99%D7%A9%D7%95%D7%9F]]. מה התאכזבתי כשהתמונות הגיעו מהפיתוח וגיליתי, שלא הבנתי, שהמצלמה לא מסננת, לא מתעלמת מהגדר שעומדת בינה ובין הארובות המרהיבות, ואני כן. מכאן כבר התחלתי לשים לב, והעין התחילה ללמוד לדעת מה לא ייצטלם טוב. הגוף התעדכן. צילום אומנם לא הפך לתחביב שלי, אך אני ממשיכה להתעניין בגופינו החכם, ואפשר לשפר את היכולות והחושים שלו כל הזמן, מה שנקרא [[באלכסנדרונית|שיטת אלכסנדר]] - למידה. אפשר, למשל, ללמד את [[בלוטות הטעם|אבקות]], עד שאתה הופך [[פיינשמעקר|ארוחת ראש השנה]] כדבעי.


<<englink [[The body updates]]>>
[img[pictures/hagesher.jpg]]

!!![[יויו]]:

אל תגיד [[הגשר|http://www.imdb.com/title/tt1733785/]], תגיד [[סאגה נורן|https://en.wikipedia.org/wiki/Saga_Nor%C3%A9n]].

<<englink [[The Bridge]]>>

[img[pictures/hadod-haamiti.jpg]]

!!![[יויו]]:

כש[[הדוד|https://zzzen.com/]], שיש לו מה להגיד, הגיע אלינו, כל עניין [[האתר|האחיות כהן]] התחיל להסתדר במקום. 



<<englink [[The real Dod]]>>
[img[pictures/hadeshe.jpg]]

[[אימא של ג'אזז]]:

הדשא אחרי גשם, ירוק ירוק.


<<englink [[The Grass]]>>



[img[pictures/hadeshe-shel-hashachen.jpg]]

!!![[גורה]]:

בפעם האחרונה שביקרנו את אבא צילמתי את [[הדשא של השכן|https://www.youtube.com/watch?v=bZcY6gBZcMo]].



<<englink [[The neighbor`s grass]]>>
[img[pictures/the-hostel.jpg]]

!!![[גורה]]:

ההוסטל נמצא בקומה הרביעית של [[געזונטהייטס]], ופתחו נמצא מול פתח מעלית הבניין.

המחירים בו סבירים, והוא כולל עשרה חדרים קטנים ממש, הכוללים חלל זעיר ובו המקלחון מעל האסלה.

במרכז ההוסטל  "סלון" נחמד מלא בספות  וכורסאות ומסכי טלוויזיה ורמקולים ממנו יוצא מטבח.




<<englink [[The Hostel]]>>
[img[pictures/bamekarer.jpg]]

!!![[ז'נבייב]]:

במקרר - למעלה זה כל מה שמתוק, ארוז, ניטרלי - כמו למשל - יוגורטים, חמאה, עוגה, ריבות, גבינות.

ככל שיורדים במדפים, זה הולך ונהיה פחות נעים. ירקות, תבשילים, בשר - למרות טעמם הטעים.

כי זה לא נורא אם נשפך קצת רוטב פירות יער על הבשר, אבל זה בלתי הפיך, אם הרוטב של הבשר נשפך על העוגות.

<<englink [[The hierarchy in the refrigerator]]>>
[img[pictures/hemshech-cochav.jpg]]

!!![[גורה]]:

באמת אחרי שאוה סיימה לכתוב את [[כוכב|כוכב המשאלות בעל תשע הצלעות]] היא העבירה לשתינו את המסמך עם הטקסט - ושתינו במקביל התחלנו לכתוב, אבל אז התחלנו את האתר של האחיות, ואני התחלתי לצייר, וקרו המון דברים, וכל מה שרצינו להגיד נכנס לכאן, כלומר [[כאן|האחיות כהן]] ההמשך.


<<englink [[Wishing star extension]]>>
[img[pictures/holechet-al-chevel.jpg]]

!!![[אנג'ליק]]:

אני מאוזנת בערך כמו [[הולך על חבל|https://en.wikipedia.org/wiki/Philippe_Petit]], שמתוח בין בניינים גבוהים. כל הזמן צריכה להיות זהירה לא ליפול, לדכאון, לחוסר רצון, לכעס, לרחמים עצמיים. כשאני על הקצה של הכסף, הזעם שלי גובר. אני יכולה מרגע היקיצה בבוקר, להיזכר [[במכונה|אימא מהאגדות]] ששיגרה אותי לעולם הזה, כאילו מדובר במקרה רנדומלי, ולסנן כל מיני מילים ומשפטים לעברה.

מאז שהכרתי את [[אלפרד]] וחבורתו שהפכה גם [[לחבורתי|אחות כהן]], החיים כיף. יש לי הרבה יותר עבודה וחברים, ואם אני נתקעת, יש לי ממי לבקש.

ועדיין, יש ימים בהם אני כל כך מעורערת, אולי זה [[כוחו של הרגל|https://www.youtube.com/watch?v=AAyqbDvsp04]].



<<englink [[Tightrope walker]]>>
[img[pictures/hora.jpg]]

!!![[אירי]]:

את [[ההורה|https://en.wikipedia.org/wiki/Hora_(dance)]] רוקדים על קו [[המעגל|https://en.wikipedia.org/wiki/Circle_dance]].

"במעגל - אין ראשון ואין אחרון", הוא משפט שאני זוכרת ששמעתי פעם, אך לא מצאתי לו סימוכין.

<<englink [[Hora]]>>
[img[pictures/hormonim.jpg]]

!!![[אווה|אווה כהן]]:

כן, כשאנחנו ילדות אנחנו נכנסות [[בפייד אין|https://he.wikipedia.org/wiki/%D7%94%D7%AA%D7%91%D7%92%D7%A8%D7%95%D7%AA_%D7%9E%D7%99%D7%A0%D7%99%D7%AA]] שאורך כמה שנים, למעגל ההורמונלי עד הבשלות ללדת. [[הורמונים|https://he.wikipedia.org/wiki/%D7%94%D7%95%D7%A8%D7%9E%D7%95%D7%9F]] ששמם הכללי הוא [[אסטרוגן|https://he.wikipedia.org/wiki/%D7%90%D7%A1%D7%98%D7%A8%D7%95%D7%92%D7%9F]] משתתפים בפעילויות שונות של הגוף ומוציאים אותנו מדעתינו בלי שידענו. אחר כך לאורך 30 שנה בערך, אם צריך או לא, [[אנחנו ממשיכות|https://he.wikipedia.org/wiki/%D7%94%D7%9E%D7%97%D7%96%D7%95%D7%A8_%D7%94%D7%97%D7%95%D7%93%D7%A9%D7%99]] לבייץ, להיות לפני מחזור של גלי כאב, עייפות, מצבי רוח, חוסר סבלנות ועוד, עד שמתחיל [[הפייד אאוט|https://he.wikipedia.org/wiki/%D7%92%D7%99%D7%9C_%D7%94%D7%9E%D7%A2%D7%91%D7%A8_%D7%90%D7%A6%D7%9C_%D7%A0%D7%A9%D7%99%D7%9D]], ששיאו בהפסקת המחזור, גלי חום, מצבי רוח, הזקנה הקופצת, העור המתקמט, כאבים ועוד אבל יש תמורה - אין יותר מחזור חודשי ויש תקווה שכל המהומה הזו תיפסק, ונחזור להיות כמו שהיינו כשהיינו בנות שמונה.


<<englink [[Hormones]]>>
[img[pictures/dalya.jpg]]

!!![[תומר]]:

זה החדר של דליה, המורה הנפלאה שלי [[לאלכסנדר|שיטת אלכסנדר]], אליה אני מגיע מידי שבוע לשיעור. אנחנו נכנסים לחדר לא לפני שישבנו ודיברנו ליד שולחן האוכל, שנמצא בין המטבח לסלון עם החלונות הרחבים מולם עומדת שורת ברושים. אי של שקט בתוך הכל. אחר כך על הכיסא, בזמן שדליה מכוונת אותי ומדברת אלי, אני עוצר, נושם, שולח בחיבור, מחדש את המבט כשיונה לבנה נוחתת על החלון שמולי. "ראית את זה?", היא שואלת אותי. "כן", אני עונה לה, ואני שוב קצת אחר ומלא [[צליל חדש|https://www.youtube.com/watch?v=oDBl0aqrl6Q]].






<<englink [[Dalya`s room]]>>
[img[pictures/hachaim-ze-lo.jpg]]

!!![[גורה]]:

החיים זה לא דיבורים, זה מעשים.

ולא שאין מקום, חלילה, לדיבורים, אך בסופו של דבר, אם אתה אומר: "אני מבטיח שאני לא אצעק יותר, ולא אאיים", אז במינימום, אתה מוכרח להשתפר.

דןדן המתוק, [[שנסע|דןדן נסע]], אכל ממני כל-כך הרבה חרא של עצבים, שלא קשורים אליו. גם שקשורים אליו זה לא בסדר.

הוא כל-כך השתדל להיות בסדר. הפסיביות שלו מרתיחה אותי. הוא מת עלינו, אבל הפעלתנות שלנו גדולה עליו. [[דניאל]] אומר, שיש לו "אותה האנרגיה" כמו זו שלנו, אבל שהוא מאותגר מבחינה חריצותית, ושכל מה שבא לו זה לא לעשות כלום, ורק להתמסטל. כאילו שאני לא מכירה את זה.

<<englink [[Life is not About Talking]]>>
[img[pictures/hachaim-noadoo.gif]]

(את הgif עשה [[הדוד|הדוד האמיתי]])


!!![[אלפרד]]:

אלמלא נישא אבי [[לאמי|מריאן]] הכל היה נראה אחרת, אך לא כך קרה.

[[אבי|ג'וזף אברואה]] ואני שוחחנו לא מעט על הדברים, ואני כבר יודע יותר ממה שידעתי כילד, שאימו יום אחד עברה לגור במדינה אחרת עם גבר אחר, והותירה אותו עם אביו האובד ואחותו הרשעה.

אבא היה נפלא תמיד וכשרוני, אך מעולם לא חש ראוי לאף אישה. נשים רבות נמשכו אליו ועדיין - בכל פעם שהחל לצאת עם אישה, כמו זיקית, היה מתאים עצמו אליה, מעניק לה את כל כולו עד שזה היה נגמר.

איתי היה לו קל. אני, כמוהו, התנהגתי למופת. זאת [[אחותי|דפני אברואה]] שהייתה ממררת את החיים לאבא ונשותיו המתחלפות.

אבא טיפל בנו במסירות, את רוב עבודתו עשה מהבית. הוא כתב מאמרי דעה לעיתונים מרכזיים, לימד פעמיים בשבוע בשעות הערב. הייתה לנו מנקה שגם כיבסה, והוא היה מבשל.

הייתי תלמיד טוב והתנהגתי יפה עד כיתה ט'. בכיתה ט' הכרתי את מנואל. מנואל היה ילד יחיד לאם חד הורית, שעבדה כמנהלת סניף בנק. כבר ביום הראשון להכרותנו הוא הזמין אותי לביתו שעמד לרשותנו תמיד. הבית היה יפה וגדול, המקרר היה מלא באוכל טעים אותו הכינה מרינה, אישה חביבה שחיכתה למנואל עד שיבוא, ראתה שהוא אוכל כמו שצריך והלכה.

עם מנואל התחלתי [[לעשן|פעם]] מריחואנה על בסיס יומי ולהפסיק להשקיע בלימודים. 



<<list-links filter:"[tag[החיים נועדו למי שלא יכול להתמודד עם סמים]]">>


<<englink [[Life is for those who can't deal with drugs]]>>






[img[pictures/ourshop.jpg]]




<<englink [[Our shop]]>>
[img[pictures/shesatinthelivingroom.jpg]]

[[אימא של ג'אזז]]:

בסוף התיכון הגיע למושבה מורה לדרמה, ואחותי ואני הצטרפנו לחוג שפתח. באחד התרגילים נתבקשנו ללכת בחדר, ולהגיד משפט שמזכיר לנו את אימא שלנו. אני לא זוכרת מה היה המשפט שאני אמרתי. אבל אני זוכרת את המשפט שאחותי אמרה: "היא ישבה בסלון ועישנה סיגריה".



<<englink [[She sat in the living room and smoked a cigarette]]>>
[img[pictures/birthay.jpg]]

!!![[אימא של ג'אזז]]:

היום לפני 55 שנים נולדתי. בחצות האחד במאי 1966, תאריך אהוב עלי. ולאחר שחודשיים לא ציירתי אף ציור, בלי הרבה מאמץ קרה, שצילמתי את הפרחים [[שגיא|מהמרפסת המזרחית של גיא]] הביא לי, והמטבח נראה לי פתאום יפה.



<<englink [[Birthday]]>>
[img[pictures/thecounselor.jpg]]

!!![[גורה]]:

סיגלית היא לא סתם יועצת - היא יועצת רוחנית.
היא קיי מלידה, שמה המלא הוא סיגלית קלמן.  

היא רזה מאוד, ובבעלותה חתול מצרי שנמצא אתה כל הזמן. היא נטשה קריירה בעסקי הנדל"ן שלא הייתה לטובת "האור".  גרושה גועל נפש.



<<englink [[The counselor]]>>

[img[pictures/histeriyot.jpg]]

!!![[אירי וגורה]]:

אנחנו מדמיינות את פניו של [[היפוקרטס|https://he.wikipedia.org/wiki/%D7%94%D7%99%D7%A4%D7%95%D7%A7%D7%A8%D7%98%D7%A1]], תוך שידו נעה בתנועת ביטול, אומר לתלמידיו, שזה עתה נשבעו בשבועתו:

//עזבו אותן אלה, סתם היסטריות.
//

כנראה שאנחנו לא סתם היסטריות, שכן רחמים שוכנים אצלינו בבטנים.

כן אתם -  מכונות הרג, חיסול וביטול כל מה שלא בא לכם טוב בעיניים - [[נאמר לכם שוב|הכפר הגלובלי]] ושוב ושוב - לא עוד!

<<englink [[Hysterical]]>>

[img[pictures/hacachol-cvar-can.jpg]]

!!![[יויו]]:

אני מחלק את החיים שלי לשלושה: עד [[אלה|כוכב המשאלות 04]], אחרי אלה ופריז. עד אלה הייתי תם עם פחד חבוי, אחרי אלה הייתי תם ומודע לזה שאני מפחד. בפריז זה אחרת.


זה לא שאין יותר פחד, קושי, צער, עצב וכעס. הלב כואב לא פעם - [[אבל הכחול כבר כאן|https://www.youtube.com/watch?v=eBdKX3qfyQk]].


<<englink [[The blue is already here]]>>
[img[pictures/hacfar-haglobaly.jpg]]

!!![[אירי]] [[וגורה|גורה]]:

במהלך הזמן דיברנו לא מעט על הכפר הגלובלי בפרט ועל [[האנושות בכללותה|כשהיו בתי קולנוע]]. 
שתינו ראינו, כמו רבים אחרים, את אווילותה של האנושות. 
ייתכן וקהלת צדק, והבל הבלים הכול הבל ומה יתרון לכל עמלנו, אך כל הטמבלים מרוב מדינות העולם ובמיוחד המגה אימפריאליסטים חובבי הלוחמה שביניהם, טרם הבינו דבר פעוט. הם טרם הבינו כי כדורנו החביב לו קראנו ארץ, הנו אולי בכלל כדור נידח בפאתי גלקסיה רחוקה, שכף רגל, מה שנקרא בפינו חייזר, רק החלה לדרוך בו בעשרות או באלפים האחרונים. אנחנו פרימיטיביים לחלוטין בכל דבר ומובן, אך טיפשותנו הבלתי נדלית והצורך לכבוש גרמו לנו לחשוב שאנחנו משהו. ובכן, אנו חושבות שאנחנו לא משהו.

ומאחר שככה אנו חושבות, וכמו כן גם במשנת האחיות כהן מובעת שאיפה לחברה מטריארכלית - שתינו רוצות לפנות אליכם הגברים, ובנימוס, ולומר לכם שאולי הגיעה העת לפנות לנו הנשים את מלאכת הניהול, שכן כפי שהדברים נראים כעת אפשר להכריז עליכם כפושטי רגל שזקוקים לאפוטרופסות.

באומרנו נשים אין אנו מכוונות למגדר כזה או אחר, כי אם מדברות על אלה המקבלות, הנכבשות.

ובזאת תמו דברינו לערב זה.


<<list-links filter:"[tag[הכפר הגלובלי]]">>


<<englink [[The global village]]>>
[img[pictures/dAslRkCtpSF1J4AA.jpg]]

!!![[גורה]]:

האתר הזה שלנו, [[שיויו|יויו]], אחי המתוק פתח, הפך להיות [[לתחנת הניקוז|שותה עם גורה]] שלי.

עד אליו השתדלתי לכתוב סיפורים מסודרים.

היה צריך [[שדןדן יסע|דןדן נסע]], כדי שאשב ואתעל את דכאוני ועצבוני וכעסיי, שבכל מקרה כבר יש מהם בתוכי די והותר. הדבר הכי נחמד שקרה מכל זה, הוא, שבגלל שאני תמיד הייתי ועדת קישוט של הדירה, ומאחר שלא התחשק לי לכתוב זכויות יוצרים, התחלתי לעטר.

ציירתי את [[מכונת הכביסה|כביסה]] והמייבש, כי אחד הדברים שהכי הרגיעו את דןדן היה להפעיל אותם.

לפני שהוא נסע, כמעט אף פעם לא הייתה [[כאן|כוכב המשאלות 01]] כביסה לכבס, כי [[דןדן]] תמיד חש לעשותה.

אז חוץ מהטיפול השבועי אצל [[רוז'ה]], עבודות בית ובילוי עם [[אחיותי|אחות כהן]], אני מטביעה יגוני כאן.

ומודה על כך [[מזוטו לבי|מרינה זוטו]].




<<englink [[Me writing]]>>
[img[pictures/corona.jpg]]

!!![[תומר]]:

זה [[מה שמותר לעשות|https://www.youtube.com/watch?v=vjWebKavfuI&list=RDvjWebKavfuI&start_radio=1]] בזמן קורונה, לשבת עם הטלפון החכם, הטלוויזיה דולקת עם חדשות עליה כי אשרי אדם מפחד תמיד, הטאבלט פתוח עם נטפליקס גם אם הלכת למטבח לאכול משהו. 


<<list-links filter:"[tag[הלכות קורונה]]">>



<<englink [[Corona beings]]>>

[img[pictures/hamigdalor.jpg]]

!!![[תומר]]:

בימי החורף האלה, בשעות אחר הצהריים, אני לא פעם צועד עם [[ננו הקטנה|ננו שלי ואני]]  ללבונטין 1 ואנחנו נכנסים [[למגדלור|https://www.hamigdalor.co.il/]] מלאת הפיתויים.


<<englink [[Hamigdalor]]>>
[img[pictures/genevieve-food.jpg]]

!!![[ז'נבייב]]:

אני לא שפית ואין לי יומרה כזו. אני בסך הכל בת למהגרים ממרוקו, שניסתה להיות ילדה טובה, והלכה ולמדה ראיית חשבון, ונישאה לגבר שנראה היה ראוי, והפכה לאם לשתי בנות. אביה נפטר, היא התגרשה ובעזרת אימה היקרה פתחה את [[הקוסקוס]].

אני אוהבת להכין אוכל פשוט מהבחינה הזו, שהוא לא מורכב, ואני אוהבת גם לאכול בחוץ.

לחם,חמאת שום ועשבי תיבול, גבינות, סלט, ירקות קלויים, ירקות צרובים, איזה דרניק וקפה לקינוח - בעיני זה הכי.

<<list-links filter:"[tag[המטבח על פי ז'נבייב]]">>



<<englink [[The kitchen by Genevieve]]>>


[img[pictures/hamitbach-shel-hanachala.jpg]]

!!![[אווה]]:

המטבח של הנחלה היה ענקי.

היה לו חלל מרכזי משופע שולחנות עבודה וכיורים ומקררים, ופינת ישיבה מאווררת בה עישנו ואכלו ואותו ניסיתי לצייר כאן.

מה שלא רואים בציור הוא את כל הצד השמאלי של אותו חלל שכולל שני מערבלי מזון ומעבד מזון אחד גדול, כיריים גדולים עם שמונה להבות, פלנצ'ה רחבה ושני תנורי אפייה גדולים.

בצד הימני יש חדר קירור, מקפיא ושלושה מחסנים קטנים בהם מסודרים חומרי הגלם.



<<englink [[The estate`s kitchen]]>>



[img[pictures/talskitchen.jpg]]

!!![[אימא של ג'אזז]]:

ביקשתי מטל, חברתי היפה, שתשלח לי כמה צילומי רוחב מהמטבח היפה שלה, כך [[שגורה|גורה]] תבחר ותצייר. אינני מאוכזבת מבחירתה של גורה, אבל זו רק זווית אחת מתוך מטבח מלא פינות חמד ושכיות חמדה, שהוא מובלעת בתוך בית נפלא שנמצא בתוך חצר גן עדן בכפר בו נולדנו, ושם צילמתי חלק מהקליפ שעשיתי עם [[ג'אזז|Jazz]] [[וגאנג|https://www.youtube.com/watch?v=aKlvDbL4YjU&list=RDaKlvDbL4YjU&start_radio=1&t=0]]   הילדים המופלאים, קצת אחרי שעזבנו. 

<<englink [[Tal's Kitchen]]>>
[img[pictures/mykitchen.jpg]]

[[אימא של ג'אזז]]:

כך נראה המטבח הנוכחי שלנו בלילה. חשוך ורק שרשרת אורות הלד שמודבקת לתחתית הארונות מאירה אותו. בקרוב אלחץ על התמי וכשהמים יהיו חמים אכין חליטת לילה נטולת קופאין וסוכר כיאה לגילי. מי היה מאמין.


<<englink [[My kitchen]]>>

[img[pictures/themasseur.jpg]]


!!![[גורה]]:

זואי. המטפלת השמחה-עצובה. ראש קופירייטרי, טיפולית, דואגת לכל, יכולה להתגייס לתחמנויות, יכולת משחק, מסאז'יסטית, לוק תמים, חרוצה, מתכננת.


<<englink [[The Masseur]]>>
[img[pictures/hamaabada.jpg]]

''כאן היינו (2002)''

!!![[גורה]]:

[[כשהיינו כאן|בחוות החיות]], הדשא שלפני הבית היה גדול, והגיע עד לירידה לנחל. בסתיו ובחורף הוא היה  משופע פרחים. נרקיסים, רקפות, כלניות.

למעשה יויו התגורר כאן בתקופה שהתחבר [[למקלדת|מקלדת]] והפך [[לאווה כהן|אווה]], ואני הייתי על תקן האחות, שמבקרת לעתים תכופות.

כך כתבנו אז:

[[האחיות כהן]] הינה קבוצה יצירתית, שעל פי הגדרתה את עצמה לא כל מי שחבר בה חייב לעסוק ביצירה לפרנסתו או באופן קבוע, אלא רואה את היצירתיות כחלק מחיי היומיום וכעניין הכרחית.
כמו כן כל מי שמשתייכת לאחיות הינה אחות כהן גם אם מינה הוא זכר.

האחיות החלו פעילותן  בעיתות מצוקה, את הדמויות כתבו בניסיון לרפא עצמן ממפגשים אנושיים מכאיבים, ולשמח את ליבן בכל דרך אפשרית, אגב צפייה בשידורים חוזרים של [[אודטה|https://he.wikipedia.org/wiki/%D7%90%D7%95%D7%93%D7%98%D7%94_%D7%A9%D7%95%D7%95%D7%A8%D7%A5]], כאשר בבסיס יצירתן עומד המשפט של האחות הסופר [[ג'ון אירווינג]]: "החיים רציניים אך האומנות היא תענוג".

שמה ניתן לה מתוך רכישת כבוד ואהבה  לאחים היוצרים [[איתן וג'ואל כהן]] – שכותבים, מביימים ואף עורכים את סרטיהם. היא נוסדה על ידי נשים [[בנות דת משה|https://he.wikipedia.org/wiki/%D7%A9%D7%91%D7%98%D7%99_%D7%99%D7%A9%D7%A8%D7%90%D7%9C]], עיוורות בצבעי כחול ולבן. 

זוהי קבוצה הולכת ומתרחבת של אנשים, שהוקמה כסוג של בדיחה, וממשיכה להתקיים ברצינות תהומית, בהומור  ובענווה – בחדרים בקיבוצים, בדירות עירוניות, בבתי ההורים ואף מעבר ל[[ים טתיס]].

[[האחיות בוחרות לעצמן אחים ללא מורא ואף ללא ידיעתם|אחיות חוץ]]. 
כבר בטקסט הכתוב לעיל אפשר לראות איך בחרו לעצמן את האח הסופר והאחים הבימאים, וכמותן יש עוד רבים (מצוינים ומשובחים), שיצוינו בהמשך, וכן ילכו ויתווספו. 

על סדר יומן : [[(ולעולם לא לפני האוכל)|חיות אוכל]] 

* [[חזרה לעולם מטריארכלי|חשיפה לצפון]]
* עולם ללא דתות ( מתוך התפיסה האומרת כי דת הוא עניין פרסונאלית, בו כל אחת בוחר את הטקסים שלה, אם בכלל, ולפי הבנתו) .
* הרחבת המיתולוגיות המשתלבות במיתולוגיות הקיימות.
*גלגולים ( כחלק מהרחבת המיתולוגיות האישיות והכלליות , ומתוך הרצון למצוא סיפורים מחלימים) .

האחיות דוברות עברית ממוקססת, כנהוג בעידן זה.


כעת (השנה היא 2016 ואנחנו בפריז), המעבדה/ מתקן השיגור, נמצאת/א בחדרו של יויו [[שבדירה|כוכב המשאלות 01]], ומלבד שתינו נמצאות איתנו שאר האחיות.

[[loving you|https://www.youtube.com/watch?v=kE0pwJ5PMDg]]

<<englink [[The lab]]>>
[img[pictures/thecamera.jpg]]

!!![[גורה]]:

המצלמה היא הסטורי טלר של [[HH]].


<<englink [[The Camera]]>>
[img[pictures/stalinsbasement.jpg]]



בקומה מינוס 1 של [[געזונטהייטס]] מתגורר [[סטלין]] השרת. כאן נמצאים כל כלי העבודה ואמצעי הייצור שלו: ממטאטאים ומצלמות אבטחה רזרביות ועד ל[[שָה נוּאָר]], השרת שמארח את
ה[[וויקי|https://he.wikipedia.org/wiki/%D7%95%D7%99%D7%A7%D7%99]]
של [[האחיות כהן]].





<<englink [[Stalin's basement]]>>
[img[pictures/hameshek-shelanoo.jpg]]

!!![[אלפרד]]:

במשק האוטרקי שלנו, העצמאות העיקרית היא. שאיננו זקוקים לאף אדם נוסף כי יש לנו זה את זה, ואנחנו צוות. אני סומך על כל אחד ואחת מחברי [[לאחיות כהן|האחיות כהן]], ולראשונה אני לא חושש מדבר, ואני גם יודע, [[שאבי|ג'וזף אברואה]]  כמוני, כבר לא דואג. 

שנינו יודעים, שגם עם [[אחותי|דפני אברואה]] תתחרבן לגמרי, יש לנו גב, שהופך אותנו לחלק ממשק אוטרקי חברתית, אנושית, נפשית. 

ואלה, לפני שמניתי, את היכולת לשפץ דירות, לשפץ רהיטים, [[לבשל|שניצל]], לאפות,יש לנו את המסעדה, יש לנו מטפלים בכמה אלטרנטיבות ועד כדי כדורים פסיכיאטריים.יש לנו פובליציסט, יש לנו עורך סאונד, אנחנו יודעים לערוך וידאו, יש לנו כותבות, ותמיד יש צנצנת עם דובוני גומי.



<<englink [[Autarky]]>>
[img[pictures/hine-kach.jpg]]

!!!טיפים של [[סטלין]] לגבי האתר, וכל מיני סייבר-דברים


<<list-links filter:"[tag[הנה, כך]]">>


[img[pictures/sof-hanachala.jpg]]

!!![[אווה]]:

זה היה הבית שלנו [[בנחלה|כוכב המשאלות בעל תשע הצלעות]] בה גדלתי.


<<list-links filter:"[tag[הנחלה בה גדלתי]]">>


<<englink [[The estate where I grew up]]>>







[img[pictures/hasadna-shel-queng.jpg]]

!!![[יויו]]:

[[בזמן שעבר|ארוחת כריסמס]], ותוך כדי תנועה, התחלנו לעשות עבודות חוץ, כלומר, כל אחד עושה את מה שהוא רגיל לעשות, ובנוסף אנחנו עושים פרויקטים משותפים. תמיד [[לז'נבייב|הקוסקוס]] יש קדימות מבחינת עובדים.

ברובע ה-13 יש שלושה חללים ששייכים להורים של קואנג. אחד מהם משמש כמחסן של [[הסינים]] ועוד אחד הוא סדנת העבודה של קואנג. את [[שיפוץ הרהיטים|משפצים ובונים רהיטים]] שאלפרד התחיל עם [[דןדן]], הוא ממשיך עם [[קואנג]].

בזמן האחרון התחלנו לקחת פרויקטים שכוללים עיצוב. אז [[אצלנו|כוכב המשאלות 01]] נעשית כל עבודת המחשב, ואצל קואנג כל מה שמלכלך ומרעיש.




<<englink [[Queng's workshop]]>>
[img[pictures/sof-hasopranos.jpg]]

!!![[אנג'ליק]]:

במהלך השבועיים שלושה האחרונים, כל עולמי היה הסופרנוס, שבאו לי בזמן מתאים. המחשבות לא השתוללו. טוני, אימו, אשתו, [[מדו]], איי ג'יי, אנקל ג'וניור, אביו, הקולגות שלו, אחותו. הסדרה נגעה בי בכל רמה ומישור. אימא רעה, אהבה, פחד, סרטים, אוכל, נאמנות, משפחה, משפחה כגוף פוליטי, מיניות, אלימות, שוויוניות, יושר. [[הסוף נשאר פתוח|https://www.youtube.com/watch?v=rnT7nYbCSvM]]. אולי טוני חייב למות, כי מה? עדיף שישב בכלא בשארית חייו ויחזור בתשובה? עדיף שיישאר עם [[פולי|http://www.imdb.com/name/nm0802831/?ref_=ttfc_fc_cl_t7]]?

אולי - גם אם הוא מת, [[הוא מת מואר|https://www.youtube.com/watch?v=S-cbOl96RFM]] בחייק משפחתו הנפלאה. אולי הוא יוכל לעבוד בחסות המאפיונרים האמיתיים - רשויות החוק, והם יחלקו איסלמופוביה? או פשוט קסנופוביה? שכן, ראינו את מדו רצה לכוון דלת המסעדה אחרי שחנתה סוף סוף, ואת טוני מפעיל את הג'וקבוקס, מביט לדלת - ומסך שחור. גם אם הוא נורה, לא בטוח שזה היה כשהם אכלו את טבעות הבצל, למרות שמבטו האחרון בסדרה לא היה מחייך.

קשה לי להיפרד ממשפחת סופרנו. למרות שאני לא בקשר עם הורי, קרי, כביכול, [[שחררתי|טוני סופרנו]] את [[כלי הרכב|הולכת על חבל]] שהביא אותי לכאן. (בחיי שעשיתי את הפוסט הזה והפוסט על אימי [[באחיות|האחיות כהן]], לפני שראיתי את הסופרנוס).

צחקתי המון - היו רגעים שאמרתי: תכלס, זו קומדיית מצבים על בעיות משקל.

האיש הגדול הזה בכל מובן שהוא, בסופו של דבר (גם) רוצח, שאנחנו מאוהבים בו. איזכורי הנאציזם, העיסוק במקור הרשע, הזעם, האימפולסיביות, הדכאון.

הבוקר אני חושבת, בכל אחד מאיתנו [[שוכן מאפיונר קטן ומסוכן, נפוליאון החזיר, ( בעיקר בדקה 3:40 של הוידאו ואילך), שלא רואה בעיניים, גם כשהוא מלא בתובנות|https://www.youtube.com/watch?v=4zFM00-rOMo]], ושהסוף הסגור הוא, [[שג'יימס גנדולפיני|ג'יימס גנדולפיני]] האהוב כבר לא איתנו.

<<englink [[An open ending]]>>
[img[pictures/the-sopranos.jpg]]

!!![[אנג'ליק]]:

את [[הסופרנוס|http://www.imdb.com/title/tt0141842/]] של [[דיוויד צ'ייס]] התחלתי לראות בצורה מסודרת רק לפני כמה ימים, ולפני כמה דקות סיימתי לראות את העונה הראשונה.

כשדיברו על אימו - שדרשה בחיסולו, קראה [[דוקטור מלפי|http://www.imdb.com/title/tt0141842/characters/nm0000966?ref_=ttfc_fc_cl_t2]] בפניו של [[טוני|ג'יימס גנדולפיני]] מתוך לקסיקון פסיכולוגי, הגדרה להפרעת אישיות גבולית - וקלטתי איך הורי, הם כאילו שטוני סופרנו נישא [[לאימו|http://www.imdb.com/title/tt0141842/characters/nm0545408?ref_=ttfc_fc_cl_t25]].

[[כשארטי מכוון רובה לטוני|https://www.youtube.com/watch?v=VawiILj2w3M&feature=youtu.be]] - לאחר שהבין שטוני שרף את המסעדה הקודמת שלו - טוני מצליח לעצור אותו, כשנשבע באימא שלו. ארטי נסוג, כשעל פניו הבעת [[כן בטח|https://www.youtube.com/watch?v=C6iAzyhm0p0]]. הוא משתולל במידה, נכנס לאוטו, ונוסע.


<<list-links filter:"[tag[הסופרנוס]]">>

<<englink [[The Sopranos]]>>


[img[pictures/belovedstereo.jpg]]

!!![[תומר]]:

ייתכן שאני יכול להגיד כרגע בלב שלם יחסית, שמצבי הולך ומשתפר. התחושה התעצמה לאחר שהכנסתי לפני יומיים לדירתנו שהייתה נטולת סטריאו זמן מה, זוג רמקולים AR11 ופטיפון Technics, שנרכשו [[בחוד המחט|https://www.instagram.com/hodhamahat/]]. רועי חיבר אותם למגבר שהיה כאן בארון כמה שנים, ואת התקליטורים אנחנו מעבירים דרך נגן DVD שהיה לנו גם. קימבנתי את הרהיטים מבעוד מועד. הצליל מקסים. צילמתי ושלחתי [[לגורה|גורה]] שציירה.



<<englink [[Our beloved Stereo]]>>
[img[pictures/hasinim.jpg]]

!!![[גורה]]:

[[קואנג]], [[ג'ונג]], [[פה]], [[צ'נג]] ו[[צ'ן]].

חמישה גברים בתחילת שנות השלושים לחייהם. חמישתם נולדו למשפחות מהגרים שהגיעו לפריז כקבוצה בתחילת שנות העשרים לחייהם [[מהאנגג'ואו|https://he.wikipedia.org/wiki/%D7%94%D7%90%D7%A0%D7%92%D7%92%27%D7%95%D7%90%D7%95]].


הם (חמישתם), גדלו יחדיו ברובע ה-17, למדו יחדיו מהגן ועד סוף התיכון, חגגו יחדיו את כל החגים כולל את [[כריסמס האחרון|ארוחת כריסמס]].

את מלאכות הבנייה למדו מאבותיהם, וכך הפכו הם,  לחבורת שיפוצניקים לעילא, שהגיעה אלינו דרך [[ז'נבייב]], דרכה הגענו [[לדירה|כוכב המשאלות 01]].

[[קואנג]] היה הראשון אליו נקשרתי, הוא זה שהסתובב איתי בתקופת השיפוצים והרכישות לדירה, אך הם כולם אחד אחד.

<<englink [[The Chinese]]>>
[img[pictures/yoyo-mesaper.jpg]]

שסופר לאווה על ידי יויו

!!![[גורה]]:

זה מה שיויו סיפר לאווה עלי, אווה כתבה [[ורני|https://he.wikipedia.org/wiki/%D7%A8%D7%9F_%D7%99%D7%92%D7%99%D7%9C]], שהוא [[אחות חוץ|אחיות חוץ]] ערך:



<<list-links filter:"[tag[הסיפור על גורה]]">>



<<englink [[Gura`s tale]]>>

[img[pictures/sarah'slivingroom.jpg]]

!!![[תומר]]:

לפעמים עולים ריחות באפי, שמרימים אותי מהכסא לבדוק אם אין, למשל, איזו דליפת גז, כמו שקרה לי השבוע, רחרחתי את הבית כולו והכל הריח כשורה, לרוב אני לא עושה את זה, אבל הפעם ירדתי לבדוק אם הכל בסדר אצל שרה הישישה שגרה קומה אחת למטה. היא הובילה אותי מיד לספה בסלון, שסגור רוב הזמן, והושיבה אותי על הספה מול למזנון והטפט שמיגנטו אותי. צילמתי ושלחתי [[לגורה|גורה]] שתצייר.


<<englink [[Sarah's living room]]>>
[img[pictures/the-wire.jpg]]

!!![[אירי]]:

על מה [[לסטר פרימן|https://www.imdb.com/name/nm0676370/?ref_=tt_cl_t9]] חושב כשהוא בונה מיניאטורות של רהיטים עתיקים? על [[האזנות סתר|https://www.imdb.com/title/tt0306414/]] כמובן.
ומה קורה עם [[דוקי|https://www.imdb.com/name/nm2369266/?ref_=ttfc_fc_cl_t32]] הילד [[הנפלא|https://www.youtube.com/watch?v=bqY7nfHBm24]] מחבורת הילדים הנפלאה של עונה ארבע? ממליצה לכם לראות גם אם יהיו רגעים בהם לבכם יישבר.


<<englink [[The Wire]]>>
[img[pictures/sifley-cafe.jpg]]

!!![[ז'נבייב]]:

בזמן האחרון נשברו לי רוב ספלי הקפה היפים שהיו לי מהפורצלן, אז קניתי כמה חדשים ואני עדיין מנסה.

הספלים מהם אנו שותים הם כמו תחפושת: 

לפעמים אני מורה ליוגה, למרות שאני לא מתה על טעם של גלזורה. לפעמים איכרה סיבירית שקיבלה סרוויס כחלק מנדוניה, ולפעמים אני גבר ספרדי עם שפם.

<<englink [[The mugs we drink from]]>>
[img[pictures/thesailor.jpg]]

!!![[גורה]]:

CJ, הקשוחה שבחבורה. ימאית, מתבודדת, חשדנית. זו שמגיעה פעם ב וקולטת הכל. בעלת חוש קומי המבוסס על כעס.



<<englink [[The Sailor]]>>
[img[pictures/hasaparit.jpg]]

!!![[גורה]]:

אנה, שמספרתה נמצאת בקומה הראשונה של [[געזונטהייטס]], והיא אישה נשואה (מאוד) הרבה שנים. היא אמא. היא מתקנת הכל, היא תחמנית, היא נשית, היא האישה האולטימטיבית, ומי שהכי מזכירה אותה היא ז'נבייב. 

ה-K סיסטרס לא סובלות אותה.




<<englink [[The Hairdresser]]>>
[img[pictures/hazevet.jpg]]

הצוות זה אנחנו המתגוררים [[בדירה|כוכב המשאלות 01]] מחודשת חוזה השכירות, כלומר [[יויו]], [[אירי]] [[וגורה|גורה]], שבשעות הפנאי שלנו  אופים, מבשלים וכותבים את המתכונים וגם.


<<list-links filter:"[tag[הצוות]]">>

<<englink [[The team]]>>




[img[pictures/hacouscous.jpg]]

!!![[אלפרד]]:

אל הקוסקוס, שזה בעצם "שה ז'נבייב" נכנסים מהדלת הראשית לפרוזדור קצר, שמשמאלו חלון ודלת המטבח, ובסופו חדר שמכיל עשרה שולחנות קטנים. 
באם פונים ממנו ימינה מגיעים למשרד או לשרותים או לחצר קטנה ומרוצפת, שבימים החמים מוסיפה עוד שבעה שולחנות למסעדה.

[[כשהיא|ז'נבייב]] נכנסה למסעדה, לפני כמה שנים, חברים שלה המליצו לה על חבורה של [[חמישה סינים|הסינים]] צעירים לשיפוץ.

נכון לעכשיו עובדים שם: [[סוניה]], [[יויו]], [[דןדן]], [[אירי]] [[ודניאל|דניאל]], אך [[גורה]] היא זו שדרכה הכרנו כולנו את [[ז'נבייב]].
גם אותי גורה לקחה [[לאכול|המטבח על פי ז'נבייב]] שם בתקופה שהיינו יחד.

את האוכל מקבלים [[בקערות קרמיקה|חומרים]], שז'נבייב אוספת, ולאחר שמסיימים אותו, נשארים רוויי נחת, ומלקקים את השפתיים משך כל היום כדי להיזכר בטעם.

בתקופה הלא ארוכה במיוחד בה [[כולנו מכירים את כולנו|האחיות כהן]], ז'נבייב [[ואבי|ג'וזף אברואה]] הפכו לזוג אוהבים, כך ש[[במשק האוטרקי שלנו|המשק האוטרקי שלנו]], לא רק שיש גם מסעדה, יש לי אימא חורגת מהסוג [[שאין באגדות|אימא מהאגדות]].



<<englink [[The Couscous]]>>





[img[pictures/gili.jpg]]

!!![[תומר]]:

את גילי הנפלא אני מכיר עוד מהתקופה שהיה סניף של [[רביבה וסיליה|https://www.revivaandcelia.co.il/]] ברחוב הארבעה, ליד [[מערכת תל אביב]]. כמה שמחתי כשגיליתי שהוא פתח את [[הקיוסק שלו|https://www.facebook.com/%D7%92%D7%99%D7%9C%D7%99-%D7%A7%D7%99%D7%95%D7%A1%D7%A7-%D7%91%D7%A8%D7%95%D7%98%D7%A9%D7%99%D7%9C%D7%93-Gilis-kiosk-1264150057010863/?ref=page_internal]] ברוטשילד 31 פינת אלנבי, שם יכינו לך קפה טעים עם מאפים טעימים של רביבה וסיליה וחיוך של טוב. אני לוקח מקיאטו כפול וממשיך [[לנוטבוק|נוטבוק]].


<<englink [[Gili's kiosk]]>>
[img[pictures/hakala.jpg]]

!!![[תומר]]:
 
באוטובוס, קו 142 [[לבת-ים|https://he.wikipedia.org/wiki/%D7%91%D7%AA_%D7%99%D7%9D]], ברמזור דרך החלון יריעה מתוחה על אזור חפירות הרכבת הקלה ועליה מילות עידוד לנו - הנוסעים שמתפתלים בדרכים החלופיות לשדרות ירושלים - דרך [[היינריך היינה|https://he.wikipedia.org/wiki/%D7%94%D7%99%D7%99%D7%A0%D7%A8%D7%99%D7%9A_%D7%94%D7%99%D7%99%D7%A0%D7%94]] [[לאד קוץ'|https://he.wikipedia.org/wiki/%D7%90%D7%93_%D7%A7%D7%95%D7%A5%27]] ובחזרה לאזור החפור בואך [[המצבה|https://www.haokets.org/wp-content/uploads/2014/05/800px-Bat-Yam-kikar-hameginim-1.jpg]], והכל נהדר.



<<englink [[The relief is down the road]]>>
[img[pictures/haklinika.jpg]]

!!![[אירי]]:

עברתי להתגורר בקליניקה בתחילת 2016.

קשה לעכל, שבחדר שאני כה אוהבת, גבר מתועב עסק בטיפול בנשים, שלא לומר היה הגניקולוג ידוע השם שלהן. 
בארוחת הקריסמס [[שמענו כולנו מפיליפ|כוכב המשאלות 21]]  על עברה הלא רחוק של דירת הפלא, שבהחלט נשמע כמו סיפור רפאים.



<<englink [[The Clinique]]>>

[img[pictures/haruki-murakami.jpg]]

!!![[יויו]]:

את הדברים הבאים כותבת מאי קסהארה, דמות שאני מאד אוהב, נערה שמזכירה את [[הולדן קולפילד|https://he.wikipedia.org/wiki/%D7%94%D7%AA%D7%A4%D7%A1%D7%9F_%D7%91%D7%A9%D7%93%D7%94_%D7%94%D7%A9%D7%99%D7%A4%D7%95%D7%9F]]:

''"נראה לי שרוב האנשים (בטח יש כמה יוצאי דופן) חושבים שהעולם (או החיים, או מה שלא יהיה) הוא מקום שבו הכל הגיוני ועקבי (או אמור להיות כזה). השיחות שלי עם השכנות שלי כאן גורמות לי לחשוב ככה. כשמשהו קורה - לא חשוב אם זה ארוע גדול שמשפיע על כל החברה או משהו קטן ואישי - אנשים מדברים על זה ואומרים, "נו טוב, בטח, זה קרה בגלל זה וזה," וברוב המקרים מי ששומע את זה מסכים ואומר, "אה, בטח, אני מבין." אבל אני פשוט לא קולטת את זה. "א' הוא ככה וככה ולכן קרה ב'". הרי זה לא מסביר שום דבר. זה כמו ששמים במיקרוגל קערה עם תערובת אינסטנט [[פודינג אורז]] ולוחצים על הכפתור, ומרימים את המכסה כשזה מצלצל – ובקערה יש פודינג אורז מוכן. אבל מה קורה בין הלחיצה על הכפתור ובין הצלצול? אי אפשר לדעת מה קורה מתחת למכסה. אולי בחשכה, כשאף אחד לא מסתכל, האינסטנט פודינג הופך למקרוני מוקרם ורק אחר כך לפודינג אורז. בגלל זה נראה לנו טבעי לקבל פודינג אורז אחרי שאנחנו שמים תערובת אינסטנט פודינג אורז במיקרו והפעמון מצלצל, אבל בעיני זו רק השערה. לי זו תהיה הקלה לגלות שלפעמים אחרי ששמים תערובת פודינג במיקרו והוא מצלצל פותחים את המכסה ומוצאים שם מקרוני מוקרם. אני מתארת לי שאחטוף מזה הלם, כמובן, אבל ודאי ארגיש גם הקלה מסוימת. בכל אופן אני מאמינה שלא אהיה כל כך מוטרדת מזה, כי התחושה שלי תהיה שזה איכשהו הרבה יותר מציאותי."''
"קורות הציפור המכאנית", עמודים 429-430, [[הרוקי מורקמי|https://he.wikipedia.org/wiki/%D7%94%D7%A8%D7%95%D7%A7%D7%99_%D7%9E%D7%95%D7%A8%D7%A7%D7%9E%D7%99]], זמורה ביתן, 2005.



<<englink [[Haruki Murakami]]>>
[img[pictures/requiem-faure.jpg]]

אני יושבת כעת על המדרגות שלמרגלות המונמרטר. המחשב הנייד מונח על ברכיי, ואוזניות סוני גדולות ולבנות, דרכן אני שומעת את הרקוויאם של [[faure|https://en.wikipedia.org/wiki/Requiem_(Faur%C3%A9)]] שאני כל כך אוהבת, מכסות את אוזני.

אני מאזינה לביצוע של [[Choir and Symphony Orchestra of the Ryszard Bukowski Music School in Wrocław, Poland|https://www.afit.edu.pl/]]. אני מעדיפה את [[הביצוע הזה|https://www.youtube.com/watch?v=wEgAWjXIxFA]]  גם כשאיני מתבוננת בפניהם היפים והקשובים של חברי התזמורת והמקהלה, ובנברשות התלויות מעל לראשיהם. עוד לא הצלחתי להבין אם תלויות שם שש או שאולי שבע נברשות, שהיו יכולות להתאים לסט של [[חתונת רפאים|http://www.imdb.com/title/tt0121164/]]. הן מוצאות חן בעיני. הן שונות זו מזו בגודל ובצורה אך הן מאותה המשפחה. 

גם הסטודנטית השביעית משמאל בשורת הבנות של המקהלה מוצאת חן בעיני. עלמה יפהפייה שהייתה יכולה בקלות להיות מלוהקת לאחת מההפקות על פי אחד מספריה של ג'יין אוסטין. עיניה נעות בין מחברת הטקסט שמונחת בידיה לבין המנצח ששר בלי קול. אני נעה בין מסמך הוורד לווידאו, מידי פעם מביטה בנוף העיר. קר, אך אני לבושה היטב. הרוח הקרה מוסיפה לדרמה שבתמונה בה אני נמצאת כעת. אצבעותיו הארוכות של עלם האורגן נעות ברכות על הקלידים, ואני חושבת על כך, שאין לדעת מה מסתתר מאחורי הפנים התמימים והיפים הללו של העלמה השרה את המוסיקה של [[פורה המיוסר|גבריאל פורה]]. צווארה הארוך וגופה נראים ככלי שרת זך לקולה, שערה החלק והבהיר אסוף לאחור ברישול, ושפתי הלב שלה שרות In Paradisum. רגע הריחוף שלאחר השחרור. עיניה הירוקות נפערות וחיוך צדי עולה על שפתיה ואני שרה: בגן עדן, ילד מתוק שלי, הגעת, אלי, לידי, לחיקי, לבי, כאן בקודש, [[גולה|גלות]] תמיד. סגרתי את חלון היו טיוב לפני שהחלו מחיאות הכפיים, והסרתי מעלי את האוזניות. צומת סואן מחשבות המה בראשי, ויותר מכול נמלאתי עצב מכך, שמה שראיתי כשהבטתי על עצמי באופן לא מעורב ככל שאפשר, כמו ש[[רוז'ה]] לימד אותנו, זה עד כמה אני זקוקה לאהבה. הכנסתי את המחשב והאוזניות לתיק הגב. 



<<englink [[Fauré's Requiem]]>>
[img[pictures/hashvil-shel-ariela.jpg]]

!!![[תומר]]:

השביל היפה הזה נמצא  בצידו המזרחי של האילון, והוא השביל של אריאלה, חברתי [[מהעבודה באולפן|מערכת תל אביב]]


<<englink [[Ariella's path]]>>
[img[pictures/teder-romano.jpg]]

!!![[תומר]]:

התדר ורומנו נמצאים [[בבית רומנו|https://he.wikipedia.org/wiki/%D7%91%D7%99%D7%AA_%D7%A8%D7%95%D7%9E%D7%A0%D7%95_(%D7%AA%D7%9C_%D7%90%D7%91%D7%99%D7%91)]] שבדרך יפו- תל אביב, וגם לשם היגעתי בכמה הזדמנויות בעיקר כדי לראות את [[Jazz]]. [[לתדר|https://teder.fm/]], רדיו שבחסותו נערכים מופעים בחצר הבניין השווה ביותר, צמודה פיצה שווה של [[רומנו|https://www.tripadvisor.co.il/Restaurant_Review-g293984-d8545357-Reviews-Romano-Tel_Aviv_Tel_Aviv_District.html]]. שבקומה השנייה הוא מסעדה - מהמקומות של [[אייל שני|https://he.wikipedia.org/wiki/%D7%90%D7%99%D7%99%D7%9C_%D7%A9%D7%A0%D7%99]] וכנופייתו, שמסעדותיו  טובות הווייב וטעם עושות כאן כיף. פעילויות רבות שיתוף, מסתבר, קורות שם גם עם הסוזי ועוד. תענוג שמח כל הסיפור הזה.



<<englink [[Teder/Romano]]>>
[img[pictures/the-line-to-graziani.jpg]]


!!![[תומר]]:

כאן עכשיו בזמן קורונה, לא יותר ממאה מטרים מהבית, יניב החמוד [[מגרציאני|גרציאני]] סימן עיגולים בכניסה לקפה במרחק שני מטרים אחד מהשני וחיצים. לא נכנסים לקפה כי אם עומדים בכניסה, את מכונת הקפה שהעמידו עם הפנים כלפי חוץ מפעיל אברהם שמכין קפה מעולה, יניב אחראי על הלחמים והסנדביצים ושאר המאפים הטעימים איתם הולכים ישר הביתה.




<<englink [[The line for Grasyani]]>>
[img[pictures/wyclef-jean.jpg]]

!!![[גורה]]:

התלבטתי לגבי [[וויקליף|http://www.imdb.com/name/nm0419889/]], כי הוא גם [[פוליטיקאי]], שזה סוג של [[wrong livelihood|https://en.wikipedia.org/wiki/Noble_Eightfold_Path]], אך יחד עם זה הוא היה עם [[לורינוש|לורין היל]] [[בפוג'יז|http://www.imdb.com/name/nm2131536/?ref_=nm_ov_bio_lk2]]

<<englink [[Wyclef Jean]]>>
[img[pictures/villa-maroc.jpg]]


!!![[תומר]]:

[[וילה מרוק|http://www.villamaroc.net/]] זה במאה מטר שלנו, ולחלוף על פני חלון הראווה המושך זה חלק משגרת יומנו, שיכולה להיות מסוכנת אם [[ננו|ננו שלי ואני]] איתי. היא נמשכת לכל מה שצבעוני או נוצץ או כסוף או מוזהב גם אם הוא שביר. דגנית ויעל מקבלות אותנו במאור פנים, אנחנו מלטפים את כל השטיחים והבדים היפים, מתיישבים קצת על הספות, מבקרים את התכשיטים ורוצים לקנות המון אך לרוב מתאפקים, ועדיין [[ביתנו משופע|הלכות קורונה]] בוילה מרוק.



<<englink [[Villa Maroc]]>>
[img[pictures/van-goch.jpg]]

!!![[גורה]]:

כן, מבחינת גובה האילן, אני מרשה לעצמי לכלול את [[וינסנט היקר|https://he.wikipedia.org/wiki/%D7%95%D7%99%D7%A0%D7%A1%D7%A0%D7%98_%D7%95%D7%90%D7%9F_%D7%92%D7%95%D7%9A]] ברשימת [[אחיות החוץ|אחיות חוץ]]. [[אנחנו|האחיות כהן]] אוהבות להתלות [[באילנות גבוהים|http://www.vangoghgallery.com/index.html]].

כמו כן הרשיתי לעצמי לצייר אותו, ובענווה, כדי להגיד - ואן גוך [[ממש גרם לי|עם יויו באמסטרדם]] לרצות לצייר.

אחרי [[שדןדן נסע|דןדן נסע]] נשארתי לבד בחדרי הענקי, [[ורוקנתי אותו|משנים]] כמעט לגמרי.

הכנסתי לחדר שולחן ענקי, שאלפרד ודןדן בנו. על השולחן נמצא המחשב, בלוקי ציור, עפרונות ציור וכד'. 

אם אני זקוקה למשהו אני שולחת לחברים הודעה [[באתרפאד|http://etherpad.org/]].


<<englink [[Vincent Van Gogh]]>>
[img[pictures/wes-anderson.jpg]]

!!![[גורה]]:

אני אוהבת את [[וס אנדרסון|http://www.imdb.com/name/nm0027572/]], כי תמיד הוא מצחיק אותי, ומשמח אותי. כל פריים שלו כמעט מפתיע, מלא דימיון, יפה, חכם וסימטרי - [[שזה הכי חשוב|יסודי או ocd]].

<<englink [[Wes Anderson]]>>
[img[pictures/genevieve.jpg]]

''
המתוקה''

!!![[יויו]]:

ז'נבייב, genevieve kilito, היא היא [[החתול האמיתי|אחיות חתול]] מבין כולנו.
ראשית פני חתול לה. עיניה ירוקות- חומות- צהובות- כחולות - תלוי מה היא לובשת. היא מרחרחת, בעיקר את הרטבים. היא נוהמת כשטעים לה או כשמשהו עובר לה מתחת לשפם. 

היא מוציאה שפם בחוט, יותר נכון אימה מוציאה לה.
אימה היא גם זו שעזרה לה להתגרש, ולהקים את המסעדה אחרי שאביה נפטר, ויש לה שתי בנות בוגרות, [[אלכסנדרה]] ו[[ראשל]].

במרק של [[הקוסקוס]] היא אף פעם לא שמה קישואים. בעיני קישוא הוא ירק מיותר.
 

יש לה שער שחור ומבריק.

ישנה האמירה הזו, על כך שחתולים עושים רק מה שטוב להם וכשרע להם הם הולכים. 
זה נכון שהם הולכים כשרע להם, אבל מה הם עושים כשטוב להם? 
אולי היותם נאמנים לעצמם משפרת את יכולות הנאמנות שלהם? 

הם יכולים לתת מצג שוא, אך חתול מפוקח לא יעשה זאת.

היא חתולה יפה שמשפחתה היגרה ממרוקו [[לפריז|בבוקר]].

היא [[אוהבת|אהבה]] ודואגת לכולנו. בסוף כל יום עבודה היא עוברת ובודקת [[שהכל במקום|ההיררכיה במקרר]]. במהירות היא מציצה לכל הפינות למרות שהיא יודעת שהסמרטוטים שבידינו לא יפספסו אף סמ"ר. ואולי, פתאום אני חושב, היא פשוט רווה נחת, אחרי שסיימה לספור את  הקופה, ולדעת [[שלא לחינם למדה ראיית חשבון|המטבח על פי ז'נבייב]].

<<englink [[Genevieve]]>>
[img[pictures/zemirot-chag.jpg]]

!!![[תומר]]:

חוהמ"ס התשע"ט, שעות אחר הצהריים, שפי נסעה עם ננו התינוקת המתוקה שלנו, ואני אמור להסתלבט וגם לעבוד, אבל אני יושב כמו אידיוט ושומע את נשיא ארה"ב אומר דברים בעוד רוה"מ שלנו יושב לידו ועף על החיים. לפתע קול שירת זמירות חג עולה מהסוכה שבחצר הבניין הסמוך, ומציל אותי. אני מחייך. קם. מציץ דרך התריס. נהנה. מצלם, ושולח [[לגורה|גורה]].


<<englink [[Holiday psalms]]>>
[img[pictures/zkufey-hagev.jpg]]

!!![[גורה]]:

[[אירי]] טוענת, שאלה שבגלגול הזה, מסיימים את התיישרות הגו שלהם, והופכים להיות מהולכי על ארבע להולכי על שתיים, סיימו את העניינים שלהם כאן על הכדור הזה בגלקסיה הזו.

היא גם טוענת, [[שדיוויד בואי|דיוויד בואי]] הוא דוגמה טובה לזקוף גו וגם [[פה]].


<<englink [[The erected]]>>
[img[pictures/chavlaz.jpg]]



<<englink [[SA OOTW LW SSR]]>>


[img[pictures/friend.jpg]]




!!![[יויו]]:

חבר 



(את הציור גורה ציירה מתוך [[תמונה|https://3.bp.blogspot.com/-ofciR9wlEuQ/WqsF9UH5O2I/AAAAAAAAr4w/ZUUJCbtouXcVXwE3IR9xUPk_qWSdjKZmwCEwYBhgL/s1600/career%2Bgirls00002.png]] מהסרט הנהדר [[ילדות קריירה|https://www.imdb.com/title/tt0118818/]] של האחות [[מייק לי]]).


<<list-links filter:"[tag[חבר]]">>

<<englink [[A friend]]>>
[img[pictures/hoodjclub.jpg]]




''ליודעי ח"ן בלבד''




<<englink [[The Hoodj luck club]]>>





[img[pictures/chava-alberstein.jpg]]


!!![[הצוות]]:


[[זו|http://www.habama.co.il/Upload/MediaFiles/%D7%97%D7%95%D7%95%D7%94.bmp]] התמונה המקורית ממנה גורה ציירה את [[חוה|https://he.wikipedia.org/wiki/%D7%97%D7%95%D7%94_%D7%90%D7%9C%D7%91%D7%A8%D7%A9%D7%98%D7%99%D7%99%D7%9F]] שנולדה בשם אווה. היא [[שרה עם גיטרה|https://www.youtube.com/watch?v=MqBu-lEPKWg]]: 

//האמנם האמנם

עוד יבואו ימים

בסליחה ובחסד

ותלכי בשדה

ותלכי בו כהלך התם //

(מילים  לאה גולדברג ולחן חיים ברקני)

ואמנם עם השנים כתבה גם [[מילים ולחן|https://www.youtube.com/watch?v=rfXqMvKK5O8]]:

//

כל שעה נשיקה, כל שעתיים חיבוק. //

 והיא [[פלא|https://www.youtube.com/watch?v=Zwh8ACexBzo]].





<<englink [[Chava Alberstein]]>>
[img[pictures/chomarim.jpg]]

!!![[ז'נבייב]]:

בעצם, מה שחשוב עם החומרים מהם עשויים הכלים איתם אנו עובדים, או החומרים מהם עשויים משטחי העבודה שלנו הוא, שהם ישפיעו מה שפחות על חומרי הגלם המשמשים לבישול.

אני מאד אוהבת לעבוד על שיש, הוא קר וחלק. בצקים, יחסית, לא נדבקים אליו. גם נירוסטה ראויה לשמש כמשטח עבודה, אך לדעתי היא מתאימה יותר לאזורי הכיורים והמדפים.

לבחישת אוכל, עדיפות בעיני כפות עץ. לטריפת בלילות, מטרפת נירוסטה ידנית.

לבישול קצר אני מעדיפה סירי נירוסטה, לבישול ארוך ברזל יצוק כבד. גם לצלייה מתאים ברזל. יש המעריצים סירי נחושת, בעיני הם מפרישים טעם מאד לא טעים.

בבית הקפה מול הדירה של יויו וגורה, יש ברז מים עשוי נחושת, וזה נורא להצטרך לשתות שם מים.

לאפייה אני אוהבת פיירקסים, גם לאפסון מזון אני מעדיפה פיירקס. קערות זכוכית הן אידאליות לערבוב סלטים ובכלל, וגם קערות נירוסטה.

את מנות הקוסקוס אני מגישה בקערות קרמיקה, אותן אני קונה, בכל פעם שרואה כאלה שמוצאות חן בעיני. אחת או שתיים מכל סוג, לאו דווקא בעבודת יד. 

הקרמיקה מעבירה טעמים אבל זה לרוב מינורי.

מבחינתי:

סכו"ם - בשום פנים ואופן לא מכסף, שמביא איתו את טעמו המיותר, ובטח לא ממתכת זולה, שקרוב לודאי משאירה משקעים בסביבה הפנימית.

למשקאות קלים ולאכוהול - זכוכית

לקפה - ספלי קרמיקה דקים ולא גדולים

ותה זה לחולים.


<<englink [[Materials]]>>


[img[pictures/chazeret.jpg]]

!!![[אנג'ליק]]:


    200 גרם שורש חזרת טרי

    1-2 סלקים קטנים קלופים, לא מבושלים

    חצי כוס חומץ

    כפית סוכר 

    כפית מלח גס

* טוחנים את שורש החזרת
* מרסקים את הסלק על פומפיה דקה
* מתבלים ומערבבים
* שומרים במקרר בצנצנת סגורה



<<englink [[Horse radish]]>>
[img[pictures/chayot-ochel.jpg]] 

''אוכל שאנחנו מכינים ברגיל:''


<<list-links filter:"[tag[חיות אוכל]]">>


<<englink [[Food addicts]]>>
[img[pictures/waswaitingforme.jpg]]

[[אימא של ג'אז]:

בבקר לפני שיצאתי לחנות הוצאתי את המיקסר מהארון, והכנתי שני בצקים פריכים. השארתי אותו על השיש להמשך הכנות שאעשה בערב. הוא חיכה לי כל היום.

<<englink [[Was waiting for me]]>>
[img[pictures/hinawi.jpg]]

!!![[תומר]]:

אצל [[חינאווי|http://wineandmore.co.il/pages/8219-Wine--More-%D7%AA%D7%9C-%D7%90%D7%91%D7%99%D7%91-%D7%A7%D7%A8%D7%9C%D7%99%D7%91%D7%9A-25]] המוכרים שמטפלים בך מאד יפה, מבינים ממש במזון ומשקאות. שם אני קונה בשר, אבל גם אלכוהול  ועוד.


<<englink [[Hinnawi]]>>
[img[pictures/sex-education.jpg]]

!!![[יויו]]:

בתוך כדי ימים קרים בהם אני לבד בבית אחרי [[הפרידה מאנג'ליק|בדרך לאן שהוא]], ותוך כדי שאני צופה [[בחטא הקדמון|https://he.wikipedia.org/wiki/%D7%94%D7%97%D7%98%D7%90_%D7%94%D7%A7%D7%93%D7%9E%D7%95%D7%9F_(%D7%A1%D7%93%D7%A8%D7%AA_%D7%98%D7%9C%D7%95%D7%95%D7%99%D7%96%D7%99%D7%94)]] ומבין שזה מוריד אותי נמוך יותר לראות עכשיו חבורת שוטרים רודפת אחרי רוצח סדרתי שהיה, איך לא, ילד אומנה. אני מחטט בנטפליקס ומחליט להתחיל את [[חינוך מיני|https://he.wikipedia.org/wiki/%D7%97%D7%99%D7%A0%D7%95%D7%9A_%D7%9E%D7%99%D7%A0%D7%99_(%D7%A1%D7%93%D7%A8%D7%AA_%D7%98%D7%9C%D7%95%D7%95%D7%99%D7%96%D7%99%D7%94)]],  מסתבר שהפעם אני מקבל את [[ג'יליאן אנדרסון|https://he.wikipedia.org/wiki/%D7%92%27%D7%99%D7%9C%D7%99%D7%90%D7%9F_%D7%90%D7%A0%D7%93%D7%A8%D7%A1%D7%95%D7%9F]] הנהדרת בגרסה ככ שונה!. שמתי לב שאני מחייך וצוחק ושוכח. הצבעים המשובבים והשירים הכיפיים ויותר מכל השחקנים המוש והסיפור המשעשע שנמשך 2 עונות.



<<englink [[Sex Education]]>>
[img[pictures/chalomot-shechalamnoo.jpg]]

!!![[יויו]]:

תמיד חלמתי להיות [[מפקח נקיון במטבח של מסעדה|מנקים היטב]], אבל מה שעוד יותר יפה, זה שמימוש החלום הזה העיר עוד חלומות:


<<list-links filter:"[tag[חלומות שחלמנו]]">>



<<englink [[Dreams that we've dreamt]]>>
[img[pictures/rear-window.jpg]]

!!![[תומר]]:

[[בחלון האחורי|https://www.imdb.com/title/tt0047396/]] שלנו בעיקר שומעים את יהודה הלוי והחשמונאים, ואת עובדי [[התמ"א|https://he.wikipedia.org/wiki/%D7%AA%D7%9E%22%D7%90_38]]. בלילה שומעים בחורות ובחורים, שרים ומנגנים בגיטרה.



<<englink [[Rear Window ]]>>
[img[pictures/windows.jpg]]

!!![[תומר]]:


אני לא מנקה חלונות, זה חוק אצלי. מבחינתי מהחלונות החוצה זו כבר הגינה.




<<list-links filter:"[tag[חלונות]]">>






<<englink [[Windows]]>>






[img[pictures/genevieve-green-butter.jpg]]

!!![[ז'נבייב]]:

לכמות ביתית אפשר להכין:

* 400 גרם חמאה רכה
* צרור פטרוזיליה
* שתי שיני שום
* כפית מלח ים גס

מכניסים את כל החומרים למעבד המזון עם להב הפלדה, ומפעילים עד לקבלת תערובת אחידה,

 יוצקים לתוך כלי בגודל מתאים, מרופד בגיליון נייר אפייה, עוטפים יפה עם שולי הנייר. 

כשחם כדאי לשמור במקרר.





<<englink [[Garlic and herbs butter]]>>
[img[pictures/chamoozim-sinim.jpg]]

[[גואן יין]]:

בקערה גדולה:

קורעים חתיכות כרוב שטוף, מפרקים כרובית שטופה לפרחים, פורסים שלושה מלפפונים שטופים ושני גזרים קלופים לעיגולים ומערבבים מעט עם הידיים או בעזרת שתי כפות גדולות ומוסיפים פלפל ירוק חריף פרוס לפרוסות.

בסיר קטן מחממים עד לפני רתיחה:

חצי כוס חומץ, שלושת רבעי כוס סוכר, כף גדושה של מלח גס, שלוש כוסות מים, 2 כפות פרוסות דקות של ג'ינג'ר טרי.

מוזגים את נוזל החם על הירקות ומערבבים.

מעבירים לצנצנות, סוגרים ומשאירים בחוץ עד שהירקות מגיעים לטמפרטורת החדר.

מכניסים למקרר, ואפשר להתחיל לאכול יום-יומיים אחר כך.



<<englink [[Chinese pickles]]>>

[img[pictures/chana-imenu.jpg]]

!!![[אווה]]:

כאן בתמונה חנה אימי ואני כמה חודשים לפני שנפטרה. היא הייתה [[אשתו הרביעית|עץ המשפחה של אווה]] של אבי, ואת [[אהרון אחי השלם]] היא ילדה 12 שנים לפני שילדה אותי.


<<englink [[Hanna our mother]]>>


[img[pictures/music-house.jpg]]

!!![[גורה]]:

חנות הדיסקים נמצאת בקומה הראשונה של [[געזונטהייטס]]. היא שייכת [[לשלום|שלום]], כמו הבניין כולו, [[ואווה היא זו|מוכרת הדיסקים/dj]] שמחזיקה אותה. בתוך חנות הדיסקים יש אולפן קטן, שמשרת את [[גלי זחל]].




<<englink [[Cd store]]>>
[img[pictures/northern-exposure.jpg]]

!!![[יויו]]:

[[סיסלי|http://northernexposure.wikia.com/wiki/Cicely,_Alaska]] בשבילי היא [[בית שני|קופים ממונעים]], ואד, ג'ואל, הולינג, שלי, כריס, רות'-אן, מגי, מרילין וכל השאר -  הם גם - אחיות שלי

[[its not the thing you fling, its the fling itself|https://www.youtube.com/watch?v=V6zmMWfzv38]]                          (אחד מקטעי הוידאו הבודדים שנשארו ביוטיוב)

<<englink [[Northern Exposure]]>>
[img[pictures/hashmal-avi.jpg]]

!!![[תומר]]:

אני יוצא מהבניין, משתדל לחצות את הכביש לפני הרמזור ועולה ליהודה הלוי, שם אני יורד ימינה ושוב משתדל לחצות את הכביש לפני הרמזור וממשיך לרדת. אני חוצה את מרמורק, עכשיו זה כבר אבן גבירול 1 ובאבן גבירול 5, שזה כמה חנויות קדימה, נמצאת -   //חשמל אבי// - שזה חשמלאי וחנות חשמל, בה נמצאת אילנה - שבעיקר אוהבת דברים יפים, לשפץ מנורות ורהיטים ולעצב -  וככה קניתי היום מנורת שולחן חדשה מצויינת ובמחיר מעולה.



<<englink [[Hashmal Avi]]>>
[img[pictures/tarte-tatin.jpg]]

!!![[אווה|אווה כהן]]:

השבוע הזמנתי את האחיות לבראנץ' ורציתי שיהיה מיוחד. כשחשבתי פתאום על [[הטארט טאטן|https://en.wikipedia.org/wiki/Tarte_Tatin]], שלא הכנתי כבר כמה שנים, יכולתי לראות מה אכין עוד.

אופן ההכנה:

1. מכינים [[בצק פריך]] ומניחים אותו במקרר.

2. קולפים, מוציאים את הליבה, וחוצים 6-10 תפוחי עץ (בהתאם לגודל התבנית), שוטפים ומייבשים.

3. במחבת כבדה על להבה גבוהה, ממיסים 75 גרם חמאה עם 2 כוסות סוכר עד לקבלת קרמל. 

4. מעבירים את המחבת ללהבה נמוכה, ומכניסים פנימה את התפוחים. מבשלים על להבה נמוכה במשך 10-15 דקות ומידי כמה דקות הופכים. (התפוחים מוכנים כשמזלג ננעץ במרכז התפוח די בקלות).

5. מוציאים את התפוחים מהמחבת ומניחים אותם בתבנית כשהחלק הפתוח פונה קלפי מעלה. 

6. מרדדים את הבצק הפריך לגודל מעט גדול מגודל התבנית.

7. מניחים את עלה הבצק על התפוחים שבתבנית, ואת שארית הבצק דוחפים לרווח שבין התבנית לתפוחים ([[מהבצק הפריך שנשאר|כשנשאר בצק פריך]] אפשר להכין עוגיות)

8. מחוררים בעזרת המזלג את הבצק בכמה מקומות.

9. אופים בחום בינוני (170 מעלות) 40-50 דקות (עד שהבצק מזהיב/משחים)

10. מוציאים את הטארט מהתנור

11. כעבור 20 דקות הופכים את הטארט על צלחת הגשה.

12. טעים להגיש עם קצפת, גלידת וניל או רוטב וניל.



<<englink [[Tarte tatin]]>>
[img[pictures/cooksaredancers.jpg]]

!!![[גורה]]:

תחביב ישן שלי, להתבונן בטבחים במעופם.

<<list-links filter:"[tag[טבחים הם רקדנים]]">>



<<englink [[Cooks are dancers]]>>
[img[pictures/zirey-kaitz.jpg]]

!!![[תומר]]:

מהחלון של החצר הפנימית שלנו אפשר לראות:

"[[זרעי קיץ|https://www.youtube.com/watch?v=wJOH-zKfQfs]] 

נישאים ברוח

מעירים זכרונות

מעוררים ערגונות

זרעי קיץ באים בנחיריים

ורומזים איזה קיץ

הולך להיות"

מילים: [[מאיר אריאל]], לחן: מאיר אריאל [[ושלום חנוך|שלום חנוך]]


<<englink [[Urban Nature]]>>
[img[pictures/totem.jpg]]

!!![[הצוות]]:

כל שבט צריך [[טוטם|https://he.wikipedia.org/wiki/%D7%98%D7%95%D7%98%D7%9D]].



<<englink [[Totem]]>>
[img[pictures/tony-vespa.jpg]]

!!![[תומר]]:

אני לא פריק של פיצה אבל כשזה קורה אז [[בטוני וספה|https://www.tonyvespa.co.il/]], בעניין הזה אין שאלה.



<<englink [[Tony Vespa]]>>


[img[pictures/tony-soprano.jpg]]

!!![[אנג'ליק]]:

זה סוג של פוקס שטוני התחתן עם [[כרמלה|http://www.imdb.com/title/tt0141842/characters/nm0004908?ref_=ttfc_fc_cl_t3]] - שלו ובעיקר מזל גדול לילדיו.

לקראת סוף [[הסדרה|הסופרנוס]], (כן, סיימנו אמש), טוני נוסע ללאס וגאס, ופוגש שם בחורה שהייתה של [[כריס|כריסטופר מולטיסנטי]], שכבר מת. הוא לוקח איתה [[פיוטה|https://he.wikipedia.org/wiki/%D7%A4%D7%99%D7%95%D7%98%D7%94]]. הוא עובר חוויה שמשפיעה עליו, ואף חוזר [[מהורהר|https://www.youtube.com/watch?v=1re5cGlP-Xg]].





<<englink [[Tony Soprano]]>>
[img[pictures/tost.jpg]]

!!![[אווה]]:

* פורסים זוקיני למלבנים, קורעים עלי כרוב, מניחים אותם בתבנית מרופדת בנייר אפייה, מתבלים בשמן זית ומלח גס, ואופים בתנור שחומם מראש ל190 מעלות צלזיוס עד התרככותם והזהבתם.
* מרסקים עבנייה על פומפיה ומערבבים לתוכה כמה גרגרי מלח.
* קולים פרוסות לחם בתנור עד לגוון הרצוי.
* מרכיבים את הטוסט: מניחים פרוסה קלויה, מעליה מורחים טחינה גולמית, מעליה רסק עגבניות, מעל מניחים ירקות קלויים, גוררים פרמז'ן וזה מוכן.


<<englink [[Tahini, tomatoes and zucchini toasts]]>>
[img[pictures/tort.jpg]]

!!![[אווה|אווה כהן]]:

גם אני כמו ז'נבייב, [[מוכרחה מאפה בבוקר|בבוקר]], ובימים בהם אני לא יוצאת בבוקר מהבית ואין כלום, אני מכינה טורט.

את המתכון הבסיסי קיבלתי [[מנורמה|סיפורים שסיפרתי לנורמה]]. 

החומרים:

*ארבע ביצים
*כוס סוכר
*3/4  כוס מיץ תפוזים
*1/2 כוס שמן
*שקיק סוכר וניל
*2 כוסות קמח מנופה
*כפית אבקת אפייה

אופן ההכנה:

1. בקערת המערבל החשמלי, מערבלים חמש-עשר דקות את הביצים עם הסוכר וסוכר הוניל, עד שמתקבלת קציפה תפוחה, בהירה ויציבה.

2. מנמיכים את מהירות המערבל ומוסיפים לאט את השמן ומיץ התפוזים עד שהתערובת אחידה.

3. מכבים את המערבל, ובעזרת מטרפה ידנית טורפים בעדינות לתוך תערובת הביצים, את הקמח ואבקת האפייה עד שהכל אחיד ורך.

4. מוזגים את התערובת לשתי תבניות אנגלישקייק סטנדרטיות או לאחת גדולה - או לתבנית עגולה בגודל 26.

5. אופים בתנור שחומם מראש ל 170 מעלות 40-50 דקות.

6. בודקים עם קיסם או סכין חדה אם העוגה מוכנה.

7. מוציאים מהתנור, ובעדינות בעזרת כף, מוזגים מעל העוגות החמות (מגובה נמוך) חצי כוס מיץ תפוזים. 




לפעמים אני משנה קצת. למשל מפחיתה חצי כוס קמח, ובמקומה שמה חצי כוס קוקוס, ומוסיפה לתערובת גם חופן שוקולד צ'יפס. 
 
הבוקר שמתי קצת יותר מידי פקאנים (זה היה סוף הקופסה, אז השתמשתי בכל מה שהיה, וזה היה קצת יותר ממה שצריך). את הפקאנים ערבבתי עם מעט סוכר וקנמון טחון אותם בחשתי בקלות פנימה. אחרי האפיה במקום להרטיב עם מיץ תפוזים השתמשתי בחמש כפות סירופ מייפל.


<<englink [[Torte]]>>
[img[pictures/sofatherapy.jpg]]



!!![[רוז'ה]]:

בעטיה של קורונה התמכרתי שוב לרביצה על הספה, הזמנת משלוחי מזון ושתייה, צפייה [[בסדרות|סדרות]], גידול כרס וחירפון כללי, אך המרפא העצמי שבי קרא אותי לסדר, וכך קרה שאגב הנ"ל ארגנתי רשימת רעיונות לטיפול עצמי בעודך שוכב על הספה ומעכל, והיא תגיע לכאן בקרוב מגובה בציורים של [[גורה]]. 




<<list-links filter:"[tag[טיפולים מהספה]]">>





<<englink [[Sofa therapy]]>>



[img[pictures/tal-bagels.jpg]]

!!![[תומר]]:

ישנם הימים בהם אני יוצא מהבית, חוצה את החשמונאים, ויורד דרך קריית ספר לפינת קרליבך 41, שם בהחלט נמצא מקום שאפשר לקרוא לו מוסד. הבייגלס תמיד טריים וטעימים, וכך גם הסלטים, המאפים, הקפה, המיץ. לשבת או לקחת. הבייתה או לפיקניק. 

כיתבו [[טל בייגלס|http://www.tal-bagels.co.il/index.php]] בנווטן, ותגיעו לדירה שלנו בצורה המיטבית -  זה מה שאני אומר למי שרוצה לבוא לבקר אותנו. 


<<englink [[Tal Bagels]]>>
[img[pictures/television.jpg]]

!!![[תומר]]:

אני יושב מול [[הטלוויזיה|https://he.wikipedia.org/wiki/%D7%98%D7%9C%D7%95%D7%95%D7%99%D7%96%D7%99%D7%94]] בסלון, וצופה בתכנית שנקראת [[ואז הגיע ילד|https://www.haaretz.co.il/gallery/television/.premium-1.6975294]]. [[ננו המתוקה|ננו שלי ואני]] כבר ישנה, ואני חושב לעצמי, איזה מזל - אין לי את מי להאשים, אין לי עם מי לריב, אין התחשבנויות - רק ננו השמחה שלי ואני.


<<list-links filter:"[tag[טלוויזיה]]">>

<<englink [[TV]]>>






[img[pictures/smart-phone.jpg]]

!!![[ג'ונג]]:

באופן יזום ומכוון לא [[איזכרנו|אחות כהן]] את קיומם של [[המכשירים המחופשים לטלפון|https://he.wikipedia.org/wiki/%D7%98%D7%9C%D7%A4%D7%95%D7%9F_%D7%97%D7%9B%D7%9D]] כאן בגנזך עד עכשיו, למרות שלכולנו יש איזה אחד. אני יושב ומחכה רגוע למטרו הבוקר, עד שהחכם ממליץ לי על סידרת תמונות  מבדיוק לפני שנה. הוא חושב שהן יתאימו לי לאלבום ולי הולך הראש. זו הייתה סדרת תמונות שחשבתי שמחקתי - ובאמת מחקתי רק לא מהבפנים. בתמונות רואים את נטלי, [[שהלכה ממני|https://www.youtube.com/watch?v=1dXEzMcfCyA]] לפני שלושה חודשים, ואותי, מאוהבים. 





<<englink [[Smartphone]]>>


[img[pictures/yad-yamin.jpg]]


!!!''<<tag "בחוות החיות">>, יד ימין אינה יודעת, מה יד שמאל עושה. (ולהיפך).

<<englink [[The right hand doesn't know]]>>

[img[pictures/ya.jpg]]

!!![[גורה]]:

יה אחות של [[קואנג]],  היא - graceful, כמשמעות שמה. "הוא לא אספרגר", היא תמיד אומרת על אחיה, "הוא סתם שקוע בעולמו הפנימי".

היא עושה תואר שני במדעי החיים אבל בשילוב עם מדעי הנפש, ועובדת בספריה של האוניברסיטה, וגם כמתרגלת במעבדה.

התחברנו ממש, והיא אחות.


<<englink [[Ya]]>>
[img[pictures/yehudit-ravitz.jpg]]

!!![[תומר]]:

היום ברחוב, [[חלפה|https://he.wikipedia.org/wiki/%D7%99%D7%94%D7%95%D7%93%D7%99%D7%AA_%D7%A8%D7%91%D7%99%D7%A5]] על פני [[הזמרת|https://www.youtube.com/watch?v=lt_C-vcDdU8]] הנפלאה באופן קבוע, [[והמוזיקאית|https://www.youtube.com/watch?v=YVQvOvlEcDM]] החד פעמית והיפה הזו, שאני כל כך אוהב ומעריך. שמץ של מבוכה והקסם בחיוכה, אומרים [[שהיא באה מאהבה|https://www.youtube.com/watch?v=zUNPxTNxVoc]] ועוד המון.

<<englink [[Yehudit Ravitz]]>>
[img[pictures/yonatan-gefen.jpg]]

!!![[יויו]]:

[[זו|https://img.wcdn.co.il/f_auto,w_700/1/9/5/4/1954147-46.jpg]] התמונה ממנה גורה ציירה את [[יהונתן גפן|https://he.wikipedia.org/wiki/%D7%99%D7%94%D7%95%D7%A0%D7%AA%D7%9F_%D7%92%D7%A4%D7%9F]] - האומן שהשפיע עלי כ"כ. שירים שענת אוהבת במיוחד. סיפורים שענת אוהבת במיוחד. הכוכבים הם הילדים של הירח. שיני חלב. אימא יקרה. איך שיר נולד. לוקח ת'זמן. [[דון קישוט אתה יכול לנוח|https://www.youtube.com/watch?v=Z1OPyecbGCI]]. ספר שלם על חתול אחד. ועוד המון בהמונים. כי בלי הדובון והעוזי - לא ידעו שהוא דרוזי.

אולי [[הכבש השישה עשר|https://he.wikipedia.org/wiki/%D7%94%D7%9B%D7%91%D7%A9_%D7%94%D7%A9%D7%99%D7%A9%D7%94_%D7%A2%D7%A9%D7%A8]]  הוא [[הביג לבובסקי|ביג לבובסקי]] שלו מהבחינה שגם לפני וגם אחרי [[הם|איתן וג'ואל כהן]] תמיד עושים סרטים נפלאים עם X-פקטור יחודי, ובכל זאת בכבש השישה עשר קרה משהו חד פעמי שנגע בכולם. לבי על האחים כהן שלא גדלו על יהונתן גפן, [[האיש האומר|https://www.youtube.com/watch?v=CJmMpc0lo1c]].

[[וזה הכל בינתיים|https://www.youtube.com/watch?v=ixl8xKyv-8E&index=3&list=PLXhoL6TJUCjYLAo1mw50eUrj5JrdEEoqC]] (בינתיים זה הכל)

<<englink [[Yehonatan Geffen]]>>
!!![[אירי]]:

[img[pictures/yoyo.jpg]]

עבורי יויו היה, ראשית כל, האח האהוב של גורה, אותה הכרתי בתחילת חטיבת הביניים.

כעת הוא האלוהים שלי. [[אני מאמינה לו|גבר פריבילגי]], אני מאמינה בו, אני מאמינה למה שהוא מאמין בו, אני מעריצה אותו, אני אוהבת אותו, אני אוהדת אותו, אני מודה לו מידי יום, אני נעזרת בו, אני מקשיבה לו, אני [[מתה על הטעם|כרובית במחבת]] שלו ועל הראש שלו - ואני רוצה תמיד להיות סמוכה לשולחן סביבו הוא סועד את לבו המתוק.


הוא יכול להתחרפן כשאנשים אומרים: אפיזודה חולפת או ריטואל קבוע. הוא נהיה חולה אם מאחרים. הוא עובד על עצמו. הוא אמר לי אתמול שכדאי שאשים לב לכך, שעם כל המודעות העצמית שלי אני די עסוקה בתחת של עצמי. הוא אמר לנו כמה שבועות לפני ש[[דיוויד בואי]] מת, שלפי black star הוא יודע שהוא הולך למות, וששומעים את זה מכל הבחינות.

לא מספיק הכרתי, למעשה, את דיוויד בואי עד שיויו הפך לחלק מחיי היומיום שלי, כלומר בשנה האחרונה.

 
<<englink [[Yoyo]]>>
[img[pictures/yoyo-ve-gura.jpg]]

!!![[גורה]]:

כשאני מתפרקת, [[יויו]] נוהג להוציא אותי לסיבוב. 

בשלב מסויים של ההליכה, אני מתחילה להשתגע, ואז אנחנו מתיישבים.

הוא אף-פעם לא כועס עלי, ואם זה קורה, גם אז, הוא סבלני אלי ונחמד.

הוא יכול לפעמים להגיד לי דברים שקשה לי לשמוע, כמו למשל, שאני חראית לפעמים, או יהירה, או לא קשובה, אבל באותה נשימה הוא גם יכול להגיד לי שאני נפלאה, ושגם אני [[שמרתי עליו|כוכב המשאלות 04]] לא מעט פעמים. 

אני רוצה להיות אחרת, אבל העצב והכעס לפעמים רצים לי בתוך הראש, עד שאני מתפרצת בצורה לא מבוקרת.

בזמן האחרון,  [[כשאני מציירת לאתר שלנו|עם יויו באמסטרדם]], אני נרגעת.


<<englink [[Yoyo and Gura]]>>
[img[pictures/yoni-rechter.jpg]]

!!![[יויו]]:

[[זו|http://www.kaspit-art.co.il/wp-content/uploads/2015/10/yoni_rechter_img_03-1.png]] התמונה ממנה גורה ציירה את [[יוני רכטר|https://he.wikipedia.org/wiki/%D7%99%D7%95%D7%A0%D7%99_%D7%A8%D7%9B%D7%98%D7%A8]], ללא ספק אחד המלחינים האהובים עלי, שכותב מנגינות נפלאות למילים נבחרות. הוא הלחין למשל את [[מה עושות האיילות|https://www.youtube.com/watch?v=PceC1uFvUd0]], את [[ראה|https://www.youtube.com/watch?v=Lz0eWqD_gI0]], את [[הכבש השישה עשר|https://www.youtube.com/watch?v=uAtpJBD1vuQ&list=PLBD1AB9710E28EC5F]], את [[קילפתי תפוז|https://www.youtube.com/watch?v=_cbBGGg_aRk]], את [[הו איזה לילה|https://www.youtube.com/watch?v=ED5f22gYE4w]], את [[באופן קבוע וחד פעמי|https://www.youtube.com/watch?v=lt_C-vcDdU8&list=PL0gkxYg1JKPX0xeyU9BgFp3A-AqgmlBqC]], את [[שוב היא כאן|https://www.youtube.com/watch?v=9v81qUNSjbE]], את [[שיר אהבה קוסמי עליז|https://www.youtube.com/watch?v=ULKR-k1Pwt0]], את [[דמעות של מלאכים|https://www.youtube.com/watch?v=3rN_D8ATbfk]], והוא אחות כהן אהובה למרות שאנחנו [[לא מכירים|https://www.youtube.com/watch?v=gzsApCY3se4]].



<<englink [[Yoni Rechter]]>>
[img[pictures/yeladim.jpg]]

!!![[ראשל]]:

ילדים וזכויותיהם זה הכי חשוב, ומי ומה הם יהיו אינם חלק מתוכנית כבקשתך. ככל שיהיו בסיכון כך עלול  להיות מסוכן. לא רק המובן מאליו כמו אלימות זה מסוכן. גם חוסר אהבה זה מסוכן. חוסר מגע אוהב, חוסר הקשבה, חוסר איכפתיות, חוסר כבוד, חוסר קבלה, חוסר ראייה - זה מסוכן. [[אלה דברים בסיסיים|https://he.wikipedia.org/wiki/%D7%90%D7%9E%D7%A0%D7%AA_%D7%96%D7%9B%D7%95%D7%99%D7%95%D7%AA_%D7%94%D7%99%D7%9C%D7%93]]. בזמן האחרון נחשפתי [[לעשרת הדברות|https://he.wikipedia.org/wiki/%D7%A2%D7%A9%D7%A8%D7%AA_%D7%94%D7%93%D7%99%D7%91%D7%A8%D7%95%D7%AA]] וחשבתי שהייתי מוסיפה לדיבר החמישי:

[[כבד את ילדיך|https://www.youtube.com/watch?v=M9BNoNFKCBI]], למען לא ירצחו, למען לא ישקרו, למען לא יגנבו, למען לא יחמדו. כבד את ילדיך למען לא יפחדו כלל, למען יהיו שמחים יותר, רגועים יותר, טובים יותר. למען שיאמינו בשוויון זכויות אדם חי וצומח, ללא הבדלי דת גזע או מגדר. למען שיאמינו בשלום ולא במלחמה. למען יחיו הם עצמם בדיוק כפי שהם, ויתנו לחיות.



<<list-links filter:"[tag[ילדים]]">>

<<englink [[Children]]>>




[img[pictures/yeladim-chad.jpg]]

!!![[ראשל]]:

אני לומדת בבית ספר לאומנויות, אני תלמידת י"א ומתמקדת בוידאו.

המורה החדשה שלנו לתולדות האומנות, נתנה לנו משימה.

היינו צריכים להביא יצירה שאהבנו במיוחד, מכל תחום שהוא, ולנסות להסביר מה ביצירה הזו נגע בנו או דיבר אלינו.

אני הבאתי את [[מישל גונדרי]] ויצירתו, [[אלפרד]] הכיר לי אותו, וממש התאהבתי באיך שהוא מראה דברים, אבל זה לא העיקר.

העיקר עבורי היה לשמוע את הסיפורים של הילדים בכיתה. [[זה|https://www.youtube.com/watch?v=aCs1rkAXZ9o]] לא הסיפור שלי, אבל זו הייתה מנה מספקת של כאב, לראות את [[אימא|ז'נבייב]] סובלת מאבא. 

אני זוכרת את אימא בוכה על הספה לפני וגם אחרי הגירושים, אבל אחרי הגירושים זה כבר היה אחרת.

ההורים שלי נפרדו כשהייתי בת 11. סבא, אביה של אימי, נפטר שנתיים קודם, ואימא כבר הודתה בפני, שרק אחרי שסבי נפטר העזה להתגרש.
אבא שלי הוא לא כייף. הפסקתי להיפגש איתו כשמלאו לי 14, ומאז אני גם בטיפול פסיכולוגי. אני לא יודעת מתי ואם אפגש איתו, אך  לעת עתה אני פשוט לא מעוניינת לראות אותו. 

הזמן מרפא אותנו, וכעת, לאימא ולנו יש את [[ג'וזף|ג'וזף אברואה]] ואלפרד ואת [[האחיות|האחיות כהן]], ויש  כתפיים, עליהן אפשר להניח את הראש [[ולנוח|https://www.youtube.com/watch?v=loB0kmz_0MM]]. 

<<list-links filter:"[tag[ילדים חד הוריים]]">>


<<englink [[Single parent children]]>>
[img[pictures/tethys-sea.jpg]]


!!![[גורה]]:

מאגר גז שכל התפוקה העתידית שלו נמכרה לגורם שמעדיף להישאר בעילום שם תמורת הזכות לפתח את [[מרינה זוטו]] ו[[געזונטהייטס]] בתור נכסי [[דיור מוגז]].




<<englink [[Tethys ocean]]>>
[img[pictures/spiritual-level.jpg]]

!!![[יויו]]:

לפעמים אני שואל את עצמי, האם יש לך [[פלס|https://he.wikipedia.org/wiki/%D7%A4%D7%9C%D7%A1_%D7%91%D7%A0%D7%90%D7%99%D7%9D]] במקום של [[העין השלישית|https://he.wikipedia.org/wiki/%D7%94%D7%A2%D7%99%D7%9F_%D7%94%D7%A9%D7%9C%D7%99%D7%A9%D7%99%D7%AA]] או שזו [[הפרעה כפייתית טורדנית?|https://he.wikipedia.org/wiki/%D7%94%D7%A4%D7%A8%D7%A2%D7%94_%D7%98%D7%95%D7%A8%D7%93%D7%A0%D7%99%D7%AA-%D7%9B%D7%A4%D7%99%D7%99%D7%AA%D7%99%D7%AA]] זה לא רק שאני צריך ליישר כל דבר כל הזמן, ושהדברים יהיו בזווית שאני רוצה. אני כמעט כל הזמן מתכנן, אני כמעט כל הזמן [[מזנפלץ|מיזונפלציה]], אני מוטרד מדברים שאמרתי או לא אמרתי. קו דק עובר בין פרפקציוניזם ל-ocd, ולאחרונה גיליתי שיש דבר כזה שנקרא legit ocd ומה רבה שמחתי.

<<englink [[Comprehensive or compulsive]]>>
[img[pictures/yerakot-klooim.jpg]]

!!![[ז'נבייב]]:

ירקות קלויים, זה טעים, דל קלוריות יחסית, וקל ממש להכנה.

זה מאד נח להכין בתנור, על אף שההבדל בין חציל או פלפל קלויים על האש לעומת כאלה קלויים בתנור, זה כמו ההבדל בין חתול בר לחתול בית.

ירקות קלויים בתנור זה לא מלכלך.

בטטות, תפוחי אדמה, סלק, שומר, קולורבי, בצל - פורסים, מתבלים בשמן זית ומלח גס, עשבי תיבול, שום

אופים בהתחלה בחום בינוני נמוך, וכעבור שעה מעלה ל-200 מעלות, עד שהם בצבע הנכון לטעמינו.

חציל ופלפל - אפשר לאפות שלמים ולטפל בהם לאחר שנאפו היטב.

מהחציל המוכן מוציאים את הבשר לקערה, ומתבלים בשמן זית, שן שום כתושה, מלח ים גס ופלפל שחור גרוס.

לאחר שהפלפל התקרר, מסננים את הנוזל שבתוכו, מסירים את הקליפה והגרעינים, ומסדרים על צלחת, מערבבים את המיץ המסונן עם שמן זית, יוצקים את הנוזל מעל, ומפזרים מלח  גס.



<<englink [[Roasted vegetables]]>>
[img[pictures/here-in-the-ghetto.jpg]]

!!![[תומר]]:


הדבר היחידי שחסר לי כאן [[בגטו|https://www.youtube.com/watch?v=2Ox1Tore9nw]] זה חנות ירקות כמו שצריך, וכדי לקנות ירקות ופירות טובים אני נאלץ לצאת מתחום הנוחות שלי ולהרחיק עד [[שינקין|שורצקי]]. 

<<list-links filter:"[tag[כאן בגטו]]">>


<<englink [[Here in the Ghetto]]>>


[img[pictures/pride.jpg]]


!!![[תומר]]:

כמה אני גאה בגטו שלי, אחרי שבבוקר יום שישי, כשצעדתי רגוע  בין סריקות [[בגלסי|גלסי]] לקניות [[בשורצקי|שורצקי]], מראה מלבב של ראשוני הצועדים והצועדות, הגאים והגאות, שהתחילו להתאסף בפינת שדרות בן ציון והבימה ניגלה בפני. אני שמח וחש בר מזל.

<<englink [[Pride here]]>>
[img[pictures/kevisa.jpg]]

!!![[תומר]]:

בזמן האחרון נהייתי רגשן כמו [[אישה בגיל המעבר|האחיות בלות]]. כנראה שזה בעיקר בגלל התינוקת החדשה והמתוקה שנולדה לנו. תשומת הלב שלי, שהולכת עכשיו אליה ולא אל עצמי, המטלות הרבות וכל הכביסה הזאת, שכעת מתייבשת קצת יותר לאט כי כבר סתיו, ואני תולה, ומתפלל [[לימים שעוד נכונו לנו|https://www.youtube.com/watch?v=z-cEI02kOcY]].

 <<heblink [[כביסה]]>>







<<list-links filter:"[tag[כביסה]]">>

<<englink [[Laundry]]>>
[img[pictures/cadurey-kitniyot.jpg]]

!!![[הצוות]]:



החומרים:

לכדורים:

*כוס קטניות מעורבות לקדרה, מבושלות עד ריכוך ומסוננות
*ביצה
*3 כפות פרורי לחם
*3 כפות קמח לבן 
*קורט אבקת אפייה

לרוטב:

*2 כפות שמן חריף
*2 כפות שמן תירס
*4 גבעולי בצל ירוק
*2 גזרים חתוכים למקלונים דקים ולא ארוכים
*כוס חלב קוקוס
*1-2 כפות קארי ירוק
*מים
*שלושה עלי כוסברה
*כף מיץ ליים
*פלפל שחור גרוס
*מלח ים גס
*שני עלי אורגנו

להגשה:

*כוסברה קצוצה
*שמן קפיר ליים

אופן ההכנה:

1. בסיר לא גבוה על אש קטנה מחממים שתי כפות שמן תירס ושתי כפות שמן חריף, מוסיפים את הבצל הירוק 

2. כשהבצל מזהיב מוסיפים את מקלוני הגזר וממשיכים לצלות עד שהגזר מזהיב

3. מוסיפים את חלב הקוקוס ואת הקארי הירוק ומערבבים את שהנוזל אחיד

4. מוסיפים 2 כוסות מים וממשיכים לערבב עד רתיחה

5. מנמיכים את האש ונותנים לרוטב להתבשל כמה דקות

6. בינתיים מערבבים בקערה את החומרים של כדורי הקטניות

7. מוסיפים את התבלינים, ממשיכים לבשל 15 דקות נוספות.

8. בין לבין מערבבים את תערובת הקטניות

9. יוצרים כדורי קטניות בקוטר של 2-3 סנטימטרים  ומכניסים לסיר בעדינות (יוצאים כ-20 כדורים). 

10. מכסים את הסיר ומבשלים בסך הכל עוד כ-40 דקות (מידי עשר דקות הופכים את הכדורים בעדינות, וכמובן שאפשר לתקן את הטעם)

11. מגישים על אורז לבן ומעל מפזרים כוסברה קצוצה . יויו אוהב להוסיף 2 טיפות שמן קפיר ליים 

(אורז לבן: בסיר - כוס אורז, שתי כוסות מים וכמה גרגרי מלח על אש נמוכה עד שמתאדים הנוזלים)


<<englink [[Legume balls with coconut curry sauce]]>>
 
[img[pictures/hadira.jpg]]
''סקיצה ראשונית של יויו לדירה הריקה''



קצת אחרי יום השנה למותה של [[אימא של יויו|דינה זכרה לברכה]] נסעתי לבקר אותו בפריז. הם עברו לדירה ענקית שנפלה לידיהם במחיר נמוך מאוד וריקה מכל תוכן. בהחלט עניין של מזל. זו דירה שגודלה שלוש מאות מטרים רבועים, מלבן של 25/12 לא כולל המרפסת. היא נמצאת בקומה שנייה בבניין רחב מתחת למונמרטרה. הם סידרו אותה מאפס כולל קירות וכולל החלפת כל החשמל והאינסטלציה שהיו במצב מסוכן, ובתמורה קיבלו את החוזה הזה לשלוש שנים או עד שיימצא פתרון לדירה, שאף אחד לא רצה להתעסק איתה בשלב זה מסיבה שלא סופרה להם. יויו, גורה ודןדן לא נכנסו לשאלות בעניין הדירה. הם באו לראות אותה דרך עורך דין שנהג לאכול בקוסקוס, וברגע שנכנסו הייתה להם הרגשה טובה, והגודל או העונק, קראו לזה איך שקראו לזה, היממו אותם והם סגרו חוזה. הם עבדו חודש וחצי סביב השעון בלי לעצור כולל העבודה אצל [[ז'נבייב]]. [[יויו]] נדלק. הוא מצא תוכנה חינמית לעיצוב פנים והלך על זה בכל הכוח. הם לקחו לימים האלה חמישה [[עובדים סינים|הסינים]], שעבדו בעבר עבור ז'נבייב. את עבודתם הפיק בפועל [[אלפרד]] לפי הוראות מסודרות של [[יויו]]. הסינים היו מקצוענים. בערבים כשחזרו מהעבודה המשיכו עוד כמה שעות. מדי ערב יויו עבר על כל דבר. בדק, ניקה, שייף מה שצריך, [[ודןדן|דןדן]] איתו. הם חילקו את הדירה לשלושה חלקים. בחלק האמצעי, לטובתו הקצו 120 מטרים רבועים, בנו מטבח וסלון, חדר שירות, מקלחת ושירותים. בשני האחרים, שגודלם היה 80 מטרים רבועים, הוסיפו רק חדרי אמבטיה ושירותים והשאירו הכול פתוח. בכל חדר יש צד שפונה אל הרחוב ובו חלון ענקי ולכל אלה מרפסת אחת גדולה. קירות הגבס שבנו היו בכל מיני אלכסונים שתוכננו בסימטריה מלאה וצבועים כולם לבן. לכל אחד מהחדרים, לעומת זאת, אריחים רבועים בצבע שונה. בסלון ובמטבח המרצפות ירוקות, בחדר של גורה ודןדן צהובות ואצל יויו תכולות. במבואת הכניסה הן בחרדל ואדום. על המרפסת שבחזית הדירה, שמרוצפת במרצפות שיש בגדלים שונים ובצורות שונות, בנוי חדר נוסף שגודלו 18 מטרים רבועים. החדר שימש בעבר [[כקליניקה|הקליניקה]] של רופא ולו יציאה לרחוב. הוא כולל חדר שירותים קטן וחמים המאובזר בטוש ובכיור. 

<<englink [[Wishing star 01]]>>
[img[pictures/cochav-2.jpg]]

//22 בדצמבר//

כשהגעתי הם כבר התגוררו עשרה ימים בדירה. עוד לא הכול היה פתור, אבל כבר היה יפהפה ומסודר ונוח ומבהיק. [[גורה]] הייתה אחראית על האביזרים, שזה כולל מיטות, ספות, שטיחים, כלים לחדרי האמבטיה ולמטבח, וכרגיל הצטיינה במציאת מציאות בלתי רגילות באתרי בנייה או סתם ברחוב, ליד חנויות גדולות לממכר כלי עבודה למשל, או בקניית חפצים שווים וזולים במיוחד בשווקים. הגעתי אליהם לפנות בוקר של ה-22. הלכנו אליו ואז קצת הסתובבנו ברגל בשכונה שלו. עלינו למונמרטרה, ישבנו על המדרגות והבטנו על העיר, שהייתה מקושטת ומוארת לחג, וזה היה כל כך יפה לראות את זה מלמעלה. אחר כך המשכנו עוד קצת ועצרנו באחת המסעדות ואכלנו. [[ז'נבייב]] החליטה לסגור את המסעדה לעשרה ימים לחגים. אני הגעתי לארבעה ימים כולל ארוחת חג מולד בדירה החדשה והמפוארת עם כרטיס טיסה לעוד ארבעה ימים באירלנד. [[יויו]] היה עייף. הוא לא נח לרגע ימים רבים והיה מותש. גם אני הייתי עייפה. באחת בצהריים הלכנו לישון.





<<englink [[Wishing star 02]]>>
[img[pictures/cochav-3.jpg]]

//23 בדצמבר//

כשהתעוררתי בחצות [[הוא|יויו]] עוד ישן. התקלחתי במקלחת של האורחים שהייתה בה אמבטיה. האריחים אדומים, והארונות ירוקים בעלי ידיות תכולות. נגיעתו של יויו וליטופיהם של גורה ודןדן הורגשו בכל פינה. בחדר שבו ישנתי, זה הבנוי בחוץ (להלן הקליניקה), המרצפות היו מעורבבות מכל מה שנשאר וגם זה היה מקסים. ללא כל סימטריה, תכנון או איזון נראים לעין בין הצבעים, ובכל זאת מראה מושלם. [[הקליניקה]] הייתה נוחה, היו בה מדפים מעשה ידיהם, שלושה שטיחונים ירוקים כהים מפוזרים, מיטה כפולה, שולחן עליו מנורה, כיסא, רדיאטור ושתי דלתות: אחת שנפתחת לשביל קצר שבסופו מדרגות שנגמרות בשער ברזל שחור גדול שנפתח לרחוב; ואחרת שנפתחת למרפסת. הבית היה ריק מאדם. הלכתי להכין קפה. לרוחב שני שלישים מהחלל המרכזי נמתחים שנים עשר מטרים של דלפק רחב שהוא למעשה המטבח. במרכזו כיריים רחבים ושני כיורים, כל השאר משטח עבודה ענקי מנירוסטה, עליו מונחים גם מערבל חשמלי, מעבד מזון, מכונת הקפה וצ'יפסר. מכשירי החשמל חווטו לתוך, אשכרה, עמוד חשמל - מין קופסת עץ גבוהה שאליה הגיעה כמות גדולה של חשמל (פאזה או משהו כזה שיועדה רק למכשירי המטבח החדשים והנוצצים). כל הגוש הזה היה מצופה בפורמייקה בצבע בורדו ועל הדלתות ידיות מוזהבות עם פיתוחים. מראה מקסים. יצאתי למרפסת עם המחשב הנייד שלי, התיישבתי בפינת הישיבה הסמוכה לחדר שבו ישנתי וגלשתי, מדי פעם מרימה עיניי לפריט זה או אחר במרפסת, מביטה בו, נפעמת שוב. למשל, על הקיר הניצב מול החדר ולכל רוחבו היה תלוי גוף תאורה בצורת סמל האינסוף [[שאלפרד|אלפרד]] הכין ממנורות ניאון לבנות ועוד שתי פינות ישיבה, אחת מתחת לגוף תאורה והשנייה במרכז, ליד אי של עציצים מלאים בתבלינים, טמונים בתוך חלק מהארגזים שאספו. הארגזים יושבים על הגבהה שגם היא עשויה מעץ ועל מתלים תלויים כלי עבודה ומשפך. בשלוש שמעתי את יויו פותח וסוגר את הדלת. משוטט בבית. כעבור דקה או שתיים הגיע אליי מייל ממנו: איפה את? אני במרפסת, השבתי לו. הוא הגיע מחויך כעבור כמה דקות עם שתי כוסות קפה. הניח אותן על השולחן. חיבק אותי. התיישב. יפהפה כאן יויוקה. 
אני חושב שאני הולך לעסוק בזה באיזושהי צורה. בתכנון דירות. אני מת על זה מההתחלה ועד הסוף. אני אוהב לתכנן את החלל ואני אוהב לבחור, והתוכנה המדליקה הזו שמצאתי יודעת לתקן אותך לפי כללי [[הפנג שווי|https://he.wikipedia.org/wiki/%D7%A4%D7%A0%D7%92_%D7%A9%D7%95%D7%95%D7%99]] וזה מגניב אותי לגמרי. אני חושב על זה. ישנתי כל כך טוב.
אמר והביט בי בחיוך צדי. נפלא יויוש. גם אני חרפתי טוב טוב. אני בשוק מהדירה הזו. איזה טירוף. איך זה קרה הדבר הזה? 
כן, יש כאן אהבת הבורא. ברור שקרה כאן משהו שהיה לא טוב עבור בעלי הדירה, אך גם ברור לי שעבורנו זה לא רע ואולי אפילו טוב. המחשבה הזו מעיפה אותי רחוק. תקלטי, הם פירקו הכול, השאירו רק קירות חיצוניים. הדבר היחיד שנשאר, מתישהו תסתכלי על זה, זה ארון בנוי בקיר מסביב לדלת הכניסה עם מלא דלתות עץ קטנות. אני מאוהב בו. 
אני מרגישה נפלא כאן. זו דירה מלטפת לגמרי. מבינה מה שאתה אומר. 
את תמיד מבינה אותי.
באמת, אגב שאני מבינה אותך תמיד, נורא מסקרן אותי שתספר לי מתישהו מה קרה איתך בתקופה שבה נפגשנו ביפו... אני יודעת רק מה היה אחר כך, אבל לא מה היה אז. 
אשמח לספר לך הכול. אנחנו רק פה נשתה כמה כוסות קפה כי ישנתי כל כך טוב. הבטרייה שלי על מאה אחוז כרגע ואני שקט. סיימנו את המיזם. אני מבסוט עד הגג. עוד כמה שעות גורה ודןדן יגיעו. הם אוספים את אירי משדה התעופה מאוחר יותר ובינתיים מבלים. 
איזה כיף. אני מבינה שאנחנו צריכים להכין אוכל למחר. קמנו והלכנו להכין עוד קפה והבאנו סיגריות.
כן. מחר נקנה עץ וקישוטים. חילקנו בינינו את ההכנות, ואם את רוצה להכין משהו אז בשמחה.
ברור שאני רוצה להכין. נדבר על זה. מי מגיע?
אנחנו חמישה איתך ועם [[אירי]], ז'נבייב ושתי בנותיה, [[סוניה]] ובעלה [[מרק]], אלפרד [[וג'וזף|ג'וזף אברואה]], [[ד"ר לומבר היקר|פיליפ]], שהוא אלמן וילדיו לא כאן כרגע, [[רוז'ה]], המטפל האלטרנטיבי, מגיע עם חברה, [[וחמשת הסינים|הסינים]] החמודים שעבדו איתנו על הבית, ומי יודע, אולי יצוצו עוד... אשמח... אמרתי לכולם שהם מוזמנים להביא איתם אורחים, בא לי שהבית יהיה מלא. חיברתי את הסטריאו החדש שקניתי עם רמקולים אול אובר דה פלייס. 
שהרי איש קוֹל אתה – ממש חבורה שכזאת, יהיה שמח. לפי הספירה שלי מדובר בעשרים איש. בוא תראה לי רגע את הארונות. פסענו לכיוון הארונות, בדרך עצרנו ליד כל מיני חפצים תוך שיויו מסביר לי מאין הגיעו. את דלתות ארונות העץ הם צבעו בצבע לק כחול מלכותי ואת החלק הפנימי בלבן מבריק. שמרנו גם על שמנו הטוב, תראי, אומר לי החמוד, ומראה לי מגן דוד קטן שאלפרד צייר על המדף התחתון בכחול על הלבן. חזרנו לשבת.




<<englink [[Wishing star 03]]>>
[img[pictures/ela.jpg]]


(אלה)


אני כל כך מלא שמחה מהדירה הזאת, עד כה זה ההישג הגדול ביותר שהשגתי, אני גאה בעצמי. תשמעי משהו, בתקופה של יפו עבדתי באולפני עריכה בצד המזרחי של תל אביב, היה לי קטנוע וחייתי טוב ולא קרה בה שום דבר ראוי לאזכור עד שהגיעה [[פרשת גורה|הסיפור על גורה]] והנה אנחנו יושבים כאן. אבל אני רוצה לספר רגע סיפור אחר שיביא אותנו בסופו של דבר לימי יפו. זה היה לפני 13 שנים. גם אז הייתי טכנאי סאונד. הרווחתי אחלה. הספיק כזה לבילויים והכול. הייתי גם שם בצד. עבדתי והיה לי טוב יחסית. מאז שהשתחררתי מהצבא זה מה שעשיתי וכל פעם הייתה לי חברה אחרת לאיזו תקופה. מהחברה האחרונה שהייתה לי עד אז נפרדתי שנה לפני אותו יום ולאחר שחייתי איתה חמש שנים כמעט ובאמת חשבתי שהייתי אז בשיאי. ואז יום אחד [[תומר]] חבר שלי ואני הלכנו לבית קפה בדיזנגוף. הייתי אמור להתחיל לעבוד בארבע והיה שתיים בצהריים. הלכנו להתעורר לאטנו, ממש כמו שאני ואת עכשיו כאן בפריז. ככה בעודנו מתעוררים, ואני שעון לגמרי, עיניי עצומות ואני שומע קול עמוק של אישה צעירה. עוד לא קלטתי שהיא אומרת שלום לתומר, ואני פוקח את העיניים, מולי עומדת יפהפייה גבוהה כהה, עיניים שחורות כהות ממש, שיער שחור חלק, היא מביטה בי ומיד אני חושק בה. היא לא התפתלה, היא מיד שלחה אליי יד והציגה את עצמה. אלה, אמרה בקול עמוק. אני תפסתי את החרמנות של החיים, זה במבט אחורנית אני אומר לך, באותו הרגע סתם לא יכולתי לנתק ממנה את המבט, ואז היא ותומר אמרו כמה מילות נימוסים והיא חזרה לשבת עם אחיה. מיד שאלתי את תומר אם הוא מרשה לי להתחיל איתה. תשמע, הוא אמר לי, זאתי נראית לי מסוכנת, אבל סקסית, אין מה להגיד, תיהנה אחי, אני לא ממש מכיר אותה, יצא לי לראות אותה כמה פעמים אצל דני. אז כתבתי לה פתק קטן וביקשתי מתומר שייתן לה אותו. משהו כמו שבועיים אחר כך נפגשנו. היא כמובן נהנתה למשוך זמן עם הפגישה כי הייתה... את יודעת... אישה כזו. גורה ואני קוראים לנשים שכמותה בסדרה שכתבנו [[האחיות K]]. היא לא עונה לכל הקריטריונים של אחות K קלאסית, נניח, היא אינה לובשת בגדים סינתטיים, היא יותר בעניין של כותנה. היא מה"יודעות"... יודעת למה אני מתכוון? הייתה לה את כל ההתנהגות הזו של נשים שאז נמשכתי אליהן כמו זבוב לחרא. סתם. סליחה. תמיד המשפט הזה יוצא לי. גם היום יש לי דיאלוג לא גמור עם הנשים שאני נמשך אליהן וזה בכלל לא עניין אותי באותו רגע. חשבתי... את יודעת... שאני מעל הדברים. זה נורא מצחיק אותי כי עבדתי עם איזו חמורה אחת שכל הזמן הייתה אומרת לי, אתה צריך להיות On Top of Things והיא הכי לא הייתה ככה, החיים שלה היו בלגאן איום ונורא, היא והבעל שלה היו צורחים זה על זה כל היום כי הוא היה לפני פשיטת רגל וזה איים לה על החסכונות, והיא פתאום קלטה שעשתה דיל חרא בזה שנישאה לו. לידי היא כמובן לא העזה לומר זאת מפורשות, אך לפעמים רמזה. אז כשעבדתי איתה זו בדיוק הייתה התקופה שחשבתי גם אני שכלום לא יכול לקרות. את יודעת... מה כבר יכול לקרות... וכאמור נפגשנו, אלה ואני. הייתה בינינו התאמה פיזית מסעירה. מהרגע שהתחלנו לעשות סקס לא יכולנו להפסיק. ככה חודשים. פשוט הייתי הולך לעבודה, עובד את הזמן שצריך וזהו. והיא לא עבדה כבר אז. למדה. אבל גם... זה היה ככה פעם וחצי לימודים בשבוע. היה לה מלא זמן פנוי. הייתי מגיע לעבודה סחוט אבל שמח מאושר. התאהבנו וחשקנו בטירוף זה בזה וככה חודשים אנחנו מזדיינים כמו ארנבונים ארוכי אוזניים, לא ממהרים לשום מקום. לא ראיתי אנשים בזמן הזה. אורי מהעבודה אמר לי יום אחד, אחי, תעצור לפעמים לראות לאן הגעת. אך לא השכלתי להקשיב לו. זה מה שנקרא לא לרנדר, למרות שכמו שאת רואה אני זוכר את המשפט הזה שהוא אמר לי, עכשיו אני מבין כמה הרינדור שלי אטי. היא הייתה מתקשרת אליי לעבודה פעמים רבות כל יום. בהתחלה זה היה מגניב. הייתי כולי בתשוקה ורק רציתי לאכול עוד מהגוף שלה. [[היא הייתה כל הזמן לוחשת לי לבוא בין שמיכותיה|https://www.youtube.com/watch?v=qfzI4v5fDP8]], ועם הזמן התחלתי להתנתק מכל מעשה. הורדתי משמרות בעבודה, שמיכותיה היו על מיטתי, היא עזבה את הדירה שבה התגוררה (למה לשלם פעמיים שכר דירה... זמזמה לי... אם אפשר להיות מינימליסטים ורק להיות מחוברים כל היום...), וכל זה תוך כדי שהיא מראה לי ומוכיחה לי כמה לא יעיל זה לצאת לעבודה, מונה בפניי את כל העלויות הכרוכות ביציאה מהבית, כולל האניות שמשיטות את הבגדים שאני לובש לעבודה שאותם תופרים במזרח הרחוק. היא הפסיקה ללכת ללימודים. אחרי משהו כמו חצי שנה שמתי לב שהיא שמנה. בעשרה קילו הראשונים זה היה סקסי לאללה. היה משהו נורא מושך בהתעבות הזו. אבל אז היא עלתה במשך כמה חודשים עוד עשרה קילו, מיד נהיינו טוטליים. עאלק טוטליים. את יודעת? יש מילים שהייתי מכניס אותן תחת ההגדרה הוצאו מהקשרן. מילים שאנשים אומרים אותן ומבינים אותן בדיוק הפוך ממה שהן באמת, כמו למשל טוטלי. אני אוהב טוטלי, או נותן את הנשמה שלי. לא רוצה את הטוטליות שלך, אל תאהבי אותי, תשאירי את הנשמה שלך אצלך ותדאגי שתהיה שם ותאהבי אותה ואת שלי תשאירי אצלי!!! עם זאת.
הוא חייך מהבדיחה של עצמו, החיוך הוסר, הוא הלך והרצין, פניו הלכו והרצינו. 
הייתי חוזר בלילה מאולפן או מהופעה, היה מחכה לי אוכל שעשתה במין אטיות כזו כפייתית איך להגיד. האוכל לא היה מוכן מיד כשהגעתי, הייתי צריך לחזות בקתוליות ובנאמנות באובססיביות שבה היא חתכה כל עגבנייה ופירקה כל נבט תוך שהיא מתשאלת אותי אילו בנות ראיתי באותו הערב, מלבה בתוכה קנאה, מקטרת על הקושי שבלבשל. לראות איך היא מכבה את הסיר אורז מלא וקיבינימט. ככה אל תוך מערבולת האובססיביות נכנסתי בלא יודעין, בלא שימת לב, את יודעת איך זה. היא ממש טוותה סביבי רשת ונלכדתי, ואלוהים אדירים, פחדתי ממנה כמו אני לא יודע מה. לא העזתי להיפרד ממנה. עזבי, לא העזתי להיפרד ממנה, לא העזתי לחשוב שאני לא רוצה להיות איתה או שרע לי או משהו. בהתחלה בשנה הראשונה עוד יחסית היו באים חברים, אבל היא תמיד הביאה לוויכוחים עם כולם. במוקדם או במאוחר היא רבה עם כולם, חוץ מירון, שלא רב עם אף אחד. אותו תמיד אוהבים ובעיקר אין חשש מפניו. בצדק אין חשש מפניו. לאחר שנה וחצי בערך עברנו לגור במושב בדרום. חיינו מהחסכונות שלי. היה לנו בית קטן וחמוד עם חצר ענקית מלאה בעצים. ניסינו למכור כל מיני דברים שהיא הכינה, שאני הכנתי, היא הייתה מטרטרת לי במוח... אני הלכתי והתחרפנתי בלי לדעת מזה. היא כולה בסטארטאפים לא הגיוניים. בשלוש השנים הראשונות עוד הייתי עושה כמה משמרות סאונד פה ושם. היינו נכנסים למריבות קולניות שהתחילו מזה שאמרה שאני כבר לא חושק בה כמו בהתחלה כי שמנה, אחר כך על כל דבר. בהתחלה הערתי לה על ויכוחיה הלא נעימים... והיא הייתה מתרתחת ומשתוללת... ואז אחר כך הייתה באה לי בסקס... ואז כמו כל גבר אידיוט ישר שכחתי הכול. ככה חייתי עם אלה שבע שנים. בקושי ראיתי את הוריי. גורה אז הייתה בת 13 בהתחלה ואחר כך בת 20 וגיגי בראשית הימים ההם הייתה בת 18, כך ששתיהן היו עדיין בבית, ובעצם אחרי שגיגי התגייסה גורה נשארה לבד איתם. אני בקושי הגעתי לשם. אימא הייתה יושבת על הכיסא נדנדה וקוראת ורוטנת עדיין... אבל היה שקט יחסי. אני חייתי את חיי ונמאס לי כבר לדאוג לגיגי ולגורה. התחמקתי מלהגיע לשם. כמובן שההתרחקות החריפה עם כניסתה של אלה לחיי. לי לא היה מושג מכלום. כשגורה הייתה בת 18 וחצי היא התגייסה. היא עברה קורס בצפון, אבל אחר כך שירתה בדרום. היא הגיעה איזו פעם בהתחלה לבקר אותי ואת אלה... היא ישנה אצלנו ואלה הכינה לנו אוכל מעצבן והכול. שנינו התחבקנו כל הערב ודיברנו בלי סוף וככל שעבר הזמן אלה התחילה להראות סימנים בוטים של אי מרוצות. אני וגורה הבטנו זה על זה, וגורה קפצה ואמרה שתלך לישון. בלילה אלה טחנה לי בראש שאני אוהב את גורה יותר משאני אוהב אותה. היא לא נתנה לי לישון. לא עניתי לה, והיא נטרפה יותר ויותר... בסוף עשינו סקס ונרדמנו חבוקים אחרי שנשבעתי לה שאני אוהב אותה הכי בעולם. במהלך כל השנים היו לה גלים של עליות וירידות במשקל ובכל מקרה האוכל היה עניין גדול. בבוקר התעוררנו שקטים, שתינו קפה. גורה, כמוני, לא רצתה לאכול מוקדם כל כך בבוקר טרם נעורה קיבתה. הסעתי אותה לבסיס עם הפורד האפורה. היא הודתה לי ואמרה שהיא אוהבת אותי, אבל אחר כך לא הגיעה יותר לבקר. זה היה לא הרבה זמן אחרי שחזרנו מטיול עם הקרוון שקנינו שנה לפני זה. לאחר שבתכנית הסגירה שלה עליי והצמצום שכנעה אותי לקנות את הקרוון ולהסתובב בעולם ולהתפרנס מעשייה בדרכים. האמת שזו תקופה שלא הייתי מוותר עליה... כלומר... נסענו לאירופה, קנינו מבחור ישראלי ג'ינג'י שחי באירופה קרוון בצבעי ראסטה ומדוגם למדי בפנים. הוא נסע הרבה בעולם ונתן לנו מלא רעיונות למסלולים וטיפים והיינו בהיי בחודשים הראשונים, כלומר עדיין אסור היה לי להניע את אישוניי יתר על המידה שמא האלה תעלה בדעתה שאני רוצה אישה אחרת. בטח שכבר רציתי נשים אחרות, אבל מי העז, לא העזתי להניע את גלגלי עיניי כמעט. איזה חודש לפני שנפרדתי מאלה, זה היה כבר בימים שהצעקות בבית לא פסקו, המרחק בין ריב לריב הגיע למצב של נניח בממוצע חצי שעה בין ריב קולני לריב קולני. היה מתח נוראי. הייתי קם בבוקר וכל אושרי הסתכם בג'וינטים בשרשרת ובכלבה שלי. תשמעי אווה... אני לא אמור לשנוא אף אחד או להאשים אף אחד על שום דבר שקרה לי בחיים, את זה כבר הבנתי לפני כמה שנים וכבר עברו כמה שנים מאז שנפרדתי מאלה. אבל כשאני נזכר בה, עדיין כמות אדירה של כעס עולה בי. אני כבר גם מבין היום איך נתתי לדברים לקרות, איך הסכמתי לטרור הזה. עד היום אני גבולי. כדי לא להיכנס לטרור אני צריך להפעיל גם את השכל. אבל אז היה אז. בקיצור... ככה חודש לפני שנפרדתי מאלה גורה מצלצלת אליי, היא כבר הייתה לקראת סוף השירות הצבאי, ואמרה שהיא בסביבה ושאולי תקפוץ להגיד שלום. שמחתי נורא. אלה כמובן חטפה מיד התמוטטות עצבים מזה, צעקה עליי איך אני מאפשר למישהו להגיע ללא הכנה מוקדמת. לא היה אכפת לי יותר אבל גם מאוד פחדתי ממנה, מכיוון שהיא הייתה מקללת אותי ומאיימת עליי ומאחלת לי איחולים וזה הפחיד אותי באמת. ישבתי בשולחן במטבח, גורה הגיעה כעבור עשרים דקות בערך. התחבקנו, הכנו קפה. גורה שותה קפה שחור בלי חלב ובלי סוכר.
מה שלומך? שואלת אותי החמודה.
לא עניתי, חייכתי חיוך עייף. אלה התיישבה איתנו. לא ממש יכולנו לשוחח בפרטיות. גורה ואלה דיברו ביניהן. אני יושב ומביט בהן. רואה את העיניים של גורה המתבוננות באלה ומבין שמצבי רע מאוד. אני יכול להגיד לך שזה ממש היה הרגע שבו הבנתי שאני גומר עם אלה. מה גומר? נס ממנה רחוק ככל שאוכל.
כמובן שזה לקח זמן אחר כך. הייתי צריך לתכנן את העניין כי איומיה היו מפחידים ולא ידעתי מה מתוכם היא עלולה לקיים. היא גם חשבה שהיא אולי בהריון כי המחזור שלה איחר, ובמשך ימים התפללתי לאלוהים שאלה לא תהיה בהריון, שזה כל מה שאני מבקש ממנו, שאני מבטיח לעוף ממנה ורק אנא לא להביא איתה ילד לעולם. אני מאז, אגב, אשכרה מאמין באלוהים. בקיצור, ככה אני מתבונן בהן מדברות ושוב מתפלל לאלוהים. אנא בורא עולם, חסוך ממני את הניסיון הזה, ומילא ממני, מה על התינוק שייוולד לאישה המופרעת הזו. לפתע קמה אלה ואמרה שהיא הולכת לתלות כביסה. אולי נלך לאיזה טיול קטן? אמרה גורה וקמה חיש מהכיסא, לוקחת את הכוסות לכיור ושוטפת אותן. יצאנו. פחדתי נורא. מיד כשיצאנו ברז של מילים נפתח אצלי ותיארתי לגורה את כל מה שקורה בביתי. גם ככה היא הייתה מבוהלת. אתה נראה הכי גרוע שנראית אי פעם. אתה נראה גמור, אתה לא ממשיך ככה אחי.
הקפנו את המושב, באמצע הדרך התיישבנו על ספסל ליד בית יד לבנים. היו מלא מכוניות. הייתה איזו הרצאה, אך לא יכולתי לשבת יותר משלוש דקות. הייתי חייב לנוע.
בוא נחזור כדי שהיא לא תתפוצץ... ואתה חייב לעוף מכאן.
לאן אעוף? לאבא ואימא? 
אולי... אפילו רק בינתיים עד שתתארגן... אתה הרי בדקות חוזר לעבוד בסאונד.
לא יודע, בואי נחזור. 
הגענו הביתה. היא ניקתה את הבית. הרימה הכול. גורה נפרדה מאיתנו. להתראות אלה, מקווה שנתראה בקרוב. גורה הלכה. אלה המשיכה לנקות. התיישבתי מול הטלוויזיה כדי לא להפריע לה. כעבור כמה דקות שהיא מסתובבת כמו סערה סביבי, היא נעמדה מול הטלוויזיה וכיבתה אותה.
יא חתיכת זבל, מה כבר סיפרת לאחותך, יא חתיכת טינופת? 
מה סיפרתי לה? מה כואב לך? זאת אחותי. 
התחיל ריב קולני ביותר. אני ישבתי ובלי לזוז רק עניתי תשובות קרות לצרחות שלה. היא התקרבה אליי ממש קרוב ודחפה אותי לרצפה. נפלתי על הגב ונשארתי ככה. החלטתי לא להגיד כלום. הלכתי לישון. כבר בשמונה בבוקר הטלפון צלצל. אני כבר הייתי ער. אלה עדיין ישנה.
אתה בסדר? 
זו הייתה גורה. 
אני נורא דואגת לך. 
אני לא יודע עדיין. 
יצאתי חרישית מהבית, קיוויתי שאלה לא שמעה את הטלפון, הלכתי למכולת וקניתי סנדוויץ' וקפה וישבתי על המדרכה עם בעל המכולת. הוא סיפר לי שמישהו שאל על הקרוון שלי, ושאם אני רוצה להיפטר ממנו אז הוא חושב שזה יהיה קל מאוד. זה עודד אותי. חשבתי שהכסף הזה יכול לעזור לי. חזרתי הביתה. אלה כבר הייתה ערה. היא התחילה להימרח עליי ולהגיד לי כמה שהיא אוהבת אותי. היא ליטפה אותי מהצוואר לחזה ונישקה אותי בצוואר את הנשיקות שאני לא עומד בהן. עשינו שעות סקס ואז סיפרתי לה שמשה מהמכולת אמר לי שמישהו התעניין בקרוון וזה יוכל לעזור לנו עכשיו כספית. את לא מאמינה, זה אפילו לא לקח שניות, בגלל שהיה לי ברור שעל המשפט הזה אני הולך עכשיו לאכול עוד התקפת שיגעון - התכוננתי. כבר בדרך חזרה מהמכולת אמרתי לעצמי שאני חייב לא להיכנס לתוך השגַעֲת שבטח תאחז בה כשתשמע את רעיון מכירת הקרוון. היא אהבה לאחוז בחומר וכבר הייתי מוכן, אבל את לא יכולה לתאר לך, אם הייתה איזו תקווה קלושה שאחזור בי היא אבדה לנצח באותו הרגע. האמיני לי שראיתי התקפות זעם בחיי, אבל כזו עוד לא ראיתי. עיניה החלו רצות בחוריהן, היא תפסה אותי בפרצוף, עם כף היד והאצבעות אחזה בסנטרי, ככה.   
הוא אחז בסנטרי וטלטל אותו בעדינות והסביר לי תוך כדי שהוא מראה לי את התנועה בהקטנה, שזו הייתה טלטלה עצומה. 
היא החלה לצרוח, מבטה תקוע בתוך עיניי ואני לוחש לעצמי... אל תגיב! ...תענה לי! היא צרחה כמו משוגעת. את לא מדמיינת. היא צרחה וצרחה. ואני לא אומר מילה. היא קמה, נעמדה והמשיכה לצרוח ובעטה בי. ואני שותק. ואז היא התחילה לרוץ בחדר, ולצרוח, ולקלל, ולאיים עליי.
אתה לא תעז יא חתיכת אפס. שמעת אותי? שמעת אותי?
היא קירבה את הפה שלה לתוך האוזן שלי וטלטלה לי את הכתפיים ממש חזק ובטירוף. לא התאפקתי יותר. תפסתי אותה ממש חזק בחזרה. לא הייתה לי ברירה. היא הייתה חזקה. העיניים שלה רשפו אש קרה ומפחידה, השפתיים שלה רעדו וזה היה נראה לא רצוני. היא ניסתה בפול כוח להתנתק מהאחיזה שלי. היא השתוללה לי בתוך הידיים. היו כמה רגעים שכמעט הצליחה להתנתק. היא סיננה קללות מבין שיניה. ככה תוך כדי שהטירוף אוחז את שרירי הלסת שלה צמודים ונוקשים היא המשיכה לבעוט. הברכיים שלה מונחות על הרצפה והיא מניעה את השוקיים כדי לבעוט, וגופה העליון משתולל בתוכי. נשבע לך שכבר לא היה לי כוח. שאגה אדירה נפלטה ממני. היא נבהלה מעוצמת הקול ולרגע זה שיתק אותה, ובדיוק באותה ההזדמנות השכבתי אותה על הרצפה ואמרתי לה שאני אוהב אותה. אין לך מושג כמה שלא אהבתי אותה כבר, אבל הייתי מוכרח להרגיע אותה ולא יכולתי לחשוב על שום רעיון חוץ מלפנות לרגש הדפוק שלה ולהבטיח לה כמובן שבכלל לא בטוח שנמכור את הקרוון ההוא. היא עוד השתוללה קצת, החיה, פרכסה לה, גוועה, התחילה לבכות בכי מגעיל. הגעילה אותי כל כך. כבר הבנתי ברגעים הללו שאני עכשיו צריך לתת לה להירגע. לשמור על שקט והכי מהר שאצליח למצוא דרך לא לחיות איתה יותר ולא לראות אותה יותר. היא בכתה עוד איזה זמן וככה חיבקתי אותה וחשבתי על דברים אחרים. זה מדהים כי מיד הייתי פרקטי במחשבות שלי. החוזה כאן בבית נגמר בעוד חודשיים, חשבתי לעצמי, והחיה מתייפחת... ואני מדי פעם שששש... אומר לה... שששש מתוקה... וממשיך לחשוב... אולי התקפת הצרחות הזו קשורה גם לזה שהיא צריכה לקבל ואז היא לא בהריון... אני מתפלל לי... ואז שתלך לאן שבא לה... נמלאתי מרץ ושאלתי אותה עם בא לה תה. אני שונא תה. אבל זה מה שהיא שותה. אל תלך ממני. היא בקול מתפנק כזה. הייתי מת להגיד לה שהיא מגעילה אותי, אבל החזקתי את עצמי. 
בקיצור, יצאתי כמו גבר והבאתי צמחים מהגינה והכנתי תה מלכותי בקומקום. אצל המלך חסן בארמון אחרי הקוסקוס לא תמצאי כזה טעים, פתאום אני חושב שהתשתית להבנת הקוסקוס באה לי מאלה. הנחתי יפה על צלחת עוגיות שיבולת שועל... יענו קוואקר. 
הוא מדגים לי באצבעותיו את מראה הפתיתים ומעווה פניו.           
וישבנו והתחבקנו והיה לה שוב רגע כאילו יפה, אך כבר ממש לא יכולתי יותר לחשוב שהיא יפה או שאני אוהב בה משהו. בכל מילה שלה שמעתי את המניפולציה. יכולתי לראות איך היא מתכננת בראשה המעוות מהלכים קדימה. שאלתי אותה מה היא חושבת, והיא אמרה שהיא לא יודעת. ידעתי שאני צריך לחשוב מה לעשות. הטלפון צלצל וזו הייתה גורה. דיברתי איתה בשמחה ובקול גדול ולא מסתיר כדי שהיא תבין שאני לא לבד. עם אלה לא הייתי לבד בעצם אף פעם. היא פשוט הניחה עליי רצועת חנק ברגעים שהייתי מטושטש מיתר שימוש בגופה ומאז לא העזתי להשתחרר. גורה אמרה לי שהיא רוצה לראות אותי ושאלה אם תוכל לבוא באחד הימים הקרובים. הבטתי באלה. היא נתמלאה נחמדות ולחשה לי בהתלהבות... תגיד לה שתבוא עכשיו. שאלתי אותה אם היא רוצה, והיא אמרה שעכשיו כבר לא.
בקיצור...
גורה הצילה אותי, מה יש לומר. היא הגיעה בדיוק כשהיה צריך אותה ולקחה אחריות ודאגה כמו אני לא יודע מה.
בבוקר למחרת התעוררתי למשמע בכי שלא היה ממש סמוך אליי. לקחו כמה שניות עד שהבנתי שהתעוררתי וזו אלה שבוכה. קראתי לה... היא המשיכה לבכות... קמתי אליה... היא ישבה על האסלה... הדלת של השירותים הייתה פתוחה כמו תמיד ובידה היה נייר טואלט אדום מדם. מיד הבנתי ומהר הורדתי את החיוך שכמעט והיה על פניי... קיבלתי... אני לא בהריון... היא מיררה בבכי. ממש אז גורה התקשרה ושאלתי את אלה אם גורה תוכל לבוא אלינו. למרבה השמחה היא הייתה צריכה לנסוע לאח שלה בצפון. גורה הגיעה במהירות כדי שאלה תרגיש טוב וכדי שלא נפספס אף רגע. אלה עוד התקלחה איזה עשרים שעות והתלבשה אלף שעות. גורה ואני הקפצנו אותה לאוטובוס. אמרנו לה חמש פעמים שהיא נראית נהדר. גורה אלופה בקטעים האלה של לגרום לאנשים להרגיש טוב עם עצמם. עברנו במכולת וקנינו לחמניות לארוחת בוקר.
אתה מרשה לי לדבר עם אבא ואימא? היא לועסת ושואלת.
לא יודע עכשיו.
טוב... אבל צריך לחשוב על תכנית מילוט, אתה לא יכול להישאר ככה. 
יש לי כאן שכירות משולמת לעוד חודשיים. 
אחלה. אז היא תוכל להישאר כאן. לפחות אתה תדע שיש לה חודשיים להתארגן על מקום מגורים חדש. ותזכור, אתה לא אימא שלה ולא אבא שלה ופאק דה שכירות. 
אני מת מפחד. 
תהיה רגוע. הכי גרוע כבר מאחוריך, ואיזה מזל שהיא לא בהריון. 
נכון. איזה מזל. ובאמת כנראה הכול מאחוריי. 
ואין לך מושג אווה כמה שהלוואי... ואיזה מזל שהיא לא נכנסה להריון. רק היה חסר לי ילד מהאישה הזו... אני מודה עד היום לאלוהים על זה... בעיקר בשם הילד שלא נולד, אבל קשה להגיד שהכול כבר היה מאחוריי. 
לבסוף נפרדתי מאלה. היה מתיש, היא פעם אחת, כשנסעתי להוריי, שברה חצי בית ואת פנים הקרוון כדי שלא אוכל למכור אותו. היא המשיכה עוד לקלל ולאיים אך לא חששתי מפניה יותר. עד עכשיו אני יכול לפעמים לראות הדהודים של הנביחות שלה, רק הפה מסמן תנועות נביחה אבל אין סאונד. בסוף זה עבר. זה עלה כסף, אבל זה עבר. גרתי קצת אצל ההורים ואחר כך נדדתי תקופה בין חברים, לא הייתי מסוגל לעבוד עדיין, לקח לי עוד כמעט שנה עד שהתחלתי לחזור לתפקוד. ידעתי שאני לא רוצה לעבוד באולפנים יותר, אבל הייתי חייב להתפרנס ולא ידעתי מה אני רוצה. עבדתי רק כמה שהייתי חייב. גורה השתחררה. עבדה בקייטרינג בתור ברמנית. הייתה מרוצה. תיקנה בגרויות ועשתה פסיכומטרי. זה מה שהיה עד לפני ארבע-חמש שנים, משהו כזה. 
הוא פסק מלדבר בנקודה הזו. שתקנו קצת. היה קר. כבר היה חמש וחצי לפנות בוקר. קמנו להכין עוד קפה. הכנו סנדוויצ'ים. המקרר הענקי עמד במרכזו של הקיר שעמד בין הכניסה לחלל הגדול והיה אפור מתכתי. משני צדדיו שידות עץ זהות בהן מגירות בדוגמת שידות החתלה ועליהן פלטות נירוסטה. אתם מלכים, עשיתם כאן עבודה יוצאת דופן, אמרתי לו כששיניי עוד נוקשות מהקור. 
אני שמח לשמוע אווה, השתדלתי מאוד, השקעתי מחשבה, והחברים היקרים, כולל הקטנה, שיתפו איתי פעולה באופן מלא. אני אומר לך אחרי שנים שכבר הבנתי את זה שעליי לקבל את המציאות כפי שהיא, אני סוף סוף מרגיש מאה אחוזים של טוב וזה עוד לפני שיש לי חברה... 
חבשנו כובעים ולקחנו את הקפה, הכריכים והשמיכות וחזרנו לשבת סמוך [[לקליניקה|הקליניקה]]. 




<<englink [[Wishing star 04]]>>
[img[pictures/cochav-5.jpg]]

תגידי אווה, למה שלא תדברי קצת ואני אקשיב? בא לי לשתוק ולשמוע אותך.

מצחיק אתה. כבר הרבה שנים שאני חושבת על החלמה. לוקח הרבה זמן להחלים, הרבה מאוד אם בכלל. אולי רק בימים האלה אני מתחילה להרגיש שאוכל להיות חזקה כמו הילדה שהייתי. כל השנים האלה, בהן מצבי היה רחוק מלהיות טוב או חזק, ידעתי שזה עוד לוקח, שזה עוד ייקח, שזה משתפר אט-אט ואין מה לעשות, המסוגלות שלי מוגבלת. לא נראה לי שאי פעם מחלימים לחלוטין, לכל היותר משתפרים ולומדים להסתדר. גורה תמיד תרגיש את הפלטינה שבאגן הירכיים שלה. אני לא נפגעתי גופנית, אבל נפשית נפלתי והתרסקתי. כשהגוף נחבל זה ברור לעין, כשהנפש נחבלת זה לאו דווקא ניכר בעליל. לקח לי זמן לקלוט את גודל אי המסוגלות שלי. גם כשחשבתי שהגעתי לתחתית ו"שמשם אפשר רק לעלות", כפי שאמרו לי לא פעם, ירדתי עוד. בזמן אמת לא הבנתי עד כמה, אך מתישהו כבר הבנתי שאפשר תמיד גם לרדת עוד. הנפילה כאילו הולידה אותי מחדש, אט-אט התחלתי להרים את הראש, להתהפך, לזחול, להיעמד, ללכת יד ביד עם התינוקת שאני ולארגן את עצמי מחדש. גם אני, כמו גורה, מצאתי מזור בכתיבה, אך ההתרוממות אורכת שנים רבות. עדיין מעולם לא סיפרתי לך על המשפחה הגרעינית שלי, התשתית - ותנשום עמוק כי זה לא סיפור נורמטיבי. לא שהסיפור שלך נורמטיבי, אבל תכף תתחיל להבין. הבטתי בו והמשכתי. ובכן, [[דמיין בעיני רוחך|הנחלה בה גדלתי]] יויו יקירי:
חצר ענקית שמחולקת לבתים בתים. מעין שכונה. שכונה סגורה וענקית ובה שבע חצרות ובמרכז כל אחת מהן ניצב בית גדול. 
שבע חווילות, ביניהן גנים יפהפיים ומלאי עצים. כל בית הוא בסדר גודל של 400-300 מטרים רבועים וסביבו עשרה דונמים של חצר עבותה. לצד כל בית כזה יש גם בית לעובדים ומחסנים.
הנחלה כולה משתרעת על שטח של כמאה וחמישים דונמים אותם סובבת שדרה רבועה מפוארת ורחבה ובערך באמצעה עובר ערוץ נחל. בצדי הדרכים והשבילים פרחו פרחים צבעוניים וציפורים צייצו. 
היינו ואנחנו עדיין משפחה עשירה מאוד בכסף ובנכסים. את הנחלה הקיפו דונמים רבים של שדות. שדות של תירס, שדות של חיטה, שדות של ירקות, כרמים של גפנים וכרמים של זיתים, פרדסים של תפוזים ולימונים ומטעי פרות נשירים. בצד הצפוני היה דיר גדול ולידו הייתה אורווה. היה יקב ומפעל לשימורים, נגרייה [[ומטבח|המטבח של הנחלה]] רחב ידיים ששכן במבנה גדול ועבדו בו שלוש נשים. הן היו מבשלות ואופות לכולנו אוכל משובח. אחת מהשלוש, איריס, הייתה לי כאם. צמוד למטבח היה מבנה נוסף ששימש כמעין מועדון. היו בו שולחנות נמוכים וכורסאות ושולחנות אוכל ומכונת קפה ומשחקים.
בכל אחד מהבתים הגדולים גרו אחת משבע נשותיו של אבי וצאצאיה.
ליתר דיוק בחמישה מהבתים גרו נשים של אבי וזאת מכיוון שאשתו הראשונה נפטרה לפני שנים רבות וגם אמי היפה נפטרה כשהייתי בת ארבע.
היו לי עשרים ושלושה חצאי אחים ואחיות ואח אחד שלם. כלומר לאבי נולדו עשרים וחמישה בנים ובנות בסך הכול. 
כל הילדים למדו יחד עד כיתה ח' וחולקו לקבוצות למידה לפי רמת התקדמות. את הבנים לימדו גם לעבוד בשדות, במשק החי, נפחות, חשבונאות, נגרות ועוד מיני מלאכות וכישורים, ואת הבנות גידלו להיות מתחזקות בית לעילא. למדנו לעשות כל שתעלה על הדעת, כולל עבודות יד, מוזיקה, מחול. בין ח' לי"ב עברנו ללמוד בבית ספר אזורי שהיה חצי שעה נסיעה מהנחלה. 
עד כאן הצלחת לדמיין?
אימא'לה! אני מת!
צחקתי בקול רם.




<<englink [[Wishing star 05]]>>
[img[pictures/cochav-6.jpg]]

זה סיפור עם נוף ציורי יויו יקר שלי. אבינו דר בבית שבו התגורר כל ימי חייו, להוציא שבע שנים שבהן חי עם אשתו הראשונה בבית שלימים הפך לבית שלנו, אותו בנו לו הוריו עוד בנישואיו הראשונים. ביתנו היה הבית האהוב על אבינו. לאחר שהוריו, שהיה בנם היחיד, הלכו לעולמם, הוא חזר לבית ילדותו עם פרלה, אשתו הראשונה, לה נישא כשהיה בן 22. היו להם שלושה בנים. פרלה הייתה עקרת בית למופת. לאחר שחזר לבית הוריו ביקשה פרלה להשאיר את הבית שלהם ריק למרות שלאחר מות הוריו עמד אבינו לשאת אישה שנייה. כשהיה בן 29 נישא לנורית, ממלא אחר בקשת הוריו, שלחצו עליו לשאת אישה נוספת, לאחר שפרלה שברה את האגן שנתיים קודם, ובנה לה בית חדש. הם רצו המשכיות למשפחתם ועודדו את אבי להביא לעולם צאצאים נוספים.
הבית שלנו היה ממוקם בפינה הצפון מערבית של החצר הענקית שמוקמה סביב הנחל. מצד אחד שלנו, במרחק די גדול, גרו נורית וארבעת בניה, ומהצד השני, מעבר לנחל, התגוררה מלכה עם שני בניה ושלוש בנותיה. בניה של נורית היו פרועים וחסרי מעצורים.
אמי הייתה אשתו הרביעית של אבא. הוא נישא לה זמן קצר לאחר שנישא למלכה. כשילדה אותי חלתה. זו לא הייתה מחלה ממש כי אם איבוד כמות עצומה של דם לאחר הלידה בשל סיבוך ברחם. היא התגברה על איבוד הדם אך סבלה מבעיות פיזיולוגיות רבות. הייתה לי מטפלת ובהתחלה אף מינקת. גרנו יחד – אמי, אחי ואני. כשמלאו לי ארבע היא הלכה לעולמה. שמה היה חנה. [[אחי|אהרון אחי השלם]] היה מבוגר ממני באחת עשרה שנים. הוא שמר עליי תמיד ככל יכולתו. לפעמים יצא לנסיעות וככל שבגר הלכו ורבו סמכויותיו ואחריותו גדלה. אחי היה מעין שר חוץ של המשפחה כולה. הוא זה שידע שפות זרות, הוא זה שידע לנהל שיחה עם כל אדם, הוא זה שעורר אמון וחיבה בקרב הבריות. אחי הגדול החליף הרבה מאוד נשים והיה גבר גדול ומושך. בימים בהם אחי אהרון היה בנסיעות אילץ אותי אבינו לשהות בביתה של מלכה. התנגדותי לא הועילה. 
אני רועדת מקור יויו.
נכנסנו והכנו עוד קפה וכוסות מים ואגוזי קשיו וצימוקים שחורים קטנים ושוטטנו והתחבקנו והסתובבנו עוד בבית – יויו מְטָווס גאה. ישבנו ליד שולחן האוכל. הבטנו זה בזה. אני רוצה שתמשיכי לספר לי, אני מרותק, הוא אמר. 
היו עוד שלוש נשים, ליליאן, דבורה ורחל האהובה. אבא כמו עץ, המשכתי, גוו היה זקוף וחזק כגזע וקומתו גבוהה. הוא היה חכם וקל לשון אך העדיף לעסוק כמה שפחות בעסקים ובכל הכרוך בהם ואת ימיו בילה בשדות. עם הזמן ובטבעיות, ואף על פי שהיו בנים מבוגרים ממנו, הפך אחי לאיש שלו. 
בימים שלאחר מות אמי, מלכה ונורית, האימהות השכנות, דאגו לנו. מלכה השקיעה בנו שעות רבות מזמנה וממרצה וניסתה להעביר אותנו לחזקתה. למרבה המזל אחי היה מבוגר ונחוש מספיק כדי להתנגד לדבר. הוא כבר היה בוגר מספיק כדי לדעת שמלכה חומדת את ביתנו שאבא אהב ולכן דאג להיות בעל הבית.
אני מספרת לך את הדברים עכשיו, שנים לאחר אותם חיים באותה חצר סגורה וכמעט שלושים ושתיים שנה מאז שאני לא שם יותר. גיליתי פרצה דרכה חמקתי החוצה אל העולם הפתוח שלא באמת הכרתי במהלך 18 שנות חיי עד אז. 
סבלתי את האימהות החורגות שלי רק מתוך כבוד לאבא, כמו שאני סובלת את האחים החורגים מתוך כבוד למשפחה, אף על פי שלא כולם בלתי ראויים. חלקם ראויים ביותר והיו אחים נהדרים ואני אוהבת כמה מהם עד מאוד. אתה יכול רק לנסות ולדמיין כמה צאצאים נוספים נולדו מתוך עשרים וחמישה אחים ואחיות...? לא מעט, זה בטוח.
אני חושב שיש לי הרבה מאוד שאלות אלייך. אבל שאלה ראשונה ברשותך אישה יקרה... זה חוקי הדבר הזה?
זה היה במקום אחר שהיה בזמן אחר וכן, זה היה לגיטימי למרות שזה לא היה מקובל, ואבא הלך רחוק עם הלגיטימציה, ולשמחתי זה מאחוריי והיום אני גרה במקום אחר לגמרי, שוב קרובה לאבא, שכבר מלאו לו 92, וקרובה לאהרון, שבעוד שבוע ימלאו לו 60, וקרובה לאדית – עוד חצי אחות שלי, בתה של מלכה, אשתו השלישית של אבא, והיא בת גילי, וקרוב לניקי, האחות האחת לפני הצעירה ביותר מעשרים וחמישה בניו ובנותיו של אבינו ובתה של רחל, אשתו הצעירה ביותר והנפלאה ביותר שאהבה אותי ואני אותה. עם ניקי נפגשנו באיחור מה. יום אחד אצייר לך את [[עץ המשפחה שלי|עץ המשפחה של אווה]].






<<englink [[Wishing star 06]]>>
[img[pictures/cochav-7.jpg]]

זה סיפור עבות וצפוף כמו כמות עצים שמוח אחד לא יכול לדמיין בבת אחת, ולא יודעת כמה אספר לך ממנו ובטח לא עכשיו. עכשיו מה שעכשיו. [[אבינו]] לא התעסק איתנו יותר מדי, אבל מדי בוקר ברבע לשמונה היינו מתקבצים כולנו באמצע הנחלה, סמוך למקום שבו עובר הנחל ויש במה קטנה ורחבה מרוצפת וחורשת עצי מחט. אבא, שמצד אחד היה טיפוס ארטיסטי ומן הצד השני היה קשוח עד מפחיד, אסף את כולנו מדי בוקר באותה רחבה. יויו יקר שלי... אני עצמי עוד לא לגמרי יודעת איך לדבר על שמונה עשרה השנים הראשונות של חיי ולכן לא נוהגת לדבר עליהן. עוד אספר לך המון יויוקה ויש לי מספיק מה לספר גם אם לא אגיע בשלב זה לדברים שעדיין איני מסוגלת לדבר עליהם, אבל בינתיים אני רוצה לספר לך עוד דבר אחד מאותה נחלה. בבקרים באסיפה המשפחתית היה אבי עומד מולנו ועורך טקס לא ארוך, בו דבר ראשון איחל לכולנו בוקר טוב ואנחנו לו. אחריו הוא היה מנחה אותנו לנשימה נכונה משך כמה דקות. מביט לכל אחד ואחד מאיתנו לתוך העיניים. מסיים. מסתכל על כולנו ואומר: ועכשיו כל אחד מכם ילדיי היקרים יכול לבקש דבר מה אותו הוא מאחל לעצמו מכוכב המשאלות בעל תשע הצלעות. כל אחד מאיתנו דמם עם עצמו לדקה. ואז חייך אבינו חיוך גדול. הצמיד כפות ידיו זו לזו בהנאה, בירך את כולנו ליום מוצלח ופורה, ומשם המשכנו כל אחד אל משימותיו. 
סיפור מקסים. לא נשמע אמיתי, אבל מקסים להקשיב לו. אני שומע אותך ומתרוממות לי הגבות מבפנים אווה. אני מביט בך ואני נדהם – איזה סיפור. תגידי... איפה נמצא הכוכב הזה? ותגידי... מאיפה את יודעת לאפות תגידי? ואיך ברחת בדיוק, ובדיוק ממה ומה עשית לפני שאפית? יש לי הרבה מאוד שאלות אלייך אווה... 
כן, מובן. אתה יודע שכבר שבע? אגיד לך עכשיו בקצרה, המציאות עולה על כל דמיון. וכוכב המשאלות בעל תשע הצלעות הומצא בדמיון של אבינו היקר. אמרתי לו וחייכתי. אבא אהב לחשוב שמשם הגענו. יויו התפקע מצחוק אבל סימן לי עם היד שאמשיך לספר. המשכתי. [[את האפייה|אפייה]] למדתי [[במטבח|המטבח של הנחלה]] של הבית בחצר הענקית שלנו אז-שם. אהבתי להיות במטבח ואהבתי את הנשים שעבדו ואהבתי לעבוד איתן והן לימדו אותי הרבה דברים, אבל יותר מכול אהבתי את האופה שביניהן. זו שהכינה את כל העוגות והקינוחים והעוגיות והריבות והתרכיזים והפסטה וגם בישלה. היא כבר לא בין החיים. שמה היה [[איריס]] ומכאן שמה של [[בתי היחידה|איריס הבת]]. הוא חייך. חייכנו. 



<<englink [[Wishing star 07]]>>
[img[pictures/cochav-8.jpg]]

אני נזכרת בה כל יום כמעט [[באיריס|איריס]] ההיא. [[איריס שלי|איריס הבת]], תודה לאל, איתי. חוץ מזה... היה לי עסק שקשור, שים לב יויו שלי, לעיצוב פנים וחוץ. אבל איבדתי אותו ואחר כך המשכתי בין עבודות רבות. את אבא פגשתי שוב רק לפני חמש שנים, ולכן כפי שאתה יודע בשנה האחרונה חדלתי מלאפות בעבור שכר. לגבי אבא, הגיע רגע שנמאס לו והוא שחרר הכול. מכר את רוב מה שהיה לו, חילק את הון העתק בין כולם. הנשים שעדיין בחיים נשארו שם – גם הן קיבלו את שלהן מההון. לעצמו הוא לקח כמה שלקח וכעת כולנו גרים קרוב. כשברחתי, אבל אין לי כוח עכשיו לספר לך ממה ואיך, הגעתי מאוד במקרה לבית של זוג שהתגורר בארץ. עם סכום לא מבוטל אך לא גדול של מעות שהצלחתי לאסוף במשך כמה חודשים ברחתי הכי רחוק שהיה אפשר ואליהם הגעתי. ישבתי בבית קפה גדול שהשולחנות בו ממש קרובים זה לזה והתחלתי לאכול. הייתי בת 18. כעבור כמה דקות התיישב לידי [[זוג בני 60|ג'ו ונורמה]]. גבר ואישה נאי סבר ומראה ולבושים יפה. זה היה בשנות השמונים. תוך כדי שאכלתי והם הזמינו לעצמם התפתחה בינינו שיחה שהובילה לכך שהם הזמינו אותי לביתם ואצלם התחלתי את חיי החדשים. גם לי היה מזל גדול יויוקה, ולכן אינני מעזה להתלונן על מה שאין לי. הגבר, ששמו היה ג'ו, היה חלוץ מחשבים, ואשתו [[נורמה|סיפורים שסיפרתי לנורמה]] הייתה אדריכלית פנים וגינות. לשניהם היה תואר דוקטור במקצועות שלהם. היו להם שני בנים גדולים שלא גרו בבית, אנדרה ופיליפ. גרתי אצלם חמש שנים. ג'ו ונורמה נדלקו עליי ולקחו אותי תחת חסותם וכפרויקט. ג'ו לימד אותי מחשבים ועם נורמה היו לי שיחות ארוכות על עיצוב. די מהר עבדתי איתה שלושה ימים בכל שבוע. בשאר הזמן התחלתי ללמד את עצמי תוכנות עיצוב וללמוד באוניברסיטה הפתוחה. תוך שלוש שנים, ובעזרת ג'ו ונורמה, התחלתי לקבל עבודות. ידעתי טוב גננות וחקלאות ולבנות דברים. זה עוד דבר שהיה לי מהנחלה. פעמיים-שלוש בשבוע הגיע נגר אומן, אדם היה שמו. אדם משכיל וחביב שסבל [[מבעיית שתייה מודחקת|ריחות]]. הוא לימד את מי מבינינו שהתעניין, אבל בעיקר בנה ותיקן כל מה שנדרש לבתים. אהבתי לעבוד בנגרייה ולהקשיב לאדם ולדבר איתו, למדתי ממנו המון. גם [[רזיאל ורפאל]], שניים משלושת בניה של פרלה, בילו שם הרבה. אז ככה שהדברים שיחקו לטובתי. למדתי והתפתחתי וקיבלתי תמיכה ואהבה, אבל יום אחד כתבתי פתק והלכתי משם בלי להביט לאחור. זה קרה כי הייתי מאוהבת קשות בבנם הצעיר פיליפ, שהיה, כשהגעתי לשם, בן 30 ולמד בלונדון. לא יכולתי להתמודד עם זה. אנדרה, בנם הבכור, היה בן 36 אז. היו להם גם שלושה כלבים ושני חתולים. משפחה מעניינת בפני עצמה. בשנים שאחר כך היינו נפגשים שלושתנו לארוחות ערב בעיר מדי כמה חודשים ולאחר שנישאתי הפסקנו להיפגש. כמה שנים אחרי שהתגרשתי פגשתי אותם במקרה באיקאה, וזו הייתה שמחה עצומה ושוב התחלנו להתראות. לפני שש וחמש שנים בהתאמה הם הלכו לעולמם. ג'ו נפטר כשהיה בן 85, ונורמה כשהייתה בת 86. היו להם חיים יפים וטובים ובעצם פיליפ היה בנה של נורמה ואנדרה היה בנו של ג'ו ולא היו להם ילדים משותפים, וכשנפגשנו הם כבר חיו יחד עשר שנים. היה להם בית גדול למדי עם גינה לא קטנה. אני גידלתי בגינה ירקות ובישלתי ואפיתי לא מתוך חובה. הם עודדו אותי כל הזמן לצאת אך ללא הועיל. הם היו אנשים נפלאים שגם הבינו את מצבי כי סיפרתי להם הרבה על עברי. שלוש שנים אחרי שהגעתי אליהם התחלתי לעבוד ולהרוויח כסף. הם לא רצו ממני דבר וחסכתי כמעט כל מה שהרווחתי. בפיליפ התאהבתי ברגע שראיתי אותו. כל כך אהבתי את הפנים שלו. אהבתי את המבט שלו. אין לי מושג מה הוא הרגיש כלפיי, אי אפשר לדעת דברים כאלה לגבי האחר, אך ללא ספק מצאתי חן בעיניו. חייכתי והסמקתי עד קצות האוזניים. יויו חייך חיוך גדול וחיבק אותי ואמר שלא ישקוט עד שאסיים את הסיפור כולו. אם הייתי פוגשת אותו עכשיו בטח הייתי מתעלפת, אמרתי. בכל אופן, היו בינינו דברים, ביני ובין [[פיליפ]], זה קרה ארבע שנים וחצי אחרי שכבר גרתי שם, כשג'ו ונורמה נסעו לחופשה, ואני נשארתי. הוא הגיע בהפתעה ובילינו יחד ארבעה ימים משכרים ואחר כך כבר הכול נהיה בלגן, כי הייתה לו ארוסה, ואחרי שנסע בלעתי את כל הכאב בלי להראות או לדבר עליו. ג'ו ונורמה ראו אותי משתבשת... 





<<englink [[Wishing star 08]]>>
[img[pictures/cochav-9.jpg]]

אני מספרת [[ליויו|יויו]], הוא מחבק אותי, ואנחנו שומעים את הדלת נפתחת וקולות של דיבורים שקטים יחסית ומזוודות שמונחות על הרצפה ואת הדלת נסגרת. אנחנו מביטים זה בזה. אני אומרת לו שנמשיך כבר בהזדמנות, והוא אומר לי שהוא חייב לשמוע כל פרט ופרט ושאני מופלאה, ואני אומרת לו שלאט-לאט ואנחנו קמים ומולנו ניצבת חבורת מופלאים – [[גורה]] מחזיקה שקית המכילה בגטים, [[אירי]] עם תיקים, [[ודןדן|דןדן]], שאוחז בידיו עץ אשוח גדול למדי – יפים, צעירים ומחייכים. תגידו יפה שלום כולכם, יויו אומר, לוקח את העץ מדןדן ומניח אותו קרוב למרפסת. כבר היה שמונה בבוקר.
ברוכה הבאה אירי מותק, מה שלומכם? שאל אותם יויו. אנחנו טוב, ענתה גורה, ואירי רק חייכה. אירי תישן איתנו בחדר עד היום שאחרי הארוחה ואחר כך יש לה דירה, למרות שאני מתחננת בפניה שתישאר כאן עוד. אווה אל תרגישי לא בסדר, היא מסובבת גופה לעברי, מושיטה רגל ימין קדימה, נשענת על האחורית ואת שתי כפות ידיה מניחה על מותניה, מביטה בי, מחייכת וחוזרת בניעה קדימה לעמוד רגיל. אנחנו יודעים לישון יחד והקליניקה יועדה לך מדאורייתא. בחדר שלנו סידרנו עוד מיטה עם חוצץ מקוליסות שדןדן המתוק מצא וצבע וקישט, את מוזמנת לראות. כמה התגעגעתי לדיבורים שלך גורה, אמרתי לה, אני רוצה לראות. דןדן כבר הכניס את התיקים של אירי ויצא מן החדר. הם חשבו על כל דבר האדירים האלה. הם שמו מיטה וחצי ליד החלון מוקפת בקוליסות של דןדן, מרכזן צבוע לבן והמסגרות בצהוב בהיר ועליהן מודבקות מדבקות של דמויות מסרטים מצוירים, שחולקו חינם בתערוכה של אמני גרפיטי באיזה בר של סקייטרים במונפרנאס. ליד המיטה צמוד לקיר היה ספסל עץ רחב, ומדפים על גלגלים שבנו מארבעה ארגזים די גדולים, וביניהם שני מוטות מדורגים לתליית בגדים. המיטה שלהם הייתה ענקית ועמדה מול זו שסידרו לאירי. בפינה נוספת היו שתי כורסאות ושולחן ובכל מיני פינות היו מדפים כאלה ואחרים עליהם פזורים חפצים שונים ושטיח ענקי כחול במרכז. עשיתם עבודה יפהפייה ויוצאת דופן, אמרתי את זה ליויו קודם, אני אומרת. אירי מחייכת מאוזן לאוזן כל הזמן הזה, מסתובבת ברחבי החדר עוד ועוד עד שיוצאת. גם אני יוצאת מהחדר. יויו ודןדן התחילו להכין ארוחת בוקר – ביצים, סלט, גבינות, אבוקדו, חמאה, פלפלים קלויים, בגטים, קרואסונים, ריבה, מיץ, תה, קפה, אכלנו בתיאבון. הם תכננו ללכת עכשיו לשוק ואחר כך ללכת לישון. 
הלכנו כולנו לשוק. ליויו ודןדן [[תרמילים|תיקי גב לקניות שדןדן ויויו הכינו]] גדולים וריקים על הגב. זו הייתה הליכה של עשרים וחמש דקות באוויר הקר. גורה הייתה במצב הרבה יותר טוב, אך עדיין לא הצליחה ללכת מהר כמו דןדן ויויו, שטסו, וכך למזלי הלכתי לאט יותר עם גורה. אירי הולכת מהר ולאט, מתרחקת ומתקרבת אלינו, חוצה וחוזרת. 
תגידי, איך התמודדת עם כל השיפוץ והמעבר דירה? שאלתי את גורה. זה לא היה קשה כי לא לקחתי חלק בשיפוץ. ברוב הזמן אני עדיין בטיפולים ולא נעה הרבה מדי, רק כמה שמרגישה שמסוגלת. בזמן שהבנים שיפצו עשיתי רשימות של מה שצריך, יויו הראה לי את התכניות והצבעים, חיפשתי הרבה באינטרנט, וכשידעתי בדיוק לאן אני הולכת לקחתי איתי את דןדן ויויו וביצענו את הרכישות, ככה שהם סחבו. מצאנו וקיבלנו די הרבה רהיטים שהבנים שיפצו. אחד [[הסינים]], [[קוּאֵנְג|קואנג]], גם הצטרף אליי בחלק מהפעמים, הוא זהב טהור. גם במעבר עצמו, דבר ראשון לא היה לנו הרבה מה להעביר ורוב מה שיש כאן חדש עבורנו, ודבר שני, הגעתי כמו מלכה כשהכול כבר היה נקי ומסודר. רק העברתי חפצים אישיים, שהם אינם רבים. השארנו את הדירה הקודמת עד לרגע האחרון וסבלטנו אותה עד לתום החוזה שמסתיים בקרוב, היא אמרה וחייכה. 
ואין לך שום בעיה עם [[אלפרד]]? 
עברתי את אלפרד, הוא עבורי חבר. בעיקר חבר של יויו ושל דןדן, והוא חמוד וכישרוני וטוב לב, הוא נתן עבודה כאן בשיפוץ. 
ומה מצדו? 
לא יודעת. נראה לי שגם אני כבר מאחוריו ותכל'ס אני חושבת שכשהוא מסתכל עליי הוא כבר לא רואה אותי ככה.
אם ככה הכול הסתדר. 
כן אווה, זאת תקופה טובה של החלמה ושל אופטימיות ושל ביחד. היא נטתה לחייך בסופם של משפטים.
ועוד שאלה גורל'ה, יש לכם מספיק כלי אוכל לארוחה?
בטח איווי. קניתי בחנות כלבו ענקית של הכול ביורו שני תריסרים של כל הצלחות והכוסות והסכו"ם שצריך פלוס צלחות וקערות הגשה פצצות ותבניות פיירקס לאפייה, כי ידעתי שתגיעי.
את משהו גורוש.




<<englink [[Wishing star 09]]>>
[img[pictures/cochav-10.jpg]]

בשוק קנינו ירקות ופירות, גבינות ונקניקים. פטפטנו כל הזמן, חוץ [[מאירי|אירי]], שפה ושם השמיעה נהמה או גרגור או צחוק. פוסעת כמעט על קצות האצבעות אך כפותיה על האדמה. גווה ועורפה זקופים [[הולכים קדימה ולמעלה|שיטת אלכסנדר]], קוטפת לעצמה שקית מלאה תפוזים מאחד הדוכנים וטומנת אותה בתיק שעל גבו של [[דןדן]], ואחר כך פומלות ותפוחים ולימונים. אמרתי [[ליויו|יויו]] שאני רוצה לאפות. 
כשנגיע הביתה נראה מה חסר לנו מבחינת מכולת, ואפילו אני אלך לפי רשימה, הוא אמר. 
ומה לגבי אגוזים, שקדים או לא יודעת מה? 
תראי, אם משהו נראה לך עכשיו ותחליטי... יש לנו גם את היום וגם את מחר. יש לא רחוק מהבית חנות תבלינים יפה ובכלל יש... את יודעת... הכול... ואת יודעת שאני שונא שאומרים הכול, אבל אפשר בכל רגע לקפוץ ולהביא מה שצריך. 
אבל אני רוצה שתדע עוד משהו, אמרתי לו, אני מעוניינת להוכיח לז'נבייב ולך [[שקישואים|טוסטים עם טחינה, רסק עגבניות, מעליהם קישואים וכרוב אפויים ופרמז'ן]] יכולים להיות בני כלבה, אם לדבר בלשונך, לא בהגזמה כמובן, ותלוי איזה סוג ולא לעתים קרובות אבל הם יכולים לתת טוויסט לעלילת משנה.
אין שום בעיה כפרה שלי. 
אוהב שמיר? 
אוהב מאוד. 
יופי. 
כשסיימנו את כל ארוחת הבוקר וההליכה והקניות השעה הייתה כבר שתים עשרה וחצי בצהריים. חזרנו במטרו ופרקנו כל דבר למקומו. מזג האוויר קר, ומיני המזונות מחזיקים זמן מעמד כמה ימים טובים, ואפשר לשים אותם בחוץ כמה שרוצים, כולל את החמאה שיויו קנה עבורי באחת מהקפיצות להביא עוד כל מיני דברים שהיה צריך. היה להם כלי קיבול לכל מצרך: סלסילות, צנצנות, קופסאות. זה הלך מהר. הלכתי להתקלח, כשחזרתי היה קפה. כעבור כמה דקות יויו ואני הבטנו זה בזה, חייכנו, קמתי, אמרתי לכולם שאני אוהבת אותם ושאני הולכת לישון, גם יויו קם והודיע את אותה הודעה. התעוררתי בתשע וחצי. התארגנתי ויצאתי אל הבית. יויו כבר היה ער. [[אלפרד]] היה שם. הם ישבו בסלון ועישנו ושמעו מוזיקה. מיד כשנכנסתי יויו קפץ מהכורסה, אלפרד אחריו, מושיט יד ומציג את עצמו, בחור יפה וחביב ביותר. יויו הלך להכין לי קפה.
הילדים הלכו לבלות, יויו אמר לי. 
יש תעלומה אחת שאני לא מצליחה לפענח למרות שכבר שאלתי את גורה, אמרתי ליויו כשאלפרד הלך לשירותים, פשוט לא אכפת לה שהוא בא לכאן? 
הוא לא מפריע יותר לגורה בכלל, היא חולה על דןדן ולא מזיז לה כלום. גם קצת לא נעים לה ממנו. אין שום תעלומה, ואגב, באים איתו בחור ובחורה שפגש באחד מאינספור הקורסים שהוא תמיד לוקח, רציתי עוד אורחים. 
ימים יפים. אני רוצה לאפות מתישהו הלילה, מה אתה אומר? 
אני אחשוב על זה.




<<englink [[Wishing star 10]]>>
[img[pictures/cochav-11.jpg]]

//
24 בדצמבר//

ישבנו עוד עד שיויו קם ואמר שיאללה, חצות וזה אומר שה-24 בדצמבר ומה אני צריכה [[לאפייה|אפייה]]. אני צריכה הרבה חמאה והרבה קמח והרבה סוכר והרבה שמנת מתוקה וביצים ופקאנים. עד שהחלטנו שאצטרף ויצאנו וקנינו הם היו איתי במטבח וסייעו לי, ובין לבין קישטו את עץ החג שיויו העמיד פחות או יותר במרכז אזור הישיבה ותלו מעל שולחן האוכל ומעל דלפק המטבח שרשראות של נורות לד. יש להם תנור טורבו רחב. הכנתי עוגיות שקדים [[ועוגיות חמאה-לימון|עוגיות חמאה ולימון]] וגם [[קוביות מבצק שק"ם|עוגיות קימל]] עם זרעי קימל ומלח גס. שמתי חלק מהבצקים במקרר למחר. [[לעוגת מוקה|עוגת מוקה]] הרתחתי שמנת מתוקה עם קפה והכנתי תחתית בצק פריך ובסיס שוקולד פאדג'. הכנתי קרמל [[לפאי פקאן|פאי פקאן עם קרמל]] וקרם שמנת [[לפאי אגסים|פאי אגסים עם קרם גבינה ושקדים]]. בשלוש סיימנו. 
היום אנחנו צריכים לאזן את השינה כי אנחנו צריכים לתפקד אחר הצהריים כדי שהכול יהיה מוכן בשמונה, אמר יויו מחייך כולו. 
כן, בשמונה בבוקר מקסימום נלך לישון ונקום בשתיים בצהריים, גג שלוש, העיקר שלא תהיה מודאג, מה אתה אומר? 
אני אומר שאחשוב על זה, סתם, אני אומר שכן, משהו כזה. 
אני חושבת שצריך חנוכייה, אמרתי לו. 
באמת? לשם מה? 
לשם הנראות יויוקה. 
בשלוש וחצי [[דןדן]], [[גורה]] [[ואירי|אירי]] חזרו. 
הי גורי, יש לנו חנוכייה? 
למה שתהיה לנו חנוכייה יויולה? 
בשביל הנראות יקירה... 
אם כך אשיג. 
מה אתם מתכננים היום? 
אני מתכננת לקום לכל המאוחר באחת עשרה בבוקר ולהתחיל לארגן את כל מה שצריך ולהכין לפי סדר הזמנים כל דבר בזמנו. 
לבדך?
דןדן ואירי הבטיחו להיות איתי. 
אני עוד רגע הולך [[לאבא שלי|ג'וזף אברואה]] ונגיע בשמונה עם [[דניאל]] [[ואנג'ליק|אנג'ליק]] שלומדים איתי, אלא אם כן אתם צריכים אותי לפני. הוא אמור לפגוש היום לראשונה את הבנות של [[ז'נבייב]], וגם אני. מזל [[שאחותי|דפני אברואה]] לא מגיעה בסוף... אלפרד אמר. 
אנחנו מסודרים, בונבון, לך לנוח ותחזור עם ג'וזף וחבריך לקורס דיאגנוסטיקה, אני כבר נרגש לקראת הארוחה. אני מאושר, יויו אמר וחיבק את אלפרד. אלפרד נפרד מאיתנו והלך.





<<englink [[Wishing star 11]]>>
[img[pictures/cochav-12.jpg]]

[[גורה]], [[דןדן]] [[ואירי|אירי]] התארגנו ללכת לישון, [[ויויו|יויו]] לקח אותי לחדרו להראות לי את מה שהוא התחיל לעשות ארבעה ימים אחרי שנכנסו ודי סיימו להתארגן בדירה. הוא בנה שולחן עבודה כמעט לכל רוחב הקיר החיצוני שמול דלת הכניסה לחדר מאוסף פלטות ורגליים שחיבר בצורות שונות עם הנמכות והגבהות למקלדות ולרמקולים. כל אלה, בנוסף למחשב חזק המחובר לשני מסכים רחבים, עוד רמקולים ועוד כמה מכשירים אנלוגיים ודיגיטליים שאני לא מבינה בהם, ממלאים כשני שלישים מפינת העבודה הרחבה.

 [img[pictures/inside-cochav-1.jpg]] 

בצדה השני יש מחשב נוסף ולידו מחברות וניירות וכלי כתיבה ושידת מגירות על גלגלים. על הקיר מעל תלויה סקיצת תכנון הדירה הראשונית שיויו עשה. לרוחב השולחן עומדות שלוש כורסאות מחשב בירוק כהה, כמעט שחור. התיישבנו (על שתיים מהן ☺), הסתובבנו עליהן ולגמנו מהבירה שהבאנו איתנו. יויו נאנח בסיפוק.
ממש הפכת נודניק בורגני עם כל הנחת הזאת, תיזהר שלא תצמח לך כרס, ומאיפה השגתם את כל הדברים הללו?
תשמעי אווה שלי, אמר וליטף לעצמו את הבטן, אחרי [[שאימא|דינה זכרה לברכה]] הלכה לעולמה, סבא [[וסבתא|סבתא שלנו]] נתנו לכל אחד מאיתנו ערמה ממש נחמדה של מזומנים. לא היה לי מושג מה אני הולך לעשות, והחלטתי שאני ממשיך כמו שהייתי לפני ואחרי כל ההפתעות, עובד [[אצל ז'נבייב|הקוסקוס]] עם דןדן, [[סוניה]] ואמאש, שוטף הכלים הווייטנאמי שנסע לחופשה. השינוי היחיד שחשבנו עליו הוא למצוא דירה שתהיה נוחה לשלושתנו, ואז הגיע עורך הדין מהאגדות עם ההצעה לדירה ונדלקתי בבום. מיד היה לי רעיון כללי של מה אני רוצה לעשות. התלהבתי. הראש שלי התחיל לעבוד שעות נוספות. אמרתי לגורה ודןדן שאין לי בעיה לקחת הכול על עצמי מבחינה כספית, כי הם מתכננים בכל מקרה מתישהו לנסוע להודו לכמה חודשים, ושאוכל תמיד להשכיר בים כסף את הפאר שאני הולך לעשות מהמקום הזה. כל טמבל יכול להבין שהדירה הזו עברה טלטלה אנושית מזעזעת, אבל נשארו בה האופטימיות והתום המולדים שלה, הוא אמר וצחקנו בקול רם. תכל'ס עשינו איזשהו סידור בינינו עם השכירות, ולקחתי על עצמי את כל השיפוץ וככה אני בעל השליטה. צחקנו עוד יותר.
בזמן שיויו דיבר ישבתי שעונה בנוחות על כורסת המחשב המפנקת, לגמתי והסתובבתי. הקשבתי והתבוננתי בחדר הענקי. במרכזו של הקיר מול שולחן העבודה הייתה במה רחבה, גם היא מעץ, ועליה מזרן קינג סייז מצופה מצעי טריקו חומים. על הקיר שליד המיטה ארון. במרכז החדר על האריחים התכולים היה פרוס שטיח מרוקאי ענקי ומרהיב, רובו בגוונים של אדום, אבל היו בו גם חוטים של זהב וצהוב וירוק ותכלת וכחול ושחור. במרכז השטיח שולחן מלבני סלוני נמוך שיויו מצא [[ואלפרד|אלפרד]] שיפץ. הוא השאיר את פלטת הפורמייקה המקורית שהייתה לה דוגמת כתמים בלבן, ורוד ואדום, שייף לה את רגלי העץ המעוגלות וצבע אותן בזהב. לידו מוצבת ספה זוגית שמצאו וקרצפו והניחו עליה שמיכת כותנה ענקית אפורה ועוד הדום רחב שאלפרד מצא ועטף את כולו בקטיפה תכולה.
אין, אתם חבורת [[מושיק גלאמין|https://he.wikipedia.org/wiki/%D7%9E%D7%95%D7%A9%D7%99%D7%A7_%D7%92%D7%9C%D7%90%D7%9E%D7%99%D7%9F]], אתם מושלמים יויו. קשה לקלוט את כל מה שעשיתם ושיש כאן, מאיפה השטיח ההורס הזה? 
תודה על המחמאה. הוא נשען ולגם והדליק סיגריה וחייך מאוזן לאוזן. חבורת מושיק גלאמין זה שם גדול, אבל אני מזכיר לך שגורה ואני - אנחנו - [[האחיות כהן|נאמני הגנזך]]. ויש לי הפתעה לערב הארוחה, כי תסתכלי טוב על כל שולחן העבודה הזה שאת יושבת אצלו כעת, שנבנה למעשה כמתקן השיגור שלי לכל מה שאני רוצה לעשות בשם "האחיות כהן" ישירות לכפר הגלובלי כולל החלום החדש שלי סביב תכנון ועיצוב דירות, ואגב [[אחיות שלנו|ג'ף ברידג'ס]], [[השטיח הוא בחזקת זוג נעליים משובחות לרגלי חדרי|https://www.youtube.com/watch?v=_vGK008c_rA]],  ליד ז'נבייב יש חנות שטיחים ענקית וחמדתי את השטיח כבר תקופה, וברגע שהתחלנו לשפץ החלטתי שאני קונה אותו. גם השולחן אוכל זה הגשמה של חלום שלי. שולחן ארוך ארוך כמו בטירות של פעם שארבעים איש יכולים לאכול עליו בנוחות. אז כדי להיות מעשי הזמנתי שישה שולחנות של מטר וחצי כל אחד, ואני לא חושב שארבעים איש יכולים לאכול עליהם, אבל 22 יוכלו בטוח. הוא חכך ידיו בהנאה ונאנח שוב. את יודעת שאת עוד חייבת לי סיפור.
אתה חושב על זה? 
נזכרתי בזה בכמה הזדמנויות ביומיים האלה, אני שמח שבאת, אני מאושר, אמרתי את זה כבר? 
גם אני בטריפ כאן. טוב לי בקליניקה, שקט שם, הקירות עבים... אני ישנה שינה שקטה וטובה, כשאני קמה אני כותבת קצת... ומבחינת הדירה... אני מזמינה להיות השוכרת הראשונה כשגורה ודןדן נוסעים.
אהיה מאושר ולדעתי גם [[אלפרד]] מפנטז על לגור כאן, אבל הוא יוכל גם לגור [[בקליניקה|הקליניקה]].
נחיה ונראה.
כן, בטח, עכשיו אני בהתרגשות של עכשיו, הדברים מספיק חדשים ומסעירים גם ככה. בכל מקרה את מוזמנת תמיד בטירוף.






<<englink [[Wishing star 12]]>>
[img[pictures/cochav-13.jpg]]

אני רוצה לספר לך [[יויוקה|יויו]] את הסיפור שאני חייבת לך. היחידים שסיפרתי להם כל פרט על חיי מהרגע הראשון היו [[ג'ו ונורמה]] והם כבר אינם. את מה שסיפרתי להם על שמונה עשרה השנים הראשונות של חיי עדיין אינני בשלה לספר שוב. אני זקוקה לאומץ כדי לספר את הסיפור ההוא שוב, ואין לי אותו עדיין. [[עם נורמה|סיפורים שסיפרתי לנורמה]] כל הסיפורים נשפכו ממני בטבעיות וברמה מסוימת בלי מחשבה, אך אתן לך איזה חיתוך גס של ציר הזמן כולו. אחרי שעזבתי את ג'ו ונורמה סיפרתי לך כבר שהייתה לי מספיק עבודה ושהיו לי קליינטים וכבר סיימתי תואר ראשון והלך לי מצוין. הייתי בת 23. לקחתי דירת שני חדרים וחצי, מרוהטת למשעי ומשעשעת מבחינת העיצוב שלה, ספונת עץ, כהה ומלאה בתאי אפסון, אתה מרגיש בה קצת כמו ביאכטה. היו בה שטיחים מקיר לקיר בירוק זית. באמבטיה ובמטבח היו מרצפות בצבע בז' והיא הייתה נוחה וחמימה ועם מרפסת, בקומה רביעית במרכז העיר. קניתי כל מה שחסר. ארגנתי את הדירה ועיטרתי אותה פה ושם והמשכתי לעבוד כאילו כלום לא השתנה. לא הכרתי בכלל אנשים. את האנשים שהכרתי עד אז בארץ הכרתי דרך ג'ו ונורמה. הכרתי חברים שלהם, יצא לי לפגוש כמה פעמים בני ובנות חברים שלהם בארוחות גדולות, הכרתי קליינטים של נורמה שראינו לתקופות קצרות, אנשי מקצוע שעבדו איתנו גם הכרתי, אבל לא הכרתי כמעט אנשים בני גילי ולא היו לי חברים. הייתי בודדה מאוד. למרות שאהבתי להיות בדירה התחלתי לשבת בבתי קפה עם מחשב נייד ולעבוד שם. חלק ניכר מהזמן הסתובבתי בין הקליינטים, אבל השתדלתי לרכז את העבודה בחוץ לכמה שפחות ימים בשבוע. חודשיים אחרי שעברתי גיליתי שברחוב פצפון שנמצא בגב הדירה יש קפה קטן ונחמד למדי, שנמצא בקומת הקרקע של בית דירות מוצל, והתחלתי לשבת שם מדי יום. גם את הימים שיצאתי לעבוד בחוץ התחלתי בבית הקפה הקטן. גרתי בדירה הזאת בסך הכול שמונה שנים. עם הזמן הכרתי פה ושם אנשים, אבל אלה היו תמיד שיחות קטנות. עם ג'ו ונורמה התחלתי להיפגש רק כמה חודשים אחרי שעזבתי. כשהלכתי כתבתי להם שאכתוב כשאתמקם, אבל לקח כמה שלקח עד ששלחתי לנורמה מייל ונפגשנו לארוחת צהריים במסעדה הודית. סיפרתי להם שאני בודדה אבל שאני לא מסוגלת לבוא אליהם ואני מבקשת סליחה ושהתאהבתי בפיליפ והייתי מוכרחה לתפוס מרחק ושאני מבקשת שלא יספרו לי עליו דבר. הם סלחו כמובן. כעבור זמן נורמה סיפרה לי שבת של חברים שלהם עוברת לגור סמוך אליי ושהיא נתנה לה את מספר הטלפון שלי. שמה בשמת, היא הייתה בת 24 ולמדה קולנוע באוניברסיטה. היא הייתה חברתי הראשונה בחיי החדשים, ואנחנו חברות עד היום. היא חיה בברלין עם בן הזוג שלה שהוא עורך סרטים, היא דוקומנטריסית ויש להם שני בנים בני עשרה. אכיר לך אותה פעם. בכל מקרה, לבשמת היו הרבה חברים והתחלתי לבלות איתם. הכרתי בחור חמוד שלמד איתה ששמו היה אורי וכעבור כמה חודשים התחלנו לצאת קבוע. היינו חברים... היה כיף אמיתי. היינו צעירים מאוד, הוא גר עם שני שותפים ולמד קולנוע ועבד בעריכה והיה עסוק, וגם אני הייתי עסוקה מאוד ועצמאית יחסית לגילי וכלום לא שינה. המשכתי לשבת בקפה הקטן והמוצל. מתישהו שמתי לב לבחור שמביט בי ואחר כך החליף איתי מילים פה ושם, עד שבאחד הימים כשלא היה מקום לשבת הוא ביקש לחלוק איתי את השולחן והסכמתי. פטפטנו ועם הזמן הוא התחיל איתי וזה התחיל לערער את תחושותיי כלפי אורי. הוא בלבל אותי הבחור. בהתחלה הוא אפילו עצבן אותי במובן מסוים כי לא אהבתי את הביטחון העצמי שלו, שנראה היה לי מופרז. שמו היה ענר והוא היה בן 33. כעבור כמה חודשים באחד הבקרים עלינו אליי לדירה ושכבנו. שכבנו כמה בקרים רצוף ודי נדלקתי עליו, לאורי לא היה מושג מזה, אבל אז גיליתי שענר נשוי והפסקתי כל קשר איתו ועברתי לשבת בבית קפה אחר. נשארתי עם אורי בלי לספר לו על מה שהיה עם ענר, אבל זה נגמר בינינו בסופו של דבר בשקט ובשלווה. הייתי בת כמעט 26. היו לי כבר חיים מלאים אז ולא רעים, אבל רציתי אהבה. תמיד חשבתי על פיליפ אך מעולם לא התפתיתי לדבר עליו עם נורמה. פה ושם נתקלתי בבחורים נחמדים. היו לי כמה רומנים, אבל לא הייתה לי אהבה כמו שחשבתי שצריכה להיות. ידעתי תמיד להסתדר בחיים, אבל כשזה הגיע לבחורים הבנתי הייתה מוגבלת ואף נשארה כזו עד היום. יום אחד בתור לבנק יד מונחת לי על הגב בחום, אני קופצת ומסתובבת וענר מולי מחייך אליי, חתיך ומצודד. אני רווק שוב, הוא אומר לי דבר ראשון והתחלנו להיות יחד. למעשה הוא היה גרוש בן 35 פלוס בן בן חמש, ותוך זמן קצר הוא עבר לגור איתי בדירה וחיינו התקבעו. בנו, תום שמו, היה מתוק והוא עדיין מתוק מאוד, כבר בן 27, והוא חצי אחיה של [[איריס|איריס הבת]] והם אוהבים מאוד זה את זה. תום היה מגיע אלינו אחת לשבועיים לסוף השבוע ופעמיים בשבוע אחר הצהריים. בהתחלה ענר היה לוקח אותו להוריו בשבתות האלה ודי מהר הצטרפתי לחגיגה. היו לו הורים נחמדים ואח ואחות נחמדים גם, הוא היה הבכור. הם נתנו לי תחושת רוגע. הייתי בת 28 כשנישאנו ובת 30 כשאיריס נולדה. המשכנו לגור בדירה הקטנה עוד שנה, אבל הצפיפות הייתה מוגזמת. עזבנו את העיר ועברנו לבית בכפר של הוריו. זה היה בית חדש ונוח עם גינה. השנה הראשונה שם הייתה טובה ורגועה. גידלתי גינת ירקות בחצר הוריו. אהבתי את העבודה. איריס הייתה נפלאה. הוריו של ענר היו נהדרים אליי. כל מה שהם ידעו עליי הוא שמשפחתי רחוקה ואינני בקשר איתם. הם שמעו על נורמה וג'ו, שממילא הפסקתי לראות כי ענר לא חיבב, וקיבלו כעובדה מוגמרת את זה שאני בודדה בעולם הזה ולכן כלה נוחה. תמיד היינו זמינים להם לכל אירוע. הם תמיד סייעו לענר ולי עם תום ועם איריס. לענר היו תקופות. בעבודה הוא תמיד תפקד כמו חיה. עשה הרבה כסף. עם זאת הוא סבל מהתקפי קנאה וזעם ובמובן הזה הוא מזכיר את אלה שלך. זו הייתה אחת מהדרכים שלו לחולל מריבה ולנוס. אני מניחה שהיו לו כל הזמן עוד בחורות. לקח לי זמן להבין שהקנאה החולנית שלו נובעת בעצם מזה שהוא עצמו רמאי כרוני שמשוטט ותר נון סטופ. מדי תקופה היה מתחפף לו הראש. כשזה קרה הוא היה שותה ונהיה גס רוח ומדבר לא יפה ומתלונן ובורח לכמה שבועות. אני הייתי שקועה בעבודה ובילדה וכאילו התעלמתי מכל הקורה. הפסיק להיות אכפת לי ממנו ועם הזמן רק רציתי שילך כבר. התקפי הזעם והבריחות הלכו ותכפו. כל הגעה שלו הביתה הפכה לסיוט. ריחו היה תוקף את אפי מיד כשהיה פותח את דלת הכניסה לביתנו והיה מעלה בי קבס. המתח היה מתחיל מיד וצעקות וטענות ושוב הליכה ושוב חזרה. הצרות גברו כשהגיעו אלינו הביתה גובים של השוק אפור. התברר שהוא הימר והפסיד המון כסף וסיבך בזה את כל המשפחה. אני צמאה יויו. אני חייבת לשתות. יויו רץ והביא בקבוק קולה. שתיתי הרבה ישר מהבקבוק. וואו יויו קשה לי, אני אומרת לו. זה דברים שאני מזמן לא חיה אותם ודיברתי המון. לכי רגע לַחדר אמבטיה שלי, תתרענני ותראי מה עשיתי שם. מלון בוטיק, אמרתי לו כשחזרתי. פתחתי את דלת המרפסת, הגיע אוויר קר ומחייה, השעון העגול הגדול שמעל דלת הכניסה לחדר האמבטיה הראה חמש ועשרה לפנות בוקר. נו תמשיכי אווה... הוא אומר בקול מתבכיין של ילד נודניק ומושך לי בשרוול. רגע אני אדליק סיגריה, בו איתי קצת לאוויר הקר... יצאנו. שאפתי והמשכתי. בקיצור, החובות שהוא עשה הדפקט היו מטורפים. לא יכולתי לסבול אותו. הילדה המתוקה הייתה מתוקה ובלעה את כל הדבר הזה. הרגע שהביא אותי להבנה שאני שוב בורחת היה לאחר שהוא הגיע בלילה אחד מאוחר שיכור ומסריח והכריח אותי לשכב איתו תוך הפעלת כוח. זה היה מאוד לא פשוט מפני שהוריו גוננו עליו. הייתי בת כמעט 34, ותוך שלושה חודשים הצלחתי לאסוף את עצמי ולדאוג לעצמי ולבתי לצו הגנה. ברחתי איתה לנורמה וג'ו, שהבטיחו שהם יהיו לבד בבית. זה לא היה בלתי אפשרי שהם יהיו לבד בבית כי הבנים התגוררו רחוק. פיליפ בלונדון, ואנדרה בדרום צרפת. וזה באמת כל מה שידעתי עליהם. לשבועיים שגרנו שם נורמה דחפה את כל התמונות המשפחתיות לארון. עד כדי כך. הייתי אצלם שבועיים ומשם עברנו לגור בדירת סטודיו רחבה בחצר של זוג קשישים, בשכונה שקטה בפאתי העיר. גם הדירה הייתה דרך נורמה. התחיל מסע גירושין מפרך ומתיש. בוא למטבח פליז ונאכל משהו ונשתה קפה, אני מתחננת אליו, אני רעבה נורא. הלכנו והכנו סנדוויצ'ים עם חמאה וחרדל ונקניק וקפה ומיץ תפוזים. נמרחנו על הספות בסלון. נשענתי על יויו, הייתי גמורה, הוא ליטף אותי, המשכתי לדבר לאט ובשקט. היה לי קרב שארך תשעה חודשים וחצי עד לגירושין עצמם. ראשית הכסף. המשכתי לעבוד כמו חיה. השגתי צו הגנה בדומה לאלה של פושטי רגל, ניתקתי את עצמי ממנו משפטית. מצאתי מטפלת לאיריס. הילדה הייתה מבולבלת. הוא לקח אותה פעם אחת בכוח מהמטפלת. הוצאתי צו הרחקה נגדו. התחלנו הליך גירושין דרך עורכי דין ובלי להיפגש. ויתרתי על כל דבר והוא המשיך להתיש, אבל הצלחתי לסיים את זה ולקבל את הנייר המיוחל. הוא כמובן רצה להמשיך לראות את הילדה, ולי היו תנאים רבים כי פחדתי שיהיה חסר אחריות. לא סמכתי גם על הוריו ובעיקר לא על אמו, מאחר שהיא לקחה את הצד שלו ואיבדה כל היגיון. יויו זה היה נורא. עבדתי והייתי עם הילדה כל החודשים האלה וזה כל מה שעשיתי. שרדתי. בית המשפט פסק, לאחר אבחונים רבים אצל פסיכולוג משפחתי ועוד מאבחנים, שהוא יוכל להיפגש עם הילדה לתקופת מבחן של שלושה חודשים אך ורק במקום ניטרלי ובנוכחות אנשי מקצוע מטעם בית המשפט. במשך כמה חודשים הסעתי את בתי פעמיים בשבוע למפגשים בני שעתיים עם אביה, ובסופו של דבר לא בקלות לוקחים מהורים את זכותם להתראות עם ילדיהם ובצדק. החיים מסובכים יויוש. 





<<englink [[Wishing star 13]]>>
[img[pictures/cochav-14.jpg]]

אחרי שהתגרשנו הייתי מחוסלת. תפקדתי על טייס אוטומטי. היינו [[הילדה|איריס הבת]] ואני. כעבור שנה היא התחילה בית ספר וכמו תמיד הייתה מתוקה להפליא ויפה ופיקחית. אני חושבת שלא הייתי אימא מוצלחת במיוחד. בתי ראתה אותי במערומיי בכל מובן לאורך שנים, ולא בטוחה שזה תמיד היה חינני או בוגר. המטענים המצטברים בתוכי נתנו את אותותיהם. משהו בי האפיר ונאטם, אבל לא ידעתי את זה. לקראת סוף הליך הגירושין, באחר צהריים אחד, הלכתי לאסוף את איריס [[מנורמה|ג'ו ונורמה]] והן היו בחדר העבודה שלה, שהיה מלא בתמונות של הילדים והנכדים, והדבר הראשון שעיניי קלטו היה תמונה שלו, של פיליפ, עם רעייתו ושני בניו, הוא מחייך את חיוכו היפה ופניו שאני כל כך אוהבת ורעמתו שכבר זרקה בה שיבה. בדרך חזרה הביתה עם הילדה באוטו עצרתי בצומת באור שהתחלף לאדום, ושנייה אחרי שעצרתי עצירה מלאה המשכתי לנסוע כאילו היה מדובר בתרגיל תנועתי. לא קרה כלום. המצלמה צילמה אותי וקיבלתי קנס ונקודות, אבל לא קרה כלום. אחרי שנייה נוספת קלטתי מה שעשיתי ואמרתי לעצמי: אווה, משהו אצלך לא בסדר וכדאי שתהיי ערה לזה. החזקתי מעמד שנה אפורה ואטומה של תפקוד הכרחי. היו לי מחושים שונים שנעו בגופי ממקום למקום. בוקר אחד לא הצלחתי להקים עצמי מהמיטה. כשאיריס התעוררה היא הגיעה אליי למיטה ונשארנו בה. לא יצאתי ממנה באותו יום ולמחרת כבר כן אבל בקושי, רק כדי לקחת אותה לבית הספר. ארגנתי לי עזרה עם הילדה כי הרגשתי שאצטרך לנוח כמה שבועות, והודעתי ללקוחותיי שאני לוקחת חופשה. נורמה וג'ו עזרו לי כמה שהייתי צריכה. ענר היה לוקח את הילדה אליו פעמיים בשבוע וכל שבת שנייה. שבוע אחרי שבקושי זזתי ענר לקח את איריס אליו כבר ביום רביעי לסוף שבוע ארוך. היחסים בינינו כבר היו סבירים. אחרי שהם הלכו התחלתי לאט לנקות את הבית. הכרחתי את עצמי. התחלתי מהמקרר. הוצאתי כל מה שהיה בו. בדקתי את הירקות והפירות. התחלתי לשטוף ולחתוך. עברתי על כל התאריכים וזרקתי מה שזמנו עבר. החלטתי לבשל ולאפות. תוך כדי ניקיתי אבק והכנתי את הבית לשטיפה. כשסידרתי את החפצים של איריס מצאתי בתחתית ארון התלייה שלה שני קרטונים קטנים ששכחתי מקיומם. פתחתי אותם והיו שם מחברות שלי וכל מיני דברים שכתבתי כשהגעתי לארץ. מצאתי מחברת שבעמוד הראשון שלה היה כתוב: "יומן אישי" ובעמוד השני היה כתוב: "חיי אצל נורמה וג'ו" - וזהו, חוץ מזה לא היה כתוב כלום. זה היה כתב ידי בגרסה קדומה יותר, נאיבית יותר. לקחתי עט והתיישבתי, ולא הפסקתי לכתוב עד שהמחברת הייתה מלאה. חוץ מלכבות את מה שהיה על הכיריים לא קמתי שעתיים או שלוש. כשסיימתי למלא את המחברת קמתי מאושרת מהכיסא, הדלקתי רדיו וסיימתי לנקות, חושבת על הרגע ששוב אשב לכתוב. מאותו הרגע זה מה שעשיתי, יויוקה. כתבתי בכל רגע פנוי. כתבתי וקראתי וראיתי סרטים. מצאתי דרך להסיח את דעתי מן החיים, שהיו מלאי פרוצדורות ותיקונים. קניתי חבילה של מחברות והתחלתי למלא אותן. כתבתי בהן הכול. החל בבוקר טוב וכלה בלילה טוב ובאמצע את כל השאר ובעיקר הרהורים ומחשבות וניסיונות להבין מה קרה עד כה ואיך, והתפללתי הרבה לכוכב המשאלות בעל תשע הצלעות, אמרתי לו וחייכתי. הבטתי בשעון ויויו אומר לי: תמשיכי, תמשיכי. כבר שש וחצי... אני אומרת לו, והוא: עוד קצת והולכים לישון, קבענו שהולכים לישון בשמונה.
טוב יויו, אבל עדיף בשבע. אנסה לקצר. ספרי לאט, הוא מבקש. אני ממשיכה, ראיתי שאני לא רוצה ולא יכולה יותר לתכנן בתים. ניסיתי בכוח לסגור קצוות. העברתי עבודות הלאה. היו לי חסכונות. בשנה הראשונה חיינו מהחסכונות, אבל כבר הייתי חייבת להתחיל להכניס כסף. התחלתי לנסות לכתוב לכל מיני עיתוני עיצוב ואדריכלות, אבל הסכומים ששילמו היו קטנים. כתבתי לאחד כזה שנתיים על גינון ועיצוב הגינה ומדי כמה חודשים השכר ירד, וגם כבר לא עניין אותי יותר עולם העיצוב. נורמה וג'ו התחילו לעזור לי עם כסף וזה היה מביך. הם חשבו שאני צריכה לדרוש מענר את דמי המזונות שמגיעים לילדה, והחלטתי לנסות. הגשתי נגדו תביעה ושוב נכנסתי איתו לבית משפט. הבנתי מהר מאוד שאם אמשיך בזה הוא ימשיך להילחם, הילדה תאכל אותה ואני אתמוטט. הוא רב איתי כמו חרא. ויתרתי שוב. נורמה הציעה שאעזור לה ולג'ו בבית ושאבשל עבורם ואעבוד בגינה תמורת משכורת חודשית. הם כבר היו בני 80. הייתי איתם שנה וכעבור שנה הם עברו לגור בדיור מוגן. גם בהמשך עבדתי בכל מיני עבודות משונות, יויו, כולל אריזת בתים של אנשים שעוברים דירה, ולדעתי השכלתי בעקרות בית הושלמה בעבודה הזו. לא יכולתי לעשות שום דבר שהצריך חשיבה. היה לי קשה. הייתי לבד. אחרי שנים של נדודים בין בתים ועבודות, כשהייתי בת 42, הכרתי אישה נחמדה בת 65 שהייתה לה קונדיטוריה עם עשרה עובדים. קניתי שם לפעמים והתפתחה בינינו שיחה. סיפרתי לה שאין לי עבודה חשובה או קבועה. היא שאלה אם ארצה לעבוד אצלה, בהתחלה בכל מה שצריך ולאט לאט נראה איך הולך. אני אוהבת לעבוד במטבח. ההצעה שימחה אותי והתחלתי לעבוד שם וזו הייתה נקודת תחילת הרגיעה של חיי. די מהר שלטתי ברוב המתכונים ואהבתי את ימיי. בזמני הפנוי הייתי כותבת עוד ועוד, וכמה שנים מאוחר יותר, לפני שלוש שנים, פגשתי את [[אבא שלי|אבינו]] ואת [[אחי|אהרון אחי השלם]] ומאז אני שוב חיה חיי רווחה חסרי מורא, ולפני שנה הפסקתי לאפות גם במקום שבו נפגשנו והכול בסדר ומספיק לעת עתה. שבע עכשיו ואני עייפה ודי. הולכים לישון.
הלכנו לישון. 





<<englink [[Wishing star 14]]>>
[img[pictures/cochav-15.jpg]]

התעוררתי בשתיים עשרה וחצי. חשבתי על זה שאני רוצה לסיים את העוגות ולהכין את כל הירוקים ושהכי דחוף זה לסיים להרכיב את [[עוגת המוקה|עוגת מוקה]] כדי שיהיה לה מספיק שעות לעמוד במקרר ולהפוך ליחידה אחת. שכבתי בעיניים עצומות עד שהרגשתי ערה מספיק. קמתי והתקלחתי והתלבשתי וכתבתי קצת וסידרתי את החדר ויצאתי אל הבית. [[גורה]] [[ואירי|אירי]] עמדו במטבח, שטפו וקילפו ירקות. 
הי אווה, אני מכינה לך קפה, גורה צוהלת לקראתי. הכנתי כאן לוח עם הזמנים שכל אחד צריך במטבח כדי שהכול יהיה מוכן לשמונה. תסתכלי ותראי אם מסתדר לך, כולנו כבר כתבנו ויש די מרחב עבודה כאן.
טוב מצחיקה, את חושבת שאני יכולה כבר עכשיו להקציף את הקרם לעוגת מוקה ולסיים אותה ולהכניסה למקרר עד לסוף הארוחה? 
כן בטח, שתי רגע את הקפה ומלאי את הלוח כי אני חייבת סדר.
אני רוצה בשתיים-שלוש לאפות, זה ייקח לי שעתיים, בחמש אני רוצה להכניס תבנית עם קישואים וכרוב לתנור ובשש וחצי-שבע אני רוצה להכין כמה "ירוקים". מה התוכניות שלכן? 
כבר ניקינו את הבית. אנחנו מכינות לפתן ונכין מרק ויש לנו להכין את כל התוספות. דןדן ויויו הלכו לקנות עוד קישוטים ודג לוקוס שיויו יכין ולא יודעת מה עוד, יש להם רשימה. נראה לי שיהיה טונה אוכל כי כל אחד מביא יותר מדבר אחד.
מה, מתי יויו קם?
באחת עשרה הוא כבר עמד כאן בהיכון, גם אני התעוררתי מוקדם יחסית.
ואת, אירי? שאלתי אותה וחייכתי אליה. מה איתך?
אני טוב, היא אמרה וחייכה אליי חזרה. בשמונה בבוקר התעוררתי ויצאתי בלאט מן המיטה. התארגנתי, יצאתי החוצה לרחוב ועליתי למונמרטרה. הבטתי על העיר היפה והמקושטת והאוויר הקר היה נפלא. התחלתי לרדת במדרגות והמשכתי עד למטה. חציתי את הנהר והלכתי לאורכו עד האייפל, חציתי שוב את הנהר ועליתי חזרה לרחוב. בקפה ממול קניתי קפה, ובפטיסרי ליד קניתי קרואסון. בלעתי אותם וחזרתי הביתה. גורה [[ודןדן|דןדן]] היו כבר ערים ושטפו את הרצפה. עזרתי להם לשטוף את הרצפה, התקלחתי, [[יויו]] התעורר, שתינו קפה נוסף, יויו ודןדן הלכו, וגורה ואני נשארנו. התחלנו לקלף תפוחי עץ לקומפוט וגורה אמרה שיש להם עור של פיל. אמרתי לה שזה מה שטוב בהם, ואז את נכנסת. זה בדיוק מה שאיתי. אני טוב.
פתאום היא נכנסה, גורה אמרה, לא ידענו שהיא כבר ערה הגנובה.
הן המשיכו להכין את הלפתן, ואני הוצאתי את הקצפת המורתחת עם קפה וסוכר שכבר הייתה קרה והקצפתי אותה במיקסר עד שהתחזקה. הנחתי בתחתית התבנית את בסיס השוקולד פאדג' ועליו מרחתי מחצית מכמות הקרם. על הקרם הנחתי את עיגול בצק החמאה ואגוזי הפקאן האפוי ועליו החלקתי את שארית הקרם. מעל גררתי שוקולד מריר לפתיתים. ארזתי והנחתי במקום בטוח [[בירכתי המקרר|ההיררכיה במקרר]]. שטפתי את הכלים כשהן הניחו את סיר הקומפוט על הכיריים והביטו בי, ואירי שאלה: את חושבת שנוכל להצטרף אלייך [[לאפייה|אפייה]] של הצהריים?
בוודאי, אתן שתי בובות.
אנחנו נהיה לידך כי גם אנחנו רוצות בשתיים-שלוש להכין את כל התוספות שאנחנו מתכננות להכין ויש גם דברים של הרגע האחרון, אירי אמרה. 
מה אתן מתכננות לעשות עד אז? 
אנחנו כבר נישאר כאן. אני לגמרי ירשתי [[מסבתא|סבתא שלנו]] את האובססיביות ואני כל הזמן חופרת לעצמי את הראש, גם תוך כדי שאנחנו מדברות, על איך אני צריכה אחר כך, כשתגיע השעה, לסדר את השולחן, להוציא את כל הכלים מהמגירות ואת הסכו"ם ואת הכוסות, ולסדר את הצלחות, את המפיות, ככה אני עוברת פריט פריט, רואה את עצמי בעיני רוחי מבצעת את הפעולות, והשתייה על המשטח עבודה, ושהאוכל יהיה מוכן בדיוק בזמן ובטמפרטורה הנכונה, וזה חוזר על עצמו וזה משגע אותי אני לא מצליחה להפסיק לחשוב על זה... גורה אמרה.
אז אולי נצא קצת למרפסת או לשבת קצת בגינה שברחוב? אנחנו נעשה את ההכנות יחדיו ככה שאין סיבה שתשחזרי את הפעולות, אמרתי וחייכתי אליה.
המרפסת זה מצוין, גורה אמרה.





<<englink [[Wishing star 15]]>>
[img[pictures/cochav-16.jpg]]

לבשנו מעילים, הכנו תה עם מרווה מאי העציצים והתיישבנו לידו. 
הבאתי כמה [[עוגיות לימון|עוגיות חמאה ולימון]], אמרתי לבנות והנחתי את הצלוחית. העוגיות היו בצורת כוכב. 
מאיפה את יודעת לאפות אווה? אירי שאלה אותי. טון הדיבור שלה היה מתון ונחוש וקולה מתוק ודק. היא חייכה והמשיכה להביט בי.
בילדותי גרתי [[בנחלה ענקית|הנחלה בה גדלתי]] שהייתה שייכת למשפחתי. היה בה [[מטבח|המטבח של הנחלה]] ששירת את כל מי שהתגורר בה. עבדו בו שלוש נשים, ואחת מהן, [[איריס]] היה שמה, הייתה האופה. אהבתי את איריס מאוד, ובהיותי יתומה [[מאם|חנה אמנו]] מגיל ארבע מצאתי את עצמי מסתובבת במטבח הרבה מאוד כשאיריס מרעיפה עליי מחומה ומאהבתה וככה גם למדתי לאפות ולבשל.
איפה איריס עכשיו? גורה שאלה.
היא נשארה בבית, סוף סוף יש לה את הבית לשמונה ימים לבד. ימלאו לה עשרים באביב. 
ואיפה איריס האופה? היא המשיכה מחייכת.
איריס האופה כבר הלכה לעולמה.
למה נפלו פנייך אווה? היא שאלה.
נזכרתי בה. היו לה חיים לא קלים, היה לה בעל מזוויע. אני כמובן ידעתי את זה רק לקראת סוף התיכון, ועל מותה ידעתי רק לפני כמה שנים. היא מתה בשיבה מניחה את הדעת, כשהייתה בת 74. ברחתי מהנחלה כשהייתי בת 18 והיא עזרה לי לברוח, אבל אחר כך ולמשך שנים רבות לא ניסיתי ליצור שום קשר עם אף אחד משם. רק לפני שלוש שנים פגשתי אחרי שנים רבות את [[אבי|אבינו]] ואת [[אחי השלם|אהרון אחי השלם]] ועוד כמה מאחיי ואחיותיי וחיי חזרו למסלולם. הם סיפרו לי גם על איריס.
את לא רצינית אווה, גורה אמרה, איך זה יכול להיות, כמה אחים? 
מלא אחים ואחיות, עזבי, אני המומה מעצמי כי ביממה האחרונה כולל לפנות בוקר סיפרתי ליויו חלקים מהחיים שלי ואמרתי לו שאינני מסוגלת עדיין לדבר על החיים בנחלה והנה אני חוזרת לזה שוב.
תספרי, תספרי.
איריס הייתה אישה משמעותית בחיי והיא עזרה לי לשנות אותם. גם כשהגעתי לארץ פגשתי מיד אישה משמעותית שהייתה לי כאם, נורמה, עד שהלכה לעולמה לפני חמש שנים.
אימהות, אמרה גורה. חושבת הרבה על התמה. אני כרגע בטיפולים שלי עם [[רוז'ה]], עוסקת בלנסות להתבונן [[באימא|דינה זכרה לברכה]] מן הצד. רק להתבונן בה בלי רגשות. כמו [[מצלמה|המצלמה]] בלי צלם מאחוריה. הצלם העמיד את המצלמה על חצובה, כיוון והלך. זו חוויה מעניינת והיא גורמת לי להסתכל על אימא כמו על סרט ללא צלם שמספר על אישה שאינה אמי. האישה הזו שהיא אינה אמי הייתה פעילה עד שלב מסוים בחייה, ומרגע מסוים היא פסקה מלפעול ובעיקר ישבה וקראה או בהתה או חילקה הוראות והתלוננה. לעתים היא רקמה או סרגה, אבל גם זה פסק מתישהו. כשנולדתי היא שקעה בדיכאון ממנו לא עלתה עד יום מותה, ולכן בזיכרונותיי האישה הזו נעה מעט מאוד. אדישה למראה רוב הזמן. קוראת הרבה מאוד ספרים. כמעט כל הזמן למעשה. לעתים היא צוחקת או מחייכת, אבל זה לא באמת קורה. אני מביטה באישה ורואה שהיא שקועה בתוך עצמה, שבראשה מתהלכות מחשבות לא טובות. אני יכולה על פי הבעות פניה המתחלפות לראות איך המחשבות מתהלכות בראשה. היא פתאום יכולה לצעוק: גורה, תה... אבל בסרט זו גורה אחרת. בתה של האישה שאינה אמי. אני חשה אמפתיה לילדה שמפסיקה להכין שיעורי בית ורצה להכין לאמה תה עם לימון. היא מביאה לה את התה, ואמה נוזפת בה ואומרת לה שהיא הייתה צריכה לדעת שבזמן האחרון היא שותה תה עם חלב. הילדה רצה למטבח ומרתיחה שוב מים ושוטפת את הכוס ומייבשת אותה ומכינה תה עם חלב ומגישה לאם. האם לא מביטה בה. הילדה מביטה לרגע באמה וחוזרת לחדרה, גורה פסקה ושתקה.
זה תרגיל מעניין, אירי אמרה.
כן, ובסך הכול זו הקלה שהיא איננה. לא נעים להודות. אבל עדיין אני לא יכולה להניח לַעיסוק בזה. זה קודח בי וגם מסביבי אני רואה: לדןדן אימא חולת נפש, אימא של אלפרד נטשה אותו, את, אווה, התייתמת כשהיית פיצית בת ארבע ומצאת לך דמויות אם חלופיות, ליויו זו אותה אימא כמו לי כמעט לגמרי ורק לאירי יש אחלה אימא. אני מתגעגעת לדןדן אוף.
אירי צחקה. אל תדאגי גוריק, זה רק נראה לך אחלה, כלומר היא אימא למופת, אין ספק, אבל דברים מופיעים בתצורות שונות.
את יודעת גורה, נותרו לי זיכרונות ספורים מאמי. כמה תמונות. אני זוכרת שכשהייתי בת ארבע חגגו לי יום הולדת ליד המיטה של אימא. חודש אחר כך היא נפטרה. גם ברגע זה אני יכולה לחוש את מגע היד החלש. לראות את מבטה שמשתדל לחייך. אני זוכרת את עצמי מונחת בתוך זרועותיה כשהייתי בת שלוש אולי והיא מלטפת אותי ואומרת לי שאני ילדה נפלאה וגיבורה. אני זוכרת איך היא מבקשת שיוציאו אותי מחדרה יום אחד ואני לא מתנגדת, אני ילדה גיבורה. אני יכולה להגיד לך מפורשות שלא באתי מוכנה לאימהות, ושלפחות בתקופות מסוימות הייתי אימא לא מוצלחת במיוחד. היו לי המון צרות ובעיות לפתור ופרוצדורות וכאבים משל עצמי ובחלק מהזמן פישלתי. את יודעת שאני לא יודעת את שמות הורייך? 
מצחיקה. יואל ודינה. אבל עכשיו זה יואל ותרצה כי דינה איננה עוד, ותרצה היא אשתו של אבא יואל.
אהה. זה נהדר שיש לך את דןדן הזה, את ערה לזה?   
דןדן הוא מלאך. שמחה שיש לך אותו גורי, לי כרגע אין שום צורך באהבת מינים, אירי אמרה.
חולה עלייך שאת אומרת אהבת מינים אירי, גורה אמרה. 






<<englink [[Wishing star 16]]>>
[img[pictures/cochav-17.jpg]]


הנה הם הגיעו. נכנסנו פנימה לדןדן ויויו והמשכנו בהכנות לערב. יויו שלף בגאווה מתיק הגב חנוכייה ונרות. הם הביאו לוקוס ענקי מפולט. כבר היה רבע לשלוש אז התחלתי [[לאפות|אפייה]]. אירי התייצבה לידי ורצתה לדעת ולעשות איתי כל דבר. הכנו [[פאי דובדבנים]], [[פאי פקאן עם קרמל]] [[ופאי אגסים עם קרם גבינה ושקדים|פאי אגסים עם קרם גבינה ושקדים]]. יויו הכין [[מרק כתום בסיר גדול]] ואת הדג לאפייה שתתבצע רק זמן קצר לפני הארוחה. אחרי העוגות אפיתי את פלחי הכרוב ורצועות הקישואים הירוקים בשמן זית ומלח גס. גורה ואירי הכינו [[אורז לבן עם צנוברים]], [[מג'דרה]], [[תפוחי אדמה ובטטות בתנור]], [[פלפלים קלויים]], [[סלט עדשים עם כוסברה ובצל קצוץ]] [[וסלט עגבניות עם שום|סלט עגבניות עם שום]]. שתינו בירות ועישנו ודיברנו על מה שנלבש ועל האוכל וערכנו את השולחן. כבר היה ערב, הכנתי [[שעועית ירוקה בחמאה ושום]] [[וסלק מבושל|סלק מבושל]] ואת [[האספרגוס|אספרגוס]]. יויו הכין [[סלט חסה]] [[וסלט מלפפונים עם בצל סגול ושמיר|סלט מלפפונים עם בצל סגול ושמיר]]. דןדן בעיקר עזר מסביב, חתך, ערבב, שטף כלים וניקה. אירי והוא פירקו לקערה ענקית ובסבלנות רבה פומלות ותפוזים. מעל סחטו לימון ופיזרו שתי כפות סוכר, ערבבו ופיזרו אגוזי מלך קלויים. על משטח העבודה סידרו הבנים את בקבוקי האלכוהול וכוסות וחטיפים. הכנתי [[טוסטים|טוסטים עם טחינה, רסק עגבניות, מעליהם קישואים וכרוב אפויים ופרמז'ן]] עם טחינה, רסק עגבניות, מעליהם הנחתי את הקישואים והכרוב האפויים וגררתי פרמז'ן. הבאתי אותם גאה ליויו וביקשתי שיניח אותם עם החטיפים שליד השתייה וגם את [[עוגיות הקימל|עוגיות קימל]]. הוא עשה זאת כמובן. אירי וגורה הדליקו נרות. יויו שם [[רשימת שמע|https://www.youtube.com/watch?v=pCpua4dvUXs&list=RDQMhAwOcO3mVV8]] של  Fela Kuti. לא הכרתי את פֶלָה עד לאותו הרגע. יויו אמר לי שזה חור רציני בהשכלה. הנחנו כל דבר במקומו. כבר היה שבע. 





<<englink [[Wishing star 17]]>>
[img[pictures/cochav-18.jpg]]


התקלחנו והתלבשנו כולנו. לבשתי שמלה שחורה וז'קט שחור וחרוזים שחורים ונעלתי נעליים שחורות וגרבתי גרבונים חומים וענדתי את עגילי הזהב התלויים הקבועים שלי שרכשתי לפני כמה שנים בחנות תכשיטים ליד השוק בתמורה לטבעת הנישואין שלי ושרשרת זהב קרועה. התאפרתי והתבשמתי. נפגשנו בסלון. [[דןדן]] מזג לכולנו יין והרמנו לחיים. כולם היו חגיגיים וריחניים כדבעי, [[גורה]] בחצאית קפלים מעל הברכיים בוורוד בהיר וגרביים גבוהים לבנים עד מעל לברכיים מעוטרים בהדפסים של עץ אשוח. מעל סוודר לבן צמוד ארוך. נעולה נעליים סגולות גבוהות עם שרוכים. [[אירי]] בחולצת צווארון ירקרקה חתיכית מעליה סוודר עם שרוולים קצרים באפור כהה ומכנסיים מתרחבים באפור בהיר תחתם נעלה מגפונים חומים רכים, על צווארה שרשרת זהב דקה עם כוכב אחד קטן וצמד דובדבנים. הבנים חתיכים במכנסיים וסוודרים צבעוניים. בשמונה הפעמון צלצל בפעם הראשונה. [[יויו]], דןדן וגורה מיד רצו לדלת. בדלת עמדו [[אלפרד]], מחייך ואוחז בובת סנטה קלאוס ענקית ביד שמאל וביד ימין תיק פלסטיק בו היו תבשיל שורשים ואורז בשלושה צבעים וצנצנת עם מלפפונים חמוצים; [[ג'וזף|ג'וזף אברואה]], עם ארגז מלא אלכוהול ושקית מלאה שוקולד ואגוזים ופירות יבשים; איתם [[דניאל]], בחור רזה למדי וגבוה, על שיניו קוביות ליישור שיניים ובחיוכו החביב מבוכה. שיערו שחור וגזור בתספורת קצרה חתוכה היטב ובלורית משוכה לאחור. בידיו [[גרטן תפוחי אדמה]] ויין; ומאחור [[אנג'ליק]], ג'ינג'ית יפה עם שיער חלק עד הכתפיים ועיניים ירוקות, אוחזת בידיה תבנית ובה [[פחזניות ממולאות בכבד קצוץ]], צנצנת [[חזרת]], שקית מלאה בצימוקים שחורים ובקבוק בחרובקה. הם נכנסו והכול הלך נהדר, אני לא אגיד את זה יותר. כל מי שנכח בערב הזה היה אדם ללא דופי. אחריהם הגיעו [[סוניה]] ובעלה [[מרק]]. סוניה לבושה שחור ושיערה השחור אסוף לתסרוקת מפוארת מקושטת בסיכות מעוטרות בקריסטלים, זקופה ומחייכת. מרק, גבר נאה, גבוה ורחב, לבוש שחור גם הוא, פניו מעוטרים בשפם גזוז ולא עבה מדי. הם הביאו [[צלי בשר עם תפוחי אדמה]], פנהטונה [[וריגו יאנצ'י|ריגו יאנצ'י]]. מרק הגיש ליויו ליקר דובדבנים ובקבוק שנאפס תפוחים. תודה רבה, הוא אמר לו, אנחנו הולכים להיגמר הלילה מאלכוהול, מרק, תיקח את זה בחשבון. אני ויקינג יויו, כלום לא מפיל אותי ובאנו עם מונית, מרק ענה. בשמונה ורבע חמשת [[הסינים]] הגיעו ואחד מהם הביא איתו חברה. [[קואנג]], [[ג'ונג]], [[פה]], [[צ'נג]] [[וצ'ן|צ'ן]] שמותיהם, ושם העלמה [[גואן יין]]. הם לא עונים לשום קלישאה על אודות עובדי בניין סינים למעט עיניהם המלוכסנות ושמותיהם, ואלה אינם קלישאה. הם הביאו המון בקבוקים של בירה, קולה ויין וגם לחמים וגבינות. גואן יין הביאה חמוצים סיניים שהכינה וקדאיף שקנתה בעיר. אירי ואני היינו מהופנטות. סידרנו את כמויות המזון והמשקאות. השולחן התחיל להתפוצץ. [[ז'נבייב]] היפה והאלגנטית הגיעה עם שתי הבנות, [[אלכסנדרה]] [[וראשל|ראשל]]. היא הביאה [[תרנגול הודו אפוי]], [[קוסקוס]] שיויו התחנן שתביא למרות הכול [[ועיגולי מרציפן|עיגולי מרציפן]]. הבנות הביאו שקית ענקית ומלאה בסוכריות גומי מתנה לכולם ובמיוחד לאלפרד, שציפו להכירו והתחברו אליו מיד. [[רוז'ה]] הגיע עם [[לזניה צמחונית]] וזר פרחים ועם חברתו [[אנה]], שהביאה [[סלט שורשים|סלט שורשים חתוכים למקלונים בוהק משמן זית, לימון, מלח ושמן שומשום]] חתוכים למקלונים בוהק משמן זית, לימון, מלח ושמן שומשום. 
כבר היה רבע לתשע. דןדן ואני שטפנו את הכלים שהיו בכיור.
כולם כאן חוץ מהדוקטור, יויו אמר בקול ובו ברגע נשמע צלצול בדלת. סיימנו לשטוף את הכלים שנינו. מזגנו לעצמנו בחרובקה והקשנו כוס לכוס. 




<<englink [[Wishing star 18]]>>
[img[pictures/cochav-19.jpg]]

בלגימה אני שומעת קול קורא, "אווה". אני בולעת את המשקה, לא בטוחה למשמע הקול. אני מסיימת את הבליעה ומרימה את הראש, זה [[פיליפ]]. ראשו מוטה אליי, רעמתו נשואה לאחור, ידיו מופנות לפנים בלי תנועה, פניו אדומים. אווה הוא שוב אומר בקול, מניע את ידיו והולך לקראתי. כמעט נפלתי, אבל [[דןדן]] החזיק אותי. פיליפ, אמרתי בלי קול. הוא הגיע עד אליי והושיט לי את ידיו. לא הצלחתי לזוז. [[יויו]] [[ואירי|אירי]] באו גם הם להחזיק אותי.
השתררה דממה בחדר, ורק פלה קוטי, שהסתבר שיויו הפעיל [[רשימת שמע|https://www.youtube.com/watch?v=pCpua4dvUXs&list=RDQMhAwOcO3mVV8]] אינסופית שלו, המשיך לשיר. 
מה קורה כאן? שאל יויו והביט בפיליפ ובי.
זה פיליפ של [[נורמה|ג'ו ונורמה]], יויו, הבטתי בו ועניתי בקול ענות חלושה - דןדן ואירי ממשיכים לאחוז בי. 
אני יכול לחבק אותך? שאל פיליפ. הנהנתי והתחלתי לבכות. הוא שלשל את זרועותיו בין ידיי שהיו תלויות על דןדן ואירי והרים אותי אליו והניח את זרועותיי על כתפיו וחיבק את גבי ולא עזב. במשך כמה דקות הייתי תלויה עליו עד שדמי חזר לזרום והוא מחבק כמה שצריך ולא אומר מילה. הוא לקח אותי לספה והתיישבנו שנינו. הבטנו זה בזה בלי להסיר את המבט, כפות הידיים שלנו נוגעות אלה באלה. מסביבנו החבריה חזרה לענייניה, אך אני לא באמת שומעת אותה. 
אווה, אני חושב עלייך כבר שנים. אני חושב עלייך מאז שאני מכיר אותך, הוא אמר בשקט בקול הבס שלו וליטף את פניי. כמה את יפה. במשך כל השנים שלא התראינו ביקשתי מאימא שתספר לי עלייך וידעתי ממנה שאת לא מוכנה לשמוע עליי דבר. תמיד היה מנחם לשמוע שאת עדיין לא מעוניינת לשמוע עליי, הוא חייך והמשיך. לפני חמש שנים, חודשיים אחרי שאימא נפטרה, נפטרה גם ריטה מסרטן קטלני. אחרי שנפטרה כל שחשבתי עליו הוא שאני רוצה למצוא אותך, אבל כבר לא היה את מי לשאול איפה את נמצאת וגם חששתי מעט, וכמה שזה אולי עלול להישמע לך כמו תירוץ מוזר במקצת, חשבתי שאני רוצה שזה יקרה מעצמו. כשנכנסתי עכשיו וראיתי אותך הייתי מופתע עד מאוד ואני עדיין מופתע, אבל ידעתי שאמצא אותך יום אחד. אווה, אני לא מבולבל ואני רוצה אותך איתי לתמיד, זה ככה. שוב בכיתי. הוא חיבק אותי אליו. הנחתי את ראשי על כתפו. בוא נלך לאכול פיליפ, מעולם לא הפסקתי לאהוב אותך, בוא נלך לשולחן ונדבר אחר כך ונגיד הכול, טוב? אני כל כך אוהבת את הפנים שלך. טוב יפה שלי. הוא נישק אותי ועזר לי לקום והלכנו חבוקים לשולחן. [[הם|אחות כהן]] התחילו למחוא כפיים ולשרוק ולצהול ולמזוג עוד אלכוהול. הם לא התיישבו עד שהגענו, התיישבנו כולנו אחד אחד. בדקת את הארגז שהבאתי, יויו? שאל פיליפ. טיפלנו בכול דוקטור, [[הפבלובה|פבלובה]] רוקדת במקרר ואתה חופשי מכל אחריות הערב, הערב אני מטפל בך. תודה על הדברים הנפלאים שהבאת. רוצה מנת XO? ענה לו יויו ומחא כפיים וצחק וגורה הצטרפה אליו וכולם שוב שרקו ושרו. 




<<englink [[Wishing star 19]]>>
[img[pictures/cochav-20.jpg]]

מימיני התיישבה [[אירי]] ולידה [[דןדן]] ולידו [[גורה]] ומשמאלי [[פיליפ]] ולידו [[יויו]] ולידו [[אנה]] ולידה [[רוז'ה]] וגם כל השאר הסבו סביב השולחנות המחוברים לאחד. [[יויו נעמד ואמר|האחיות כהן]]:
חברים יקרים, אני מאושר לארח אתכם בדירה החדשה שלנו. וואאאאוווווו... שרקו [[הסינים]] ונעמדו ומחאו כפיים ומיד הצטרפו שוב כולם. תודה רבה לכם חברים. אני מאושר שאתם כאן ואני מאחל לכולנו חיים יפהפיים, נצלו את זמן הקסם. זהו הלחיים הרשמי הראשון לערב זה וקחו הכול לאט ובתיאבון. עוד קריאות עלו עד שדעכו והארוחה התנהלה בהרמוניה מושלמת. אכלנו לאט את האוכל הטעים. ביס מכאן וביס משם. אוכלים קצת, מדברים קצת, קמים, שותים משהו. מחליפים מקומות. פיליפ ואני קרובים זה לזה רוב הזמן. [[ג'וזף|ג'וזף אברואה]], [[ז'נבייב]] וילדיהם התחברו בטבעיות. אהבתי את כולם. הכלים נשטפו כל הזמן ועוד אוכל נאכל. מדי פעם מישהו מאלה שמכירים את הדירה לוקח לסיור את חבריו. הם היו גאים כולם בעבודה המפעימה שעשו. אני עצמי הייתי בגובה משלי. לא האמנתי שכל זה קורה באמת. ריחפתי. פיליפ לא הסתיר לרגע את רגשותיו אליי. הייתי מאושרת ואני עדיין מאושרת כי פגשתי את פיליפ שלי אחרי כל המדבר הזה. כשסיימנו פינינו את השטח מהאוכל. סידרנו את פינת החטיפים והמשקאות. סידרנו על השולחן את המתוקים והכנו תה וקפה. פיליפ ביקש שאצא איתו למרפסת והוא נראה מוזר. קרה משהו? לא, אני בסדר, הוא אמר וליטף את עורפי ואחז בו ונישק את שפתיי. אני רוצה לטעום מהעוגות שלך, יויו קודם נתן לי בגאווה מהטוסטים שלך ומעוגיות הקימל, אני אוהב אותך, למה שאת מכינה יש את הטעם הטעים שלך, אני זוכר עוד מפעם כשאפית ובישלת אצל אימא כמה טעים את עושה וכמה הטעם דומה לטעם שלך שטעמתי אז בארבעת הימים ההם. חיבקתי אותו ונישקתי אותו. יויו קרא לנו פנימה וביקש שנשב. הוא כיבה את המוזיקה שמאז פלה הוחלפה לתחנת רדיו כלשהי שהשמיעה מוזיקה משנות השמונים-תשעים. הוא די התנדנד ואמר: חברים יקרים שלי. אני מאושר ואני לא יכול להפסיק לציין את זה, בטח לא עכשיו. כל אחד ואחד מכם הוא בונבון יפה שלי וכאח ורע הוא לי. האוכל שהכנתם היה נפלא בטעמו. האלכוהול המשובח שהבאתם מפעם את לבי ואני רוצה להגיד לכם... הגעתי לעיר הזאת לפני שנה ומשהו, ואני לא רוצה ללכת מכאן נכון לעכשיו. בדירה הזו, למרות שככל הנראה מאחוריה סיפור לא נעים שאינני יודע מהו, התאהבתי ממבט ראשון והחלטתי להשליך בה את יהבי - עם גורה ודןדן כמובן. ובכן, פרט לכך שכרגע אתם כאן איתי חוגגים את השמחה, אני רוצה לספר לכם. לפני די הרבה שנים, 14-13 שנים, הייתה לי כזו... תקופה. הייתי סטלן אימים, וללא קשר תמיד אהבתי להמציא. אחד מהדברים שהמצאתי אז הוא שאני אישה הונגרייה בסיסית, ששמה [[אווה]], ובעצם מבחינתי הייתי אחותם של האחים [[איתן וג'ואל כהן]], למרות שבכלל [[יואל|אבא יואל]] הוא שם אבי ובכלל אין לי אחים כי אם ארבע אחיות, ממש כמו [[לד"ר דרק שפארד|האנטומיה של גריי]]. הקהל הריע שוב ושרק. תודה חברים, הוא אמר, קד קלות והמשיך. הרעיון נשאר איתי והמשיך להתפתח ועם הזמן החלטתי שאני רוצה להקים קבוצת יצירה ליוצרים בלתי תלויים זה בזה אך קשורים זה לזה ושמה ''האחיות כהן''. שיתפתי בזה את גורה, אחותי הקטנה והיפה, שנמצאת איתנו כאן בערב זה ובכלל. גורה ואני ישבנו ימים ולילות רבים ופיתחנו את האג'נדה והדמויות, את הקונספט והדרמה. [[כתבנו תשתית|HH]] לסדרה בת שמונה פרקים על האחיות עם אפשרות להמשך... ולמה אני מספר לכם את זה? כי כשהגעתי לכאן כבר הבנתי שזהו מתקן השיגור של האחיות ולכן בניתי את המעבדה בחדר השינה שלי. הוא התחיל לצחוק שוב ולקפוץ ולחכך כפיים וכולנו איתו. ועכשיו לדבר עצמו. אני מזמין כל אחד ואחת מכם להצטרף לחבורה. תנאי בסיסי לכניסת מיזם לתחומי האחיות הוא [[ש"שרל'ה הייתה אוהבת את זה"|שרלה הייתה אוהבת את זה]]. מי זו שרל'ה? שרל'ה היא אישה שנפטרה מסרטן במוח, כמו [[שמאיר אריאל|מאיר אריאל]] מספר בסרט [["מסע הבחירות של מאיר אריאל"|https://www.youtube.com/watch?v=yFXUEoXCkT8]], {5:30 דקות מתחילת הסרט]]על האישה שנלקחה צעירה והיה לה ראש מאוד מעניין והלוואי והיא הייתה המורה לספרות שלו. הוא מספר על צחוקיה המשגעים והחכמים ביותר ועל הצורך שחש לכתוב לה משהו של פרידה ביום השלושים לפטירתה, משהו כמו שיר אהבה למורתו שאף היה מבקש ממנה ציון עליו. ומי מחליט אם שרל'ה שהלכה לעולמה הייתה אוהבת את זה או לא? הדבר התמים שאני שואף אליו הוא שלעולם לא אצטרך לנהוג כפוליטיקאי או מי מחברי האחיות, כי אני בטוח שאת זה שרל'ה לא הייתה אוהבת. 
הקהל הריע שוב, ויויו נע בנחת סביב עצמו ונענע את הישבן והיה מצחיק מאוד.
יש לי הרבה רעיונות. אני רוצה לעשות אתר שייקרא "האחיות כהן" ויכלול את סיפורן של האחיות, את ראיית עולמן וסדר יומן, אני רוצה לייצר סרטונים ותכנים נוספים כתובים או מאוירים או כל העולה בדעתכם ואתם מוזמנים. אם מישהו מכם צריך ייעוץ הוא מוזמן אליי. לזכות המתקן עוד טרם התחיל תפעולו הרשמי נרשם הערב מפגש גורלות נדיר ומפתיע בין כבוד הדוקטור, מר פיליפ לומבר, האיש שהושיע את גורה ואותי, ובין [[אווה כהן|אווה כהן]] המקורית אותה הכרתי אך לפני שנתיים, לא פחות ולא יותר, האופה שהייתה לי לאוזן ולדגל. כולם שוב הריעו ושרקו והשתוללו משמחה.
אני רוצה להצטרף, אני יודעת בדיוק ממה אני מתחילה, אירי אמרה מן הצד כשקול הקהל נרגע.
ברוכה הבאה איריצ'קה. הנה תראו חברים. אירי מכירה אותי מאז ומעולם ומצטרפת ללא היסוס. זה אומר משהו לא? רוצה לספר לנו אירי מותק?
אחר כך, היא ענתה והתיישבה.



<<englink [[wishing star 20]]>>
[img[pictures/cochav-21.jpg]]

אני מבקש להצטרף לחבורה [[יויו]], ואני רוצה לדבר בבקשה עכשיו, קם [[פיליפ]] היפה שלי בנחישות והחל מיד למדבר. חג שמח לכולכם אנשים יקרים, שמעו, אני תופס כאן טרמפ על הדברים של יויו. כשיויו שלח לי את הכתובת שלשום, מיד הבנתי באיזו דירה מדובר. הייתי כאן כבר בשמונה ו-12 דקות עם הארגז עם הדברים. עמדתי ברחוב כמו אידיוט בלי לזוז. לא ידעתי מה ואיך אספר לכם, אבל ידעתי שאני לא יכול לא לספר לכם. התמהמהתי בחוץ וראיתי איך כולם נכנסים עד שהחלטתי להיכנס. נעמדתי ליד הדלת בלי להעז לצלצל בפעמון עד ששמעתי את יויו אומר שרק אני לא הגעתי, מהבהלה לחצתי על הפעמון. יויו קיבל את פניי ובעודי מוסר לו את הארגז הכבד אני רואה את [[אווה|אווה כהן]], קולו התרכך והוא הביט בי, אווה היפה והמתוקה שהגיעה לבית [[אמי ובעלה ג'ו|ג'ו ונורמה]] כשהייתה בת 18. אני לא יכול לשכוח את הרגע שראיתי אותה. אהבתי אותה כבר במבט הראשון. הייתה לי חברה אז והייתי דוקטורנט בן 30. לימים נישאתי לאותה חברה, ריטה היה שמה, ונולדו לנו שני בנים, מקס [[ואיתן|אני הפסיכיאטר]]. למרות שכבר הייתי עם ריטה, התאהבתי באווה אך נכנעתי לחיים, אני מודה, כבר עשיתי מספיק צרות עד אז ואווה הייתה צעירה כל כך. חיי עם ריטה היו חיים טובים מאוד. היא הייתה חברה ואימא נהדרת. כן, אני לא אדם מושלם, הוא חייך. ריטה נפטרה חצי שנה לאחר שנתגלה דבר המחלה. אני המאושר באדם מרגע זה ואני אומר לכם שאם אווה תרצה אותי אני שלה עד לשארית חיי. שוב שריקות רמות מהקהל. ועכשיו לדירה שלכם, אנשים יקרים. בדירה הזו גרו בעבר גינקולוג נחשב בעיר, רעייתו ושתי בנותיהם המתבגרות. היה להם גם בן פגוע מוח שהיה במוסד. אשתו הייתה מטופלת שלי. לפני המקרה הכרתי את הסיפור בגרסת האם בלבד. סופו הטרגי של הסיפור הוא שלפני שלוש שנים שתי בנותיה התאבדו כאן בדירה. הן ירו זו בראשה של זו באותו הרגע ולא פספסו. הצעירה הייתה בת 15, והבכורה בת 16 וחצי. האימא טופלה אצלי גם אחרי שזה קרה וכחלק מהטיפול הגעתי איתה לכאן. הם היו הורים קשוחים מאוד ובעלה ניצל מינית את הבנות. בעיקר את הקטנה. אחרי שהבנות התאבדו הם נפרדו. הוא השאיר לה את הבית ועוד רכוש וממון ונסע בלי להגיד לאן, והיא לא שאלה. הילד היה במוסד ולאחר המקרה היא ביקרה אותו כמעט מדי יום. היא עברה לצד השני של העיר, אבל החליטה לא למכור את הדירה. שנה ומשהו אחרי שזה קרה היא החליטה לשבור את כל הקירות ולהשאיר אותה בינתיים ריקה. את הטיפולים אצלי היא הפסיקה לפני קצת יותר משנה ולדעתי היא חזרה לעבוד וללמוד והשתקמה יחסית. עורך הדין שפנה אליכם הוא הבן של אחותה ולהרגשתי אין שום בעיה עם הדירה הזו, לא נותר בה זכר מהעבר. היא נהדרת והפכתם אותה לטירה.
אתה צודק פיליפ, שום אקדח לא תלוי על אף קיר בשום מערכה בסיפור שלנו. האקדחים שהיו כאן... היו שייכים להצגה הקודמת שהייתה כאן, וזה היה בזמן אחר. היה כאן אז תיאטרון אחר. וכעת יש הצגה שונה לחלוטין וזה בכלל לא תיאטרון, זה קולנוע... וזה סרט ללא יריות, גורה אמרה בקול רם, מדגישה כל משפט בתנועות ובפאוזות קומיות וצחקה.
עוד שריקות הגיעו מהקהל המדושן. 
נכון, מיד כשנכנסנו לכאן שלושתנו הרגשנו מצוין ולא דאגנו כלל. וגם עכשיו, אחרי שפיליפ סיפר את הסיפור הנורא, אין בי כל דאגה, [[דןדן]] הוסיף והשריקות גברו. 
אנחנו עוד בטח נמשיך לדבר על כל זה בעתיד יקרים שלי, המשיך פיליפ, אבל יש דבר שלישי שאני רוצה להגיד לכם עכשיו כאן לפני כל האורחים, בערב בלתי צפוי זה ובניגוד לכל הכללים, ואז אניח לכם, והוא שמרגע זה אתם אינכם פציינטים שלי יותר, גורה ויויו אהובים שלי. אולי לא כך נהוג לעשות, אך כבר שברתי כל כלל אפשרי ומרגע זה אתם בני משפחתי באופן רשמי, שכן אתם המלאכים שהביאו אליי את אווה שלי היפה והיקרה, וכך או אחרת אתם יכולים בכל רגע ורגע לשוחח איתי על כל דבר ותמיד אהיה לכם.
במחיאות כפיים וצחוק קמנו כולנו ושתינו קפה או תה ואכלנו עוגות וממתקים. גורה ואירי ארגנו משחקים. 



<<englink [[Wishing star 21]]>>
[img[pictures/cochav-22.jpg]]

//25 בדצמבר//

בשתיים אחר חצות [[פיליפ]] אמר לי ששתיים אחר חצות ושאל אם ארצה לבוא איתו אליו ולישון איתו. התרגשתי כמו ילדה.
בשלוש, לאחר שארזנו את האוכל שנשאר ולאחר שארזתי לי תיק, הלכנו ברגל לדירתו של פיליפ. זה לקח עשרים דקות של חיבוק, עצירות וליטופים. יויו הזמין את האורחים למחר בחמש לארוחת שאריות.
לפיליפ הייתה דירה גדולה ויפה ומלאה שכיות חמדה.
כמה זמן אתם בפריז, פיליפ? 
אנחנו ארבע עשרה שנה בפריז. גרנו בשתי דירות לפני זו, ולזו עברנו לפני שבע שנים. ריטה נפטרה שנתיים אחרי שעברנו, והיא גדולה מאוד בשבילי לבד, אבל אני אוהב את הדירה הזאת, קשה לי מאוד להיפרד ממנה. אני יודע שאולי אני נשמע לך חסר אחריות ומרחיק לכת ואת עלולה להיחרד מזה, שהרי היסטוריה לך אווה יפה שלי, אבל אין לי שאלה אם אני רוצה להיות איתך, את כל מה שנשאר לי לחיות בעולם הזה. אני רוצה את הפנים האלה ואת העיניים האלה איתי ואני נמשך אלייך כמו אז. חושק בך. לא מעניין אותי כלום, ואם לא תרצי אותי לא יודע מה אעשה. אין לי תכנית חלופית. [[אימא וג'ו|ג'ו ונורמה]] כל כך העריצו ואהבו אותך. אימא כל כך דאגה לך בתקופות מסוימות אווה. אל תכעסי מלאך שלי, אבל אני טרטרתי [[לאימא|סיפורים שסיפרתי לנורמה]] לא מעט בשאלות לגבייך. ואל תצטערי אווה שלי על שום רגע שבו לא בילינו יחדיו. האמיני לי. היית צעירה וכה תמה כשראיתי אותך לראשונה. כנראה, אמרתי לו. כמה סבלתי מאהבתי אליך, סוף סוף אתה כאן איתי. אני עדיין לא מעכלת. עדיין לא סיפרתי לך שיש לי כרטיס לאירלנד למחרתיים לארבעה ימים ומשם חזרה למשפחתי.
באופן טבעי התפשטנו והתקלחנו יחד. התייבשנו, לבשנו חלוקים והכנו תה. לאט. הלכנו למיטה הגדולה והרכה של פיליפ. התלטפנו לאט ובתשוקה. עשינו אהבה. דיברנו אהבה. דיברנו. התנשקנו. התחבקנו. נרדמנו בבוקר והתעוררנו בשתיים בצהריים. כלומר פיליפ התעורר ונצמד אליי. היינו שמחים. הסתובבתי אליו ונתתי לו לעטוף אותי. 
קמנו. שוב התקלחנו. הכנו קפה. שתינו אותו במרפסת. היינו בחלום. בארבע [[יויו]] שלח לפיליפ הודעה ושאל אם אנחנו באים בחמש. נלך, הא?
כן, בטח שנלך, חייכתי אליו.
(כעת אני רוצה להגיד דבר מה, להעיר הערה. לבי גדוש באהבה. אני לא חושבת שמילים יכולות לתאר את מה שאני מרגישה ולכן מעתה אהיה יחסית לקונית כשאדבר על פיליפ ועליי, כעת כל שאגיד הוא שמעל כל מילה שמתארת דבר מה על אודות פיליפ ואני אפשר להוסיף ציור קטן ומצדי אידיוטי של עננים ושמש וחיוך לב גואה. ☺).




<<englink [[Wishing star 22]]>>

[img[pictures/cochav-23.jpg]]


בחמש וחצי הגענו אליהם. [[גורה]] פתחה לנו את הדלת וקראה: אימא ואבא הגיעו. הם באו לקראתנו בדילוגים וקפיצות, [[יויו]] [[ודןדן|דןדן]] [[ואירי|אירי]] [[ואלפרד|אלפרד]] [[ואנג'ליק|אנג'ליק]] הג'ינג'ית היפה. התגעגעתי, אירי אמרה לי וחיבקה אותי. לא היה לי פנאי להתגעגע, אבל גם אני, עניתי לה. 
אוחח איזה חיבוק אווש, הדוקטור טיפל בך יפה אני רואה, יויו החולירע הזה אמר בקול רם כשחיבק אותי. 
יא חתיכת חולירע, לך מפה, אמרתי לו. רואה שכבר הספקת להבהיק את המתקן שיגור שלך טוב טוב הבוקר אחרי שלכלכו לך אותו. 
יא קנאית, הוא דחף אותי, הם עזרו לי, אל תקללי. 
היית מת, קנאי על פיליפ.
אווה הרעה, לכי לאכול.
השולחן כבר היה ערוך. חלק מהאוכל כבר היה על השולחן, וחלק התחמם. לגמנו מהשנאפס. 
מה עם [[החדר שלי יויוקה?|הקליניקה]]
לא נגענו.
אלך לבדוק.
אירי באה איתי. אכפת לך שאלך איתך או שאת צריכה להיות לבד או עם פיליפ? היא שאלה.
לא, בטח, בואי.
סתם בא לי להיות איתך.
בואי תהיי איתי כמה שבא לך, אני אוהבת אותך מאוד. הנחתי ידי על מותנה וקירבתי אותה אליי והלכנו לחדר.
לא ראיתי עדיין את החדר, היא אמרה כשנכנסנו. הדלקתי את האור ופתחתי את החלונות. הנה, בואי תראי, חושבת שנדרש ניקוי?
לא, את כאן יומיים בסך הכול, תסתכלי, נקי טילים ואיזה יופי הם סידרו הכול.
הם עשו בית נפלא, שבי קצת, ואני אסתדר ואחליף בגדים ואתרענן קלות.
את כזאת חמודה, אווה, איך את מסבירה את מה שקרה לכם, זה הרי מעבר לדמיון.
אני עוד לא קולטת, אירי. זה בנאדם שאהבתי מהרגע הראשון שראיתי אותו כשהייתי בת 18. רק עכשיו אני יכולה להגיד בפה מלא שהוא אהובי למרות שאני מתה מפחד.
את לא צריכה לפחד, זה האדם שלך. אם חלילה דברים ישתבשו בדרך את תתגברי, אני בטוחה. עכשיו את צריכה להשתולל על הרגע ואני גם בטוחה שהם לא ישתבשו. יש לך טעם טוב וגם לו וזה סיפור נפלא. אני נמשכת לסיפורים נפלאים מן הבינה, במיוחד אם הם קשורים אלייך ואל פיליפ. היא חייכה אליי.
היה שווה והכרחי לחכות את כל השנים האלה כנראה.
אצלי הדברים לגמרי לא מתיישבים בראש כשזה מגיע לאהבת המינים. אני אבודה שם. 
גם אצלי זה ככה אירי, האמיני לי שכל השנים חשבתי שמשהו אצלי משובש ומאז אמש אני יודעת שאני בסדר גמור. אל תהיי מודאגת על עצמך, זה יקרה לך. בינתיים תיהני מהחופש. את רוצה אהבה? 
אני תמיד גם רוצה אהבה וגם לא, כי מהרגע שאני נזכרת במה זה כרוך אוחזת בי רתיעה.
מכירה את התחושה הזו מהמחשבה על תקופת הריון נוספת.
מצד שני אני לא רוצה להיות מתבודדת ומוזרה. [[ההתרכזות בלהיכנס לתוך עצמי|גורה מספרת 13]] היא טריפית לחלוטין ולא בריאה לי. מאז שחזרתי מהודו אני מנסה להיות נורמלית. מזל כרגע שיש לי את כולכם, אני קצת זקוקה לסיוע.
נראה לי שאת יכולה לגור בחדר הזה וגם אמרת שיש לך דברים ל"אחיות כהן" של יויו וגורה, אולי תישארי כאן? פיליפ הזמין אותי לבוא אליו ואני רוצה. כבר חשבתי שאוכל להסתדר עם לנסוע פעם בחודש או חודשיים לבקר את [[אבא שלי|אבינו]] והשאר בוידאו צ'אט. היא הקשיבה והנהנה, הורידה את המבט ממני והמשיכה להנהן ולנוע מצד לצד.
אחשוב על זה, זה רעיון בכלל לא רע לבוא לכאן. אני צריכה לראות אם אני מצליחה לסגור את התואר עם הגשת עבודות בלבד ואז אוכל גם לעשות אותן כאן. אני רוצה מאוד לנסות ולהסביר במילים את הדבר המופשט הזה שנקרא [[שיטת אלכסנדר]]. 
נשמע טוב, את עדיין חושבת לנסוע עם גורה ודןדן להודו? 
אני לא יודעת עכשיו. בלבלת אותי עם הרעיונות שלך. נראה. בינתיים הלילה אני נשארת כאן בדירה בטוח. יש לרשותי דירה של חברים של ההורים, אבל אני זקוקה להם עדיין. לא תאמיני, אבל יותר מכול לדןדן, הוא כמוסת הרגעה. [[אני זוכרת את הרגע שבו שמעתי את קולו לראשונה|גורה מספרת 07]] בחדר בהודו כששכבתי על המזרן. את הקול השקט והמתחשב תמיד. את טוב הלב שלו. הוא תמיד מקשיב ויודע בדיוק מה להגיד. הוא מבין את התמונה כולה כשהוא איתך. אני שמחה שגורה והוא נפגשו, הוא היחיד שיכול עליה והוא אוהב אותה והיא אותו. יכול להיות שאני צריכה לתת להם לנסוע להודו בלעדיי ולהישאר כאן עם יויו, ואם את כאן אז בכלל... אני בטוח יכולה למצוא מורה טוב, או מורה טובה, היא חייכה והמשיכה, הכי יהיה קשה לי להיפרד מהמורה שלי לאלכסנדר. אצטרך למצוא עבודה כלשהי ולעבוד על התכנית שלי עם יויו. יש מה לעשות. התלבשת יפה, את זוהרת. 
תודה חמודה, אני בטוחה [[שז'נבייב|ז'נבייב]] תשמח לקבל אותך לשורותיה. אתם כולכם יודעים לעבוד, זה מרשים.
כן, גדלנו ככה, במקום פתוח שעושים בו דברים ועוזרים להורים. אני מחבבת את החדר הזה, הוא תפור למידותיי, היא אמרה והביטה סביב ומדדה בצעדיה את החדר הלוך וחזור. שמענו את אלפרד קורא לנו מבחוץ ויצאנו.




<<englink [[Wishing star 23]]>>
[img[pictures/cochav-24.jpg]]


האוכל מוכן, הוא עומד ואומר ומחייך אלינו וליד העציצים עומדת מחייכת הג'ינג'ית היפה. השיחה עם [[אירי]], היציאה שוב לקור ולאור האפור, ההליכה המהירה, הכניסה לדירה. שוב הוכיתי כשראיתי את פיליפ כאילו לא ראיתי אותו אמש, וכוחי אזל מגופי בעודי מחזיקה את הדלת. אירי חיבקה אותי, הם חייכו כולם והוא בא אליי. אני אוהב אותך אישה יפה, הוא אמר לי, ובכיתי וצחקתי. כשאירי ואני היינו בקליניקה [[ז'נבייב]] [[וג'וזף|ג'וזף אברואה]] הגיעו וגם [[פה]] [[וגואן יין|גואן יין]]. 
האוכל היה טעים עוד יותר מאתמול. היה לו טעם של חג חורפי מלא שיכר שזיפים. ג'וזף ביקש מיויו שיספר לו עוד על "האחיות כהן". יויו הסביר לו שאם יצליח לשלב בין פעילות דרך הרשת ויצירת מעגל מבקרים הולך ומתרחב באתר שהם יבנו, ותוך כדי עבודה בפועל של תכנון ושל עיצוב ושל עשיות שונות כאן ועכשיו, הם יוכלו ליצור מרחב עבודה והכנסות נאה. אני שאפתן אך בינתיים נתפרנס בשקט כמו ילדים טובים ג'וזף, אל תדאג, אנחנו אנשי עבודה, אבל אם נצליח להיכנס לצפיות [[בסרטונים שנעשה|מטא בדיון]] אז יהיה ממש טוב, אמר לו יויו. 
אני רק חרדה מה אעשה בלעדיכם, ז'נבייב אמרה.
לי יש שני דברים עיקריים שאני כרגע חושבת עליהם לגבי האתר, אירי אמרה בקול הפעמונים שלה, אני רוצה לכתוב על [[שיטת אלכסנדר]] שאני לומדת זה שבע שנים, לנסות להסביר אותה למרות שמשהו מהיופי שבחלחול האטי שלה פנימה אליך ועד שאתה מתחיל לגלות אותה אט עלול להיגרע, אך עם זאת, חבל לא לפשט אותה כדי שתהיה מוכרת יותר כי היא יעילה למי שבאמת ובתמים מאמין שהעבודה על עצמו היא הווה מתמשך. זו דרך מצוינת [[לשינוי|הגוף מתעדכן]] אטי וקבוע שלך את עצמך דרך החשיבה והגוף גם יחד מהמסד ועד לטפחות ולכל כך הרבה אנשים שאני רואה אני רוצה להמליץ ללמוד, היא חייכה. הדבר השני הוא עבודה משותפת של גורה ושלי שעוסקת בכפר הגלובלי. במהלך הזמן גורה ואני דיברנו לא מעט על [[הכפר הגלובלי|הכפר הגלובלי]] בפרט ועל האנושות בכללותה, היא חייכה והביטה בגורה, את רוצה לדבר גורתי?
דברי [[חללית שלי|אירי טוענת]], את מנגישה את הדברים נהדר.
היזהרי ממני, השיבה לה אירי ופרצה בצחוק של מבוכה שהתגלגל עד שעצרה אותו והמשיכה לשאת את דבריה.
שתינו ראינו, כמו רבים אחרים, את אווילותה של האנושות. ייתכן שקהלת צדק, והבל הבלים הכול הבל ומה יתרון לכל עמלנו, אך כל הטמבלים מרוב מדינות העולם, ובמיוחד המגה אימפריאליסטים חובבי הלוחמה שביניהם, טרם הבינו דבר פעוט. הם טרם הבינו כי כדורנו החביב לו קראנו ארץ הנו אולי בכלל כדור נידח בפאתי גלקסיה רחוקה, שכף רגל, מה שנקרא בפינו חייזר, רק החלה לדרוך בו בעשרות או באלפים האחרונים. אנחנו פרימיטיבים לחלוטין בכל דבר ומובן, אך טיפשותנו הבלתי נדלית והצורך לכבוש גרמו לנו לחשוב שאנחנו משהו. ובכן גורי ואני חושבות שאנחנו לא משהו ויש לנו רעיון לפתרון מדיני. נשטח אותו בפניכם בהמשך וזה המידע לעת עתה.
אתן אדירות, אמר ג'וזף.
אפילו לדןדן לא סיפרתי על זה ואסור שמשהו מזה יצא מהחדר הזה בשלב הזה כי אנחנו חושבות שזה רעיון פנטסטי [[שג'ון לנון|Imagine]] היה ממש אוהב וגם [[שרל'ה|שרלה הייתה אוהבת את זה]], הוסיפה גורה, וזה חייב להיות רשום באתר לפני שמישהו אחר ידבר על זה.
ועוד משהו, אם תרשו לי אשמח למלא את החלל שאווה תותיר [[בקליניקה|הקליניקה]] ולבוא לגור איתכם כי אני זקוקה לכם עדיין, אירי הוסיפה והביטה בשלושת דיירי הבית.
בטח שאת יכולה איריקה, יויו קפץ, אני מבקש לשמוע על הפתרון המדיני שלכן. 
ואנחנו חושבים שברור שאת ברוכה הבאה, אמרו דןדן וגורה יחדיו, ושאני נעלב שלא סיפרתן לי, במיוחד את, אירי, חשבתי שאני איש הסוד שלך, דןדן הוסיף וצחק.
אם ככה ז'נבייב, יש לך אותי כגיבוי במסעדה, אירי הוסיפה, מביטה בז'נבייב.
אני חושב שאתם [[החבורה המתוקה ביותר|אחות כהן]] של האנשים הנדירים ביותר שראיתי אי פעם, גו'זף אמר, לא בכדי נאמר כי הכול לטובה. אלפרד ואני מצאנו בית ואני לא מאמין שאני מבלה את החג עם בני וחבריו ועם האישה היפה שלי שהגיעה גם היא דרככם ממש כמו אווה לפיליפ, הרי מדובר בשרשרת נסים, אולי תכניסו לתכנית הגלובלית שלכם גם פטנט לשידוכים משמים, ותודה לך אלפרד, בני האהוב.

אבא מתוק שלי.




<<englink [[Wishing star 24]]>>
[img[pictures/cochav-25.jpg]]


//
26 בדצמבר//

בלילה בשכבנו במיטה ובדברנו בה [[פיליפ]] אמר לי שלא יוכל לבוא איתי לאירלנד מאחר שאנדרה מגיע והבנים יחזרו והוא לא יכול לא להיות. תישארי ואני אספוג את מחיר הטיסה הלא ממומשת, אמר לי וחייך וליטף את פניי. מעולם לא קיבלתי אהבה כזו פיליפ שלי, ומעולם לא אהבתי ככה, אמרתי לו ובכיתי שוב. אני מצטערת פיליפ, אני לא יודעת מה לעשות עם עצמי. אני בכלל לא רוצה לזוז ממך לרגע. אני מפחדת שאם אלך לא תחזור. אני רוצה לבוא ולגור איתך כאן, אני רוצה לעבוד עם יויו ואני רוצה ליהנות ולשמוח.
וזה מה שיהיה. אני תמיד אחזור ולא אלך, ואני רוצה שתפגשי את מקס [[ואיתן|אני הפסיכיאטר]]. תראי את אנדרה אחרי כל השנים שעברו, הוא בטח ישמח מאוד לראותך. הוא לא יאמין. אולי תזמיני גם את איריס? אני מאושר. 
גם אני מאושרת פיליפ, בתי נהנית מימים של דירה לבד והיא הרי תגיע לכאן בקרוב. תגיד פיליפ, זה באמת? זהו? 
זהו. נפגשנו סוף סוף.
התחבקנו והתלטפנו אך לא נתתי לשקט לחדור וכמו חתיכת קארי ברדשו קפצתי:
ותגיד את האמת, נכון שאז, בפעם הראשונה שראית את [[ז'נבייב]] [[בקוסקוס|הקוסקוס]], בפעם ההיא שהגעת עם גורה לשם מבית החולים לפגישה עם [[אלפרד]], אני מכירה את הסיפור היטב בלשון המעטה... אתה הרי יודע, אוזכרת לא מעט בלי שידעתי שמדובר בך. תגיד את האמת? היא מצאה חן בעיניך ז'נבייב, נכון? 
אין לי בעיה שתתחילי איתי אווה, אני לא חושש מפנייך חמודה שלי. אני אוהב אותך אהבה שלמה. אני רוצה שתדעי שאני לא תמים אבל אני גם לא חמדן. כשהכרתי אותך והייתי בן 30 כבר היו מאחוריי חיים פרועים עד פחד מוות, ששמתי להם סוף בגיל מוקדם יחסית, ו"נהייתי בנאדם". סוג של נס שנושא בחובו גם געגוע. 

התחלתי ללמוד, ובהתמחות הכרתי את ריטה, והיא הייתה אישה נהדרת וחשבתי שאני מאוהב בה. כשראיתי אותך ואחר כך אחרי הימים שבילינו יחד בכלל הייתי גמור והלום ומסוחרר אך לא הרשיתי לעצמי להיסחף. חששתי שאולי זו גחמה וששוב אעשה מהומה. כלום לא משנה עכשיו, זהו, אנחנו ביחד סוף סוף. במהלך חיי עם ריטה היו לי שלושה רומנים. אחד נמשך שלוש שנים, ושני האחרים ארכו כמה חודשים. אחרי שריטה נפטרה הכרתי פה ושם נשים. הכירו לי נשים. כלום לא תפס. המחשבות בסופו של דבר תמיד הובילו אלייך. לא מיהרתי, האמנתי, אני לא יודע איך להסביר לך את זה, שידעתי שניפגש. ולשאלתך בנוגע לגברת ז'נבייב, שהיא אישה לעילא ועדיין כאדם שמשתדל להסתכל על התמונה כמה שיכול מהצד ולכל רוחבה, ברגע שראיתי את ז'נבייב א. חשבתי שהיא מושכת בהחלט אך ידעתי שהיא לא בשבילי, ו-ב. ראיתי כמה היא מוצאת חן בעיני [[ג'וזף|ג'וזף אברואה]]. השוס הוא [[גורה]] [[ויויו|יויו]] על כל המשתמע מהיכרותי איתם, במבט לאחור אכן הם אלה שהובילו אותך אליי ואותי אלייך, אך גם ללא קשר הם מיוחדים מאוד ואני קשור אליהם במיוחד. אני אוהב אותם.
גם אני אוהבת אותם מאוד. תמיד חלמתי עליך והתפללתי לך ורק כשפגשתי שוב את [[אבא|אבינו]] ואת [[אהרון|אהרון אחי השלם]] התחלתי להבין שאני במסלול הנכון כי לחלוטין איבדתי אותו והשתדלתי יותר מכול לתת לנפשי מנוחה. אחרי שהיינו יחד הייתי שבורה. בלעתי את כל הכאב בלי לספר עליו. שוב ברחתי. נישאתי לגבר לא קשור. [[איריס|איריס הבת]] נולדה וזה מה שחשוב ובכל מקרה כלום לא משנה עכשיו.  





<<englink [[Wishing star 25]]>>
[img[pictures/cochav-26.jpg]]


בבוקר ביטלתי את כרטיסי הטיסה. בחצי הראשון של היום [[פיליפ]] ואני הלכנו לטייל בעיר. כשישבנו הוא אמר לי שהוא רוצה שלא אכעס שרק עכשיו הוא מספר לי, שבשבועות האחרונים הוא יצא עם אישה נחמדה בהחלט, שלא התאהב בה ושהפעם האחרונה שנפגשו הייתה לפני שבוע ושהוא בכל מקרה רצה להיפגש איתה ולהגיד לה בנימוס שהסיפור ביניהם נגמר ושהוא עומד לעשות את זה. אני יודע אותך אווה שלי, ואני יודע כמה סבלת וכמה את רגישה וכמה את חשדנית. חשוב לי להיות גלוי. אני לא אוהב את האישה ולא נעים לומר אך לא אחוש בחסרונה. אפגש איתה בבית קפה, הודעתי לה שניפגש לשעה. כבר כמה ימים שאני מתכנן לעשות את זה וקבעתי איתה את זה הבוקר כי רציתי שזה יהיה מאחוריי. אחרי שאסיים איתה אפגש עם אנדרה, אנחנו צריכים לדבר על כמה דברים. אני רוצה לתת לך שקט ואני רוצה שתסמכי עליי ושתביני, ומותר לך לשאול אותי כל מה שאת רוצה. הופתעתי ולא היה לי קל עם זה אך קיבלתי את דבריו בלי תלונות. הוא הלך לפגוש את האישה ששמה אנט ואחר כך את אנדרה, ואני הלכתי [[ליויו|יויו]]. כשהגעתי רק [[דןדן]] היה. הוא עשה כביסה. הכנו תה ולקחנו אותו לחדר השירות. קיפלנו ערימה ענקית וחילקנו את הבגדים למדפים המתאימים. המכונה עמדה לסיים את פעולתה וכך גם המייבש. דןדן נשכב בתוך סל הכביסה, ואני, ישובה על שטיחון ירוק כהה, נשענתי על המייבש. גורה ואירי היו אמורות לחזור מקונצרט ויויו גם הוא היה מחוץ לבית. הוא הביט בי ואני בו, חייכנו. היינו בשקט וכל אחד נדד עם מחשבותיו. נזכרתי בלילה שבו [[אדית]] ואני הלכנו לנחלה דרך השביל הראשי של השדות. עמד לרדת גשם והחלטנו לקצר ולחצות במעבר שליד הנחל ומשם ללכת עוד קצת עד לאחד השערים הצדדיים. הלכנו מהר ובחלק מהדרך רצנו. אדית חששה מאמה. היה כבר חשוך. בסיבוב של הנחל, ממש במעבר, עמדו זקופים, כפות ידיהם מונחות על חלציהם, שלושה מארבעת בניה המגודלים של נורית, אשתו השנייה של אבא. דוד הבכור, יעקב השני ושלמה, הבן הצעיר. רעמים וברקים החלו והם חסמו אותנו כך שלא יכולנו להמשיך. גשם חזק ירד והם תקפו אותנו ופגעו בנו. כל הסצנה חלפה בראשי ואני רואה את דןדן מביט בי ואני רואה בעיניו שהוא יודע את שחלף בראשי והוא רואה במבטי שאני יודעת שראה, והוא לוקח את כף ידי ואוחז בה וממשיך להביט בי ואומר שהוא לא יודע איך אבל לפעמים זה קורה לו וחיבק אותי. המכונות גמרו עבודתן וסיימנו לקפל את הבגדים שהתייבשו ולמלא מייבש אחרון לעת עתה.





<<englink [[Wishing star 26]]>>
[img[pictures/cochav-27.jpg]]


[[יויו]] הגיע מבסוט פורק את [[תיק הגב|תיקי גב לקניות שדןדן ויויו הכינו]] ומספר תוך כדי איך החליט לרגע לשבת לבירה ולידו ישבה מתוקה יפה ששמה ביאטריס והם קבעו לצאת מחר.
יפה, אנחנו הולכים וממלאים את התיבה כאן בזוגות, פצח דןדן בזמר אהבה ליויו, כבר עונות שאני מחכה לתור הזהב שלך ושתי יונים ביקרו כאן אתמול באי התבלינים.
צחקנו.
תשמעו, התיישבתי והזמנתי בירה ושתיתי להנאתי, מתישהו היא התיישבה לידי. סובבתי ראשי לעברה כמו שהייתי מסובב ראשי לכל אדם שהיה מתיישב לידי. סובבתי וראיתי פרופיל יפה עם שיער חלק שחור אסוף ופה מתוק שמנסה ללכוד את עיני הברמן. לא החזרתי את ראשי כפי שוודאי הייתי עושה לו הפרופיל היה שייך לגבר נורמטיבי או לאשה לא כה מושכת. עד שסובבה אליי מבטה וחייכה חזרה. חיוכי המתין לה בסבלנות. מה להזמין לך, שאלתי אותה בצורה הכי מתוקה שהצלחתי. בירה כמו שלך, אמרה לי המתוקה, מחקה את נחמדותי. דיברנו אולי עשרים דקות עד שבביטחון רב אמרתי לה שאשמח להזמין אותה לדייט, והיא נאותה ולכן מחר בערב ניפגש.
דלת הדירה נפתחה [[וגורה|גורה]] [[ואירי|אירי]] נכנסו בקול שירת libera me domine צוחקות בקול רם. הן היו בקונצרט של [[הרקוויאם של פורה]] שאני כה אוהבת. לו רק הייתי יודעת.
אל תדאגי יהיו עוד מהסוג הזה, ניחמה אותי אירי לאחר שהבעתי את אכזבתי. 
הרגתן אותי עכשיו בנות, זה אחד החלומות שלי. ממש נכנסתי לעגמומיות מזה, כמו ילדה.
אחרי שחלום אהבתך התממש ופגשת את פיליפ, יקירתי, משהו חייב להכניס מעט מרירות לכל המתיקות הזו, אמר לי יויו, איזון טעמים בסיסי יקירתי.
השעה הייתה שש בערב. רציתי כבר שפיליפ יבוא. נשכבתי על ספת הקטיפה הכחולה שעמדה במקביל לדלפק המטבח ועצמתי את העיניים. הייתי עייפה. נרדמתי כשברקע, כמו יחידת סאונד אחת, נשמע קולו של הגשם שירד בחוץ, ובין קול הטיפות הצפופות הבליחו חלקי פטפוטי הילדים שהכינו ארוחת ערב. קצת לפני שבע קולו של פיליפ שנכנס העיר אותי. כיסיתי את פניי והלכתי מהר לחדר האמבטיה לשטוף אותם.
כשחזרתי פיליפ עמד ליד הכיור ודיבר עם יויו. הלכתי לעברו עד שגופי היה קרוב לגופו, שלחתי את כף ידי אל מותנו ונצמדתי אליו. הוא שמח כל כך כשראה אותי, ויויו מחה דמעה. אני חושב שאני יותר שמח מזה ששניכם נראים כל כך שמחים מאשר אם אגלה בקרוב שביאטריס ואני מתים זה על זה, הוא אמר וצחקנו. 
פיליפ דאג לעדכן אותי כששתי כפות ידיו אוחזות את פניי ואמר שהפגישה עם אנט עברה בשלום ובידידותיות. הוא סיפר לה שנפגשנו, והיא גילתה הבנה. את אנדרה אראה בקרוב, הוא השתגע משמחה כששמע עלינו. אכלנו ושתינו המון ופטפטנו. לא שמתי לב כמה שתיתי. כבר היינו על הספות כשתמונות מהלילה הגשום מחוץ לנחלה עם [[הבנים של נורית|עץ המשפחה של אווה]] עולות שוב בזיכרוני. הייתי שיכורה ולחלוטין שקועה בעצמי. מבלי משים עברתי לתנוחת עובר וייבבתי. פיליפ לא היה לידי באותו הרגע, אבל דןדן שם לב והתיישב לידי. הייתי שקועה כל כך בזיכרון עד כי לא הבחנתי שהם כולם עומדים מעליי ומביטים בי, ואני בשלי עד לרגע שהכי שנאתי לזכור, הרגע שיעקב הצמיד אותי אליו בחוזקה והכריח אותי לגעת באיבר מינו. חשתי את תחושת הגועל שליוותה אותי כל כך הרבה שנים כל אימת שנזכרתי במקרה או כשריח כלשהו הזכיר לי אותו. אמרתי לעצמי בקול: די אווה, זה לא קורה, את לא צריכה שוב להיזכר בזה, נזכרת בזה כבר די והותר פעמים בחייך, ובאותו הרגע גם הבנתי שהם כולם מכתרים אותי והרמתי את ראשי אליהם, הם נראו מודאגים. דןדן ישב מצדי השמאלי ומצדי הימני אירי. צמוד אליה פיליפ ומהספה הקרובה יויו וגורה מטים גוו לעברי, כפות ידי כולם מונחות על שלי והם מוסיפים להביט בי. אני מתבוננת בהם ומתחילה לספר:






<<englink [[Wishing star 27]]>>
[img[pictures/cochav-28.jpg]]


כשהיינו בנות 13, באחד הערבים, חזרתי עם [[אדית]], [[חצי אחותי|עץ המשפחה של אווה]], מטיול שעשינו ברגל עמוק לתוך השדות עד לשטח המחסנים הגדול שבו אהבנו לשוטט. אלה היו כמה ימים של חג ורק היא ואני היינו שם. אדית השיגה מפתח למחסן מזון שהייתה בו פינת ישיבה של העובדים ושהייתה נעימה כמו רחם באמצע שום מקום, ובה רדיו גדול שקלט שתי תחנות, אחת ששידרה רק מוזיקת ג'אז ואחת ששידרה תסכיתים ברצף. ישבנו והקשבנו לסדרה בהמשכים על שתי אחיות שמתגוררות עם אמן, שהייתה מחליפת בעלים סדרתית וחולה מדומה, והתפוצצנו מצחוק ושתינו תה. כבר התחיל להחשיך ונהיה קר ועמד לרדת גשם. אדית חששה מאמה, שהייתה רגזנית. קמנו מהר, כיבינו וסגרנו הכול ויצאנו. הלכנו דרך השביל הראשי של השדות. החלטנו לקצר ולחצות במעבר שליד הנחל ומשם להיכנס לנחלה דרך אחד השערים הצדדיים. הלכנו מהר ובחלק מהדרך רצנו. בסיבוב של הנחל, ממש במעבר, תחת לשלושה עצים שצמרותיהם צפופות ושבוכות זו בזו, עמדו זקופים, כפות ידיהם מונחות על חלציהם, שלושה מארבעת בניה המגודלים של נורית, אשתו השנייה של אבא. דוד הבכור, יעקב השני ושלמה, הבן הצעיר. רעמים וברקים חזקים החלו, והם, כאילו היו הם עצמם המשך טבעי לרעם ולברק, זקפו חזותיהם מולנו, סובבו אותנו גב לגב והקיפו אותנו כך שלא יכולנו לזוז כמעט. גשם חזק התחיל לרדת, הם התקרבו אלינו עוד ועוד חלקיקי סנטימטרים שלושתם, ויעקב התחיל להתגרות בנו ולהגיד לנו שמספרים באזור שאנחנו כבר עושות את זה ושלח לאדית יד לחזה. היא קפצה לאחור ונתקעה חזק בגבי שהיה צמוד אליה. אני צעקתי מהמכה, ודוד אמר: כן כן... שמענו שאתן אוהבות... נכון אדית? וקירב את האגן שלו לאגן שלה והחל מתחכך בה בגסות. התחלנו שתינו להתנגד ולצעוק. הגשם גבר והם נצמדו אלינו והמשיכו להתחכך ולגעת ולהתגרות. ראשון שלף את איבר מינו שלמה, צעיר הבנים, והתחיל לחכך אותו בי ואמר: ואת יתומה? גם אוהבת? כמו אימא שלך? אחריו שני האחרים, הם עמדו ככה, מחככים איבריהם בנו ונאנחים ובכוח מניחים את כפות ידינו עליהם ואומרים מילים מסריחות. אדית ואני משתוללות וצורחות. יעקב סטר לשתינו. הגשם החזק חודר דרך העצים ומרטיב אותנו ואנחנו בוכות. למזלנו היחסי הם הגיעו לסיפוקם מהר וחזרו להיות הבהמות הרגילות שהיו, מביטים זה בזה בפנים חתומים ויעקב נוהם לעברנו: אתן נכנסות איתנו עכשיו לחצר ואם נדע שפתחתן את הפה אתן גמורות. הצלנו אתכן... אתן מבינות? הם גררו אותנו לכניסה האחורית ומשם לסככה של הנפחייה שהייתה הממלכה שלהם. הם היו הנפחים של הנחלה. כולם תמיד אמרו שלבנים של נורית יש שכל מעץ וידי זהב, אך תמיד חשתי את הסירחון שבעבע מכל דבר שעשו. יעקב אחז בשתי כפות ידיו את שתינו בפנים חזק, לסת בכל כף, והבהיר לנו שוב שמוטב כי נשתוק ודחף אותנו ואמר: לכו כבר שתי מסריחות, ותשמרו את הפה סגור. הם הסתובבו ונכנסו לנפחייה, ואנחנו מהר ובשקט אחזנו זו בידה של זו, חבולות ורטובות, ובצעדים מהירים ראינו שיש אור [[במטבח|המטבח של הנחלה]]. למזלנו [[איריס]], הקונדיטורית של הנחלה, עדיין הייתה שם כי הייתה צריכה להכין עוגות לאירוח גדול שעמד להיות בנחלה למחרת. מבוהלת היא לקחה אותנו מיד למקלחת והביאה לנו בגדי עבודה שהיו שם בלי לשאול שאלות. עשינו מקלחת חמה ולא ארוכה זו אחר זו. יצאנו מהמקלחת דוממות ואיריס רק הביטה בנו. התיישבנו על הספסל שליד שולחן האוכל שהיה שם. איריס הגישה לנו קקאו חם [[וטורט תפוז|טורט]]. שתינו את הקקאו החם והטעים בעודנו בוהות בשתי נקודות מקבילות. בשלב כלשהו הנחנו את הספלים והבטנו זו בזו. [[אדית]] חיבקה אותי ושתינו בכינו. זה לא היה בכי ארוך. זה היה בכי קצר, כי אני פתאום התעשתי ואמרתי לאדית שצריך למצוא מה אומרים לאימא שלה. 
תלכו לבית שלכם, אווה, איריס הציעה, תחליפו בגדים ותעשו כאילו נרדמתן בלי לשים לב.
ומה אם כבר מישהו נכנס לבדוק מה קורה שם? שאלתי אותה.
אז אולי תעשו את עצמכן כאילו נרדמתן כאן ואני אלך ואגיד למלכה שמאחר שגם אני ישנה הלילה במאפייה היא יכולה להיות רגועה. 
אולי נעזור לך וזה יהיה הדבר הטוב ביותר לעשות, אדית אמרה. אלה בכל מקרה היו ימי חופשה, ולכן מלכתחילה הרשינו לעצמנו לצאת לכל הטיול המקולל הזה, וזה לא שמלכה דאגה לנו, היא רק רצתה לשלוט, [[ואבינו|אבינו]], שמצד אחד כדרכו חי את חייו, מן הצד השני היה ירא מהמהומות שהייתה מעוררת. קמנו וסייענו לאט ובשקט לאיריס שהייתה לי כאם, לא אומרות מילה על מה שקרה, ואיריס ממשיכה לא לשאול ומדברת איתנו על העבודה ומנחה אותנו. התחלנו עם עשרים עוגות עשויות שכבות של שוקולד ומוקה, עליהן היינו צריכות לזלף רוזטות מקרם המוקה ולגרור מעל שקדים קלויים. המטבח היה נפלא. היה נעים לעבוד, אך צמרמורות של שאט נפש אחזו בי מדי פעם ובכל פעם שזה קרה אדית אמרה: יהיה בסדר, ואנחה נפלטה ממנה. לא סיפרנו לאיריס כלום וגם לא לעצמנו. שתקנו את הסיפור הזה תקופה ארוכה למדי. תמיד היינו מחוברות זו לזו בחברות טבעית ואוהבת, אך מכאן היינו חברות בדם. שמרנו זו על זו מקרוב, וכשכבר היינו בנות 14 אדית ישנה בביתנו כמעט מדי לילה. כשהיינו בנות 16 בערך דיברנו על זה לראשונה בינינו. לא באמת דיברנו כי אם רק הזכרנו את זה בדרך מוזרה אגב שיחה על אבא, אהרון ונורית. עוד מים רבים זרמו בעניין זה בנהר חיינו ובכלל. מילים בוטות ומבטים מטרידים היו חלק מתפריט החיים. את שנות הכעס שהגיעו מאוחר יותר עברתי לבד. זה יצא ממני לראשונה כשכבר הייתי בת 28 באבחון שעברתי קצת לפני פגישתי השנייה עם ענר, מי שהיה בעלי והוא אבי בתי. לו אדית ואני היינו יחד אז היה קל יותר, ולבסוף נפגשנו כאילו לא נפרדנו מעולם. 
השתתקתי. הבטתי בהם. כפות ידיהם עדיין מונחות על שלי. הם לא אמרו מילה. המשכתי.
לא דיברתי על זה מאז שהייתי בת 18 ופגשתי את [[נורמה|סיפורים שסיפרתי לנורמה]], אימא של פיליפ, אמרתי ובכיתי וחייכתי והסתכלתי על פיליפ שלי שדמעות היו בעיניו. אני שמחה שסיפרתי לכם את זה כי זה זמן שהסיפור מתדפק על דלתי. 
יכולה לספר לנו קצת יותר על המשפחה שלך? גורה שאלה, את מסוגלת? 
כן, אני אפילו רוצה, אך קודם אחלץ אבריי ואלך לרגע לשטוף פניי ברשותכם ואז אספר לכם, זו המשימה שעומדת לפניי ברגע זה. כשחזרתי פיליפ חיכה לי על הספה מושיט אליי ידיו, קם, לוקח אותי איתו לספה ומחבק ומנשק. [[דןדן]] הגיש לי קפה. יויו הניח על השולחן את בלוק הניירות שלו וטוש שחור, התיישב על גב הספה וליטף לי את השערות. [[גורה]] הגישה לי [[עוגיות לימון|עוגיות חמאה ולימון]], קחי, את אפית אותן, הן מצוינות, היא אמרה. אירי ישבה מולי עכשיו, מביטה בי ברוב קשב, ואני ממשיכה:
בנחלה שבה נולדתי וגדלתי וחייתי עד שהייתי בת 18 היינו עשרים וחמישה ילדים לשבע אימהות ואב אחד. זה היה מקום גדול ויפה ומלא בכל טוב. [[אחי אהרון|אהרון אחי השלם]], ממנו אני צעירה באחת עשרה שנה, ואנוכי היינו בניה של חנה, אשתו הרביעית של אבי, שהלכה לעולמה כשהייתי בת ארבע. בריאותה התערערה עם לידתי. ברחתי מהנחלה כשהייתי בת 18, כי לא רציתי להינשא למי שאבי בחר עבורי, בנה של משפחה עשירה ומקורבת למשפחתי שהתגוררה מרחק של שעה נסיעה מאיתנו. הבן לא היה פגום או לא מוצלח, אבל לא הייתה לי כל משיכה או חיבה מיוחדת אליו. באותם ימים הייתי רוויית כעסים על אבי ועל אחי אהרון, שהיה כל עולמי אך לא שמר עליי כמו שצריך. אהבתי הראשונה הייתה נתונה לנער שלמד איתי בבית הספר האזורי. שמו היה אברהם, כמו שם אבינו. אהבנו זה את זה שנה שלמה כשהיינו בני 16 עד שיצחק, השלישי מבין ארבעת בניה החזירים של נורית והיחיד מהם שהיה נשוי, גילה זאת וסיפר לאבי. לפני כמה לילות, לפני המפגש הגדול שהיה לנו כאן, אמרתי ליויו שאשרטט עבורו את עץ המשפחה הגרעינית שלי, הוא כבר שמע קצת מהסיפור. אעשה זאת עוד מעט, אני מבטיחה. המשכתי לדבר ועיניהם בולעות את מילותיי ואני נחושה להבהיר להם מקצת מהיער. אבי לא אהב את הרעיון ואסר עליי להיפגש שוב עם אברהם. אביו היה אויב מושבע של אבי ויותר מכך של אהרון. כאשר אהרון שמע על זה הוא לקח אותי לשיחה בהולה והבהיר לי שעליי לשכוח מהבחור ומיד. לאחר שנתגלה כי המשכתי להיפגש בסתר עם אברהם נשלחתי לתקופת צינון לדודה מרים, אחות אבי, שהייתי יקרה ללבה, אך הייתה שמרנית וקשוחה ושמרה עליי מכל משמר והטיפה לי נון סטופ. היא בישלה מצוין. כשחזרתי לאחר שישה חודשי אילוף לנחלה התברר כי הצינון עבד. לא שבתי להיפגש עם אברהם והוא אף יצא מזיכרוני כמעט לגמרי, אך ניסיונותיו של אהרון לשמור עליי שוב כבר לא היו אפשריים. היה מאוחר מדי. אני כבר כעסתי מדי והייתי פגועה וידעתי לשקר, והוא כבר היה שחוק מניהול הנחלה. אני לא ידעתי אז, אך התברר לי כשנפגשנו שוב לפני שלוש שנים, שהרבה שנים הוא הסתיר את היותו הומוסקסואל. הוא נישא רק בסוף שנות השלושים לחייו, כשהיה עדיין הומוסקסואל לטנטי, לאישה שהייתה ההפך הגמור ממנו. הוא, מן הסתם, לא ממש חשק בה. היא הייתה אישה של גברים, צעירה ממנו בעשר שנים, והוא היה איש של עבודה ושל ויסקי. נולדו להם בטי, שהיא בת 22, וגילי, שהוא בן 20. רק לפני עשר שנים הפסיק להעמיד פנים שהוא אוהב נשים. הם התגרשו וגילי בנו הבין סופית בשנה האחרונה שגם הוא גיי. בנחלה היו חיכוכים רבים בין האחים. כולם גדלו ובעטו לכל עבר כשבראש מחוללי המהומות האחים הארורים לבית נורית. אהרון היה צריך להתמודד עם כל זה. אדית חמקה משם לפניי, כשהיינו בנות 17. היא ברחה עם אחד הבחורים שלה ולי השאירה רק מכתב. עברו שנים עד שנפגשנו שוב. אחרי שברחה החלטתי גם אני לחמוק משם, אך רציתי לעשות את זה בצורה בטוחה יחסית. איריס ושניים מאחיי, [[רפאל ורזיאל|רזיאל ורפאל]] שמם, סייעו לי לאגור כסף וציוד קל לנשיאה, אך מספיק לכמה חודשים שקטים בארץ. הארץ הייתה האפשרות המיטבית באותה עת. מבעוד מועד הם ארגנו לי מקום לשהות בו. בת 18 ויומיים יצאתי מהנחלה ומעולם לא ביקרתי בה מאז. אבא, אהרון וגילי בנו, אדית ועוד כמה מאחיי, גרים קרוב אליי כעת אחרי שנים ארוכות של ניתוק. [[איריס]] האופה, אישה רגישה וטובת לב שהייתה לי כאם, נפטרה כשהייתה בת 74, זה היה שנים לאחר שעזבתי. [[לבתי האהובה|איריס הבת]] קראתי איריס. לקח שבועיים להגיע לארץ דרך הים הגדול. בנמל חיכתה לי מונית שאספה אותי ולקחה אותי למלון קטן ונחמד. יומיים אחרי שהגעתי לשם, נחה, כפי שאיריס הורתה לי: אחרי שאת מגיעה אל תעשי כלום ועל תחשבי על כלום שבוע שלם, הלכתי לאכול במסעדה שהייתה ליד בית המלון ושם פגשתי את נורמה, אמו האהובה של פיליפ, ואת ג'ון בן זוגה, שהיה איש נפלא גם כן, והם אימצו אותי אליהם כשני מלאכים בלי לחשוב פעמיים. 
הפסקתי לדבר כמו מי שפסק באחת מלאכול את הסטייק שעד לאותו רגע שבו הניח את ידו על בטנו ואמר: זהו, אני לא יכול יותר, טרף אותו בשקיקה ביס אחר ביס, וחייכתי חיוך גדול מאוזן לאוזן. כתבתי להם מהר על דף מהבלוק של יויו את שמות כל בני משפחתי הגרעינית. הם העבירו ביניהם את הדף וישבנו עוד קצת והם אהבו אותי ודאגו לי עוד, עד שהחלטנו לצאת לרקוד.





 


<<englink [[Wishing star 28]]>>
[img[pictures/cochav-29.jpg]]

//22 ביוני //

את כל מה שכתבתי עד כה התחלתי לכתוב קצת אחרי [[ארוחת חג המולד|ארוחת כריסמס]]. בימים האחרונים, לאחר שסיימתי לכתוב על הערב שבו סיפרתי להם את הסיפור של אדית ושלי, חשבתי שבמידה מסוימת השלמתי את המשימה שהייתי צריכה להשלים ושאני יכולה להרפות לעת עתה. היה כיף מאוד במועדון אליו הלכנו באותו לילה. ניגנו בו מוזיקה שחורה והשתוללנו. בתחילת ינואר נסעתי לספר [[לאבא|אבינו]] [[ואהרון|אהרון אחי השלם]] על פיליפ ועל המעבר לפריז. [[איריס|איריס הבת]] התארגנה לקראת הטיול שלה עם אחיה ועבדה הרבה שעות בכל יום. הבטחתי לאבא שאבקר לעתים קרובות. הבשורות שימחו אותו, ואכן מדי כמה שבועות אני נוסעת לביקור של כמה ימים עד שבוע, וכבר פעמיים שפיליפ הצטרף אליי. מדי יום אני מתכתבת עם אבא במסרונים ומדי כמה ימים אנחנו נפגשים לשיחת וידיאו.
את הימים בפריז אני מבלה בשיטוטים בעיר שאני אוהבת בכל שעה משעות היום, בביקורים אצל [[יויו]] ובעבודה איתו [[ובכתיבה בבית במטבח|מקלדת]] על המחשב הנייד, שלפעמים אני לוקחת אותו איתי לבית קפה. לפני כמה ימים חברה שלחה לי קישור [[לסרט יפה על תרצה אתר|https://www.youtube.com/watch?v=WjsOr0Db88s]], ויש שם משפט על זה שהייתה מתיישבת לכתוב רק אחרי שהשלימה את כל המשימות. היו לה אז ילדים קטנים. גם אני לא יכולה לשבת בשקט אם לא הכול סביבי מסודר ומאורגן ואם לא עשיתי את כל מה שצריך, אבל זמני בידי עכשיו ואני רגועה, ובד בבד הלך ופחת החשק שלי לשבת בדד ולכתוב. התבודדתי די והותר וכעת אני רוצה לכתוב ולעבוד עם חבורת יויו וגורה, ואני רוצה להיכנס לזה יותר גם כשאני לבד, אך אז כשאכתוב לבד זה לא יהיה לבד, כי זה יהיה איתם. 
כל כך טוב לי עכשיו, עד שהכתיבה הפכה למטלה. בא לי חופש גדול. רוב הרגעים הם רגעים של אחווה ורוגע ואפילו של אושר. לשבת עכשיו ולהמשיך ולכתוב לאט ובסבלנות כפי שתכננתי, את מהלכה של שנה שלמה, אני מתעצלת. אני רוצה לחגוג את חיי החדשים ולאפסן חזרה את הקרטונים שמצאתי בארון של איריס ביום שבו התיישבתי לכתוב. לפני שלושה ימים סיפרתי על כך [[לאירי וגורה|אירי וגורה]]. [[גורה]] הציעה לקרוא מה שכתבתי ולנסות לכתוב היא את [[ההמשך|ההמשך של כוכב המשאלות]]. גם את [[אירי]] זה עניין. חשבתי שזה רעיון נהדר, ומיד שלחתי לתיבות המייל שלהן את המסמך.




<<englink [[Wishing star 29]]>>
!!![[אווה]]:

זה סיפור שכתבתי בחורף 2016, והוא מתחיל בביקור אצל יויו וגורה בפריז, לארוחת כריסמס 2015

[img[pictures/cochav-hamishalot.jpg]]




//"לַכֹּל זמן, ועת לכל חפץ תחת השמים". 
(קהלת ג' א')//

<<list-links filter:"[tag[כוכב המשאלות בעל תשע הצלעות]]">>

<<englink [[9-side-wishing-star]]>>
[img[pictures/kuli-alma.jpg]]

!!![[תומר]]:

ככה זה כשאדם הולך אחרי [[הג'אז|Jazz]] - הוא מגיע למקווה ישראל עשר ונכנס מהרחוב [[לכולי עלמא|https://kulialma.com/]], פונה שמאלה ויורד במדרגות שמובילות למקום המקסים והצבעוני שהוא אוהב, קונה לעצמו ברד אננס וודקה, רואה אנשים צעירים מבלים, שמח בחלקו, ההופעה של ג'אז מתחילה והיא נפלאה זועמת וצוחקת וחכמה ויפה וכובשת והשירים.. וואו, ופוגש את [[אהל היפה]], קונים עוד דרינק, מדברים, וחוזר מבסוט [[לננו הקטנה|ננו שלי ואני]] שלי שחגגה יומיים לפני יום הולדת שנתיים.



<<englink [[Kuli Alma]]>>
[img[pictures/glassesfromzarahome.jpg]]


!!![[גורה]]:

כבר כמה ימים שאני מהופנטת מהכוס עם הפרחים.


<<englink [[Glasses from Zara Home]]>>
[img[pictures/kortim-ezim.jpg]]

!!![[גורה]]:

!!!''<<tag "בחוות החיות">>, החזירים והכלבים כורתים עצים, [[כדי לבנות|כשהיו כבישים צרים וארוכים]] לגובה.''


<<englink [[They cut down trees]]>>
[img[pictures/yZiEyakkL0F87eQO.JPG]]


!!![[אלפרד]]:

שיטת אבחון פסיכולוגי דרך ניתוח כף היד, שפותחה על ידי [[ד"ר ארנולד הולצמן.|https://rivalkalay.com/%D7%90%D7%95%D7%93%D7%95%D7%AA/%D7%90%D7%A8%D7%A0%D7%95%D7%9C%D7%93-%D7%94%D7%95%D7%9C%D7%A6%D7%9E%D7%9F/]]

<<englink [[Psychodiagnostic Chirology]]>>
[img[pictures/kishurim.jpg]]

!!![[יויו]]:

מאחר שאנחנו כולנו, [[בין השאר|על הספקטרום]], נוער בסיכון על הרצף האספרגריסטי, אנחנו לומדים יחדיו כיצד להתמודד עם מצבים בלתי צפויים בחיים, כמו שאלות שמשאירות אותך הלום. 

תשובה ראשונה בסיסית היא: "אני אחשוב על זה". משפט שבתקופה של שיפוץ [[הדירה|כוכב המשאלות 01]], הפך למטבע לשון אצלנו.



<<englink [[Social skills]]>>
[img[pictures/kechol-hanire.jpg]]

!!![[אימא של ג'אזז]]:

מאחורי העציצים, הקיר והחלונות הנאים למראה האלה, שברחוב ביל"ו 29 פינת כרמיה 15, בשקט ובענווה שוכנת [["ככל הנראה"|https://www.google.co.il/maps/uv?hl=en&pb=!1s0x151d4b78bb3c3de1:0xbce6de6b0ed80951!3m1!7e115!4shttps://lh5.googleusercontent.com/p/AF1QipPHn_r-3sxsjpJKXwkGj4tzzEmsBMFayxYy7bJm%3Dw284-h160-k-no!5z15vXm9ecINeU16DXqNeQ15Qg15HXmdec15UgLSBHb29nbGUgU2VhcmNo&imagekey=!1e10!2sAF1QipPHn_r-3sxsjpJKXwkGj4tzzEmsBMFayxYy7bJm&sa=X&ved=2ahUKEwigqdac7cjlAhXE6aQKHdEXDoUQoiowCnoECA8QBg]] - המספרה החביבה עלי, ובתוכה מני הנפלא והבנות שאיתו - וזה בילוי בפני עצמו.


<<englink [[Kehol Haniree]]>>
[img[pictures/kelim-bakiyor.jpg]]

!!![[גורה]]:

[[אימא שלי|דינה זכרה לברכה]] לא יכלה לסבול כלים בכיור, וגם אני לא יכולה לסבול כלים בכיור, אלא אם הם נקיים מלכלוך שמביא חרקים ומחלות ומלאים במים וסבון. למזלי גם [[יויו]] ירש מאימא את [[המחלה|יסודי או ocd]], [[ואירי|אירי]] היא בכלל מחלה מהלכת. אז זו פינה סגורה [[בדירה|כוכב המשאלות 01]].


<<englink [[Dishes in the sink]]>>
[img[pictures/kama-shirim.jpg]]

!!![[יויו]]:

כל השירים של היום נכתבו כבר לפני הרבה שנים

מה שחשבנו הספיקו פשוט לחשוב גם אחרים

אל נהיה עד כדי כך תמימים 

ונחשוב שיש יוצאים מן הכלל

כמה שירים כבר אפשר להמציא בכלל

[[(מילים ולחן: מתי כספי)|https://www.youtube.com/watch?v=Ya4Cago3vVY]]




<<list-links filter:"[tag[כמה שירים כבר אפשר להמציא בכלל]]">>


<<englink [[How many songs can you even invent at all]]>>
[img[pictures/cmolonez.jpg]]

!!![[יויו]]:

כמולונז נראה בדיוק כמו [[בולונז|https://he.wikipedia.org/wiki/%D7%A8%D7%95%D7%98%D7%91_%D7%91%D7%95%D7%9C%D7%95%D7%A0%D7%96]] אבל תרצה, שהיא מאד ספציפית, מכינה אותו עם [[סייטן|https://he.wikipedia.org/wiki/%D7%A1%D7%99%D7%99%D7%98%D7%9F]] קצוץ. בליל הסדר אכלנו את התבשיל מעל אטריות ביצים או אטריות שעועית. ברגיל אנחנו אוכלים את זה על ספגטי. 

החומרים:

*300 גרם סייטן קצוץ או "טחון מו הצומח", שעשוי מסויה
*שמן זית
*2 שיני שום חתוכות קטן
*בצל גדול חתוך לקוביות קטנות
*פלפל חתוך לקוביות קטנות
*20 עגבניות שרי תמר
*שתי עגבניות ג'ני (אמיתי)
*2 כוסות עגבניות מרוסקות מבקבוק
*מלח ים גס
*פלפל שחור
*ארבעה עלי אורגנו
*כוס- 2 כוסות מים 

אופן ההכנה:

1. מחממים בסיר רחב (הכי מתאים זה סיר מדגם סוטאז') ארבע כפות שמן זית ומזהיבים את השום

2. מוסיפים את הפלפל החתוך וצולים אותו עד שהוא נהיה מעט שקוף

3. מוסיפים את העגבניות וממשיכים בצליה, מוסיפים קורט מלח גס וממשיכים עוד כמה דקות. עד שמתאדים הנוזלים

4. מוסיפים את סייטן/הטחון מן הצומח וצולים אותו כעשר דקות, מידי פעם מערבבים/הופכים בעזרת כף עץ

5. יוצקים מעל חמש כפות שמן זית  וממשיכים לצלות עוד עשר דקות בערך. מידי פעם מערבבים

6. מוסיפים את רסק העגבניות, המים, התבלינים ומערבבים

7. מבשלים שעה בערך על אש קטנה ומכבים את האש

הערה:

לדעתי הטוב ביותר הוא אחרי שמכבים את האש והתבשיל "נח" זמן מה, טועמים, מתקנים תיבול אם צריך ומחממים שוב.

<<englink [[Bolognese-alike]]>>
[img[pictures/palms.jpg]]

 
!!![[אירי]]:

כפות הידיים הן [[שתי החמודות האלה|https://he.wikipedia.org/wiki/%D7%9B%D7%A3_%D7%99%D7%93]], אליהן מחוברות חמש אצבעות, והן עצמן מחוברות  דרך שורש כף היד לאמות, שמחוברות לזרועות, שמחוברות לגוף שמחובר לראש שנותן הוראות והן מבצעות, אך לא תמיד כך הוא. 

לכפות הידיים תבונה משל עצמן ולעתים הן מוליכות אותנו מבלי דעת לטוב ולטוב יותר. קורה לא פעם שהן מוליכות אותי למטבח ומוציאות מהמקרר חתיכת דג, ואני צורבת אותו במחבת, ומניחה על הצלחת, ומוציאה עלעלים ומקשטת.

"מה את מקשטת?", ראשי שואל אותי. הממ מעניין אני חושבת. "זה יפה וזה גם מוסיף לטעם של הדג", הידיים עונות לי, בלי הסברים כאלה כמו בשף ריאליטי, שהקרנצ'יות של העלעלים בביס עם הפריכות המתפצפצת של העור של הדג מתפוצצות בפה כמו אהבה ממבט ראשון.

בגלל זה אני אוהבת את כפות הידיים, הן לא מאכילות שיט.


<<list-links filter:"[tag[כפות ידיים]]">>



<<englink [[Palms of the hands]]>>

[img[pictures/carbolet.jpg]]

!!![[יויו]]:

היה רגע בעברי בו שמתי לב, שכשאני מבסוט מעצמי בעקבות איזו מחשבה שנראית לי מבריקה למשל, או משהו שעשיתי - זה מלווה בהתנפחות קלה של בית החזה משל כרבולת של תרנגול מלא אגו על גבול הפעלת הכנפיים וקריאה מתגוררת שם.



<<englink [[Crest in the chest]]>>
[img[pictures/kruvit-bamachvat.jpg]]

!!![[יויו]]:

השבוע נזכרתי באפשרות הזו, לצלות כרובית בתוך כמות סבירה של שמן זית ושום, ולסחוט מעל לימון. 

*כרובית שלמה.
*שלוש שיני שום
*שמן זית
*מלח ים
*קורט פלפל שחור גרוס
*מיץ מרבע-חצי לימון סחוט
*כף- 3 כפות  טחינה גולמית

1. מבשלים כרובית שלמה בסיר עד שהגזע מתחיל להתרכך, מסננים ונותנים לה להתקרר.

2. מפרקים את הכרובית לפרחים קטנים.

3. מחממים מחבת ברזל על הלהבה הנמוכה, ומוסיפים כרבע כוס שמן זית ושלושה שיני שום פרוסות.

4. צולים את השום, וכשהוא מתחיל להזהיב מוסיפים את פרחי הכרובית וצולים הרבה זמן (יחסית), ומידי פעם מערבבים בעדינות - עד שהכרובית מזהיבה (כ-40 דקות).

5. כשהכרובית צלויה מספיק מעבירים אותה לקערה. סוחטים מעל מיץ מרבע לימון עד חצי לימון, קורט מלח ים, פלפל שחור גרוס, מקשטים עם כף-שלוש כפות טחינה גולמית ומגישים.


<<englink [[Cauliflower in a frying Pan]]>>
[img[pictures/christopher-moltisanti.jpg]]

!!![[יויו]]:

כשבסוף הסידרה גורמים לנו לחשוב שנשמתו של [[כריס|http://www.imdb.com/name/nm0408284/?ref_=fn_nm_nm_1]] נכנסה לתוך [[חתול|https://www.youtube.com/watch?v=xfi5I02r6xE]], אני מבין, שקיבלתי אישור קוסמי לחיבתי העזה אליו, גם ברגעים בהם הוא אידיוט גמור ודפוק על כל הראש.




<<englink [[Christopher Moltisanti]]>>

[img[pictures/christmas-2017.jpg]]

!!![[גורה]]:

לאחר שבכריסמס 2016 שחררנו את האחיות לחיק משפחותיהן הגרעיניות, קיימנו השנה שוב [[אצלנו|כוכב המשאלות 01]] את הארוחה שהייתה בסימן [[טבעונות|מתכונים טבעוניים]], לכבוד [[שראשל|ראשל]] הפכה טבעונית [[ונטע|נטע]] שהייתה אורחת כבוד. בצד המזרחי של השולחן היו המאכלים הבשריים, בצד המערבי הטבעוניים ובמרכז המאכלים הצמחוניים. היה מאד כיף, [[מרק]] ערבב לכולנו על הקרח וודקה סקנדינבית עם אוכמניות ושמפניה אייס וזה עבד. היו לא מעט מאכלים שאי אפשר בלתם [[מארוחת הכריסמס הקודמת|מתכוני ארוחת הכריסמס]], אבל גם היה [[פטה כבד|פטה כבד עוף]] ופרוסות קטנות מאד של לחם בריאות עם צימוקים. פוקצ'ות, [[חמאת שום|חמאת שום ועשבי תיבול]], [[פטה טבעוני]], [[אורז לבן|אורז לבן עם צנוברים]], כרובית בטורטיות, [[תבשיל ירקות]], סורבט, עוגת מוקה במהדורת כריסמס 2017, פנה-קוטה ומי יודע.. אכלנו כל כך הרבה.

זו לא הייתה ארוחה דרמטית כמו קודמתה, היה סיכוי קלוש שדןדן יגיע עם דודו אבל זה לא קרה. לעומת זאת וסוף סוף אחרי שהתעלפו יחדיו על [[הסופרנוס]] ועוד [[סדרות]], [[יויו]] סיפר לנו שהתרחשה [[תהפוכת]], והוא [[ואנג'ליק|אנג'ליק]] התאחדו. כולנו שמחנו מאד והודנו שכולנו די כבר שמנו לב.


<<englink [[Christmas 2017]]>>
''
אמרו גם טייפ''

[img[pictures/kalletet.jpg]]


<<englink [[When they said cassette]]>>
[img[pictures/whenihangoutthelaunry.jpg]]

!!![[תומר]]:

כשאני תולה כביסה העיניים שלי מטיילות מעצמן.


<<englink [[When I hang out the laundry]]>>
''הם היו מנופפים זה לזה לשלום''

[img[pictures/nofefoo-leshalom.jpg]].

<<englink [[When people were still optimistic]]>>
''גם בהם עישנו''

[img[pictures/csheishnoo-bakolnoa.jpg]]

<<englink [[When there were movie theaters]]>>
''היה מקום''

[img[pictures/meat-cvishim.jpg]]

<<englink [[When there were narrow and long roads]]>>
''היה אפשר לשחק בכביש''

[img[pictures/lesachek-bacvish.jpg]]


<<englink [[When there were fewer cars]]>>
[img[pictures/kesheatem-yeshenim.jpg]]

!!![[אווה|אווה כהן]]:

בשנה האחרונה רציתי רק פשוט לחיות. אחרי שפגשתי סוף סוף את פיליפ, וסיימתי לכתוב את [[כוכב המשאלות|כוכב המשאלות בעל תשע הצלעות]], החיים נהיו שקטים וטובים.

אני מטיילת הרבה בעיר, נמצאת עם [[המתוקים|האחיות כהן]], [[הבנים של פיליפ|אני הפסיכיאטר]] מגיעים לפעמים.

הדבר הנהדר שקרה בזמן האחרון הוא,  [[שאיריס שלי|איריס הבת]] באה לגור כאן, ובסתיו
 היא תתחיל ללמוד תאטרון.
 
בבקרים החופשיים, כשהם שניהם עוד ישנים ואני כבר ערה, אני מסתובבת בבית, מידי פעם מרחרחת סביבם, מרגישה מאושרת, ועושה כל מיני.




<<list-links filter:"[tag[כשהם ישנים]]">>



<<englink [[When they sleep]]>>
''
לא השתמשו בחגורות בטיחות''


[img[pictures/paam-keshe-hamechoniyot.jpg]]


<<englink [[When the cars were pretty]]>>
[img[pictures/whensteammists.jpg]]

!!![[אימא של ג'אזז]]:

כשיש אדים על המכסה של הקופסה, יש לנגב אותם לפני הסגירה, ועוד לפני זה, לא לסגור כשחם! ועדיין, יכולים להיווצר, ואף נוצרים, אדים במהלך שהיית כלי סגור במקרר עם אוכל שאיננו רוצים שיתלחלח, ומכאן החוק.


<<englink [[When steam mists up]]>>
[img[pictures/whilelistening.jpg]]


!!![[אימא של ג'אזז]]:

מאז השבת השחורה האיומה והנוראה השבעה באוקטובר 2023, שאין שום מילים שיצליחו לתאר או להסביר משהו מכל מה שקרה או קשור בכל הקשר לסיוט המתמשך, קשה מאד להפסיק להקשיב לחדשות.

<<list-links filter:"[tag[כשמקשיבה לחדשות]]">>

<<englink [[While listening to the news]]>>
[img[pictures/keshenishar-bazek-parich.jpg]]

!!![[אווה|אווה כהן]]:

1. כשנשאר [[בצק פריך]], אפשר לרדד את השארית למלבן,

2. למרוח עליו שוקולד מהמתכון של [[השמרים קרנץ|שמרים קרנץ]], שוקולד למריחה, ריבה, ממרח שקדים, ממרח אגוזים ..

3. לגלגל את המלבן המרוח לגליל

4. לשים בפריזר ל10-20 דקות

5. לחתוך לעיגולים

6. לאפות בחום בינוני (170 מעלות צלזיוס) כעשרים דקות

7. להניח על צלחת יפה ולהגיש




<<englink [[Crust dough extras]]>>
[img[pictures/keshenishar-bazek-parich2.jpg]]

!!![[אווה|אווה כהן]]:

השבוע נשאר כשליש מכמות אחת  של [[בצק פריך]] וכן היו בקופסה כמה תמרים פנויות. את התמרים חלטתי במים רותחים, קילפתי ומעכתי לממרח והנה הוראות ההכנה:

1. במקום לקמח את משטח העבודה מפזרים זרעי שומשום, ומטמיעים אותם בדחיסה לתוך הבצק

2. מרדדים לעלה מלבני 

3. מורחים שכבה דקה של ממרח תמרים

4. מפזרים מעט אבקת קינמון

5. מגלגלים לרולדה

6. מסמנים בחתכים דקים את גב הכרוכית

7. אופים ב 170 מעלות צלזיוס כ 20 דקות עד חצי שעה (עד שהרולדות זהובות)


<<englink [[Crust dough extras 2]]>>
[img[pictures/ctav-tnua.jpg]]

!!![[אירי]]:

[[זו|http://www.habama.co.il/Upload/MediaFiles/%D7%A0%D7%A2%D7%94%20%D7%90%D7%A9%D7%9B%D7%95%D7%9C%20%D7%91%D7%99%D7%92.bmp]] התמונה ממנה גורה ציירה את הציור, בו רואים את להקת "ריקודי חדר" של  [[נעה אשכול|https://he.wikipedia.org/wiki/%D7%A0%D7%95%D7%A2%D7%94_%D7%90%D7%A9%D7%9B%D7%95%D7%9C]], שהייתה למעשה אומנית חוקרת תנועה, ויצרה עם תלמידה [[אברהם וכמן|https://he.wikipedia.org/wiki/%D7%90%D7%91%D7%A8%D7%94%D7%9D_%D7%95%D7%9B%D7%9E%D7%9F]] את [[כתב התנועה אשכול- וכמן|https://he.wikipedia.org/wiki/%D7%9B%D7%AA%D7%91_%D7%94%D7%AA%D7%A0%D7%95%D7%A2%D7%94_%D7%90%D7%A9%D7%9B%D7%95%D7%9C-%D7%95%D7%9B%D7%9E%D7%9F]]. את  האטיודים שנובעים מהכתב מבצעים גם היום לקול מטרונום [[חברי הלהקה|https://www.youtube.com/watch?v=-C1tJdlXRRg]], שעבדו עימה לאורך שנים ארוכות בביתה בחולון, שם גם יצרה משאריות בדים [[שטיחי קיר|http://www.hetzroni.com/noa-rugs/noa_rugs.php]] מלאי כיוונים. הבית הלהקה והכתב [[ממשיכים|http://noaeshkol.org/]] ואני מעריצה את [[רחלי נול כהנא|https://www.youtube.com/watch?v=tTXTH4lOO-I]]



<<englink [[Eshkol-Wachman movement notation]]>>
[img[pictures/lo-hevremaniyot.jpg]]

!!![[אווה]]:

נשגב מבינתי איך [[סוניה]] תמיד מטופחת למשעי  כולל ציפורניים, תוך כדי שהיא אופה, מבשלת ובלבוסטה לעילא על בסיס יומי. יחד עם זה, גם היא, כמו [[ז'נבייב]] וכמוני, לא חברמנית. המקסימום שלנו זה [[גני לוקסמבורג|https://he.wikipedia.org/wiki/%D7%92%D7%A0%D7%99_%D7%9C%D7%95%D7%A7%D7%A1%D7%9E%D7%91%D7%95%D7%A8%D7%92]]. מעולם לא קפצנו משמחה לארגן ציידנית מלאה כל טוב לקראת יציאה לים, אנחנו לא מעוניינות לישון באוהל או בטבע, אנחנו לא אוהבות חול בסנדלים או לדלג על מקלחת. עשינו דברים כאלה בעבר, כשהילדים עוד היו קטנים, והיום אנו מיטיבות לכת בשביל חנויות האופנה, שבסופו בית קפה.



<<englink [[Non-hunky-dory]]>>
[img[pictures/unfinished.jpg]]

!!![[גורה]]:

בזמן האחרון יש ציורים שאני לא יודעת איך או אם להמשיך.
(ינואר 2024 מלא בתפילות להרבה ניסים כמו מה שקרה השבוע במערכת המשפט במדינת ישראל).

<<list-links filter:"[tag[לא מסוימים]]">>



<<englink [[Unfinished]]>>
[img[pictures/leonard-cohen.jpg]]


!!![[הצוות]]:

[[לאונרד כהן|https://he.wikipedia.org/wiki/%D7%9C%D7%90%D7%95%D7%A0%D7%A8%D7%93_%D7%9B%D7%94%D7%9F]] האגדי ז"ל לא היה צריך קורונה כדי לכתוב את [[השיר הזה|https://www.youtube.com/watch?v=9UzvVOy0Dq8]] ובתקווה שלא נשכח את תובנות הימים האלה.




Villanelle for Our Time


From bitter searching of the heart,
Quickened with passion and with pain
We rise to play a greater part.
This is the faith from which we start:
Men shall know commonwealth again
From bitter searching of the heart.
We loved the easy and the smart,
But now, with keener hand and brain,
We rise to play a greater part.
The lesser loyalties depart,
And neither race nor creed remain
From bitter searching of the heart.
Not steering by the venal chart
That tricked the mass for private gain,
We rise to play a greater part.
Reshaping narrow law and art
Whose symbols are the millions slain,
From bitter searching of the heart
We rise to play a greater part.




<<englink [[Leonard Cohen]]>>
[img[pictures/killing-eve.jpg]]

!!![[אירי וגורה]]:

[[כשאיב פלסטרי|https://www.imdb.com/name/nm0644897/?ref_=tt_cl_t1]] רוצה לתפוס את [[וילנל|https://www.imdb.com/name/nm3069650/?ref_=tt_cl_t2]], וילנל נותנת לה ולנו [[גוד טיים|https://www.youtube.com/watch?v=lSNSMTEMGmE]]. צחקנו, התרגשנו, ראינו את [[מרטין|https://www.imdb.com/name/nm0091035/?ref_=tt_cl_t4]] [[מהגשר|הגשר]], את [[קרולין מרטנס|https://www.imdb.com/name/nm0789716/?ref_=tt_cl_t3]],  וכמובן את כריסטיאנה [[מהאנטומיה של גריי|האנטומיה של גריי]]. היה [[כיף|https://www.imdb.com/title/tt7016936/]], ואנחנו מוסיפות ראיון רדיו מצולם נחמד עם [[סנדרה|https://www.youtube.com/watch?v=S0Fdo0mbFdE]]



<<englink [[Killing Eve]]>>
,,^^[img[pictures/sisterbotcoen-mordech.png]]
תודה ל[[Mordech@|https://tooot.im/@Mordech]] על [[לוגו התות|https://github.com/Toootim/Resources/blob/master/artwork/MordechBrown.png]]
^^,,

!!![[סטלין]]:

[[האחות ב. כהן|https://tooot.im/@sisterbotcoen]] היא השגרירה ה[[רובוטית|https://he.wikipedia.org/wiki/%D7%91%D7%95%D7%98]] של האחיות ברשת החברתית [[מסטודון|https://mekomit.co.il/%d7%9e%d7%a1%d7%98%d7%95%d7%93%d7%95%d7%9f/]]. היא מדווחת שם על [[חידושים|לקבל התראות על חידושים באתר]] באתר האחיות.

אם אתן כבר שם, תוכלו פשוט [[לעקוב|https://tooot.im/users/sisterbotcoen/remote_follow]] אחריה. אם לא, ובא לכן להכיר רשת שהיא "[[כמו טוויטר, רק בלי הנאצים|https://motherboard.vice.com/en_us/article/783akg/mastodon-is-like-twitter-without-nazis-so-why-are-we-not-using-it]]", תוכלו להצטרף לשרת העברי ''[[תווותים|https://tooot.im/about]]'' (בכלל, כדאי לקרוא את ה[[מדריך|https://github.com/Toootim/Resources/blob/master/info/welcome.md#%D7%91%D7%A8%D7%95%D7%9B%D7%95%D7%AA-%D7%94%D7%91%D7%90%D7%95%D7%AA-%D7%9C%D7%9E%D7%A1%D7%98%D7%95%D7%93%D7%95%D7%9F]] שם, שמסביר מה זה מסטודון ובמה הוא שונה מהרשתות החברתיות שהורגלנו אליהן).

יש גם [[אפליקציות לסלולרים|https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md#list-of-apps]].
[img[pictures/lotus.jpg]]

!!![[תומר]]:

באלנבי 101 שכנה  [[לוטוס פנינת הספרים ז"ל|https://book-store-1586.business.site/]]. שהייתה שייכת למשפחה שאוהבת לקרוא. כמה קשה היה ביום ההוא בתחילת יולי, כשהלכתי באלנבי וראיתי שלוטוס נסגרה. אני עדיין צובט את עצמי בכל פעם שאני עובר שם ומבין שזו בלהה מן המציאות.



<<englink [[Lotus books]]>>
[img[pictures/dag-matconim.jpg]]

!!![[יויו]]:

קונים חתיכה יפה של דג לוקוס טרי ביום ההכנה.

מכינים רוטב מכוס שמן זית, שני חופנים או שלושה של עשבי תיבול קצוצים, שתי שיני שום קצוצות או כתושות.

מורחים היטב את הכמות כולה ובצורה אחידה מסביב לדג כולו, ומניחים אותו בתבנית מרופדת בנייר אלומיניום פתוח כך שאפשר יהיה לעטוף אותו למשך האפייה.

פותחים חתכים עם סכין בגב הדג, מפזרים מעל הדג מלח ים גס ופלפל שחור גרוס, עוטפים בנייר האלומינום, ואופים בתנור שחומם מראש ל-180 מעלות צלזיוס עשרים- עשרים וחמש דקות.




<<englink [[Locus in the oven]]>>
[img[pictures/lauryn-hill.jpg]]

!!![[גורה]]:

''[[לורין|http://www.imdb.com/name/nm0005012/]] היא [[מוש|https://www.youtube.com/watch?v=T6QKqFPRZSA]].''

<<englink [[Lauryn Hill]]>>
[img[pictures/lazania.jpg]]

!!![[רוז'ה]]:



תבנית בגודל 20X30 ס"מ

מרכיבי הלזניה:

*500 גרם דפי לזניה טריים או יבשים
*50 גרם חמאה
*1/2 בצל לבן, קצוץ דק
* ק"ג עלי תרד, שטופים ונקיים מגבעולים
* בטטה בינונית
* 2 כפות יין לבן 
* רבע כפית גרד אגוז מוסקט
* 2 כדורי מוצרלה גדולים  פרוסים דק
* כוס גבינת פרמזן מגוררת
* מלח גס
* פלפל שחור גורס.

לרוטב הבשמל:

*100  גרם חמאה
* חצי כוס קמח
*  ליטר חלב - או 1/2 ליטר חלב ו-1/2 ליטר שמנת, 
* מעט אגוז מוסקט מגורר
* חצי כוס גבינת פרמז'ן מגוררת

הכנת הבשמל:

1. ממיסים את החמאה בסיר. מוסיפים את הקמח ומטגנים כמה דקות על אש בינונית, תוך ערבוב מתמיד במטרפה או בכף עץ, עד שהתערובת מזהיבה. נזהרים ושומרים שהחמאה לא תשרף ושלא ייוצרו גושים.

2.  מנמיכים את הלהבה, ומוסיפים את החלב/שמנת בזרם דק, תוך בחישה מתמדת, ומוסיפים גם את אגוז המוסקט.

3. ממשיכים לבשל תוך בחישה, עד שהרוטב מסמיך ומתחיל לבעבע. מסירים מהאש, ומוסיפים את הפרמז'ן.


הרכבת הלזניה:  

1. מחממים את התנור ל-180 מעלות.

2. קולפים את הבטטה ופורסים אותה לפרוסות דקות וקולים אותה על מחבת ברזל או בתנור עד שמתרככת

3. מחממים בסיר את החמאה. מוסיפים את הבצל ומאדים אותו עד שהוא הופך לשקוף. מוספים את התרד, היין הלבן, מעט מלח, פלפל שחור ואגוז מוסקט, ומטגנים במשך כ-2 דקות תוך ערבוב, עד שהתרד מאבד מנפחו, ומסננים
    

4. מורחים שכבה אחידה של בשמל בתחתית התבנית (כדי שהלזניה לא תידבק), ומניחים עליה שכבה של דפי לזניה.
    
5. מורחים את הדפים בבשמל. מפזרים עליהם מחצית מכמות התרד המאודה, לאחר מכן מחצית מפרוסות המוצרלה ולבסוף שליש מכמות הפרמזן המגורר.
    
6. את השכבה הבאה עושים עם בטטה ועליה בשמל, מוצרלה ופרמז'ן

7. מסיימים בשכבה שלישית של דפי לזניה עם תרד
8. ם שכבת עלים אחרונה, מעליה מורחים את יתרת הבשמל ומפזרים את יתרת הפרמזן
    
9. אופים במשך כ-40 דקות, עד שהלזניה משחימה

10. מקררים כעשרים דקות, חותכים ומגישים



<<englink [[Vegetarian lasagne]]>>
[img[pictures/lechem.jpg]]


!!![[יויו]]:


אני בנאדם של לחם, לא מתחייב לסוג. פיתה, בגט, מלא, שום, ג'בטה, פוקצ'ה, פריקסה, גרעינים, לחמניות, רכות, פרנץ' טוסט, בריוש, לטבול בעגבניה, או עם חמאה וריבה, או שוקולד, au raisin. הקטע הבא הוא קטע מספר נפלא:



//"זה הלחם שלך, גברת מק'גיל?" שאל. //

//"כן", אמרתי, "חישבתי אתמול שאפיתי יותר מארבע מאות כיכרות בשנה בחמש עשרה השנים האחרונות. זה יותר מששת אלפים כיכרות לחם. אפשר לכתוב על המצבה שלי."//


//"אמנות אפיית הלחם היא מיסתורין נשגב כמו אמנות יצירת הסונטות," אמר אדום הזקן, "והלחמניות החמות שלך - אפשר לראות בהן שירים ליריים קצרים, אולי טריולטים. זו חתיכת אנתולוגיה, או מזמור, אם את מעדיפה."// 


([[פרנסוס על גלגלים|https://he.wikipedia.org/wiki/%D7%A4%D7%A8%D7%A0%D7%A1%D7%95%D7%A1_%D7%A2%D7%9C_%D7%92%D7%9C%D7%92%D7%9C%D7%99%D7%9D]]/ כריסטופר מורלי, עמודים 75-76, בתרגום יהונתן דיין, הוצאת זיקית  2012)



<<list-links filter:"[tag[לחם]]">>





<<englink [[Bread]]>>







[img[pictures/lechem-tushiya.jpg]]

!!![[תומר]]:

אם אני הולך לקניות בשעות אחר הצהריים אז זה עם [[ננו המתוקה|ננו שלי ואני]], ואנחנו חייבים לעצור [[בשינקין 53|https://easy.co.il/page/22641812]], ולקנות לחמניה רכה ומתוקה לגרגרנית הקטנה, שאוהבת את הלחמניה וגם את החיוך שמקבל את פניה. גם אני אוהב את את החיוכים הטובים, ואת הלחמים הרכים והעדינים. לרוב אני קונה לחם חמניות או את לחם הכוסמין שיבולת שועל, ואפשר גם לקחת חצי כיכר!



<<englink [[lechem-tushia Sheinkin]]>>
[img[pictures/breads.jpg]]

!!![[תומר]]:

[[לחמים|http://www.lehamim.co.il/]] זה אימפריה, אבל זה גם בית. העובדים הנפלאים שאני כל כך אוהב. ברוב הבקרים אני שותה שם קפה עם דניש צימוקים. אם בא לי לאכול אני לרוב מזמין סנדביץ' סלט ביצים בלחם דגנים מלא בלי עגבניה. בשישי אני קונה שם חלה וחלת בריוש לפעמים. בחגים חלת מרציפן שזה משהו שעד שאני לא מחסל אותו אני לא נרגע. אבל גם מקלות גבינה, ומקל בריאות ולחמניית מוזלי, ומאפה תרד, וטארט פירות. אוי זה אי אפשר.


<<englink [[Lehamim]]>>
[img[pictures/lehamim-bacorona.jpg]]


!!![[תומר]]:

בכל פעם שאני יורד למטה למשולש הקרוב בימים האלה, לבי מחסיר פעימה. [[הרחובות כמעט ריקים|https://www.youtube.com/watch?v=J6YLzuhIpSE]], אנשים עם מסכות וכפפות הולכים מהר וממעטים להסתכל לך בעיניים. אני זקוק לקשר הזה. אני ממשיך ורואה את הדלת המוגפת של [[בלינדה]], נזכר בה ומתגעגע. עוד כמה פסיעות ואני בתור של [[לחמים]], שם עיניים מוכרות מאירות אלי. אני רוצה לצלם כדי לשלוח תמונה [[לגורה|גורה]] שתצייר, ומקבל המלצה להיכנס פנימה ולצלם את אזור בית הקפה, שהפך לבית אריזה מוקפד. מצלם אותו, שולח, מבקש מעובדי הדלפק, כי עכשיו אסור לקחת לבד, קינמונים וגביניות ולחמניות עם שומשום, משלם דרך הכפפות, לא יודע מה זה אומר לגבי נקיון כרטיס האשראי והארנק אליו הוא נכנס, ויוצא אל הרחוב הקר שוב.




<<englink [[Lehamim and corona]]>>
[img[pictures/lifestyle.jpg]]

''זה משו''

[[שווה כריתה|כורתים עצים]] [[ופוסט|מחלקים סלולרים]].



<<englink [[Lifestyle]]>>

[img[pictures/HqWn77LXEeMsLQ5x.JPG]]

!!![[גורה]]:
בלילה ההוא גמלה בלבי ההחלטה להפסיק באחת מלהתנהג, כאחרונת הבנות הטרחניות, ולשנות [[לייף סטייל]].

באחר הצהריים של אותו יום אלפרד ויויו חזרו מהולנד עם פטריות חייתיות, וכמות מסחרית של סוכריות גומי לשימוש עצמי.

בסביבות עשר לקחנו: [[יויו]], [[אלפרד]], [[אירי]], [[קואנג]], [[צ'נג]] ו[[אני|גורה]], דגימה מהסוג החום כהה, ובקצב הליכי ניסינו את כל 12 הגוונים שהיו.

באזור חצות הגוף שלי הגיע לגובה של חצי מטר באוויר וראשי שקע עמוק באדמה כמו ברווז עלוב, ומכאן עברו עלי שעות  משנות חיים. פספסתי אומנם את הרגע המכונן בו הבנים נזכרו ב "[[זהבה ושלושת הדובים|https://he.wikipedia.org/wiki/%D7%96%D7%94%D7%91%D7%94_%D7%95%D7%A9%D7%9C%D7%95%D7%A9%D7%AA_%D7%94%D7%93%D7%95%D7%91%D7%99%D7%9D]]", אחרי שצ'נג צילם את הבייבי [[בובת אננס ההוואית של אירי|בית האננס ההוואי של אירי]]  (אירי ממשיכה לחפש את הבייבי אננס שנעלם בלילה הזה), מונחת מוקשתת גו על גוויה מבותרת של דובון גומי. בהשראת אגדת הילדים צ'נג המשיך לצלם ויויו כתב ואני המשכתי כמנהגי לנהוג.

וזו התמונה שמככבת באתר [[דובונאז' אלסטיק|http://coensisters.org/doobonage.html]].




<<englink [[Bearage night]]>>
[img[pictures/lel-haseder-ezel-aba.jpg]]

אלפרד נשאר לשמור על הבית. אנג'ליק, אירי, גורה ואני נסענו לשמח את ההורים. נהננו מהאביב היפה והרוח הנעימה. אבא בנה  צריף מאד יפה בחצר. כל המשפחה הגיעה כולל שני בניה של תרצה. היה הרבה מאד אוכל וללא ספק אפשר להגיד שכמות הטבעוניים הולכת וגדולה מה שגרם לתרצה להכין [[כמולונז]] אותו אימצנו.


<<englink [[Passover Seder at Dad's and Tirza's]]>>
[img[pictures/layla-kan.jpg]]

!!![[תומר]]:

החלה רוח שורקת אלף מנגינות

חצר פניה מליטה, עוצרת את נשימתה

כי בא אורח.

הסהר מעגל את פיו

במן חיוך כל כך חביב

ומסתרק

- "אתה קירח"

אומר הלילה וצוחק.


[[הלילה הזה|https://www.youtube.com/watch?v=cG_chE9vWnE]],

שום סימן הוא לא נותן.

הוא מעוור, הוא מכוון

את התנועה בשלל גחליליות.

הוא מספר מעשיות

והוא חושב שילדים מאמינים לזה,

מן לילה שכזה,

כזה. 

[[שלום חנוך]]



<<englink [[A December`s night]]>>
[img[pictures/lily.jpg]]



//סיפור בהמשכים//

ביום הולדת שש שלי יצאתי מבית הורי [[ויותר לא חזרתי|https://www.youtube.com/watch?v=caPNrh82AvY]].

<<list-links filter:"[tag[לילי]]">>



<<englink [[Lily]]>>

[img[pictures/lily-1.jpg]]

זה היה ב 21.12.2017

יצאתי כמידי יום, לבושה ומצוידת ליום לימודים. המטפלת החדשה מלווה אותי. נכנסתי לחצר בית הספר, חיכיתי קצת, חזרתי לחצר הורי, ואספתי מהמחסן את התיק שהכנתי יום קודם.


<<englink [[Lily 01]]>>
[img[pictures/lily-2.jpg]]

בתיק היו לי: 5 חטיפי אנרגיה, בקבוק מים, 2 חולצות ארוכות וחמות, 2 זוגות תחתונים, זוג מכנסי טרנינג, כלי רחצה, והרבה שטרות כסף שלקחתי ממכנסיו של אבי. הדרכון כבר היה עלי.


<<englink [[Lily 02]]>>
[img[pictures/lily-3.jpg]]

כל ארבעת הכיסים של המכנסיים של אבא שלי היו תמיד תפוחים מחבילות של שטרות כסף בצבעים שונים, ותמיד הוא היה תולה אותם בכניסה לחדר האמבטיה.



<<englink [[Lily 03]]>>
[img[pictures/lily-4.jpg]]

את התכנית לברוח תכננתי במשך כשישה חודשים.



<<englink [[Lily 04]]>>
[img[pictures/lily-5.jpg]]

את הרעיון קיבלתי מתכנית שראיתי יום אחד בטלוויזיה עם סבתי.



<<englink [[Lily 05]]>>
[img[pictures/lily-6.jpg]]

בהתחלה קראתי מידע שיכול לעזור לי, עברתי על פני מקומות בעולם עד שהחלטתי שאחפש לי אימא בפריז, איסלנד או מכסיקו.



<<englink [[Lily 06]]>>
[img[pictures/lily-7.jpg]]


את הטיסה קבעתי לשעות הבוקר, כך שבשעה בה אני אמורה לסיים את הלימודים כבר אהיה עם אדל. קבעתי עם נהג מונית אתו הסתמסתי כמה ימים קודם – בשם אמי, שבשמה גם כתבתי פתק שנועד לו ופתק אותו ייתן הנהג [[לנטע|נטע]].


<<englink [[Lily 07]]>>
[img[pictures/lily-8.jpg]]
בשדה התעופה פגשנו את [[נטע]], אישה נחמדה, שהכרתי דרך אתר להורים שמחפשים מלווה טיסות לילדים. גם לה כתבתי בשם הורי העסוקים. נהג המונית נתן לה את הפתק בו היה כתוב:

נטע שלום רב,
לא הספקנו להמיר כסף, נודה לך אם תוכלי לעשות זאת עבורנו
וכן מודים לך על הכל, נסיעה טובה. אנו בטוחים כי תמצאי את לילי שלנו ילדה אחראית ונוחה. 




<<englink [[Lily 08]]>>
[img[pictures/lily-9.jpg]]


כשהייתי בת ארבע ידעתי קרוא וכתוב, ובגיל חמש ידעתי לכתוב בכתב יד שנראה כשל אדם בוגר.





<<englink [[Lily 09]]>>
[img[pictures/lily-10.jpg]]

במציאות [[נטע]] הייתה יפה ונעימה אפילו יותר מאשר בתמונות.


<<englink [[Lily 10]]>>

[img[pictures/lily-11.jpg]]

הטיסה עברה בקלות.


<<englink [[Lily 11]]>>
[img[pictures/lily-12.jpg]]

בשדה התעופה באיסלנד חיכתה לי אדל – אותה בחרתי להיות לי לאם מאמצת, דרך סוכנות בינלאומית לאימוץ בינאישי. הכל בה מצא חן בעיני ובנוסף היה לה חתול.


<<englink [[Lily 12]]>>
[img[pictures/lily-13.jpg]]

שתינו קפה עם נטע שחיכתה לטיסה לפריז, שם התארחה כמה ימים אצל [[חבר ילדות|יויו]]. משם היא נסעה להודו. אנחנו נסענו הבייתה.


<<englink [[Lily 13]]>>

[img[pictures/lily-14.jpg]]

אדל תומפסון היא אישה מקסימה ונפלאה. היא קרמיקאית, והיא מכינה כלים מאד יפים ונעימים למגע ולאכילה.




<<englink [[Lily 14]]>>
[img[pictures/lily-15.jpg]]

שבועיים אחרי הגיעו הורי הביולוגים לאיסלנד זועמים על אדל. סוקי החתול שלנו היה בהיכון על הפסנתר כשעצרתי אותם, ביקשתי מהם לשבת על הספה בסלון ביתנו, ואמרתי להם שכתוב [[באמנת זכויות הילד|https://he.wikipedia.org/wiki/%D7%90%D7%9E%D7%A0%D7%AA_%D7%96%D7%9B%D7%95%D7%99%D7%95%D7%AA_%D7%94%D7%99%D7%9C%D7%93]] שעליהם להקשיב לחוות דעתי.




<<englink [[Lily 15]]>>
[img[pictures/lily-16.jpg]]

הם ישבו והקשיבו:

כשהייתי בת ארבע והתחלתי לקרוא, הבנתי שישנם אנשים בעולם הזה שמאד רוצים ילדים אך מסיבות טכניות אין להם. לעומתכם, שטכנית לא הייתה לכם כל בעיה וכך גם גידלתם אותי. אני מתוחזקת ומתופעלת לעילא בביתכם, עם מיטב המטפלות והמבשלות ותודה לכם על ההשכלה הרחבה. אך לאחר שגיליתי שמימי עומדת לעזוב – מסיבות טכניות כמובן – עם בעלה שקיבל עבודה חדשה במקום מרוחק, הבנתי שמספיק. לא בא לי יותר. לא רוצה. אני ילדה שרוצה אהבה ושמחת חיים ושהוריה יראו אותה. כך בעזרת הטכנלוגיה והאינטואיציה חיפשתי ומצאתי את אדל שהיא אומנם - טכנית, לא הביאה אותי לעולם הזה, אך רגשית נפשית פיזית היא כל כולה שלי ואני שלה ואין כל סיכוי שאני חוזרת אליכם, פשוט לא. 



<<englink [[Lily 16]]>>
[img[pictures/lily-17.jpg]]


סיימתי את דברי. הם ביקשו לדבר רגע בצד. הם חזרו, הביטו בי ואמרו לי שהם נותנים לי להישאר אצל אדל ושהם צריכים לחשוב על זה. פתאום ריחמתי עליהם אך לא חזרתי בי. חיבקתי אותם והבטחתי להיות בקשר. אדל אמרה להם שהם תמיד מוזמנים לבקר. הם יצאו, והכנו שוקו.

סוף

[img[pictures/lily-17-1.jpg]]






<<englink [[Lily 17]]>>
[img[pictures/lilyourtemple.jpg]]

[[לילי]]:

אל הבית הזה עברנו, אימא ואני, בינואר האחרון, ינואר 2024.
זה בית שאימא קנתה, ועיצבנו אותו יחד.
סוקי מאד אוהב אותו גם.

<<englink [[Lily- our temple]]>>
[img[pictures/lemons.jpg]]

!!![[גורה]]:

אנא, אל תסחטו את כולי!

אמר הלימון

לא רוצה להיות לימונדה, יש סוכר בחמיצות שלי , כמו השמחה בעצב של [ואן-גוך, ואני לא רוצה כל כך מהר לא להיות, רוצה לחיות, רוצה לחיות

(ציור של [[ואן גוך|וינסנט ואן-גוך]], שציירתי אחרי שצפיתי בסרט היפה [[ואן גוך: בשערי הנצח|https://www.imdb.com/title/tt6938828/]])



<<englink [[Lemons]]>>
[img[pictures/to-everything-there.jpg]]

!!![[אימא של ג'אזז]]:

הצעות, רעיונות והוראות חמורות, הנוגעות לשמירה על ביתנו וחיינו ראויים ונאותים, כי סדר חייב להיות. ועם המון אהבה כמובן.


<<list-links filter:"[tag[לכל מקום, ומתלה לכל חפץ תחת גג הבית]]">>

<<englink [[To everything there is a place]]>>
[img[pictures/lema-hadavar-dome.jpg]]

!!![[הצוות]]:

יצר האדם קורניבורי מנעוריו. הוא אומנם גילה את האש והסכין, וניביו התקצרו, אך הוא סבל מצנע. הוא עשה עצמו מתעשת, והחליט לרחם על חיות הבר והבית, לפחות חלקים ממנו.

ומה עם העצים? לא כואב להם? והעגבניות? אין להן דם? או לב? או עגבות?

בגעגועיו חלם על [[תחליפים|https://www.youtube.com/watch?v=o8VObwbShjg]]: כמולונז, כמו שניצל, כמונלוני, צ'ילי כמו קארנה, חצילים בטעם כבד, קישואים בטעם כבד, המבורגר פטריות...

ולפטריות? לא כואב?


<<list-links filter:"[tag[למה הדבר דומה]]">>



<<englink [[what does a thing assemble]]>>
[img[pictures/downthere.jpg]]

!!![[תומר]]:

[[שם יש ים|https://www.youtube.com/watch?v=kU6AGgWJo2M]], ונורא כדאי להתלבש יפה כי יש מצלמה לכל זוית.

<<englink [[Down there]]>>
[img[pictures/atthebakery.jpg]]

[[אימא של ג'אזז]]:

המאפייה הייתה, למשל, יכולה להיות די והותר סיפורים לכמה עונות של [[סידרת|סדרות]] דרמה הכי כייפית ונוגעת ללב כאחד. היא אפילו יכלה להיות סידרה מעולה אם הייתה נכתבת ומבויימת ומצולמת וערוכה היטב והיה לה גם פס קול נהדר וצוות שחקנים נפלא.

[[אחרי ש|המעבדה]]כבר לא הייתה לי יותר מאפייה, כתבתי טקסט ארוך למדי שקראתי לו "למשל במאפייה", זה היה ב-2002, בתקופה בה גם החלטתי שאני [[אווה כהן|אווה]], קונדיטורית הונגריה ואחותם של [[איתן וג'ואל כהן]], (ממש כמו [[יויו]]). 
הטקסט היה למעשה סוג של התחלת מחשבותיי על טקסט [[וויקי|https://en.wikipedia.org/wiki/Wiki]] והיו מסומנים בו שמות של מקומות, אנשים, מתכונים ועוד, במטרה שייפתחו עוד ועוד עולמות, כמו [[שכאן|האחיות כהן]].

רציתי לספר על כל עובדת, על השולחנות, על הקשרים והתופעות. הטקסט הזה הלך לאיבוד עם הארד דיסק שנדפק לפני כמה שנים, אני לא מתכוונת בשלב הזה לנסות ולשחזר אותו, אך אני כן מצהירה בזאת, ספטמבר 2022 סוף ה'תשפ"ב, שאני רוצה להתחיל ולהיזכר במאפייה הקסומה שהייתה לי ושתמיד היא זיכרון מתוק.




<<list-links filter:"[tag[למשל במאפייה]]">>





<<englink [[At the bakery for instance]]>>
[img[pictures/KLL6V2vFdC26B5R4.jpg]]

!!![[ז'נבייב]]:

אני לא כל-כך מוצלחת בחבושים. בילדותי הייתה לנו שכנה שהכינה קומפוט חבושים וריבת חבושים באופן טעים במיוחד שאינני מצליחה לשחזר.

ניסיתי מספר פעמים לפני כמה שנים. 






[img[pictures/lezayer.jpg]]

!!![[גורה]]:

גם עלי [[קרל אובה|קרל אובה קנאוסגורד]] משפיע. יש רגעים בהם המילים שלו ממש מציירות. הוא מספר על החיים ואגב כך, בין השאר, על ציירים, ציורים, מראות, נוף. הוא מתאר בסבלנות ובקול ברור כל דבר ודבר. גם אני שואפת להחשב [[כותבת|מחפשת את אירי]], אבל עכשיו: אני כותבת אך גם מציירת על דפי בריסטול בגודל A4, ומשתמשת בעפרונות שמן צבעוניים. אני מציירת לאתר בלבד, ואם אין לי מה לצייר אני מוצאת. אני מחליטה מה אצייר, לפעמים אני אוספת כמה צילומים שצילמתי או צילומים ממנועי חיפוש, ומחברת אותם לתמונה אחת, ראש מפה, חדר משם. אחרי שאני מסיימת עם העפרון אני צובעת - שזה הדבר המהנה ביותר עבורי. עוד צבע ועוד צבע. צבעים תמיד היפנטו אותי כמו צלילים, וכשהם יחדיו אז הם כמו מוסיקה - מרוממים. זה לא שקל לי לצייר, זה גם לא שאני סובלת - אבל יש רגעים שהראש מתעוות לי מבפנים מרוב מאמץ, והתוצאה רחוקה מלהיות  זו שתכננתי או דמיינתי, ועדיין זה הדבר שאני הכי רוצה לעשות. 

<<englink [[To draw]]>>
[img[pictures/anarchist-grafitti.jpg]]

!!![[סטלין]]:

אם תרצו לצייר גרפיטי על הקיר של [[מיצפרש]], תוכלו לעשות את זה [[כאן|https://cryptpad.fr/whiteboard/#/1/edit/w+KFEtUWmazyzYBR68Td5Q/+GYPGqAu9ea00RYoypZP-74J/]]. בלילות אנחנו שולחות לשם רובוט מחופש לילדה שמעדכן את הקיר לפי מה שציירתן באותו יום. זו התשובה הגלאמית לשירות פקס לכותל.
[img[pictures/rko.jpg]]

!!![[סטלין]]:

האתר הזה מפרסם התראות בפורמט [[רסס|https://he.wikipedia.org/wiki/RSS]]
<small> 
(שהפסיק כנראה להיות פופולרי במסגרת מאמצים להכחדת מורשתו של [[ארון שוורץ|https://he.wikipedia.org/wiki/%D7%90%D7%A8%D7%95%D7%9F_%D7%A9%D7%95%D7%95%D7%A8%D7%A5]] זצ"ל, וסליחה שאני זקן ומריר)
</small>
''[[כאן|http://coensisters.org/rss.xml]]''.

!!!''קבלת התראות באנדרואיד''

מתקינים [[fNotifier|https://play.google.com/store /apps/details?id=org.indywidualni.fnotifier]] ומריצים.

# בוחרים `Settings`
# בוחרים `Notifications feed`
# כותבים שם `http://coensisters.org/rss.xml`
[img[pictures/fnotifier.gif]]

!!!''קבלת התראות באייפונים וכאלה''

[[ספרו לנו|https://github.com/tamaroty/coen-sisters/issues]] אם אתן יודעות איך 😉
@@.ltr
[img[https://c1.staticflickr.com/1/188/385649535_51afbc4caf_o_d.jpg]]
<small>
[[Photo|https://www.flickr.com/photos/cat-sidh/385649535/]] ([[CC|https://creativecommons.org/licenses/by-nc-nd/2.0/]])
[[Shelly|https://www.flickr.com/photos/cat-sidh/]].
</small>
@@

!!![[סטלין]]:

כשספרים הפסיקו להיות מנייר, איבדנו את הזכות לקשקש עליהם הערות (במתכונים, למשל, זה ממש שימושי).
כמו שאולי שמתם לב, באתר הזה (שהוא מסוג [[TiddlyWiki|http://tiddlywiki.com/]]), יש אפשרות לערוך כל דבר בלחיצה על כפתור העיפרון
[img[pictures/button-edit.png]].

זה לא אומר ששיניתם משהו ב"מכונת הדפוס". אתם רק "מקשקשים" על ה"ספר" שלכם.

כדי לשמור את הגירסה הפרטית שלכם, פשוט לוחצים על כפתור השמירה
[img[pictures/button-save.png]]
(הוא הופך לאדום עם שיניתם משהו),
ומקבלים קובץ (בגודל כמה מגה בייט בודדים) שמכיל את כל האתר הזה (לא כולל תמונות, אבל לא תרגישו בהבדל כל זמן שיש לכם חיבור אינטרנט).
שומרים את הקובץ אצלכם על הדיסק, והרי לכם גירסה משלכם של האתר. אפשר לפתוח אותו בדפדפן, וזה //כמו אמיתי™//.

''האם מותר לכם לפרסם את הגירסה החדשה שלכם ברשת?''
כן, במסגרת תנאי הרשיון (לפרטים, לחצו על ה<img alt="Creative Commons License" style="width:44px; border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"> בצד ימין למטה)
[img[pictures/meinkampf.jpg]]

!!![[יויו]]:

אני קורא עכשיו את החלק השני של החלק השישי של "מאבקי", שכתב [[קרל אובה קנאוסגורד]]. זה משפיע עלי. עדיין קורא. [[גורה]] כבר קראה.


<<englink [[Mein Kampf]]>>
[img[pictures/0bBcnTVPP0ggEKv3.jpg]]


!!![[יויו]]:

''לוקח לי אחר הצהריים חיובי נוסע לנמל''

''
לעצמי אני אומר בדרך שגם מזה עוד נצטרך להיגמל''

''
עצמי עונה לי בהגיענו אז נתחיל כל יום להתעמל ''

כלומר:

[[טרמינל לומינטל|https://www.youtube.com/watch?v=GME1UyUpMPU]].

כלומר:

[[מאיר אריאל  זצ"ל|https://he.wikipedia.org/wiki/%D7%9E%D7%90%D7%99%D7%A8_%D7%90%D7%A8%D7%99%D7%90%D7%9C]], 


<<englink [[Meir Ariel]]>>
[img[pictures/shalom-batooki.jpg]]

!!!''<<tag "בחוות החיות">>, מאכילים את המצפון קלוריות ריקות.

<<englink [[They feed the conscience]]>>
[img[pictures/malo.jpg]]


הגעתי למאלו בעקבות סיפור שסבת סבתי סיפרה לי על סב סבתה, ששמו היה מאלו.




<<list-links filter:"[tag[מאלו]]">>




<<englink [[Malo]]>>

[img[pictures/mantaray.jpg]]

!!![[אווה]]:

באודות [[שבאתר|http://mantaray.co.il/]] המסעדה כתוב:

//מאנטה ריי היא מסעדת חופים אמיתית, כמה צעדים מגלי הים אנחנו מציעים מטבח ים-תיכוני יצירתי- מאזטים משובחים, דגים ופירות ים מצוינים, עשויים באהבה ובתשוקה רבה.. //   ורצוי להוסיף - מאנטה ריי היא מסעדה עם [[אימא כמו שצריך|https://www.rest.co.il/magazine/article/16206/]].

אני בביקור [[אצל אבא|אבינו]] עכשיו, ולפני כמה ימים [[תומר]] הפתיע  אותי והלכנו לארוחת בוקר כאן על הים, מקום בו לא ביקרתי מזמן. אכלתי מר קראנצ'י ושתיתי מיצפיגוז, והיה פיגוזי כל כך, עד שיומיים אחר כך הלכנו שוב, הפעם בשעת בין הערביים, ישבנו על המרפסת, אכלנו מאזטים עם לחם בלקאני, ושתינו מרגריטות קפואות. היה הרבה יותר טוב מטוב  וממה שכתוב באודות שבאתר.

הכי גררררררררר שיש


<<englink [[Manta Ray]]>>
[img[pictures/mangold-tofu.jpg]]

!!![[הצוות]]:

החומרים לבצק:

*2 כוסות קמח
*1 כוס מים חמים
*1/2 כוס שמן זית
*קורט מלח ים גס

החומרים למלית:

*1/2 כוס שמן זית
*בצל בינוני קצוץ
*שן שום קצוצה
*חבילת עלי מנגולד שטופים וחתוכים לרצועות 
*זוקיני מגורר גס
*300 גרם טופו מגורר גס 
*מלח ים גס
*פלפל שחור גרוס
*קורט-שניים אגוז מוסקט
*שליש כוס רוטב טריאקי

לציפוי:

*חופן גרעיני דלעת
*זילוף שמן זית
*1 כף מלח ים גס

לצד המאפה:

*טחינה גולמית
*שמן זית
*מלח גס

אופן ההכנה:


1. בעזרת כף, מערבבים את הקמח, המלח, ואת שמן הזית.

2. מוסיפים את המים החמים וממשיכים לערבב עד שמתקבל בצק חלק.

3. נותנים לבצק להתקרר מעט (עד שכבר אפשר לגעת בו בלי לחטוף כוויה) וממשיכים ללוש את הכדור הרך. מקררים עוד קצת, ומניחים במקרר.

4. מכינים את המלית:

במחבט ברזל עם מעט משמן הזית, (את השמן שנשאר מוסיפים עם שאר התבלינים), צולים על להבה בינונית לפי הסדר, את השום והבצל עד שנהיים שקופים זהובים, את הזוקיני עד שמבהיר, עלי המנגולד עד שהמתרככים, והטופו. לאורך כל הצלייה מערבבים בקלות בעזרת כפות עץ מהחוץ פנימה. מוסיפים את התבלינים וממשיכים בצלייה על אש נמוכה. טועמים - אם צריך מתקנים את התיבול, ומסירים מהלהבה.

5. מחממים את התנור לחום בינוני נמוך, ומכינים את תבנית התנור מרופדת בנייר פרגמנט (אם מלחלחים את התבנית במעט מים ומצמידים את הנייר זה עוזר)

6. מקמחים משטח עבודה, מוציאים את הבצק מהמקרר ומחלקים אותו לשני עיגולים שווים

7. מרדדים מכל אחד מהם מלבן בגדול של  25ס"מ על 35ס"מ פחות או יותר, לאורך מרכז כל אחד מהם, מניחים חצי מכמות המלית.

8. עוטפים עם שני צידי הבצק אחד מעל השני - מניחים את הצד הימני על פני המלוי (שמאלה), ואת העלה השמאלי ימינה על פני הבצק. את החלק העליון מקפלים לאחור וגם את התחתון, ומניחים בתבנית

9. בעזרת סכין חלקה וחדה חורצים בעדינות חריצים לרוחב המאפים, מזלפים שמן זית, מפזרים את גרעיני הדלעת ואת המלח הגס, ואופים 40-50 דקות - עד שהבצק שחום.

10. להגשה אפשר להכין קערה עם טחינה גולמית לתוכה מוזגים מעט שמן זית ומלח גס, אליהם אפשר גם להוסיף עגבניה סחוטה, עירית קצוצה וכד'




<<englink [[Mangold and tofu pastry]]>>
[img[pictures/mejadra-matconim.jpg]]

!!![[גורה]]:

1. מבשלים כוס עדשים חומות מכוסות במים כעשרים דקות.

2. מכינים אורז לבן: בסיר בינוני מטגנים קלות את האורז בכף אחת של שמן, מוסיפים שתי כוסות מים חמים ומעט מלח ים גס, מערבבים בקלות, מכסים במכסה, ומבשלים על אש קטנה כרבע שעה.

3. בזמן שהאורז והעדשים מתבשלים, מטגנים בצל-שניים לפי הטעם, פרוסים לרצועות דקות, עד להזהבה-השחמה.

4. מסננים את העדשים, מערבבים אותם לתוך האורז, ממליחים לפי הטעם, ומפזרים מעל את הבצל המטוגן.



<<englink [[Majadra]]>>
[img[pictures/magavot-mitbach.jpg]]

!!![[אווה|אווה כהן]]:

למזלי הרב [[אבי|אבינו]] סחב איתו כל הדרך מהנחלה את קופסת העץ הזאת - אותה הכין סבי [[לאימי|חנה אמנו]] לפני שנים רבות. היא עומדת על המיקרו ובתוכה ערימת מגבות מטבח שעולה ויורדת כל הזמן. מגבות המטבח הן חברות.


<<englink [[Kitchen towels]]>>
[img[pictures/migdal-bavel.jpg]]

!!![[אירי]]:

כולנו בני נח שהתפשטו על פני כדור הארץ עד לעצם היום הזה, ולשונות רבות ושונות לנו, אך גם אחת משותפת - גלובלית ממוקססת - זו שמדברים בה במרשתת, והיא מחברת בין כולנו. לא הייתי רוצה שניתן שוב לשמרנים שביננו, אלה שהאחר מבעית אותם, אלה שחוששים מהצבעוני, מהאקספרסיבי, מהחושב, מהמורד, מהדעתן - להפחיד אותנו שוב ולהכניסנו למחשכי הגזענות והרודנות - כי לא! לא נשב ונבכה על הנהרות, ולא נסכים לרעיון שבורא שלנו הטוב, מאמין בהפרד ומשול.


<<englink [[Tower of Babylon]]>>
[img[pictures/ruthsgarden.jpg]]

!!![[אימא של ג'אזז]]:

לכבוד שנת 2021 שהחלה אך אתמול זר של בריאות מהגינה של הרות.

<<englink [[Ruth's garden]]>>
[img[pictures/meadow-soprano.jpg]]

!!![[אנג'ליק]]:

[[מדו סופרנו|http://www.imdb.com/name/nm0797464/]] המתוקה, היפה, הילדה הטובה, הרגישה, האיכפתית. חתכו את הסידרה בזמן, אחרת, מסכנה, הייתה צריכה להתמודד עם [[שאלות קשות|https://www.youtube.com/watch?v=cCDLz2Wabgg]].




<<englink [[Meadow]]>>
[img[pictures/pomegranatepeeling.jpg]]


!!![[רוז'ה]]:

בתוך כדי ימי [[תענית השתיקה|תענית שתיקה]] שהשתתי על עצמי, הלכתי לשוק ועשיתי מיני מלאכות בית ומטבח, מתוך מחשבה שהן יעזרו לי להתרכז ולנשום נכון. הרימונים היו ממש יפים וקניתי חמישה ובבית קילפתי את כולם בזה אחר זה, גרגר אחר גרגר.


<<englink [[Pomegranate peeling meditation]]>>


[img[pictures/ma-asita-hayom.jpg]]

!!![[תומר]]:

אני יוצא משיעור אצל [[דליה|החדר של דליה]], עולה לכיוון היכל התרבות, חוצה את רחבת הבימה ושוב מולי השלט הנהדר הזה.



<<englink [[What have you done for peace today]]>>
[img[pictures/kie87qScl5HLeyVw.JPG]]

!!![[אווה]]:

''שעות אחר הצהריים שלפני הארוחה:''

[[מתכוני ארוחת הכריסמס]]

[[דןדן]] ו[[יויו]] חזרו מהשוק והמשכנו בהכנות לערב. יויו שולף בגאווה [[מתיק הגב|תיקי גב לקניות שדןדן ויויו הכינו]] חנוכייה ונרות. הם הביאו לוקוס ענקי מפולט. כבר היה רבע לשלוש אז התחלתי לאפות. [[אירי]] התייצבה לידי ורצתה לדעת ולעשות אתי כל דבר. הכנו פאי דובדבנים, פאי פקאן עם קרמל ופאי אגסים עם קרם גבינה ושקדים. יויו הכין מרק כתום בסיר גדול ואת הדג לאפייה שתתבצע רק זמן קצר לפני הארוחה. אחרי העוגות אפיתי את פלחי הכרוב ורצועות הקישואים הירוקים בשמן זית ומלח גס. [[גורה]] ואירי הכינו אורז לבן עם צנוברים, מג'דרה, תפוחי אדמה ובטטות בתנור, פלפלים קלויים, סלט עדשים עם כוסברה ובצל קצוץ וסלט עגבניות עם שום. שתינו בירות ועשנו ודיברנו על מה שנלבש ועל האוכל וערכנו את השולחן. כבר היה ערב, הכנתי שעועית ירוקה בחמאה ושום וסלק מבושל ואת האספרגוס. יויו הכין סלט חסה וסלט מלפפונים עם בצל סגול ושמיר. דןדן בעיקר עזר מסביב, חתך, ערבב, שטף כלים וניקה. אירי והוא פרקו לקערה ענקית ובסבלנות רבה פומלות ותפוזים. מעל סחטו לימון ופזרו שתי כפות סוכר, ערבבו ופזרו אגוזי מלך קלויים. על משטח העבודה הבנים סידרו את בקבוקי האלכוהול וכוסות וחטיפים. הכנתי טוסטים עם טחינה, רסק עגבניות, מעליהם הנחתי את הקישואים והכרוב האפויים וגררתי פרמז'ן. הבאתי אותם גאה ליויו וביקשתי שיניח אותם עם החטיפים שליד השתייה וגם את עוגיות הקימל. הוא עשה זאת כמובן. אירי וגורה הדליקו נרות. יויו שם אלבום של [[fela kuti|https://en.wikipedia.org/wiki/Fela_Kuti]]. לא הכרתי את פֶלָה עד לאותו הרגע. יויו אמר לי שזה חור רציני בהשכלה. הנחנו כל דבר במקומו. כבר היה שבע. התקלחנו והתלבשנו כולנו. לבשתי שמלה שחורה וז'קט שחור וחרוזים שחורים ונעלתי נעליים שחורות וגרבתי גרביונים חומים, ואת עגילי הזהב התלויים הקבועים שלי אותם רכשתי לפני כמה שנים בחנות תכשיטים ליד השוק, בתמורה לטבעת הנישואין שלי ושרשרת זהב קרועה. התאפרתי והתבשמתי. נפגשנו בסלון. דןדן מזג לכולנו יין והרמנו לחיים. כולם היו חגיגיים וריחניים כדבעי, גורה בחצאית כפלים מעל הברכיים בוורוד בהיר וגרביים גבוהות לבנות עד מעל לברכיים עליהן הדפסים של עץ אשוח. מעל סוודר לבן צמוד ארוך. נעולה נעליים סגולות גבוהות עם שרוכים. אירי בחולצת צווארון ירקרקה חתיכית מעליה סוודר עם שרוולים קצרים באפור כהה, ומכנסיים מתרחבים באפור בהיר תחתם נעלה מגפונים חומים רכים, על צווארה שרשרת זהב דקה עם כוכב אחד קטן וצמד דובדבנים. הבנים חתיכים במכנסיים וסוודרים צבעוניים. בשמונה הפעמון צלצל בפעם הראשונה. יויו דןדן וגורה מיד רצו לדלת. בדלת עמדו, [[אלפרד]] מחייך עם בובת סנטה קלאוס ענקית ביד שמאל וביד ימין אחז תיק פלסטיק בו היו תבשיל שורשים ואורז בשלושה צבעים וצנצנת עם מלפפונים חמוצים. [[ג'וזף|ג'וזף אברואה]] עם ארגז מלא אלכוהול ושקית מלאה שוקולד ואגוזים ופרות יבשים. איתם [[דניאל]], בחור רזה בגובה בינוני, שמרכיב משקפי מתכת וחייכן. שיערו שחור ומסופר בתספורת קצרה חתוכה היטב, בידיו גרטן תפו"א ויין ומאחור [[אנג'ליק]]. ג'ינג'ית יפה עם שער חלק עד הכתפיים ועיניים ירוקות, אוחזת בידיה תבנית עם פחזניות ממולאות בכבד קצוץ, צנצנת עם חזרת, שקית מלאה בצימוקים שחורים ובקבוק בחרובקה. הם נכנסו והכל הלך נהדר, אני לא אגיד את זה יותר. כל מי שנכח בערב הזה היה אדם ללא דופי. אחריהם [[סוניה]] ובעלה [[מרק]] הגיעו. סוניה לבושה שחור ושערה השחור אסוף לתסרוקת מפוארת מקושטת בסיכות מעוטרות בקריסטלים, זקופה ומחייכת. מרק, גבר נאה, גבוה ורחב, לבוש שחור גם הוא, פניו מעוטרים בשפם גזוז ולא עבה מידי. הם הביאו צלי בשר עם תפוחי אדמה, פנהטונה וריגו יאנצ'י. מרק הגיש ליויו ליקר דובדבנים ובקבוק שנאפס תפוחים. "תודה רבה", הוא אמר לו, "אנחנו הולכים להיגמר הלילה מאלכוהול, מרק, תיקח את זה בחשבון". "אני ויקינג יויו, כלום לא מפיל אותי ובאנו עם מונית", מרק ענה. בשמונה ורבע חמשת הסינים הגיעו ואחד מהם הביא אתו חברה. [[קואנג]], [[ג'ונג]], [[פה]], [[צ'נג]] ו[[צ'ן]] שמותיהם, ושם העלמה [[גואן יין]]. הם לא עונים לשום קלישאה אודות עובדי בניין סיניים למעט עיניהם המלוכסנות ושמותיהם, ואלה אינם קלישאה. הם הביאו המון בקבוקים של בירה, קולה ויין, וגם לחמים וגבינות. גואן-יין הביאה חמוצים סיניים שהכינה וקדאיף שקנתה בעיר. אירי ואני היינו מהופנטות. סידרנו את כמויות המזון והמשקאות. השולחן התחיל להתפוצץ. [[ז'נבייב]] היפה והאלגנטית הגיעה עם שתי הבנות, [[אלכסנדרה]] ו[[ראשל]]. היא הביאה תרנגול הודו אפוי, קוסקוס שיויו התחנן שתביא למרות הכול ועיגולי מרציפן. הבנות הביאו שקית ענקית ומלאה בסוכריות גומי מתנה לכולם ובמיוחד לאלפרד שציפו להכיר והתחברו אליו מיד. רוז'ה הגיע עם לזניה צמחונית וזר פרחים, וחברתו אנה שהביאה סלט שורשים חתוכים למקלונים בוהק משמן זית, לימון, מלח ושמן שומשום. 
כבר היה רבע לתשע. דןדן ואני שטפנו את הכלים שהיו בכיור.
"כולם כאן חוץ מהדוקטור". יויו אמר בקול ובו ברגע נשמע צלצול בדלת. סיימנו לשטוף את הכלים שנינו. מזגנו לעצמנו בחרובקה והקשנו כוס לכוס. 
בלגימה אני שומעת קול קורא, "אווה". אני בולעת את המשקה, לא בטוחה למשמע הקול. אני מסיימת את הבליעה ומרימה את הראש, זה [[פיליפ]]. ראשו מוטה אלי, רעמתו נשואה לאחור, ידיו מופנות לפנים בלי תנועה, פניו אדומים. "אווה" הוא שוב אומר בקול, מניע את ידיו והולך לקראתי. כמעט נפלתי אבל דןדן החזיק אותי. "פיליפ", אמרתי בלי קול. הוא הגיע עד אלי והושיט לי את ידיו. לא הצלחתי לזוז. יויו ואירי באו גם הם להחזיק אותי.
הייתה דממה בחדר ורק פלה קוטי, שהסתבר כי יויו הפעיל רשימת שמע אינסופית שלו ביוטיוב, המשיך לשיר. 
"מה קורה כאן?", יויו שאל והביט בפיליפ ובי.
"זה פיליפ של נורמה, יויו", הבטתי בו ועניתי בקול ענות חלושה - דןדן ואירי ממשיכים לאחוז בי.  
"אני יכול לחבק אותך?" פיליפ שאל. הנהנתי והתחלתי לבכות. הוא שלשל את זרועותיו בין ידי שהיו תלויות על דןדן ואירי והרים אותי אליו והניח את זרועותיי על כתפיו וחיבק את גבי ולא עזב. משך כמה דקות הייתי תלויה עליו עד שדמי חזר לזרום והוא מחבק כמה שצריך ולא אומר מילה. הוא לקח אותי לספה והתיישבנו שנינו. הבטנו אחד בשני מבלי להסיר את המבט, כפות הידיים שלנו נוגעות אלה באלה. מסביבנו החבריה חזרה לענייניה אך אני לא באמת שומעת אותה. 
"אווה אני חושב עלייך כבר שנים. אני חושב עלייך מאז שאני מכיר אותך". הוא אמר בשקט בקול הבס שלו וליטף את פני, "כמה את יפה. במשך כל השנים שלא התראינו ביקשתי מאימא שתספר לי עלייך וידעתי ממנה שאת לא מוכנה לשמוע עלי דבר. תמיד היה מנחם לשמוע שאת עדיין לא מעוניינת לשמוע עלי.", הוא חייך והמשיך, "לפני חמש שנים, חודשיים אחרי שאימא נפטרה, נפטרה גם ריטה מסרטן קטלני. אחרי שנפטרה כל שחשבתי עליו הוא שאני רוצה למצוא אותך אבל כבר לא היה את מי לשאול איפה את נמצאת וגם חששתי מעט, וכמה שזה אולי עלול להישמע לך כמו תרוץ מוזר במקצת, חשבתי שאני רוצה שזה יקרה מעצמו. כשנכנסתי עכשיו וראיתי אותך הייתי מופתע עד מאד ואני עדיין מופתע, אבל ידעתי שאמצא אותך יום אחד. אווה אני לא מבולבל ואני רוצה אותך איתי לתמיד, זה ככה". שוב בכיתי. הוא חיבק אותי אליו. הנחתי את ראשי על כתפו. "בוא נלך לאכול פיליפ, מעולם לא הפסקתי לאהוב אותך, בוא נלך לשלחן ונדבר אחר כך ונגיד הכול, טוב? אני כל כך אוהבת את הפנים שלך". "טוב יפה שלי". הוא נישק אותי ועזר לי לקום והלכנו חבוקים לשולחן. הם התחילו למחוא כפיים ולשרוק ולצהול ולמזוג עוד אלכוהול. הם לא התיישבו עד שהגענו, התיישבנו כולנו אחד אחד. "בדקת את הארגז שהבאתי, יויו?", פיליפ שאל. "טיפלנו בכול דוקטור, הפבלובה רוקדת במקרר ואתה חופשי מכל אחריות הערב, הערב אני מטפל בך. תודה על הדברים הנפלאים שהבאת. רוצה מנת XO?", ענה לו יויו ומחא כפיים וצחק וגורה הצטרפה אליו וכולם שוב שרקו ושרו. מימיני התיישבה אירי ולידה דןדן ולידו גורה ומשמאלי פיליפ ולידו יויו ולידו אנה ולידה רוז'ה וגם כל השאר הסבו סביב השולחנות המחוברים לאחד. יויו נעמד ואמר:
"חברים יקרים, אני מאושר לארח אתכם בדירה החדשה שלנו". וואאאאוווווו...  שרקו הסינים ונעמדו ומחאו כפיים ומיד הצטרפו שוב כולם. "תודה רבה לכם חברים. אני מאושר שאתם כאן ואני מאחל לכולנו חיים יפהפיים, נצלו את זמן הקסם. זהו לחיים רשמי ראשון לערב זה וקחו הכול לאט ובתאבון". עוד קריאות עלו עד שדעכו והארוחה התנהלה בהרמוניה מושלמת. אכלנו לאט את האוכל הטעים. ביס מכאן וביס משם. אוכלים קצת, מדברים קצת, קמים, שותים משהו. מחליפים מקומות. פיליפ ואני קרובים זה לזו רוב הזמן. ג'וזף, ז'נבייב וילדיהם התחברו בטבעיות. אהבתי את כולם. הכלים נשטפו כל הזמן ועוד אוכל נאכל. מידי פעם מישהו מאלה שמכירים את הדירה לוקח לסיור את חבריו. הם היו גאים כולם בעבודה המפעימה שעשו. אני עצמי הייתי בגובה משלי. לא האמנתי שכל זה קורה באמת. ריחפתי. פיליפ לא הסתיר לרגע את רגשותיו אלי. הייתי מאושרת ואני עדיין מאושרת כי פגשתי את פיליפ שלי אחרי כל המדבר הזה. כשסיימנו פינינו את השטח מהאוכל. סידרנו את פינת החטיפים והמשקאות. סידרנו על השולחן את המתוקים והכנו תה וקפה. פיליפ ביקש שאצא אתו למרפסת והוא נראה היה מוזר. "קרה משהו?", "לא אני בסדר", הוא אמר וליטף את עורפי ואחז בו ונישק את שפתי. "אני רוצה לטעום מהעוגות שלך, יויו קודם נתן לי בגאווה מהטוסטים שלך ומעוגיות הקימל, אני אוהב אותך, למה שאת מכינה יש את הטעם הטעים שלך, אני זוכר עוד מפעם כשאפית ובישלת אצל אימא כמה טעים את עושה וכמה הטעם דומה לטעם שלך שטעמתי אז בארבעת הימים ההם". חיבקתי אותו ונישקתי אותו. יויו קרה לנו פנימה וביקש שנשב. הוא כבה את המוסיקה שמאז פלה הוחלפה לרדיו כלשהו שנתן מוסיקה משנות השמונים-תשעים. הוא די התנדנד ואמר: "חברים יקרים שלי. אני מאושר ואני לא יכול להפסיק לציין את זה בטח לא עכשיו. כל אחד ואחד מכם הוא בונבון יפה שלי וכאח ורע הוא לי. האוכל שהכנתם היה נפלא בטעמו. האלכוהול המשובח שהבאתם מפעם את לבי ואני רוצה להגיד לכם ... הגעתי לעיר הזאת לפני שנה ומשהו, ואני לא רוצה ללכת מכאן נכון לעכשיו. בדירה הזו, למרות שככל הנראה מאחוריה סיפור לא נעים שאינני יודע מהו, התאהבתי ממבט ראשון והחלטתי להטיל בה את יהבי - עם גורה ודןדן כמובן. ובכן, פרט לכך שכרגע אתם כאן אתי חוגגים את השמחה, אני רוצה לספר לכם. לפני די הרבה שנים, 13-14 שנים, הייתה לי כזו... תקופה. הייתי סטלן אימים, וללא קשר תמיד אהבתי להמציא. אחד מהדברים שהמצאתי אז הוא, שאני אישה הונגריה בסיסית, ששמה אווה כהן ובעצם מבחינתי הייתי אחותם של האחים איתן וג'ואל כהן, למרות שבכלל יואל הוא שם אבי ובכלל אין לי אחים כי אם ארבע אחיות, ממש כמו לדוקטור דרק שפארד". הקהל הריע שוב ושרק. "תודה חברים", הוא אמר וקד קלות והמשיך. "הרעיון נשאר אתי והמשיך להתפתח ועם הזמן החלטתי שאני רוצה להקים קבוצת יצירה ליוצרים בלתי תלויים זה בזה אך קשורים זה לזה ושמה "האחיות כהן". שיתפתי בזה את גורה אחותי הקטנה והיפה שנמצאת אתנו כאן בערב זה ובכלל. גורה ואני ישבנו ימים ולילות רבים ופתחנו את האג'נדה והדמויות, את הקונספט והדרמה. כתבנו תשתית לסדרה בת שמונה פרקים על האחיות עם אפשרות להמשך.. ולמה אני מספר לכם את זה? כי כשהגעתי לכאן כבר הבנתי שזהו מתקן השיגור של האחיות ולכן בניתי את המעבדה בחדר השינה שלי", הוא התחיל לצחוק שוב ולקפוץ ולחכך כפיים וכולנו אתו. "ועכשיו לדבר עצמו. אני מזמין כל אחד ואחת מכם להצטרף לחבורה. תנאי בסיסי לכניסת מיזם לתחומי האחיות הוא ש-"שרלה הייתה אוהבת את זה". מי זו שרלה? שרלה היא אישה שנפטרה מסרטן במח, כמו שמאיר אריאל מספר בסרט "מסע הבחירות של מאיר אריאל", על האישה שנלקחה צעירה והיה לה ראש מאד מעניין והלוואי והיא הייתה המורה לספרות שלו. הוא מספר על צחוקיה המשגעים והחכמים ביותר ועל הצורך שחש לכתוב לה משהו של פרידה ביום השלושים לפטירתה, משהו כמו שיר אהבה למורתו שאף היה מבקש ממנה ציון עליו. ומי מחליט אם שרלה שהלכה לעולמה הייתה אוהבת את זה או לא? הדבר התמים שאני שואף אליו הוא שלעולם לא אצטרך לנהוג כפוליטיקאי או מי מחברי האחיות, כי אני בטוח שאת זה שרלה לא הייתה אוהבת."
הקהל הריע שוב ויויו נע בנחת סביב עצמו ונענע את הישבן והיה מאד מצחיק.
"יש לי הרבה רעיונות. אני רוצה לעשות אתר שייקרא האחיות כהן ויכלול את סיפורן של האחיות, את ראיית עולמן וסדר יומן, אני רוצה לייצר סרטונים ותכנים נוספים כתובים או מאוירים או כל העולה בדעתכם ואתם מוזמנים. אם מישהו מכם צריך יעוץ הוא מוזמן אלי. לזכות המתקן עוד טרם התחיל תפעולו הרשמי, נרשם הערב מפגש גורלות נדיר ומפתיע בין כבוד הדוקטור, מר פיליפ לומבר, האיש שהושיע את גורה ואותי ובין אווה כהן המקורית אותה הכרתי אך לפני שנתיים, לא פחות ולא יותר, האופה שהייתה לי לאוזן ולדגל". כולם שוב הריעו ושרקו והשתוללו משמחה.
"אני רוצה להצטרף, אני יודעת בדיוק ממה אני מתחילה". אירי אמרה מן הצד כשקול הקהל נרגע.
"ברוכה הבאה איריצ'קה. הנה תראו חברים. אירי מכירה אותי מאז ומעולם ומצטרפת ללא היסוס. זה אומר משהו לא? רוצה לספר לנו אירי מותק?".
"אחר כך". היא ענתה והתיישבה.
"אני מבקש להצטרף לחבורה יויו, ואני רוצה לדבר בבקשה עכשיו", קם פיליפ היפה שלי בנחישות והחל מיד מדבר. "חג שמח לכולכם אנשים יקרים, שמעו, אני תופס כאן טרמפ על הדברים של יויו. כשיויו שלח לי את הכתובת שלשום, מיד הבנתי באיזו דירה מדובר. הייתי כאן כבר בשמונה ו12 דקות עם הארגז עם הדברים. עמדתי ברחוב כמו אידיוט בלי לזוז. לא ידעתי מה ואיך אספר לכם אבל ידעתי שאני לא יכול לא לספר לכם. התמהמהתי בחוץ וראיתי איך כולם נכנסים עד שהחלטתי להיכנס. נעמדתי ליד הדלת בלי להעז לצלצל בפעמון עד ששמעתי את יויו אומר שרק אני לא הגעתי, מהבהלה לחצתי על הפעמון. יויו קיבל את פני ובעודי מוסר לו את הארגז הכבד אני רואה את אווה", קולו התרכך והוא הביט בי, "אווה היפה והמתוקה שהגיע לבית אמי ובעלה ג'ו כשהייתה בת 18. אני לא יכול לשכוח את הרגע שראיתי אותה. אהבתי אותה כבר במבט הראשון. הייתה לי חברה אז והייתי דוקטורנט בן 30. לימים נישאתי לאותה חברה, ריטה היה שמה ונולדו לנו שני בנים, מקס ואיתן. למרות שכבר הייתי עם ריטה, התאהבתי באווה אך נכנעתי לחיים, אני מודה, כבר עשיתי מספיק צרות עד אז ואווה הייתה צעירה כל כך. חיי עם ריטה היו חיים טובים מאד. היא הייתה חברה ואימא נהדרת. כן, אני לא אדם מושלם", הוא חייך. "ריטה נפטרה חצי שנה לאחר שנתגלה דבר המחלה. אני המאושר באדם מרגע זה ואני אומר לכם שאם אווה תרצה אותי אני שלה עד לשארית חיי". שוב שריקות רמות מהקהל. "ועכשיו לדירה שלכם, אנשים יקרים. בדירה הזו גרו בעבר גניקולוג נחשב בעיר, רעייתו ושתי בנותיהם המתבגרות. היה להם גם בן פגוע מח שהיה במוסד. אשתו הייתה מטופלת שלי. לפני המקרה הכרתי את הסיפור בגרסת האם בלבד. סופו הטרגי של הסיפור הוא שלפני שלוש שנים שתי בנותיה התאבדו כאן בדירה. הן ירו זו בראשה של זו באותו הרגע ולא פספסו. הצעירה הייתה בת 15 והבכורה בת 16 וחצי. האימא טופלה אצלי גם אחרי שזה קרה וכחלק מהטיפול הגעתי אתה לכאן. הם היו הורים קשוחים מאד ובעלה ניצל את הבנות מינית. בעיקר את הקטנה. אחרי שהבנות התאבדו הם נפרדו. הוא השאיר לה את הבית ועוד רכוש וממון ונסע בלי להגיד לאן והיא לא שאלה. הילד היה במוסד ולאחר המקרה היא ביקרה אותו כמעט מידי יום. היא עברה לצד השני של העיר אבל החליטה לא למכור את הדירה. שנה ומשהו אחרי שזה קרה היא החליטה לשבור את כל הקירות ולהשאיר אותה בינתיים ריקה. את הטיפולים אצלי היא הפסיקה לפני קצת יותר משנה ולדעתי היא חזרה לעבוד וללמוד והשתקמה יחסית. עורך הדין שפנה אליכם הוא הבן של אחותה ולהרגשתי אין שום בעיה עם הדירה הזו, לא נותר בה זכר מהעבר. היא נהדרת והפכתם אותה לטירה".
"אתה צודק פיליפ, שום אקדח לא תלוי על אף קיר בשום מערכה בסיפור שלנו. האקדחים שהיו כאן... היו שייכים להצגה הקודמת שהייתה כאן, וזה היה בזמן אחר. היה כאן אז תאטרון אחר. וכעת יש הצגה שונה לחלוטין וזה בכלל לא תאטרון, [[זה קולנוע... וזה סרט ללא יריות"|יד ימין אינה יודעת]]. גורה אמרה בקול רם, מדגישה כל משפט בתנועות ובפאוזות קומיות וצחקה.
עוד שריקות הגיעו מהקהל המדושן. 
"נכון, מיד כשנכנסנו לכאן שלושתנו הרגשנו מצוין ולא דאגנו כלל וגם עכשיו אחרי שפיליפ סיפר את הסיפור הנוראי אין בי כל דאגה". דןדן הוסיף והשריקות גברו. 
"אנחנו עוד בטח נמשיך לדבר על כל זה בעתיד יקרים שלי", פיליפ המשיך, "אבל יש דבר שלישי שאני רוצה להגיד לכם עכשיו כאן לפני כל האורחים, בערב בלתי צפוי זה ובניגוד לכל הכללים ואז אניח לכם והוא, שמרגע זה אתם אינכם פציינטים שלי יותר גורה ויויו אהובים שלי. אולי לא כך נהוג לעשות אך כבר שברתי כל כלל אפשרי ומרגע זה אתם בני משפחתי באופן רשמי, שכן אתם המלאכים שהביאו אלי את אווה שלי היפה והיקרה, וכך או אחרת אתם יכולים בכל רגע ורגע לשוחח אתי על כל דבר ותמיד אהיה לכם".
במחיאות כפיים וצחוק קמנו כולנו ושתינו קפה או תה ואכלנו עוגות וממתקים. גורה ואירי ארגנו משחקים. 
25 בדצמבר
בשתיים אחר חצות פיליפ אמר לי ששתיים אחר חצות ושאל אם ארצה לבוא אתו אליו ולישון אתו. התרגשתי כמו ילדה.







<<englink [[What truly happensd at Christmas dinner]]>>
[img[pictures/kitchenswindow.jpg]]


!!![[תומר]]:

אני חלילה לא עוקב אחרי השכנים שלי, אבל אני בהחלט רואה אותם.










<<englink [[From the kitchen's window]]>>







[img[pictures/kitchenswindow2.jpg]]

!!![[תומר]]:

לא פעם, כשהחלון שממול לחלון המטבח שלנו פתוח, זה אומר שגלעד מטגן ערימת שניצלים גבוהה, שטבל וציפה מבעוד מועד, ונפטפט. וכעת עם יד על ידית המחבת, הוא קצת איתי וקצת עם חברה שמסייעת, ממש בערב הראשון של השנה החדשה לה ייחלנו, 2021 ואומרים אמן.

<<englink [[From the kitchen's window 2]]>>
[img[pictures/retreatswindow.jpg]]


!!![[תומר]]:

בירכתי הבית שוכן הרטריט, או בשמו הנוסף - השירותים הצפופים.




<<englink [[Out of the retreat's window]]>>


[img[pictures/eyal-shani.jpg]]

!!![[תומר]]:

עיתות קורונה הביאו עימן סדר יום חדש למדורת השבט, כמו התכנית בה בכל יום שף אחר מבשל מהמטבח הביתי שלו.

המטבח של [[אייל שני|https://he.wikipedia.org/wiki/%D7%90%D7%99%D7%99%D7%9C_%D7%A9%D7%A0%D7%99]] נמצא ממש [[כאן בגטו]], והוא מלא קסם וחלון עם עץ. הוא מסתובב במטבח בשידור חי, סביבו צלם שמצלם בעין אוהבת, אייל זז הצידה או מחכה כשהצלם עומד בדרכו כי הוא צריך לצלם רגע את מה שרוחש על הכיריים. "הקורונה השכיחה אויבים אחרים", הוא חושב בקול רם תוך כדי שטיפת ירקות ועורכת שמדברת אליו מתוך האוזנייה. כשרוצים לתאר את אייל שני עולות מילים אלגנטיות ותמונות גדולות, כי אייל הוא דמות כזאת, שבאותה הדרמטיות והרצינות, [[בוחשת תערובת שוקולד|כפות ידיים]] או מדברת על התרד שנמס לתוך עצמו או מסבירה את תהליכי הבישול ואופיים של חומרי גלם בחוכמה ובנדיבות.


<<englink [[From Eyal Shani's kitchen]]>>


[img[pictures/guyseasternbalcony.jpg]]

!!![[אימא של ג'אזז]]:

ככה תוך כדי שנת הקורונה, גיא הספיק לארגן הכל ולעבור לחיפה.


<<englink [[From Guy's eastern balcony]]>>
[img[pictures/fromthebalconyof.jpg]]





<<englink [[From the balcony of Yali and Ron]]>>
[img[pictures/music.jpg]]

!!![[אירי וגורה]]:

בתוך כדי הניסיונות הבלתי פוסקים שלנו להבין את העולם הזה בו אנו חיות. איך, מאיפה, לאן והאינסוף, אנו מודות על המוסיקה, [[שללב היא חודרת|https://www.youtube.com/watch?v=lx9-zAZRh1s]].



<<list-links filter:"[tag[מוזיקה]]">>

<<englink [[Music]]>>












[img[pictures/muznach.jpg]]


!!![[אימא של ג'אזז]]:

בקורונה הפסקתי לספור את השערות הכסופות המשתוללות, כי [[מני|ככל הנראה]] סגור. גבות וכל השאר סגור. עכשיו צריכה לחכות פעימה או שתיים ואחרי שיפתחו את הפדיקור, אוכל לחנוך את הכפכפים שקניתי אצל [[בלינדה]] 


<<englink [[Untidy is the new well-groomed]]>>
[img[pictures/dj-eva.jpg]]

!!![[גורה]]:

כן, גם ה-די ג'יי היא אווה. למרות שייתכן ונצטרך להחליף לה את השם מחמת מוגזמות. 

זמן מה לפני שכתבנו, יויו ואני, את HAPPY HOUR התחיל כל העניין הזה עם אווה כהן והאחיות וכו', ונכון לעכשיו אנחנו מכניסים לכאן לוויקי את מה שכבר עשינו כמו שהוא פחות או יותר.

אווה הדיג'יי של הסידרה היא אישה בת שלושים ומשהו, מעט עצבנית, ששומרת על עצמה בכל מובן.

היא [[והספרית|הספרית]] הן המבוגרות האחראיות בסיפור.



<<englink [[DJ and discs dudet]]>>
[img[pictures/miznon.jpg]]

[[תומר]]:

[[המזנון|https://miznon.com/]] שבתמונה, נמצא בקינג ג'ורג' 30, לא רחוק [[מ-420|420]] האהובה. לא הייתי באלה שבחו"ל, וגם לא ברמת החייל, אבל הייתי לא פעם בסניף של אבן גבירול. הכל מאד טעים בפיתה ובמחיר הגיוני. אני הכי אוהב את כבדי התרנגולת או את מסבחת הלימה. [[ננו שלי|ננו שלי ואני]] אוהבת שורת בננות. יאמי מאד במזנונים של [[אייל שני|https://he.wikipedia.org/wiki/%D7%90%D7%99%D7%99%D7%9C_%D7%A9%D7%A0%D7%99]], ויש גם תפוח אדמה דרוס, גזוז או שפריץ, [[ועוד בתפריט|https://miznon.com/menu]], ומוזיקה, ועובדים מקסימים בקופה או במטבחים הפתוחים .. תענוג שהוא חובה.


<<englink [[Miznon]]>>
[img[pictures/animalprotest.jpg]]


!!![[גורה]]:

התמה של ארוחת הכריסמס 2021 שלנו הייתה:

חמור, זו לא קללה. גם לא כלב, וגם לא שימפנזה או קוף או חזיר או שום חיה כולל לא המילה חיה - זו לא קללה.



<<englink [[Animal Protest]]>>
[img[pictures/mechaat-hanashim.jpg]]

!!![[תומר]]:

אחרי שבצהריים ראינו את [[ג'אז|Jazz]] שרה בארועי המחאה ברוטשילד, הגיע הערב. ארזתי טוב טוב את [[ננו הקטנה|ננו שלי ואני]], והלכנו לככר רבין, שם המשיכה המחאה הבוערת של הנשים, (אלה [[ששמות לב|היסטריות]] לכל פרט). הן אירגנו הפגנה מקסימה ולמופת. 


<<englink [[Women`s protest]]>>
[img[pictures/mechalkim-nayadim.jpg]]

!!!''<<tag "בחוות החיות">>, בכייף שלהם החזירים מחלקים סלולרים.''

<<englink [[They give away cell phones]]>>
[img[pictures/mechapeset-et-iri.jpg]]


!!![[גורה]]:

את הסיפור הזה כתבתי לאחר שחזרנו עם [[אירי]] מהודו, וערך אותו [[רני|רן יגיל]], שהוא [[אחות חוץ|אחיות חוץ]] יקרה.

<<list-links filter:"[tag[מחפשת את אירי]]">>


<<englink [[Searching for Iry]]>>
[img[pictures/onethoughtafteranother.jpg]]

!!![[אימא של ג'אזז]]:

בזמן האחרון ניסיתי שוב ושוב לדמיין את המטבח של סבתא בריינה שלי, שהיה ברחוב ההדרים בפרדס-חנה.





<<englink [[One thought ater another]]>>



[img[pictures/meta-fiction.jpg]]

!!![[יויו]]:

החלטתי שהסרטונים שהתחלתי לעשות, יכולים להחשב [[metafiction|https://en.wikipedia.org/wiki/Metafiction]],

<<list-links filter:"[tag[מטא בדיון]]">>


<<englink [[Metafiction]]>>

[img[pictures/terry-schreuer.jpg]]

[[גורה]]:

את [[הצילום|https://www.instagram.com/p/CR_oeCmNYOb/]] של הציור הזה, ראיתי באינסטגרם ונהדפתי, כמו שקורה לי כשאני אוהבת משהו. זה צילום [[שטרי שרויאר|https://www.instagram.com/schreuer/?hl=en]] צילמה, ושכל הצילומים שלה יפים תמיד בעיני, ויותר מכך, מה ואיך שהיא בוחרת לצלם, הזוויות. אני אוהבת את העין הרכה והטובה שלה ואת החום שעובר. 

כמה ימים אחרי שראיתי את הצילום הזה ראיתי עוד שניים שגרמו לי לרצות לצייר אותם, וכבר זהו, לא התאפקתי וכתבתי לטרי הודעה והחמאתי לה ובהמשך שאלתי אם תוכל לשלוח לי צילום כך שאוכל לצייר בנוחות. היא שמחה מאד ובטח ששלחה וציירתי ביראה ועכשיו הוא כאן.


<<englink [[A 70`s kitchen that Terry Schreuer took a picture of]]>>
[img[pictures/colorfulkitchen.jpg]]

!!![[גורה]]:

הקורונה הצליחה לייבש את שמחת היצירה שלי, ולא בא לי כלום חוץ מלצבוע, והכי יפה זה מטבחים, בעיקר כאלה עם חרכים ביניהם נופלים פירורים של כל מיני דברים לנצח, וארונות שאי אפשר לפתוח.

<<englink [[Colorful kitchen]]>>
[img[pictures/kitchens.jpg]]

!!![[יויו]]:

מטבח זה אהבה, ואני תמיד אוהב את המטבח שיש לי עכשיו, ועכשיו יש לי מטבח משהו משהו, והוא ללא קשר לזה [[שגורה|גורה]] בחרה לעשות בציור.




<<list-links filter:"[tag[מטבחים]]">>

<<englink [[Kitchens]]>>



[img[pictures/mizonplazya.jpg]]


!!![[יויו]]:

על פי ז'נבייב, [[מיזונפלציה|https://en.wikipedia.org/wiki/Mise_en_place]] זה ה- א-ב של המטבח. זה [[ונקיון|מנקים היטב]].


בבית בו גדלתי לא השתמשו במונח הזה אבל ככה עבדנו. קודם קוראים את [[המתכון|מתכונים]] או מקבלים הסברים מפורטים - בעיקר מאחותי [[נדיה]] ולפעמים גם [[מאימא|דינה זכרה לברכה]] או [[מסבתא|סבתא שלנו]], מכינים את החומרים, מכינים את מה שמכינים, ומנקים היטב.

<img style="float:left; max-width:33%; margin: 0.5em" src="pictures/knives.jpg">
לאחרונה שמתי לב, [[שאני מזנפלץ ומזונפלץ כל הזמן|יסודי או ocd]]. אני לא מת על שיוף סכינים, אבל תמיד יש לי ספייר מכל דבר. 
חדר העבודה שלי תמיד ערוך לכל משימה. יש שם, כמובן, את כל הציוד הנדרש, ולעולם אסדר הכל ואסגור הכל כשמסתיימת העבודה.
אם משהו מתקלקל או מסתבך לא אשאיר אותו בלתי מתוקן.

גם כשאני מסיר מעלי את בגדי, אני מזנפלץ אותם לקראת מכונת הכביסה.

כשאני מסיים סיגריה אני, פחות או יותר מיד, מפנה אותה מן המאפרה כך שהיא תהיה ערוכה לסיגריה הבאה.


כלומר, מה שאני מנסה לומר הוא - שכאשר הגעתי לעבודה אצל ז'נבייב, והיא אמרה לי, שמה שהיא רוצה ממני זה עזרה במיז-און-פלאס, חיברתי את המילים והבנתי את מה שהיא אמרה.



<<englink [[Misenplation]]>>

[img[pictures/miles-davis.jpg]]

!!![[יויו]]

ראיתי את [[הסרט|https://www.imdb.com/title/tt9358200/]] המעניין על [[האיש|https://en.wikipedia.org/wiki/Miles_Davis]] והחצוצרה עם הפקק, שהיה [[איש יפה ומצודד|https://www.youtube.com/watch?v=858K1TenEeY]] שלא סובב את הגב לקהל שלו, כי אם סובב את פניו לנגנים. איש ששינה, שגם נפל [[אבל גם קם|https://www.youtube.com/watch?v=FpZHjvFXprk]] וגם צייר ואני לא מבין למה לא הזכירו את [[דו בופ|https://www.youtube.com/watch?v=bH8GeQZTdHk&list=PLIvswYhuuyKqS95j8tzZ1y8HrK5e965a9]] שהשאיר רגע לפני שהלך.

<<englink [[Miles Davis]]>>
[img[pictures/mike-leigh.jpg]]

!!![[גורה]]:

מהתמונה [[הזו|https://www.filmtrap.com/wp-content/uploads/2017/03/MikeLeigh2.jpg]] ניסיתי לצייר את [[מייק לי|https://www.imdb.com/name/nm0005139/]] כפרה עליו.



<<englink [[Mike Leigh]]>>
[img[pictures/mimi-shel-alfred.jpg]]

!!![[יויו]]:

מימי של [[אלפרד]] היא one man show. הם היו נשואים כמה שנים כשהיו באמצע שנות העשרים שלהם. לפני חודש בערך היא הגיעה איתו [[לדירה|כוכב המשאלות 01]]. היא באה לצלם איזה אנרכיסט ספרדי שחי כעת בפריז. היא נוסעת בוואן סגור שיש בו מיטה וציוד שהיא קימבנה, שמהווה סט אולפן. זה כולל מצלמה עליה יושבות עוד שתי מצלמות רגילות ואחת שהיא רחף. לכל מצלמה אפשר להוסיף גוף תאורה ומיקרופון ואם צריך אז גם טלפרומפטר.  לידיות שמניעות את הקונסטרוקציה הזו מחוברים שלטים, שאיתם היא מנתבת בזמן אמת את התמונה, כולל אפשרות לשילוב של וידאו ושליטה בסאונד. אכן כן. היא התחבבה מאד על כולנו והפכה [[לאחות|אחות כהן]].



<<englink [[Mimi of Alfred]]>>
[img[pictures/minda.jpg]]

!!![[פיליפ]]:

מינדה היא אימה של בליי, אשתו הטרייה של [[מקס|אני הפסיכיאטר]] בני הבכור. לבעלה קוראים ראודור וחוץ מבליי יש להם גם את אלו. היא הרבליסטית ועוד דברים מעניינים ויפים.




<<englink [[Minda]]>>
[img[pictures/mizperesh.jpg]]

!!![[יויו]]:

מִיצְפְרֶש שייך למשה הולמס, שהגיע ל[[מִיצְפֶּרֶש|מצפה ראשית]] לאחר שיצא  לגמלאות משרות המדינה, והוא בן 48.

הוא התחיל מבוטקה על דונם שקנה באזור שפך האסדה, ותוך שנה הפך את השטח למפעל קטן ומצליח.

הקיר הצפוני של המפעל הוא מקום בו הנוער נוהג לצייר [[גרפיטי|לצייר גרפיטי וירטואלי במִיצְפֶּרֶש]]. משה מוכר פוטאג' של מצלמות האבטחה שם לסטארטאפים של [[זיהוי ביומטרי|https://no2bio.org]]. יש לו חוש טבעי לתאורת אינפרא אדום דרמטית. רבים בתעשיה הבטחונית רואים במשה אמן וידאו אלטרנטיבי.



<<englink [[Genejuice]]>>
[img[pictures/michel-gondry.jpg]]

!!![[ראשל]]:

[[זה|https://www.youtube.com/watch?v=fTH71AAxXmM]] וידאו קליפ [[שמישל|http://www.imdb.com/name/nm0327273/]] עשה.

[[אלפרד]] הכיר לי אותו.

ראינו את [[מדעי החלום|http://www.imdb.com/title/tt0354899/]], והתאהבתי. ראיתי אחר כך במשך כמה ימים כל מה שהשגתי בעזרת [[המקלדת|מקלדת]], והתאהבתי מאד גם [[בביורק|ביורק]] מכל הצפיות האלה.

<<englink [[Michel Gondry]]>>


[img[pictures/washingthegrinder.jpg]]

!!![[תומר]]:

כשהגריינדר נתקע מתהווה קופרודוקציה ביתית, בה המטבח מארח את אבקת הכביסה והגריינדר,כי אבקת כביסה מפרקת הכול. 

סדר הפעולות:


1. מחממים את התמי.

2. מניחים גריינדר מפורק בכד המידה.

3. מפזרים מעל אבקת כביסה כדי כיסוי הגריינדר.

4. ממלאים את הכד מהמים החמים.

5. משרים עד שהמים כבר לא חמים.

6. שוטפים את הגריינדר המבהיק במי ברז.

7. מניחים לייבוש על החלק העליון והחמים של התמי.



<<englink [[Washing the grinder]]>>
[img[pictures/makolet-haachim.jpg]]


!!![[תומר]]:

במשך כמה ימים חייגתי בעקשנות [[לאחים|האחים]]. נורא רציתי חומוס, ושוב ושוב המספר היה לא מחובר. המשכתי להתעקש כמה ימים נוספים עד שקרה וההודעה המוקלטת ענתה, והקשתי 1, וקיבלתי [[קישור למכולת המלהיבה|https://www.tabitorder.com/?site=5adc4303e98e0717008ce965#/start]],
 שהיא הברקה קורוניאליות ביג, אני מאושר.



<<englink [[HaAchims grocery store]]>>
[img[pictures/carshere.jpg]]



!!![[תומר]]:

קומיאורי ואני מתקרבות למעבר החצייה המוביל לפארק והיא אומרת לי: "זה מדהים אותי שאנשים קונים או מכוניות שחורות, או אפורות, או לבנות", ואז מוסיפה: "אני מאד מעריכה את אלה שקונים מכונית צבעונית", ומחייכת את חיוכה הנהדר.




<<englink [[Cars here]]>>
[img[pictures/melafefonim-chamuzim.jpg]]

!!![[אלפרד]]:

כשהייתי בכיתה ה' אולי, הייתה לי חברה שמאד אהבתי, ואימא שלה הייתה מכינה את המלפפונים החמוצים הכי טעימים מאז ולעולם.

לקחתי ממנה אז את המתכון (כן,כן), ואני מכין עד היום בכל הזדמנות.

לפני כל דבר מהבחינה הזו - החשוב ביותר הוא שהמלפפונים יהיו טריים, קשים ולא גדולים.

קילו מלפפונים קטנים וקשים
פלפל חריף ירוק חתוך לחתיכות בגודל 3 סנטימטרים
צרור שמיר
8-10 שיני שום, פרוסות
4 כוסות מים
4 כפיות מלח גס


לתוך צנצנת 2 ליטר:

1. שמים בתחתית הצנצנת חצי מכמות השמיר, ומפזרים חצי מכמות השום..
2. ומערבבים את המים עם מלח.
3. מסדרים את המלפפונים בצנצנת כך שהם עומדים צפופים, מפזרים את שאר השום ופלפל החריף, דוחסים את השמיר בין לבין, ומעל ויוצקים את המים והחומץ, שיכסו את הכל. סוגרים ואוטמים, ומניחים במקום עם הרבה אור (זה מאיץ את הכבישה).

אני אוהבת את המלפפונים כבר אחרי יום- יום וחצי אבל זה לוקח כמה ימים, ורגע לפני שהם מגיעים לצבע הרצוי מכניסים למקרר כך שהתהליך יואט מאד.



<<englink [[Pickles]]>>
[img[pictures/benataim-medamemim.jpg]]


!!!''<<tag "בחוות החיות">>, אנחנו מצדנו
[[נמשיך לדמם|https://www.youtube.com/watch?v=cYhDSo9pgxg]], תחתים ובטנים,
ימשיכו לשעמם. 



<<englink [[Keep on bleeding]]>>

[img[pictures/rest.jpg]]




<<englink [[Rest]]>>
[img[pictures/nekiyey-capaim.jpg]]

!!!''<<tag "בחוות החיות">>, החיות מפגינות אמונה.

<<englink [[Assuming and Preserving]]>>
[img[pictures/menakim-heytev.jpg]]

!!![[ז'נבייב]]:

כמה ימים אחרי [[שיויו|יויו]] התחיל לעבוד אצלי, בסוף יום העבודה, כשניקינו את המסעדה, שמתי לב שכאשר הוא הופך את הכסאות על השולחנות הנקיים לקראת שטיפת הרצפה, הוא מנקה את תחתיות רגליהם. 
כזה, עוד לא ראיתי!

ביקשתי מיויו להפוך [[למפקח על הנקיון|חלומות שחלמנו]], והוא קיבל בשמחה את הג'וב.

בזכות [[יויו|רוטב בשאמל]], במטבח של "שה ז'נבייב", כולנו מנקים היטב.


<<englink [[Cleaning properly]]>>






[img[pictures/mesookenet.jpg]]

!!![[אלפרד]]:

[[דפני|דפני אברואה]], אחותי שמבוגרת ממני בארבע שנים, היא אדם מסוכן, לא פחות מזה.

היא שוחררה לפני כשנה מאשפוז שארך חמש שנים. היא מתגוררת בדיור מוגן לחולי נפש בשיקום, לא רחוק מפריז.

כשהייתי בן תשע, עזבה יום אחד [[אמי|מריאן]] את ביתנו ברעש גדול, ומאז לא חזרה. 

נשארנו עם [[אבי|ג'וזף אברואה]], שעשה כל שיכל להיטיב עם חיינו. מצבה של אחותי נראה היה סביר, למרות שחיבלה בכל נסיון של אבי להיקשר לאישה. היה לה יופי מיוחד, צחוק גדול, ולא מעט קסם אישי. היא ציירה. בגיל עשרים היא נישאה לדויד. (לאחר שהפרידה בינו לבין חברה טובה שלה, איתה חי לא מעט שנים).

שנה אחר-כך היא ילדה את ריקי המתוקה. היא לא הצליחה לתפקד כאם. דויד גידל את ריקי, והיא, עברה מעבודה לעבודה, מחברה לחברה, מחבר לחבר. מתחברת לאנשים, ומיד נכנסת להם לחיים ולנשמה. מפרידה בין זוגות, מנצלת, מגיעה לבתים ושואבת כל מה שרק אפשר, כולל את מה שיש במקרר, בגדים, חפצים. מחטטת להם במחשב, לא נותנת מנוחה - עד שזה מתפוצץ בבום גדול.

מעת לעת, אבי נאלץ להיות [[המייק|https://en.wikipedia.org/wiki/Mike_Ehrmantraut]] שלה. 

רוע הלב שלה הוא בלתי נסלח, ואני רק מציע - אל תתעסקו עם הדפני!!!

<<englink [[Dangerous]]>>
[img[pictures/misadot.jpg]]

!!![[הצוות]]:

כי אוכל זה יאמי ומסעדות זה כיף ויפה ומעניין ובא לך להגיע במיוחד או לעצור במקרה, ולנשנש משהו.



<<list-links filter:"[tag[מסעדות]]">>


<<englink [[Restaurants]]>>
[img[pictures/hamispara.jpg]]

!!![[גורה]]:

במספרה נמצאת [[אנה|הספרית]], שידיה ידי זהב.




<<englink [[The Hair Salon]]>>
[img[pictures/maarechet-haiton.jpg]]

!!![[גורה]]:

בקומה שתיים של [[געזונטהייטס]], נמצאת מערכת עיתון צבעונית בכל מובן. הם מוציאים ירחון, מקוון ומודפס, של כתבות צבעוניות על כל נושא שהוא ובתנאי שהוא צבעוני בעיני העורך, בחור בן שלושים ושתיים שמכר תוכנת תכנון בתים במחיר פרוע.  למשל, הם הוציאו גיליון ובו סיפורים על אנשים שהקימו מוזיאונים צבעוניים במקומות שונים בעולם, אבל גם היה גיליון על הרגלי האכילה של שפים החל מהקפה של הבקר כולל כמה סוכר וכד'.

הם שמים דגש על הצילומים והעיצוב.

בקצה החלל הפתוח יש חדר אוכל צבעוני, גם בו נוהגים העובדים לשבת ולעבוד.



<<englink [[The newspaper desk]]>>
[img[pictures/maarechet-tel-aviv.jpg]]

!!![[תומר]]:

כשהייתי סטודנט, עבדתי כמאבטח בחצר המערכת. חצר נפלאה שנראית כמו קיבוץ ישן מלא עצים ובתים נמוכים חלקם לשימור, וממוקמת סמוך [[לשרונה|בדרך לשרונה]]. לפעמים כשהיה צורך עליתי לעבוד [[ברוממה|רוממה]], ודי מהר היכרתי, (כמו כל המאבטחים), את עובדי הרשות מקטן ועד גדול. מפה לשם מי שהיה אחראי על עובדי האולפן הציע לי לעבוד כ cg, שזה אותו אחד שכותב את הכותרות והכיתובים והקרדיטים שנראים על המסך. בהמשך הציעו לי להיות [[נתב]], וכך העברתי תשע שנים מחיי בעבודת אולפן לא רעה בכלל - עד שסגרו עלינו את המסך באיבחה באמצע מאי 2017. היה לא מכבד. את הצילום ממנו ציירה גורה צילמתי בשנה שעברה מאחורי הגדר בדרכי לחתום בלשכת התעסוקה.


<<englink [[Tel Aviv Desk]]>>
[img[pictures/mafil-yad.jpg]]

!!![[יויו]]:

מאז שהפכתי [[למפקח נקיון בקוסקוס|מנקים היטב]], אני חולם על מתקן קטן וממונע, שיושב על שורש כף היד כמו שעון, וכשמפעילים אותו היד נעה, ויש ארבע אפשרויות:

במעגלים חלש, במעגלים חזק, קדימה ואחורה חלש וקדימה ואחורה חזק.

באין מפעיל יד אפשר להעזר [[בגלי קול|https://www.youtube.com/watch?v=JEq10L7u3SM]].



<<englink [[Hand activator ]]>>
[img[pictures/ghettos-map.jpg]]

!!![[תומר]]:

אלה פחות או יותר תחומי הגטו מבחינתי, אשר לגבולותיו [[גמישות|blue-marble-hood]] חוצה [[גבולות|Imagine]].



<<englink [[Ghetto`s map]]>>
[img[pictures/mizpe-reshit.jpg]]

!!![[גורה]]:

מצפה ראשית, או בקיצור, [[מִיצְפֶּרֶש|דיור מוגז]] (כמחווה למפעל [[מִיצְפְרֶש|מיצפרש]] המקומי), הוא הישוב [[שאסדת טתיס|ים טתיס]]  הייתה רק תרוץ להקמתו המתבקשת. בצידה המזרחי נמצא [[רובע מרינה|מרינה זוטו]], שהמשכו הוא אזור תעשיה, בו שוכן, בין השאר, הבניין של [[שלום]].



<<englink [[Genesis Hilltop]]>>
[img[pictures/mikledet.jpg]]

!!![[גורה]]:

''
חברה טובה''

<<englink [[Keyboard]]>>
[img[pictures/marian.jpg]]

!!![[גורה]]:

אימא של [[אלפרד]], שנטשה את ביתם ונסעה לצרפת אל גבר אחר כשאלפרד היה בן 9.

<<englink [[Marianne]]>>
פרוייקט [[דיור מוגז]] ב[[ים טתיס]]

[img[pictures/marina-zuto.jpg]]

!!![[גורה]]:

מרינה זוטו היא חלק נוסף בתצרף המוקפד של הדיור המוגז של [[מצפה ראשית]] שליד אסדת טתיס.

המודל לקוח [[מספרינגפילד|https://he.wikipedia.org/wiki/%D7%A1%D7%A4%D7%A8%D7%99%D7%A0%D7%92%D7%A4%D7%99%D7%9C%D7%93_(%D7%9E%D7%A9%D7%A4%D7%97%D7%AA_%D7%A1%D7%99%D7%9E%D7%A4%D7%A1%D7%95%D7%9F)]], ולמעט כרסום חלקים משלושה יערות, וכתישת שוניות אלמוגים לא נעשה כל נזק נראה לעין לסביבה.




<<englink [[Marina Zoto]]>>
[img[pictures/MerkazBa'aleiMelaha.jpg]]

!!![[אימא של ג'אזז]]:

יגעת ומצאת תאמין



<<englink [[Merkaz Ba'alei Melaha 6]]>>
[img[pictures/cure.jpg]]

!!![[תומר]]:

היום היום ה-109 לאסון שבעה באוקטובר 2023. כפות רגלינו כבר בתוך 2024. השבויים המסכנים שלנו עדיין שם בעזה או בחאן יונס או האל יודע היכן, משפחותיהם כאן, חיילים נהרגים, ממשלה רעה רעה. מוקפים באויבנו כפי שתמיד נאמר לנו, והם נותנים בראש. המצב קטסטרופלי בכל מישור.

כולנו מחכים לכם חטופים יקרים ואהובים שלנו, ועד שלא תשובו כולכם איננו שלמים.



<<englink [[Cure]]>>
[img[pictures/mark1.jpg]]

!!![[גורה]]:

מרק הוא גבר שבגברים, הוא בעלה ההונגרי של [[סוניה]] ההונגריה, והוא מתכנת מחשבים, שפדה את חובו ועשה אקזיט כדבעי.

<<englink [[Mark]]>>


[img[pictures/marak-tachoon.jpg]]

!!![[אירי]]:

הגעתי למסקנה, שבמרק טחון, צריך להשאיר חתיכה אחת מהירקות שלמה, כמו שמשאירים לבנה חשופה בקיר לזכר חורבן הבית.

כך עשיתי במקרה הזה:

1. לפי חצי מגודל הסיר שוטפים וחותכים: 

גזר, זוקיני, עלי סלרי, אפונה יבשה, כרישה

2. מכסים במים ומבשלים עד שהכל רך

3. מכבים את האש ונותנים לירקות להתקרר

4. טוחנים עם מקל טחינה או בלנדר (לא לשכוח להשאיר חתיכת ירק שלמה)

5. מוסיפים עוד מעט מים, מחזירים את הסיר לכיריים ומבשלים עד רתיחה. מנמיכים את הלהבה

6. מתבלים על פי הטעם במלח ים גס, פלפל שחור גרוס, חצי כפית שמן חריף, 2-3 טיפות של חומץ בלסמי סמיך, ממשיכים לבשל עוד 10-20 דקות, ואם צריך מתקנים את התיבול.




<<englink [[Blended soup]]>>
[img[pictures/marak-katom.jpg]]

!!![[יויו]]:

זה מאד קל.

בסיר כבד וגדול, צולים במעט חמאה, שלוש בטטות בינוניות, ארבעה גזרים, שורש סלרי, שורש פטרוזיליה, זוקיני אחד שלוש עד חמש דקות.

מוסיפים מים כדי כיסוי הירקות, ומבשלים שעה וחצי על אש נמוכה.

מסירים מן האש, ומקררים לטמפרטורת החדר.

טוחנים את הירקות, עד לקבלת מרק אחיד ומרתיחים שוב.

מוסיפים לפי הטעם: מלח ים גס, פלפל שחור גרוס, אגוז מוסקט מגורר, ג'ינג'ר מגורר, חצי מיכל שמנת מתוקה וחצי כוס חלב, ומביאים לרתיחה.

מנמיכים את הלהבה ומבשלים עוד עשרים דקות.

טועמים ואם יש צורך מוסיפים מהתבלינים.

מגישים עם עירית קצוצה.



<<englink [[Orange soup]]>>
[img[pictures/marak-im-kneydalach.jpg]]

!!![[יויו]]:

בעוד כשלושה שבועות, תיפתח [["שה ז'נבייב"|הקוסקוס]] במהדורתה החדשה - מעדניית [[סלואו פוד|https://www.slowfood.com/]] עם השפעות של המטבח הקליפורני. אחד הדברים שהדבר אומר הוא, שחומרי הגלם יהיו מוקפדים אף יותר ומאד טעימים, ולכן אין צורך בדברים כמו [[אבקת מרק|אבקות]]. בינתיים אירי ואני מתאמנים ואלפרד עוזר, והזמנו את האחיות [[לארוחת ראש השנה|ארוחת ראש השנה]] כוהנית.

המרק:

הכנו מרק צמחוני, כלומר מרק ירקות, למרות שבמקור זה עם עוף, ואם מדברים על סלואו פוד אז אמורים לשמר את המסורת. מבחינת המסורת הקניידלך כמו של סבתא.

החומרים:

* 2 קישואים ירוקים בינוניים (זוקיני)
* 2 גזרים
* בצל לבן
* תפוח אדמה אדום בינוני
* שורש סלרי
* שורש פטרוזיליה
* מלח
*  פלפל שחור
*  צרור פטרוזיליה

אופן ההכנה:

1. מקלפים את הגזר ואת תפוח האדמה, מנקים ושוטפים את שאר הירקות, מכניסים לסיר  בינוני ומוסיפים שני ליטר מים.

2. מבשלים עם כפית מלח וכפית פלפל שעה וחצי על אש נמוכה.

3. מכבים את האש ונותנים למרק להתקרר

4. מסננים את המרק המקורר, את הירקות שאוהבים לאכול מחזירים למרק, ומבשלים שוב בסיר נקי עם 2 ליטר מים נוספים.

5. כשהוא חם טועמים ומוסיפים תבלינים.


מכינים את הקניידלך:

1. בקערה בינונית מערבבים  כוס קמח מצות ושתי ביצים. (אפשר להכפיל לפי הצורך, מכוס אחת יוצאים 10 כדורים בינוניים).

2. מתחילים להוסיף מים (בכל פעם כף), וממשיכים לערבב - עד לעיסה רכה אך בצקית.

3. מניחים לתערובת, ואחרי עשר דקות בודקים - יש להניח שהיא התקשתה, ואם אכן כך, מוסיפים עוד מעט מים ומערבבים. חוזרים על הפעולה הזו שלוש-ארבע פעמים, ובפעם האחרונה מוסיפים רבע כפית אבקת אפיה ונותנים לתערובת "לעמוד" עוד כמה דקות.

4. מגלגלים כדורים ומכניסים אותם למרק על להבה בינונית.

5. מבשלים עוד עשרים דקות עד חצי שעה (הכדורים אמורים לצוף, להתגלגל ורק כמה דקות אחר כך הם מוכנים.

סיום:

אני יודע שזה נשמע מרק אנמי, אבל ירקות טובים אורגני-בלאדי-טרי, מלח ים גס, פלפל שחור גרוס, הם מלאי טעם [[ואין צורך ביותר|less is more]].

את המרק מגישים כשהוא חם, מקושט בעלי פטרוזילה טריים למי שרוצה.

<<englink [[Matza ball soup]]>>
[img[pictures/game-of-thrones.jpg]]

!!![[יויו]]:

[[חבר]] זה מישהו שאתה אוהב אותו, למשל [[טיריון לאניסטר|https://www.imdb.com/name/nm0227759/?ref_=tt_cl_t1]], שלא רק שהרג את אימו מעצם הוולדו, אף נולד גמד - חריג בעליל, משהו שדעת משפחתו אינה סובלת.  [[ג'יימי לאניסטר|https://www.imdb.com/name/nm0182666/?ref_=tt_cl_t7]] מתישהו כבר יודע שהוא טוב. הם כולם רוצחים במשחקי הכס, כך שזה אינו אומדן. אבל אם אתה כבר רוצח אז תעשה את זה עם סגנון כמו [[ליידי בריאן מטארת'|https://www.imdb.com/name/nm3729225/?ref_=tt_cl_t13]] או [[אריה סטארק|https://www.imdb.com/name/nm3586035/?ref_=tt_cl_t6]] שהן גם חברות טובות. אם הייתי נאלץ לבחור רק שלוש כפי שהיטלתי על עצמי, כי הרשימה ארוכה וקשה לא לציין את [[סאמוול טארלי|https://www.imdb.com/name/nm4263213/?ref_=tt_cl_t10]], [[את הכלב|https://www.imdb.com/name/nm0564920/?ref_=tt_cl_t18]], את [[ברון|https://www.imdb.com/name/nm0283492/?ref_=ttfc_fc_cl_t16]], [[את הודור|https://www.imdb.com/name/nm3964231/?ref_=ttfc_fc_cl_t32]],  ואעצור כאן כי לא עומד בזה [[סידרה אהובה|https://www.imdb.com/title/tt0944947/]] [[ושחקנים אהובים|https://www.imdb.com/title/tt0944947/fullcredits?ref_=tt_cl_sm#cast]], שמבוססת על הספרים שכתב [[האיש הזה|https://www.youtube.com/watch?v=5YxeHFU8SKE]].


<<englink [[Game of Thrones]]>>
[img[pictures/discipline.jpg]]


!!![[גורה]]:

אם, למשל, מישהו יגיד לי: תניחי את הכוס מימין, את הספל משמאל, ואת שני כדי החלב באמצע, אבל הוא לא יציין באיזה צד לשים את הכד הירוק ובאיזה את האדום, אני בבעיה.



<<englink [[Discipline]]>>
[img[pictures/meshanim.jpg]]

!!![[גורה]]:

נטייה נוספת שיש ליויו ולי היא הנטייה להזיז דברים בבית, בטח ברגעים מזעזעים כמו [[הנסיעה|דןדן נסע]] של דןדן.

השארתי בצד אחד של החדר מיטה וכמה רהיטים ובחציו השני שמתי שולחן ענקי עם המחשב ודפים ועפרונות צבעוניים, ואני מתרכזת.


<<englink [[Changing]]>>

[img[pictures/afamilyoutta.jpg]]

!!![[גורה]]:

זה מה שאנחנו, וזה אולי מה שכולם, למעט הבדלי סוגא ותוכן.


<<englink [[A family outta a series]]>>
[img[pictures/families.jpg]]


''כל משפחה לגופה''


<<list-links filter:"[tag[משפחות]]">>



<<englink [[Families]]>>

[img[pictures/baumans.jpg]]

!!![[יויו]]:
זה חלק מסלון הבית בכפר בו [[גדלנו|הסיפור על גורה]] לתפארת, עם אבא יואל ואימא דינה ז"ל.
נדיה הבכורה, קרן, אני, גיגי וגורה הקטנה והמתוקה.

<<list-links filter:"[tag[משפחת באומן]]">>

<<englink [[The Baumans]]>>
[img[pictures/meshapzim-rahitim.jpg]] 

!!![[יויו]]:

בתקופה שעברנו [[לדירה|כוכב המשאלות 01]], [[ואלפרד|אלפרד]] ניהל את השיפוץ, [[דןדן]] והוא התחילו לשפץ רהיטים, ולא רק, גם במשקופי עץ ובמדפים שהיו הם טיפלו יפה. 

את הנטייה לאסוף  מהרחוב רהיטים שאנשים זרקו, או ארגזי עץ, ירשנו כולנו מגורה באותה תקופה. מפה לשם, [[קואנג]] הזמין את מי שרצה, לעבוד [[בסטודיו שלו|הסדנה של קואנג]]. אלפרד מאד שמח, וככה קרה שהם משפצים ובונים יחדיו.



<<englink [[Renovating an selling furniture]]>>


[img[pictures/lo-chazirit.jpg]]

!!!''<<tag "בחוות החיות">>, משתדלים לא להגזים עם חופש הביטוי.

<<englink [[They make an effort not to overdue]]>>

[img[pictures/christmas-dinner.jpg]]


!!![[גורה]]:

טוב, בינתיים ממש לא כולם אבל אני בדרך לשם, וכידוע, הדרך היא החשובה.

ואגב דרך, [[יויו]] ו[[דןדן]], הכינו [[תיקי גב|תיקי גב לקניות שדןדן ויויו הכינו]]. הם מצויינים לקניות שקודמות להכנת האוכל.

<<list-links filter:"[tag[מתכוני ארוחת הכריסמס]]">>


<<englink [[Christmas dinner Recipes]]>>


[img[pictures/matconim.jpg]]

!!![[אירי]]:

אצל [[אווה]] המתכונים כתובים על פתקאות קטנות, תפוסים עם אטב למדף, וכתובות בהם רק הכמויות, ברוב המקרים אפילו לא השם, כי היא לא זוכרת כמויות. אופן ההכנה ברור לה. וזה הקטע עם מתכונים, שלפני שמכינים אותם צריך להתכונן. לקרוא אותם ולהבין מה עושים כמו טקסט עבור שחקן.

<<list-links filter:"[tag[מתכונים]]">>

<<englink [[Recipes]]>>
[img[pictures/vegan.jpg]]

!!![[הצוות]]:

חיות המשק המומות לטובה

<<list-links filter:"[tag[מתכונים טבעוניים]]">>


<<englink [[Vegan recipes]]>>


[img[pictures/gettingready.jpg]]


<<englink [[Getting ready]]>>
[img[pictures/bilugarden.jpg]]


!!![[תומר]]:

ערב יום העצמאות התש"פ עם הודעות על הקלות אך גם על סגר, הנחתי את ננו אצל [[אימא של ג'אזז]] ויצאתי [[לשורצקי|שורצקי]], חוצה את יהודה הלוי, חולף על פני בית הכנסת ורואה בהמשך שהמתפללים בו עברו לעת עתה לגינת ביל"ו, עומדים במרחק של כשני מטרים זה מזה, עוטים מסכות [[ומתפללים בין העצים|https://www.youtube.com/watch?v=GI4GsYyofas]].




<<englink [[Praying at Bilu garden]]>>











[img[pictures/neemaney.jpg]]

!!![[יויו]]:

תכלס, נאמני הגנזך, זה עדיין רק גורה ואני.

מה שכן, כולנו [[אחיות לחושן]].




<<list-links filter:"[tag[נאמני הגנזך]]">>

<<englink [[The archive's trustees]]>>

[img[pictures/nDjOjcd5qoNrHdfU.jpg]]

!!![[יויו]]:

האחות הבכורה והביולוגית של גורה ושלי.


<<englink [[Nadia]]>>
[img[pictures/notbook.jpg]]

!!![[תומר]]:

אומנים הם לאו דווקא אלה המציגים במוזיאונים, חלקם פזורים במרחב הפתוח, ועובדים ברצינות ובשקט, כמו למשל הבחור שאני מחבב, בסדנה והחנות שהיו [[במונטיפיורי 25|https://www.notbook-studio.com/]], שם היה עולם של ניירות עם הדפסים - מדבקות, מחברות, פנקסים, קופסאות, קישוטים, תמונות ועוד דברים יפים יפים שאני אוהב לראות ולקנות ואין אותם עוד :(

<<englink [[Notbook]]>>

[img[pictures/presence.jpg]]


!!![[רוז'ה]]:

שמעתי פעם איש אחד אומר:

//הנפש היא תולדה של החיבור בין הגוף לנשמה.//

ובאמת לא פעם קשה להשלים עם הגוף או המקום אליהם נולדנו.

אני שוכב על הספה ונושם. שואף ונושף, מניח לצוואר להיות חופשי ולאוויר להיכנס אל הגוף עד שלאט יגיע לכל פינה בו. בהתחלה אני נושם לבית החזה, לאט, לגב, לסרעפת, לבטן. חום הנשימה מתחיל להתפשט בגוף ועם כל שאיפה אני עוד ועוד נותן לאוויר לרדת לאגן, לירכיים, לשוקיים, לקרסוליים, לכפות הרגלים, לאצבעות. נוכח בכל אצבע. מרגיש את המקומות הכואבים או החלשים ונושם אליהם.  אני נושם גם אל הכתפיים, הזרועות, האמות, שורש כף היד, כף היד, האצבעות, אחת אחת מרגיש את עצמי בתוכן ובגוף כולו. את כל זה אני עושה בסבלנות ובשקט ואפילו בהנאה. רק מרגיש את עצמי בתוכי, עד שאהיה אחד.











<<englink [[Presence]]>>
[img[pictures/noladnu.jpg]]


[[נולדנו|https://www.youtube.com/watch?v=Or-dVWZzS7Q]] כולנו [[כאן|גלות]] בין 1955 ל-2000.
ארבעה מאיתנו שייכים לדור הבייבי בום, חמישה לדור ה-X, יותר ממחצית לדור ה-Y ו 3 לדור ה-Z. [[פיליפ]] הוא המבוגר ביותר [[וראשל|ראשל]] היא בתנו הקטנה.



<<englink [[We were born]]>>
[img[pictures/nechama-vahetzi.jpg]]

!!![[תומר]]:

בשנים שחייתי עם [[שפי|ננו שלי ואני]], היא הכריזה יום אחד, [[שנחמה וחצי|https://nechama-vahetzi.co.il/]] זה המקום שלה, וביקשה שאוותר, ואכן כמה שנים לא נכנסתי לנחמה היקרה, שניצבת בהוד והדר כאן בגטו, על אחד העם, ככר הבימה, שדרות בן-ציון, תרס"ט ורוטשילד, ועכשיו חוזר.

<<englink [[Nehama Vahetzi]]>>
[img[pictures/neta.jpg]]

!!![[יויו]]:

עד כה לא הזכרתי את נטע, חברתי הטובה מבית הספר היסודי. ההורים שלנו היו מיודדים ולמדנו באותה הכיתה. בשנים בהן בנים ובנות לא כל כך מדברים דיברנו פחות אך היינו חברים. אהבנו לטייל יחד בשדות.

נטע היא גבוהה ויפה עם עיניים ירוקות אפורות ושתקנית. היום קוראים לזה [[אספרגר|כישורים חברתיים]]. הייתי מאוהב בה בתיכון תקופה, אבל ההתאהבויות אף פעם לא היו נהירות לי.

אחרי הצבא היא נסעה לניו זילנד, גרה שם כמה שנים, התחתנה, נולד לה בן, כשהבן היה בן 4 הוא נפטר. היא התגרשה והסתובבה בעולם.

לפני שבועיים קיבלתי ממנה מייל, בו כתבה שדיברה עם אבי ושהיא תהיה בפריז - אם בא לי להיפגש.

בטח שבא לי!!!

היא אצלנו עכשיו והיא מקסימה והיא סיפרה לנו על [[לילי]].


<<englink [[Neta]]>>
[img[pictures/nanofeature.jpg]]


!!![[יויו]]:

בשעה טובה [[לתומר|תומר]] ולי על פתיחת ננו פיצ'ר. סרטים באורך מתאים.


<<englink [[Nano feature]]>>
[img[pictures/nano-ve-ani.jpg]]

!!![[תומר]]:

את יום הולדת שנה של ננו שלי המתוקה, חגגנו באחד בנובמבר בחצר הורי ובלי אימא שפי, שלילה קודם עזבה והמריאה לאמריקה. ידעתי שהיא אמורה לצאת עם חברה לבילוי באותו ערב, ולהישאר ללון אצלה, אבל בבוקר כשקמתי חיכה לי מייל, אותו שלחה רגע לפני ההמראה. היא כתבה שהיא לא יכולה יותר. עברו כמעט שלושה שבועות מאז. טכנית אני מאורגן, אך לבי שבור על ננו שלי הקטנה שמחפשת את אימא.

<<englink [[Nano and I]]>>
[img[pictures/haazkara-shel-ima.jpg]] 

!!![[גורה]]:

יויו ואני עשינו סיבוב בן חמישה ימים (כולל המתנות בשדות תעופה יקרים בטרוף ובשיפוץ), לכבוד יום השנה השלישי למותה של אימנו.

בבית של [[ההורים|משפחת באומן]] היה כיף. שנינו התנהגנו מאד יפה, הצלחתי לא להתרגז כלל. אבא ותרצה התנהגו יפה גם. אחיותינו היו חמודות (חוץ מנדיה).

רק במונית בדרך לשדה התעופה, הנהג, שהבין שאנו גרים בפריז, התחיל להעביר עלינו בקורת והדם עלה לי לראש. יויו החזיק אותי ואמר לי בשקט, שהיום נהגי המוניות מחזיקים מצלמה במונית, אז סתמתי. כשהגענו לשדה התעופה יצאתי מהר והתרחקתי מהמונית. יויו הוציא את המזוודות. הספקתי לשמוע את הנהג צועק לי "הכל טוב, חמודה". 

<<englink [[We Went to Mom's Memorial]]>>


[img[pictures/myfoothashadenough.jpg]]

!!![[תומר]]:

השבוע בדרכי לאסוף את [[ננו|ננו שלי ואני]], מעדתי לתוך בור במעבר חצייה ברוטשילד-אלנבי. זה כאב נורא. עיקמתי את הקרסול השמאלי והמשקפיים עפו לי ושתי נשים צעירות הביטו בי בחמלה ושאלו אם הכל בסדר. "לא הכל בסדר", הרמתי את ראשי ואמרתי להן, מלטף את ברך ימין שחטפה גם כן מכה. הייתה לי עוד כברת דרך הלוך, ולפגוש את כל ההורים בכניסה ולהיות סימפטי, ולחזור הביתה, ולעלות איתה את כל המדרגות. עברו כמה שעות מאז, היא כבר נרדמה, אני על הספה צופה בסדרת מתח בריטית ושותה קפה [[של שרלי|שיח קפה]] עם עוגיות תמרים  [[שאימא של ג'אזז|אימא של ג'אזז]] העבירה אלי בקופסה. מחר בצהריים אמי תיקח את ננו ליומיים ואני סוג של שמח.

<<englink [[My foot has had enough]]>>
[img[pictures/breathing.jpg]]

!!![[רוז'ה]]:

לפעמים אני פשוט נכנס הביתה ונשכב על הספה בטרח אחד. עוברות כמה דקות עד שאני שם לב שאפשר לחלוץ את המגפיים, להסיר את הגלימה, להניח איזו כרית מתחת לראש, ואולי אף מתחת לברכיים אחת או שתיים, להניח לצוואר להיות חופשי ולהתחיל לנשום. פנימה והחוצה. בשקט ובנחת. שאיפה שתיים שלוש ארבע, נשיפה שתיים שלוש ארבע. מתרכז בהכנסת והוצאת האוויר ובספירה וחוזר להיות בנאדם. 


<<englink [[Breathing]]>>
[img[pictures/neshama.jpg]]

!!![[נשמה]]:

נפטרתי  לפני  מספר שנים, ולאחר מותי הבנתי, שלעת עתה, זהו מרחב המחייה של נשמתי. לא אוכל להגביה עוף אל מחוזות המקור שלי, ואף אצטרך להיוולד שוב בארץ. 

הייתה לי אפשרות בחירה מסויימת, וביקשתי להיוולד רק אחרי שתסתיים מלחמת העולם הבאה. בקשתי אושרה, ובינתיים אני מסייעת לנשמות שלא רוצות לבוא שוב לעולם הזה, למצוא מקום מיטבי להיוולד בו. כמו כן אני משמשת, כמלאך שומר מחליף מסוג רפאל.

בגלגול האחרון שלי הייתי מטפלת, וזו הנטייה הטבעית שלי. היה לי גלגול נהדר ומלא בכל טוב. הורים נהדרים, משפחה אוהבת, ילדים נפלאים, אהבת גבר, הצלחה מקצועית. הייתי נורא "בסדרית". דבר אחד לא היה שם ממש - שחרור. אחזתי, שמרתי. הייתי זהירה ומדודה. היה לי קל, כי האמנתי במעשי והייתי חרוצה מאד. בשל אלה, התיקון הבא שלי הוא שחרור ואמונה - וזה גלגול לא פשוט, אך משחרר.






<<englink [[נשמה]]>>



[img[pictures/natav.jpg]]

!!![[תומר]]:

עד לפני שנה וחצי כמעט, זה מה שהייתי - נתב תמונה [[בטלוויזיה|מערכת תל אביב]]. כלומר זה שלפי הוראות הבמאי מעלה את תמונת המצלמה המבוקשת, הכותרות, בחלונות, קטעי הוידאו... אני אוהב את הישיבה המרוכזת והשקטה בשידור חי אצל הקונסולה מול המסכים בקונטרול הגועש והקר כזיכרון מתוק.



<<englink [[Technical director]]>>
[img[pictures/sabich29.jpg]]


!!![[תומר]]:

כל אחד לוקה בהשכלתו פה ושם, עד כדי שלא מכיר את [[הסביח של אפי|https://timeout.co.il/%D7%A1%D7%91%D7%99%D7%97-29-%D7%90%D7%A4%D7%99/]]. להגנתי אומר שמעולם לא טעמתי [[סביח|https://he.wikipedia.org/wiki/%D7%A1%D7%91%D7%99%D7%97]] לפני אפי  ובטח שלא [[עמבה|https://he.wikipedia.org/wiki/%D7%A2%D7%9E%D7%91%D7%94]]. פשוט לא הייתי מסוגל. אך קרה שלפני כמה שבועות בדרכי [[לדליה|החדר של דליה]] ראיתי [[שפיקוק היקרים|פיקוק]] פתחו חלון, אליו ניגשתי מיד ובלי להתבלבל הזמנתי מנה בלי עמבה. הפיתה מולאה בקפידה בפרוסות חציל דקות מטוגנות, ירקות קצוצים יפה יפה, ביצה קשה בחום בהיר, וכל מה שהסביח דורש. זו הייתה ארוחת בקר נפלאה ומרגיעה והתמכרתי. בשבוע שעבר הבחור שבדלפק הציע לי שאולי כדאי לי לנסות עמבה. הסכמתי לטיפה. הוא שם לי ממש טיפה על קצה של פרוסת חציל. זה היה מעניין ומוזר. ביקשתי עוד קצת. הוא הוסיף בדיוק כפי שביקשתי. אני עדיין לא יודע אם אני אוהב עמבה. אפילו אולי אני לא אוהב עמבה. אבל אני אוהב מאד סביח 29.




<<englink [[Sabich 29]]>>
[img[pictures/savta-shelanu.jpg]]

!!![[יויו]]:

זו תמיד תישאר תעלומה, למרות שיש אפשרויות לתשובה, אבל זו בהחלט שאלה - איך מאדם שמח, טוב לב וסבלני כמו סבתא יצאה אישה כמו [[אימא שלנו|דינה זכרה לברכה]].




<<englink [[Our grandma]]>>

[img[pictures/closers.jpg]]

!!![[גורה]]:

לקראת סוף הפרק האחרון של [[אחוזת דאונטון]] המושלמת, רגע לפני החתונה סוף סוף של ליידי אדית', יושבות סבתא קרולי ובתה ליידי רוזמונד, הליידי פונה אל אימה ואומרת:

//
לא תמיד ציפינו לסוף טוב.//

וסבתא קרולי עונה:

//הסיכון הוא גדול, אבל עם קצת מזל הם יהיו מאושרים למדי, שזו הגרסה הבריטית לסוף טוב.//

הסגיר שקורה בין חג המולד לערב השנה החדשה, הוא סוף נפלא, הקושר את כל קצוות חוטי העלילה של כל אותם גיבורים אותם ליוינו לאורך 6 עונות דרך מלחמת העולם הראשונה, השפעת הספרדית והשינויים שהגיעו עימם. 

סגיר הוא לא סוף כי אם רק נקודה בזמן עד אליה סופר לנו הסיפור, ואני לא יכולה שלא להתייחס עכשיו לרגע בו נמצאים אנו - בני האנוש אשר על פני כדור הארץ - רגע בימי קורונה - בו הכפר הגלובלי נשלט על ידי גיבורי ריאליטי - ולשאול:

 אולי אנו בני Toontown נקבל לעת הזו סגיר ראוי לנו, כמו זה של החברים שלנו [[במי הפליל את רוג'ר ראביט|https://www.youtube.com/watch?v=5GrUwl1OtoA]]


<<list-links filter:"[tag[סגירים]]">>



<<englink [[Closers]]>>
[img[pictures/neworder.jpg]]

!!![[יויו]]:

אני אוהב שהדברים גדולים ממני, בעיקר בזמנים בהם [[רוח חדשה|https://www.youtube.com/watch?v=KpeZmEC-16w]] ממלאה אותי, ויש בי כח, ואני עושה דברים ומחייך. 


<<englink [[New order]]>>
[img[pictures/sdarot.jpg]]

!!![[יויו]]:

לאחר חיפושים, מגיע רגע בו [[לאונרד|https://www.imdb.com/name/nm0001295/?ref_=ttfc_fc_cl_t28]], השמאן האמריקני ילידי האזורי ב//חשיפה לצפון//, מבין ש"הסיפור המרפא" של האדם הלבן הוא הקולנוע. על פי ההגיון הזה, סדרות זה בריא, וצפיית בינג' זה [[חבלז שוכו קר]], שלא לדבר על זה שאחרי 12 עונות של [[האנטומיה של גריי]] אני כשיר להיות רופא מנתח.


<<list-links filter:"[tag[סדרות]]">>

<<englink [[TV Series]]>>







[img[pictures/sultana.jpg]]

!!![[יויו]]:

סולטנה נולדה ביוון, ובגיל שנה הגיעה עם אימה וסבתא לפריז, בעקבות גבר שהתאהב בסבתה. את אביה מעולם לא פגשה.

כשסולטנה הייתה בת 12, אימה התאהבה בגבר בלגי, ונסעה לחיות איתו בבלגיה. סולטנה העדיפה להישאר עם סבתה בפריז, וביקרה את אימה מידי קיץ.

היא בילתה שעות ארוכות עם סבתה במטבח, גם כאשר הכינה שיעורים או עשתה עבודות יד. 

כשנישאה בגיל 25, כבר הייתה אחרי לימודים לתואר ראשון באומנות, ואחרי טיול ארוך באירופה. אחרי הלידה הראשונה התחילה ללכת לקורסים שונים של בישול ואפייה, וכשהבנים גדלו התחילה לעבוד במסעדות.

היא בת 56, נשואה לז'אן פול ואם לשני בנים, סרז' (בן 30) וקמיל (בן 28)



<<englink [[Sultana]]>>


[img[pictures/sultana-veyasmin.jpg]]

!!![[יויו]]:

בתחילת השבוע, נכנסה סולטנה  [[לקוסקוס|הקוסקוס]], על פניה חיוך מאושר, בידיה תבנית ואמרה בקול צוהל:

"לקמיל, הצעיר שלי, נולדה אתמול תינוקת יפהפיה. הם קראו לה יסמין, ואני סבתא" 

צהלנו ורקדנו ושרנו ואכלנו [[מעוגת הסולת|עוגת סולת]] המעולה


<<englink [[Sultana and Yasmin]]>>





[img[pictures/sonya.jpg]]

!!![[גורה]]:

סוניה המהממת היא אישה הונגריה. חלומה של כל אחות!! היא [[ומרק|מרק]], בעלה, היגרו לפריז כשהיו כבר בני חמשים, בעקבות שני בניהם. 

שניהם דיברו צרפתית כשפה שניה מגיל צעיר.

היא בשלנית מופלאה. על ראשה נישא גולגול ענקי, היא די גבוהה והיא הכי חמודה בעולם.

לארוחת הכריסמס היא הכינה [[צלי בשר עם תפוחי אדמה]], [[פנטונה]], ו-[[ריגו יאנצ'י]].

בזמן האחרון התחילו להגיש [[בקוסקוס|הקוסקוס]], [[פודינג אורז]], שסוניה מכינה.

<<englink [[Sonia]]>>
[img[pictures/soosim-ledevek.jpg]]

!!!''<<tag "בחוות החיות">>, כשהסוסים הופכים חסרי תועלת, החזירים והכלבים שולחים אותם  לבית החרושת לדבק.''

<<englink [[Horses to Glue]]>>

[img[pictures/steve-buscemi.jpg]]

!!![[יויו]]:

הדבר שהפתיע אותי ביותר לגבי [[סטיב בושמי|http://m.imdb.com/name/nm0000114/?ref_=m_nmfm_nm]] הוא, שהוא ממש "חוטא" [[בבימוי|http://m.imdb.com/name/nm0000114/filmotype/director?ref_=m_nmfm_2]]  של  סרטים ופרקים של סדרות.

הוא אחד השחקנים שאני הכי אוהב בכל לבי, והוא נשמה ואחות.

הוא נולד ביום שישי ה-13 של דצמבר 1957, הוא היה כבאי במחלקת איטליה הקטנה של עיריית ניו יורק 4 שנים. הוא שיחק ב 157 סרטים, הוא הפיק 11 סרטים. הוא בפס הקול של 8 סרטים, הוא כתב 3 תסריטים, הוא שיחק ב 11 סרטים של [[אדם סנדלר|https://www.cinemablend.com/new/Quiz-Guess-Adam-Sandler-Movie-By-Steve-Buscemi-Character-70254.html]], 6 סרטים של [[האחים כהן|https://en.wikipedia.org/wiki/List_of_frequent_Coen_Brothers_collaborators]]. הוא היה מופתע כשהוצע לו התפקיד הראשי [[באימפריית הפשע|http://www.imdb.com/title/tt0979432/]] עליו זכה [[בגלובוס הזהב|https://www.youtube.com/watch?v=OGFJ6G7UmD8]]. הוא [[מת ב 20 סרטים|http://www.imdb.com/list/ls000805145/]], כולל את [[הסופרנוס]], אבל הוא הכי אהב למות [[בביג לבובסקי|https://www.youtube.com/watch?v=CWtby5WqHdM]] כולל סיבת המוות.

אפשר לקרוא [[פרטי טריוויה נוספים|http://m.imdb.com/name/nm0000114/trivia?ref_=m_nm_dyk_trv]] אודות האיש. [[הנה|https://www.youtube.com/watch?v=BqVrpFXXdB0]] ראיון משעשע כבונוס, ושיהיה סטיב המתוק חזק בריא ושמח.


<<englink [[Steve Buscemi]]>>
[img[pictures/stalin.jpg]]




!!![[יויו]]:



כדי להגיע למשרד של סטלין, השרת של [[געזונטהייטס]] שנמצא [[במרתף|המרתף של סטלין]] הבניין, צריך לעבור דרך מכשולים שמבטיחה אי הגעה. הוא מפעיל מתוכו, בין השאר, [[שרת מקומי|שָה נוּאָר]].



<<englink [[Stalin]]>>

[img[pictures/sipurim-amitiim.jpg]]

!!![[פיליפ]]:

הרמנו את [[הכפפה|האסיפה הראשונה]].


[[:)|https://www.youtube.com/watch?v=Zu7UolUTh7s]]



<<list-links filter:"[tag[סיפורים אמיתיים]]">>


<<englink [[True stories]]>>

[img[pictures/stories-from-the-future.jpg]]

!!![[מינדה]]:

השנה היא 2026, ואני מתגוררת כאן כבר 6 שנים.

<<list-links filter:"[tag[סיפורים מהעתיד]]">>




<<englink [[Stories from the future]]>>



[img[pictures/sipoorim-lenorma.jpg]]

!!![[אווה]]:

נורמה היא אימו של [[פיליפ]] אהובי.

[[היא וג'ו|ג'ו ונורמה]], בעלה, שניהם ז"ל, אימצו אותי כשהייתי בת 18, ממש כשהגעתי לארץ [[מהנחלה|הנחלה בה גדלתי]] חבולה ובודדה.

סיפרתי לה את סיפור חיי, שחלקים ממנו כתובים [[בכוכב המשאלות בעל תשע הצלעות|כוכב המשאלות בעל תשע הצלעות]], לפרטי פרטים. נורמה הייתה אז בת 60.
מה שהייתי רוצה להגיד [[בסיפור האמיתי הזה|סיפורים אמיתיים]], זה שכל העניין הוא, [[לשתות משהו קר בלב מדבר|https://www.youtube.com/watch?v=DlzMlFXzfnY&spfreload=10]].



<<englink [[Stories I`ve told Norma]]>>
[img[pictures/salat-chasa.jpg]]

!!![[יויו]]:

דבר ראשון חשובה החסה, שצריכה להיות טרייה, קשה ונקייה מכל מיני [[חילדון|http://www.ynet.co.il/yaan/0,7340,L-224500-PreYaan,00.html]].

התחתית שלה צריכה להיות בהירה.

מפרקים אותה, מעיפים את העלים הפחות מוצלחים, באם יש. שוטפים, מסננים ומייבשים.

קורעים את העלים לחתיכות.

מוזגים מעל שמן זית (כמה כפות), חומץ תפוחים (כפית) ומלח גס (קורט), מערבבים עם כפות הידיים בעדינות מהצדדים פנימה ומגישים.



<<englink [[Lettuce salad]]>>
[img[pictures/salat-melafefonim.jpg]]

!!![[יויו]]:

* פורסים שלושה-ארבעה מלפפונים לפרוסות עבות.
* פורסים בצל קטן סגול לפרוסות דקות, ומפרקים אותו מעל.
* קוצצים חופן שמיר ומפזרים מעל
* בקערה קטנה מערבבים: רבע כוס שמן זית, כפית סוכר, כף חומץ, קורט מלח, קורט פלפל שחור ויוצקים מעל.
* מערבבים מהחוץ לפנים ומגישים.


<<englink [[Cucumber salad with red onion and dill]]>>
[img[pictures/salat-agvanyot.jpg]]

!!![[אווה]]:

* לשניים עד ארבעה אנשים, (כלומר, תלוי מה עוד כוללת הארוחה), שוטפים ארבע עגבניות קטנות וחותכים אותן כמו שאוהבים לתוך קערה.
* כותשים פנימה שן שום.
* יוצקים שמן זית (משהו כמו שלוש כפות, שזה רבע כוס).
* מפזרים קורט מלח גס.
* מוסיפים כף-שתיים של מיץ לימון סחוט.
* מערבבים ומגישים מיד או עד שעתיים מתום ההכנה.




<<englink [[Tomato salad]]>>
[img[pictures/salat-adashim.jpg]]

!!![[אווה]]:

* מבשלים כוס עדשים חומות עד להתרככות. (20-30 דקות)
* קוצצים בצל סגול בינוני
* קוצצים שני חופנים של כוסברה.
* מסננים את העדשים המבושלות.
* בתוך קערה מערבבים את העדשים המסוננות, הבצל הקצוץ והכוסברה.
* מתבלים בשמן זית, מיץ מחצי לימון ומלח ים גס.
* אפשר להגיש מיד או מאוחר יותר או לאפסן במקרר ולשמור עד ארבעה ימים.


<<englink [[Lentil salad]]>>
[img[pictures/salat-shorashim.jpg]]

!!![[אנה]]:

באופן כללי' הסלט הזה עשוי מירקות שורש, שהם ירקות קשים. אחת הדרכים לבדיקת טריותם של אלה, היא מידת קשיותם. רצוי שיהיו קשים ובעלי עור מתוח.
לארוחה של שניים- שלושה סועדים מבשלים:
 סלק אחד עד שהוא רך ומניחים בצד.
שוטפים, קולפים וחותכים [[ג'וליאנים|https://en.wikipedia.org/wiki/Julienning]] לתוך קערה מ:
גזר אחד
קולורבי אחד
שומר אחד
שתי צנוניות

מתבלים את מקלוני השורשים בשמן זית, לימון, מלח ופלפל שחור, ומערבבים בעדינות עם שתי כפות או בעזרת כפות הידיים, כאשר האצבעות משמשות כשני מזלגות רחבים.

לוקחים צלחת שטוחה וגדולה יחסית. 
פורסים את הסלק לפרוסות דקות אותן מסדרים במרכז הצלחת, צמודות זו לזו.

על ירקות השורש יוצקים שמן שומשום ומערבבים בעדינות שוב.

מניחים על פרוסות הסלק ערימה מהסלט, מפזרים מעל זרעי שומשום שחור, ומגישים.


<<englink [[Roots salad]]>>
[img[pictures/selek.jpg]]

!!![[אווה]]:

שתי הערות לפני המתכון עצמו:
1. ירק טוב, כדאי שיהיה צעיר, מתוח ובוהק.
2. יש כל מיני דרכים לחתוך, כמו שאפשר להוסיף עשבי תיבול קצוצים ולהשתמש בעוד תבלינים. אני כתבתי את המתכון הפשוט כפי שהכנתי אותו לארוחת הכריסמס, שבה לא היה כל צורך בהעמסת מידע.

* מבשלים שניים-שלושה סלקים עד שהם רכים, ונותנים להם להגיע לטמפרטורת החדר פלוס. (הפלוס, זה כי ככל שטמפרטורת הסלק תהיה חמה, כך שמן הזית והמלח הגס יתחברו אליו טוב יותר.)
* כשהם חמימים קולפי אותם. (הרוב מתקלך כמעט מעצמו ככל שהסלק מבושל).
* חותכים לפלחים.
* יוצקים שמן זית ובוזקים מלח ים גס.
* מערבבים בעדינות ומגישים, וזה גם נשמר כמה ימים במקרר.


<<englink [[Sliced beet]]>>
[img[pictures/better-call-saul.jpg]]

!!![[יויו]]:

רוצה לומר, אפשר לסמוך על ג'ימי מק'גיל, שיהפוך [[לסול גודמן|https://www.imdb.com/title/tt3032476/]], ושזו  תהיה אחלה דמות לאחלה סדרה.



<<englink [[Better Call Saul]]>>
[img[pictures/spike-lee.jpg]]

!!![[גורה]]:

כמובן שיויו הכיר לי את [[ספייק|http://www.imdb.com/name/nm0000490/]] - הענק בלשון המעטה.

ואני אומרת שפשוט לראות: 

1. [[y'all take a chill|https://www.youtube.com/watch?v=H-Jks6rIhMY]]

2. [[לא יכולה בלי זה|http://www.imdb.com/title/tt0091939/?ref_=nmbio_mbio]] 

3. [[עשה את הדבר הנכון|http://www.imdb.com/title/tt0097216/?ref_=nmbio_mbio]]

4. [[השעה ה-25|http://www.imdb.com/title/tt0307901/]]

5. [[שחור על לבן|סרטים]]

<<englink [[Spike Lee]]>>
[img[pictures/ashipineternity.jpg]]


!!![[תומר]]:

לפני יומיים מלאו חמש שנים לסגירת [[רשות השידור|מערכת תל אביב]], ולזכרה צילמתי את המנופים שבונים את השכונה שתיכף תהיה שם כפי שנראים [[ממרפסת הכביסה|חלונות]].




<<englink [[A ship in eternity]]>>
[img[pictures/spiral.jpg]]

!!![[אירי]]:

[[אצל מרתה גרהם|https://en.wikipedia.org/wiki/Martha_Graham]], התנועה הספירלית של הגו, היא אחת מתנועות הבסיס [[בטכניקת המחול שיצרה|https://en.wikipedia.org/wiki/Graham_technique]].

בישיבה, התנועה הספירלית מתחילה מהאגן, ממשיכה עם בית החזה ואחריו [[הצוואר|צווארים]].

אצל מרתה לא נועלים נעלי בלט, הזרועות פתוחות, כף הרגל הקדמית ב"פלקס".


מועילה מאד החשיבה [[האלכסנדרונית|שיטת אלכסנדר]], להפחתת נזקי קשיחות [[הטכניקות הקשוחות|איזדורה דאנקן]].


<<englink [[Spiral]]>>
[img[pictures/skateparkinpotsdam.jpg]]

[[אימא של ג'אזז]]:

בסתיו שעבר, לפני כמעט שנה, פרנזי, חברה של [[ג'אזז|Jazz]], שאלה אם אוכל לצייר את הסקייטפארק שהרסו לחברה ולאחיו וזה שניהם שרוקדים יחדיו איש איש על סקייטו.

<<englink [[Skate park in Potsdam]]>>
[img[pictures/sratim.jpg]]

!!![[יויו]]:

[[הסרט|https://he.wikipedia.org/wiki/%D7%A7%D7%95%D7%9C%D7%A0%D7%95%D7%A2]] הכי טוב שראיתי בזמן האחרון הוא [[שחור על לבן|https://www.imdb.com/title/tt7349662/]] של [[ספייק לי]]. זה קרה לפני שבועיים בערך ואני עדיין נזכר בו פה ושם ומתמוגג. כעת פברואר 2019. הכל משתנה כל הזמן. אתה יכול שיהיה לך מסך ענקי ומערכת סאונד מטורפת ולצלול בכיף לגמרי במיטה שלך ולעוף.


<<list-links filter:"[tag[סרטים]]">>

<<englink [[Films]]>>

[img[pictures/stav.jpg]]

[[תומר]]:

בשליש השלישי של אוגוסט 2019, מחכה למונית שתיקח אותי לתחנת רכבת נתניה, אחרי ביקור אצל רופא השיניים שבכפר.



<<englink [[Autumn]]>>
[img[pictures/agvanyot-batanoor.jpg]]

!!![[יויו]]:

במצב הרוח הזה הקפוא הצלחתי להוציא את העגבניות הקטנות מהמקרר ולשטוף אותן למסננת שהנחתי ליד הכיור. למחרת היו לי עוד כ-30 דקות של התעלות בהן כשחיכיתי [[שהכרישה והמנגולד|קודם כל כרישה ומנגולד]] ייצלו חציתי אותן לשניים, ערבבתי אותן עם שמן זית ומלח ים גס והכנסתי אותן לתנור לחצי שעה בחום בינוני. בסוף הוספתי להן טחינה גולמית, מעט בלסמי, עוד קצת שמן זית ומלח ויצא ממרח עגבניות עם טחינה.


<<englink [[Ovened tomatoes]]>>
[img[pictures/ugat-teenim.jpg]]

!!![[אווה|אווה כהן]]:

הרבה פעמים אפשר לשמוע אנשים אומרים: אפייה זה לדייקנים ובישול זה ליצירתיים. 

לא אתווכח עם אותם האנשים, אבל אומר: 

1. הרי בכל זאת נוצרו אי אילו קינוחים במהלך ההיסטוריה האנושית

2. היו קינוחים שנולדו מתוך כשלים שונים, כמו מוטציות חיוביות, והיו את אלה ששינו מרכיבים במתכון או חיברו מתכונים וכד' (למשל, כל התאנים על העץ בשלו באחת)

את המתכון הבא עשיתי על המתכון של [[העוגת שזיפים|עוגת שזיפים]]. מה שהשתנה הוא, ששמתי יותר חמאה בבצק והוצאתי את השמנת החמוצה, ועל העוגה שמתי במקום שזיפים תאנים, אותן ערבבתי עם קינמון, סוכר חום,שקדים טחונים ומיץ לימון. החלטתי גם שהפעם צריך יותר מהבצק בכל עוגה ומיליתי כמעט עד הקצה, שתי תבניות מאורכות אך נמוכות. נשאר לי קצת "חומר", אותו מזגתי לשתי תבניות אישיות לסופלה, לכל אחת מהן הוספתי כפית שמנת חמוצה על הבצק, ומעל שתי חתיכות של תאנים.

גורה ציירה את התמונה, בה נראית רק תבנית אישית אחת, כי את השנייה אכלתי לפני שהיא צילמה אותן. :) 

החומרים:

לבצק:

* 340 גרם חמאה רכה
* כוס סוכר פחות שתי כפות
* שקית סוכר וניל
*4 ביצים
* כוס ו-1/2 קמח
* 1/2 כפית אבקת אפייה
* 60 גרם שקדים טחונים 

מעל:

* שמנת חמוצה (אם רוצים)
* שש תאנים בשלות אך לא מידי, שטופות ופרוסות לרבעים או שישיות, מעורבבות עם כף סוכר חום,
רבע כוס שקדים טחונים, 2-3 כפות מיץ לימון, חצי כפית קינמון טחון

אופן ההכנה:

1. מחממים תנור ל160 מעלות ומכינים 2 תבניות אנגליש נמוכות ושתי תבניות סופלה אישיות.

2. בוו הגיטרה של המיקסר מערבלים במהירות נמוכה את החמאה, הסוכר וסוכר הוניל עד למשחה חלקה

3. מוסיפים את שאר החומרים וממשיכים לערבל במהירות נמוכה, עד שהתערובת חלקה

4. יוצקים מהתערובת לתוך שתי התבניות המאורכות (כמעט מלא), ואת מה שנשאר, אם נשאר, לתבניות אישיות

5. בתבניות האישיות אפשר להוסיף  כפית שמנת חמוצה במרכז כל תבנית.

6. מניחים את פרוסות התאנים

7. אופים 20-30 דקות - עד שהעוגות מזהיבות.


<<englink [[Fig cakes]]>>

[img[pictures/ugiyot-limon.jpg]]

!!![[אווה|אווה כהן]]:

החומרים:

* 200 גרם חמאה
* 3/4 כוס סוכר
* 2 חלמונים
* גרד קליפת 2 לימונים
* 2 כפות מיץ לימון
* 3כוסות קמח
* כפית אבקת אפייה

אופן ההכנה:

1.בתוך מעבד מזון בעל להב פלדה מערבבים את החמאה והסוכר עד לקבלת משחה חלקה.   

2. מוסיפים פנימה את יתר החומרים ,ומעבדים עד לקבלת כדור בצק אחיד.

3. עוטפים את הבצק בניילון נצמד, ומקררים חצי שעה לפחות.

4. מרדדים את הבצק לעלה בעובי של ס"מ וחצי, קורצים צורות (אפשר כוכבים ,לבבות וכו'), מסדרים בתבנית מרופדת בנייר אפייה, מפזרים מעל סוכר

5. אופים ב-170 מעלות כ-10-20 דקות (שהאפיות יהיו אפויות אך בהירות)

6. מקררים ושומרים בכלי אטום.

<<englink [[Lemon cookies]]>>
[img[pictures/ugiyot-kimel.jpg]]

!!![[אווה]]:

לפני ההכנה:
כדי שבצק  יצא פריך, כדאי לשמור שהחמאה תהיה קרה, ובכלל -טמפרטורה נמוכה תמיד עדיפה במטבח - ולעבד מעט ככל האפשר.

מחממים את התנור ל-170 מעלות צלזיוס.

מכינים בצק פריך מ:

350 גרם קמח

200 גרם חמאה קרה חתוכה לקוביות

גביע שמנת חמוצה

* במעבד מזון עם להב הפלדה, או במערבל חשמלי עם וו הגיטרה מערבלים, ומכבים מיד עם קבלת כדור בצק אחיד.
* מוציאים את כדור הבצק אל משטח העבודה.
* לקמח הכי מעט שאפשר - הבצק אמור לצאת חלק ונח לעבודה.
* משטחים מעט את הבצק, מפזרים מעליו כף מלח ושתי כפות זרעי קימל, ולשים אותם פנימה בכמה פעמים.
* משטחים בתבנית קטנה את הבצק למשטח בגובה סנטימטר, מסמנים בעדינות קוביות לאורך ולרוחב (רק לסמן, לא עד הסוף!). 
* אופים 20-25 דקות - עד להזהבה קלה, ומוציאים מהתנור.
* כמה דקות לאחר ההוצאה מהתנור, מעבירים סכין חדה וחלקה לאורך החריצים המסומנים, ונותנים לעוגיות להתקרר.
* אפשר לאכול מיד, או לאפסן בכלי אטום כמה ימים.



<<englink [[Caraway cookies]]>>
[img[pictures/cinnamoncookies.jpg]]

!!![[אווה|אווה כהן]]:

אולי ברצף המחשבות השני או השלישי של אחרי התעוררות הבקר, חלפה בראשי תמונה של עוגיות הקינמון שאני נוהגת לעשות, רק שהן משובצות בפתיתי שוקולד. לא שזו כזו הברקה אבל זה יפה, והכי יפה היה לפזר אותם על הבצק המרודד, לרדד עם מינימום לחץ ולראות איך הם נכבשים לתוך הבצק. המתכון אינו כולל את הפתיתים והם נתונים לבחירה.

החומרים:

*200 גרם חמאה קרה חתוכה לקוביות
*8 כפות סוכר
*2 חלמונים
*2 כפיות אבקת קינמון
*2 כוסות ו-1/4 קמח
*1/2 כפית אבקת אפיה
 

לפיזור לפני האפייה:

 *3 כפות סוכר
* 3 כפות קינמון

אופן ההכנה:


1.	לחמם תנור ל170 מעלות 

2.	במעבד מזון עם להב הפלדה לאחד את כל החומרים לבצק, לעטוף בניילון נצמד  ולקרר חצי שעה-שעה

3.	לרדד, לקרוץ ולהניח על תבנית מרופדת בנייר אפייה

4.	לפזר מעל כל עוגייה סוכר מעורבב בקינמון ולאפות 15-20 דקות

5.	כשמגיעות לטמפרטורת החדר, אורזים בכלי אטום.


<<englink [[Cinnamon cookies]]>>
[img[pictures/chocolate-chips.jpg]]

!!![[יויו וגורה]]:

החיים נתנו לנו מתנה, את [[תרצה|אבא יואל]]. //אוהבים אותך תרצה!//

החומרים:

*200 גרם חמאה קרה חתוכה לקוביות
*3/4 כוס סוכר לבן
*1/2 כוס סוכר חום
*כף סוכר וניל 
*2 ביצים
*2 כוסות קמח
*כפית אבקת אפייה
*קמצוץ מלח
*300 גרם שוקולד צ'יפס

אופן ההכנה:

1. במערבל חשמלי עם להב גיטרה  מערבלים עד למשחה חלקה את החמאה והסוכר (חום, לבן ווניל)

2. מוסיפים את הביצים, הקמח, אבקת האפייה והמלח עד שמתקבל כדור בצק אחיד

3. מוציאים את קערת המערבל מהמכשיר, יוצרים גומה ומערבבים לתוכה עם היד את פתיתי השוקולד

4. כשכל הפתיתים נמצאים בתוך הבצק מקררים אותו 20 דקות

5. מחממים תנור ל 170 מעלות צלזיוס, מרפדים שתי תבניות של התנור בנייר אפייה

6. יוצרים כדורים בקוטר של 2-21/2 סינטמטרים, משטחים אותם מעט, מניחים על נייר האפייה במרחק של 1 סנטימטר בערך אחד מהשני ואופים כ-20 דקות


<<englink [[Chocolate chip cookies]]>>
[img[pictures/bakedcheesecake.jpg]]


!!![[אימא של ג'אזז]]:

מאחר שאני מעלה את המתכון הזה כאן יומיים לפני ליל הסדר התשפ"ב, אני מציינת כי עוגה זו, באם הבסיס כשל"פ אזי העוגה כולה  כולל הקרם, אינם כוללים חמץ. 

כמו כן, העוגה כוללת פודינג אינסטנט וניל, מוצר שהוא לא-לא גדול אולי ברמה של אבקת מרק, ועדיין היא עוגה אהובה ביותר.

בהצלחה


1. בסיס:

החומרים:

100 גרם ביסקוויטים מפוררים (פטי בר,אבל אפשר גם אחרים כולל כשרים לפסח)

100 גרם חמאה מומסת

אופן ההכנה:

מערבבים את השניים ומשטחים לתוך תבנית בקוטר 26 או 28 (אפשר גם לתבנית מלבנית), ומניחים במקפיא עד שהתערובת לאפייה מוכנה

2.העוגה:

מחממים תנור ל150 מעלות צלזיוס

6 ביצים 

כוס סוכר

750 גרם גבינה תשעה אחוזים
(אבל אפשר גם גבינות רכות חלקות אחרות גם אם הן שמנות יותר, כמו מסקרפונה, ריקוטה או גבינת שמנת)

מיכל שמנת חמוצה

רבע כוס מיץ לימון

4 כפות פודינג אינסטנט וניל (שטוחות עד מעט מלאות יותר)

4 כפות קורנפלור  (שטוחות)

אופן ההכנה:

מחממים את התנור ל170 מעלות

בקערת המערבל החשמלי מקציפים את הביצים עם כוס הסוכר במהירות גבוהה עד לתערובת בהירה תפוחה וחזקה.

בקערה גדולה טורפים במטרפה ידנית את הגבינות והשמנת, מוסיפים קורנפלור ופודינג, טורפים אותם פנימה עד שהתערובת חלקה, מוסיפים את הלימון וטורפים פנימה.

אל תערובת הגבינות מוסיפים את הביצים המוקצפות וטורפים בעדינות עד שהתרובת אחידה.

מוציאים את התבנית עם הביסקוויטים מהפריזר, ומוזגים את תערובת הגבינה בעדינות מעל.

מכניסים לתנור לשעה בערך.

עד שהעוגה זהובה ועדיין מעט רכה.

מצננים לטמפרטורת חדר.

3.קרם:

כוס שמנת מתוקה

כוס חלב

4 כפות שטוחות של פודינג אינסטנט וניל(באריזות תוצרת הארץ בחבילה פודינג כזו יש שמונה כפות)

מערבלים את שלושת המרכיבים בקערת המערבל החשמלי במהירות הנמוכה ביותר, עד שנוצר קרם חלק ללא בועות ונוזלי למדי אותו מוזגים בעדינות על העוגה האפויה ובטמפרטורת החדר (הקרם יתקשה במקרר, ויהפוך לשכבה חלקה ויפה), מכסים ומכניסים בעדינות למקרר לשש שעות לפחות לפני ההגשה


(העוגה טובה ארבעה חמישה ימים במקרר ולא מומלץ להקפיאה)





<<englink [[Baked Cheesecake]]>>

[img[pictures/birthday-cake.jpg]]

!!![[אווה|אווה כהן]]:

מאי הוא חודש יום ההולדת של [[איריס|איריס הבת]] ושלי, ולרוב אני מכינה לה טורט עם קצפת ותותים, רק שהשנה התותים כבר ממש סמרטוטים ומתאימים לריבה או רטבים בלבד

אז במקום השתמשתי באננס, קיווי, דובדבני אמרנה מקופסה ותותי עץ וזה היה מוצלח.

אופן ההכנה:

1. מכינים [[טורט]] בתבנית 26 ונותנים לה להתקרר

2. מקציפים עד קצפת יציבה 2 מיכלי שמנת מתוקה עם ארבע כפות שטוחות של סוכר

3. מכינים פרות נקיים וחתוכים

4. בעזרת סכין לחם חוצים את העוגה לרוחבה, ומניחים את חלקה התחתון בתבנית

5. מורחים חצי מכמות הקצפת ומקשטים בפרות

6. מניחים מעל את החצי השני של העוגה

7. מורחים את החצי השני של הקצפת ומעל מקשטים בשאר הפרות

8. מניחים בכלי אטום ומקררים 7-8 שעות לפחות




<<englink [[Birthday cake]]>>
[img[pictures/ugat-moka.jpg]]


!!![[אווה]]:

עוגת מוקה: תבנית עגולה 28 או תבנית מרובעת בהתאמה.

החומרים  לכל העוגה:

* 50 גרם פקאנים
* שני מיכלי שמנת מתוקה
* 2 כפיות נס קפה
* 11כפות סוכר
* 200 גרם חמאה
* 3חלמונים
* כוס ו 2 כפות קמח
* כפית אבקת אפיה
* 100 גרם שוקולד מריר
* כף וחצי מים


שלב א': 

(הכנת הקצפת מוקה שצריכה לנוח במקרר לפחות שש שעות)

* להרתיח 2 כוסות שמנת מתוקה + 2 כפיות נס קפה עם 4 כפות סוכר ולקרר שש שעות לפחות

שלב ב': 

(בסיס מוקה)

* 50גרם פקאנים טחונים
* חצי כוס סוכר
* 100 גרם חמאה
* חלמון אחד
* כוס קמח
* חצי כפית אבקת אפיה

אופן ההכנה:

1. טוחנים פקאנים וסוכר במעבד מזון 

2. מוסיפים את החמאה וממשיכים לעבד עד לקבלת משחה חלקה

3.  מוסיפים ביצים קמח ואבקת אפייה ומעבדים עד כדור חלק .

4.משטחים לבסיס בתוך תבנית מרופדת בנייר אפייה ואופים כעשר דקות ב 170 מעלות צלזיוס .

שלב ג': 

(בסיס פאדג')

* 100גרם שוקולד
* 2 חלמונים
* כף וחצי מים
* 100 גרם חמאה
* 3 כפות סוכר
* 2כפות קמח

אופן ההכנה:

1. ממיסים את השוקולד עם המים תוך בחישה

2. מוסיפים לשוקולד תוך טריפה את החלמונים

3. מקציפים את החלבונים עם חצי כוס סוכר (6 כפות)
 
4. מקפלים שוקולד עם קצף החלבונים זה לתוך זה

5. אופים ב 170 מעלות כעשר דקות

שלב ד': 

(הרכבת העוגה)

1. מקציפים את הקצפת עם הקפה שהייתה במקרר עד לקצפת חזקה – אך לא יותר מידי

2. מניחים בתחתית התבנית בה אפינו את הבסיסים את בסיס השוקולד פאדג' 

3. מורחים על בסיס הפאדג' חצי מכמות הקצפת-מוקה

4. על שכבת המוקה הראשונה מניחים את בסיס החמאה פקאן

5. מורחים את הקצפת שנותרה על הבסיס השני ומחליקים את פני הקצפת

6. לקישוט גוררים פרורי שוקולד מעל העוגה

7. עוטפים ומכניסים למקרר לשש שעות לפחות עד להגשה



<<englink [[Mocha cake]]>>
[img[pictures/ugat-solet.jpg]]



__חומרים לעוגה__

* 4 ביצים
* כוס סוכר
* כוס חמאה מומסת
* 2 ורבע כוסות סולת
* 50  גרם קוקוס
* 50גרם שקדים טחונים
* גביע שמנת חמוצה
* כוס וחצי קמח לבן
* כפית אבקת אפייה
* שקית סוכר וניל
__
חומרים לסירופ__

* כוס ושליש סוכר
* כוס מים
רום/תמצית וניל/מי ורדים

__אופן ההכנה:__

1. לחמם תנור ל 170 מעלות.

2. בקערת המיקסר לערבל את הביצים עם הסוכר עד לכדי תערובת תפוחה, בהירה ומבריקה.

3. לקפל פנימה בעזרת מטרפה ידנית את כל שאר חומרי העוגה.

4. למזוג לתבנית מלבנית או שתי תבניות אנגליש קייק ולאפות כארבעים דקות עד 55 או לבדוק עם קיסם.

5. כאשר העוגה בתנור רתיחים את חומרי הסירופ, ומבשלים  2-3 דקות נוספות.

6. כשהעוגה יוצאת מן התנור – מוזגים עליה את הסירופ.

7. מקשטים בפתיתי קוקוס ושקדים קלויים.



<<englink [[Semolina cake]]>>
[img[pictures/pereg-shokolad.jpg
]]

!!![[אווה|אווה כהן]]:

הכמות של המתכון הזה מספיקה לתבנית עגולה בגודל 28, או לשלוש תבניות אנגליש קייק


החומרים לעוגה:

  * 8 ביצים
  * 200 גרם שוקולד מריר שבור לקוביות
  * 200 גרם חמאה
 *  1/3 כוס חלב
  * כוס  סוכר
  * 300 גרם פרג טחון
 
חומרי גלם לקרם:

* 200 גרם שוקולד מריר שבור לקוביות
*  מיכל שמנת מתוקה

אופן ההכנה:

1. מחממים תנור ל-170 מעלות צלזיוס ומכינים תבנית עגולה 28 או שלוש תבניות אנגליש קייק

2. ממיסים את השוקולד, החמאה והחלב ומערבבים אותם בעדינות עד לתערובת חלקה.

3. מקציפים את הביצים והסוכר במערבל החשמלי עד לקצף בהיר ותפוח.

4. טורפים בעדינות את השוקולד לתוך קציפת הביצים.
    

5. מוסיפים פנימה את הפרג הטחון בכמה פעמים, וממשיכים במטרפה הידנית בעדינות.

    
6.מוזגים את התערובת לתבניות, ואופים   40-50 דקות. העוגה מוכנה כשקיסם או סכין חדה יוצאים ממנה יבשים :)
    

7. מכינים את הקרם: מרתיחים את השמנת המתוקה, ומוזגים אותה על השוקולד. ומערבבים במטרפה ידנית, עד לקבלת קרם אחיד ומבריק. 
    
8. 5-10 דקות אחרי שהעוגה יצאה מהתנור, משטחים בעדינות עם קצות האצבעות את החלקים הגבוהים שסביב העוגה, ומוזגים בעדינות ומגובה נמוך את הקרם.

9. מוכנה להגשה כשעה לאחר תום האפייה, וטעימה גם כשקרה.



<<englink [[Poppy seed chocolate cake]]>>
[img[pictures/chocolatecake.jpg]]


!!![[אימא של ג'אזז]]:
 


החומרים לעוגה :

*מאתיים חמישים גרם חמאה או מרגרינה
*מאתיים גרם שוקולד מריר
*שלוש כפות קקאו
*שלושת רבעי כוס חלב
 *כוס סוכר אחת
*מעט תמצית רום/קוניאק/ויסקי ( אם אוהבים )
*חמש ביצים 
*כוס ורבע קמח מנופה
*כפית אבקת אפייה

החומרים לקרם:

* 200 גרם שוקולד
* מיכל שמנת מתוקה

אופן ההכנה:

1. ממיסים בסיר קטן את החמאה, השוקולד המריר, הקקאו והחלב תוך בחישה עד לקרם חלק, אליו מוסיפים את הרום/קוניאק/ויסקי. (אפשר להמיס  גם במיקרו)

 
2. מקציפים את הביצים במערבל חשמלי ומוסיפים בהדרגה את הסוכר, ממשיכים לערבל במהירות גבוהה עד לקבלת תערובת תפוחה ובהירה.

3. לתוך הביצים המוקצפות מוסיפים בעזררת מטרפה ידנית ולסירוגין את תערובת השוקולד ואת הקמח עד לתערובת אחידה.

4.  מוזגים לתבנית מלבנית (30 על 25 למשל), או תבנית עגולה בקוטר 26. 

5. מכניסים את העוגה למרכז התנור שחומם מראש ל165-170  מעלות צלזיוס , ואופים 50-600 דקות או עד שקיסם הננעץ במרכז העוגה יוצא יבש. 

6. שהוגה בתנור מכינים את הגאנאש - ממיסים את השמנת והשוקולד עד לתערובת אחידה ומבריקה.

7. כשהעוגה יוצאת מן התנור מוזגים עליה בעדינות ומגובה נמוך את הקרם, ונותנים לו לחלחל פנימה עד שהעוגה מגיעה לטמפרטורת החדר.




<<englink [[Chocolate cake]]>>
[img[pictures/ugat-shezifim.jpg]]


!!![[אווה|אווה כהן]]:

החומרים:

* 300 גרם חמאה רכה
*כוס סוכר
*שקית סוכר וניל
*4 ביצים
*שתי כפות שמנת חמוצה
* כוס ו-1/2 קמח
* כפית אבקת אפייה
*60 גרם שקדים טחונים (בחנויות, במדף הקמחים יש קמח שקדים, שהוא, למעשה, שקדים טחונים)
* שמונה שזיפים בשלים אך לא מידי, שטופים ופרוסים לפרוסות לא עבות מעורבבים עם כפית סוכר
* 3/4 כוס שקדים טחונים

אופן ההכנה:

1. מחממים תנור ל160 מעלות ומכינים שלוש תבניות צרות ונמוכות 

2. בוו הגיטרה של המיקסר מערבלים במהירות נמוכה את החמאה, הסוכר וסוכר הוניל עד למשחה חלקה

3. מוסיפים את שאר החומרים וממשיכים לערבל במהירות נמוכה, עד שהתערובת חלקה

4. יוצקים לשלוש תבניות מאורכות ונמוכות.

5. מסדרים את פרוסות השזיפים

6. מפזרים בצורה אחידה פרורי שקדים מעל

7. אופים 25-40 דקות - עד שהעוגות מזהיבות.


<<englink [[Plum cake]]>>
[img[pictures/applecakewithcream.jpg]]

[[אימא של ג'אזז]]:

העוגה הזו עשויה מבצק פריך עשיר, תערובת תפוחים מבושלים ומעוכים לפירה גס, קצפת ופרורים, ואני מאד אוהבת אותה.



''1. מכינים בצק פריך: ''

במעבד מזון מערבלים עד למשחה חלק:

* 200 גרם חמאה חתוכה לקוביות

* כוס סוכר

מוסיפים:
 

* 350 גרם קמח 

* כפית מחוקה של אבקת אפייה

* 2 חלמונים

* 2 כפות שמנת חמוצה

* 1 כפות ברנדי (לא חובה)

וממשיכים לערבל עד לקבלת כדור בצק אחיד. 

משטחים 2/3 מהבצק הפריך בתבנית עגולה (26) או מרובעת (25X25).
את השליש הנותר משטחים בתבנית נוספת, מרופדת בנייר אפייה.

את שתי התבניות אופים 20-40 דקות תלוי בתנור - עד לזהוב בהיר.

2''. מכינים מלית תפוחים:''

מבשלים עד לרכות:

* 1 קג תפוחי עץ חמוצים מקולפים וחתוכים
*  כוס סוכר
* 3 כפות קינמון
* חצי כוס מיץ לימון

מועכים לפירה גס (בעזרת מועך פירה), ומצננים.

3''. מקציפים שמנת מתוקה'' עם שתי כפות סוכר שטוחות עד לקצפת רכה, ושומרים בקירור עד לשימוש

 4''. הרכבת העוגה:''

* להניח על הבצק האפוי את התפוחים המבושלים באופן אחיד.

* מעל התפוחים משטחים את הקצפת. בהתחלה מחלקים עם כף באופן שווה ואחר כך מחליקים עם מרית.

* מפוררים את שליש הבצק האפוי ומפזרים באחידות מעל הקצפת

''*מקררים לפחות 6 שעות.''



<<englink [[Apple cake with cream]]>>
[img[pictures/anotherframefrom.jpg]]



!!![[גורה]]:

סרט כל כך יפה בכל מובן. השתמשתי בתמונות מתוכו גם [[במטא בדיון|מטא בדיון]], וגם [[בסדר חדש|סדר חדש]]



<<englink [[Another frame from Synecdoche New York]]>>
[img[pictures/thelawyer.jpg]]

!!![[גורה]]:

ננסי  עורכת דין, למדה באנגליה, פלצנית, גזענית, כל הסט של אחות קיי, כולל "אופנתיות" בכל התחומים, מותגיסטית, מרבה לדבר בלועזית, יש לה ילד מגעיל שחוטף מכות ומגיע לו.



<<englink [[The lawyer]]>>
[img[pictures/clavzirim-osim-shalom.jpg]]


!!!''<<tag "בחוות החיות">>, הַכְּלַבְזִירִים עושים [[שלום|מאכילים את המצפון]].

<<englink [[They make peace]]>>
[img[pictures/marzipan.jpg]]


 
המרכיבים:

* שלוש כוסות  שקדים מולבנים

*שני שלישים  כוס אבקת סוכר

* 3-6 כפות מיץ לימון סחוט לפי הטעם

* כף ליקר שקדים (אמרטו)

* גרד קליפת לימון שלם

תוספות שאני הייתי שמה:

חמוציות, צימוקים, גרד קליפת תפוז, אגוזי קשיו, גרעיני דלעת, קינמון, חוואייג' של קפה, סוכר חום

התוספות ששמתי בעיגולי המרציפן שהכנתי [[לארוחת הכריסמס|ארוחת כריסמס]]:

 
אופן ההכנה:

* מבשלים את אבקת הסוכר עם כוס כוס מים על להבה גבוהה כמה דקות, עד שנוצר סירופ מעט סמיך
* טוחנים את השקדים במעבד מזון עד לקבלת אבקת שקדים או שקדים טחונים דק מאוד 
*מוסיפים לתוך השקדים הטחונים שלוש כפות סירופ ומפעילים שוב את מעבד המזון. בודקים את המרציפן, וממשיכים להוסיף כל פעם כף אחת, עד שנוצר כדור בצק אחיד, רך וקל לעיבוד
 * עכשיו, כשיש בצק מרציפן, אפשר להוסיף לו טעמים, ולא חייבים להשתמש בכל הכמות מיד, אפשר לשמור חלק בכלי אטום והוא גם טעים כמו שהוא.

כאמור, הוספתי:

* עוד שתי כפיותאמרטו
*  תערובת של 5 כפות סוכר חום, קורט חוואייג' וכפית  קינמון
* חופן חמוציות

יוצרים גלילים קטנים, פורסים אותם לפרוסות ומגישים




<<englink [[Marzipan balls]]>>
[img[pictures/ir-bnooya.jpg]]

!!![[אירי]]:

[[לסיפור שאווה כתבה|הסיפור על גורה]] יש היסטוריה.

כלומר, יויו הגיע אלי לפריז רגע לפני התאונה שקרתה לי, אך התאונה הזו - שנבעה מהתקף חרדה תכלס - התרחשה אחרי תקופה ארוכה בה לקחתי הרבה מאד כדורים, בולים, נוזלים, תמהילים, משקאות, פטריות הזייה ועוד.

את הסיפור שבקרוב מאד אעתיק לעמוד זה כתבתי קצת אחרי שהגעתי לפריז. ז'נבייב מוזכרת בו והדירה שגרתי בה בהתחלה. זה היה בלילה בו הלכתי לחבר מהלימודים והוא נתן לי חתיכת קרטון וזה מה שיצא.

השארתי אותו כמו שהוא כדי שאפשר יהיה לראות מה מתלהבת והזויה כאחד הייתי:

'' עיר בנויה מרחובות''

כל בוקר אני צועדת ברחובות העיר לפחות שעה.
אני עושה את זה בקצב דיי מהיר, מבטי חולף על פני המראות וקולט מה שקולט. זו הליכה מעוררת השראה.
רחוב החלונות היפים הצבעוניים הוא הראשון במסלולי. אני גרה בקומה חמישית. בערך חמש לפנות בוקר, בכל בוקר, ריח קרואסונים עולה במדרגות ישירות מהקונדיטוריה שלמטה בבניין וחודר לביתי. אני לא יודעת איך אך הוא חודר גם לביתי. חודר את הדלת. אולי דרך המנעול הוא משתחל לו. כשהוא שם הוא מתפרץ לדלתי הנעולה. בקלות הוא חודר לאפי הפתוח. אני מתעוררת מתאווה אליו, וכבר שנתיים מה שעוזר לי להתעורר בדילוג היא הידיעה שאחרי ההליכה אוכל קרואסון ואשתה קפה חזק וטעים שמשתחל לי את היקיצה.

זה הולך ככה. הריח מתפתל אל פנים הבית, דרך הכניסה, המסדרון, חולף על פני דלת השירותים, חולף על פני חדר העבודה, מישיר אל אפי, ממשיך אל חדרי, בפס ישר וצר מגיע עד לנחירי, שם מתפצל לשניים שנכנסים, הם מתאחדים בחלק העליון של האף, עד שנוגעים בתא עצב, לוחשים לו...הגענו...תא עצב מעביר זאת מיד לתא שלידו, ככה עובר הריח מעצב לעצב, מגיע למרכז שם קולט אותו חוש הריח. חוש הריח דופק לי בחלום לוחש...הם הגיעו...אני עוד לא יודעת שאני כבר מתעוררת. הראות עולות סופגות, מתמלאות...נעים...באיזה רגע ממש לא ברור, דיי דומה לרגע הלא ברור של ההרדמות, אני יודעת שהתעוררתי, מזהה את הניחוח, יודעת שעכשיו אקום בשקט לשירותים, הריח ילך עמי, ידגדג לי את קצה האף, חוש הריח ימשיך להתפצל בראשית חוטמי ומתאחד בתוכו, אני מתארגנת דיי מהר. מכינה קפה אגב שטיפת הפנים, שותה אגב התלבשות זריזה ונעילת נעלי ההליכה בולמות הזעזועים, הריח לא עוצר, רק ריחות משחת השיניים וקפה הבוקר לרגעים מטשטשים אותו, ואז הוא יורד איתי מטה במדרגות הלולייניות, כמו התגלשות מהירה כזו צעד צעד צעד צעד, הוא מלווה אותי בערך עד אמצע רחוב החלונות היפים משם הוא חוזר לקונדיטוריה ואני פונה ימינה לרחוב הרהיטים הכבדים. למזלי ברחוב החלונות הכבדים יש לי רק 300 פסיעות פלוס מינוס, זה תלוי כמה אנשים צועדים על המדרכות וכאלה, כמה סרפנטיניות בצעידה, אחריהן אני יכולה לשכוח שוב עד מחר מהרהיטים החומים הקודרים, אחרי 300 פסיעות בערך אני שוב פונה ימינה לרחוב ארוך ארוך שהוא בעצם מקביל לרחוב שלי, רחוב החלונות היפים, זהו הרחוב הצבעוני, ממנו יש המוני פניות לשני הצדדים , כמובן, לרוב אני עושה בעצם מעין סיבוב, כלומר פוסעת אותו כמעט עד הקצה ושם זה עוד פעמיים ימינה עד חזרה אליי הביתה. כאמור פס הריח ואני צועדים לרחוב הרהיטים הכבדים, וכפי שכבר נכתב שם הוא חוזר, אני זוכרת אותו בשקידה למשך כל 300 הפסיעות של הקדרות החומה, ומבעוד מועד מריחה את שלל הצבעים בהם אחזה בקרוב מאד. בפינה של רחוב הרהיטים הכבדים והרחוב הצבעוני יש קיוסק חללי צבוע בפסים מטאליים של אדום ירוק וצהוב, אני יודעת שזה אולי נשמע שילוב צבעים גרוע ולא מלטף את אישונים, אך המתכתיות היא מה שהופך את השילוב לכן טוב, לקיוסק שלט ניאון באותם צבעים חזקים: "לכודים בחלל" מהבהב בחיוך, ומזמין לקנות מלא דברים לא בריאים, ממכרים, סוכר, סיגריות, הכול ארוז מספיק טוב כך שהריח שם אינו האטרקציה, כרגע עובדת שם בחורה צעירה חייכנית בסביבות גיל 20, עם בטן מושלמת, אנחנו מסמנות חיוכים זו אל זו, ואז יש שם מגוון סוגי חנויות, הסינית המהירה הקטנה עם הנודלס הכי טובים שיש, החלון הקטן עם הזונה השחורה עם הירכיים והשפתיים הענקיות, החנות של צעיפי הפרווה הסינטטית, החנות הציורית פתאום של האישה הגרושה ,אם לשתי בנות שמגישה כל צהריים מנות של קוסקוס ומרק שהיא מכינה, מיץ ותה וכמה שולחנות שכל אחד מהם בפורמייקה בצבע חזק שונה, ומלבדם הכול לבן ורק הפריטים הקטנים שעל השולחנות צבעוניים, שם לפעמים אני סועדת ואוהבת לדבר איתה, ואז הבוטיק של נעלי הפלטפורמה הכי גבוהות (הזונה השחורה עם הירכיים הענקיות נועלת תמיד כאלה שמתאימות לה לשורטס מהסקיי), ואז הבחור המוזר ההוא עם החנות למדים לפי מידה, כזה מן כאילו חתיך, כאילו גברי, כאילו אוהב נשים, עומד בחנות מלאה גלילי טוויד דחוסים שנולדים ספוגי אבק בכחול עייף וחאקי משועמם, או בדי דיאולן באותם גוונים רק פחות ספוגי אבק, וכובעי צבא, וכפתורים חמורי סבר. בצעידת הבוקר אני לא ממש נעצרת על כל דמות ודמות, רק עיני נחות על פה ועל שם, ומיד מעוררות איזו תגובה מתוך ההכרות הקודמת שלי עם כל דלת וחלון ראווה של החלון הצבעוני, ובכלל, שני צדדים לרחוב, לרוב אני צמודה לימין, אך ישנם בקרים בהם אני מחליטה לצעוד בצד שמאל, גם שם מיני זבנים ופריטים, בתוך הצעידה אני מודעת לגופי הצועד,לפעמים בודקת שכפות הרגליים מקבילות זו לזו, צועדות על פסי רכבת סמויים שרוחבם קבוע, מקבילים לעד, חושבת על פעמה פנימית שמכה קלות עם כל העברת משקל מהבטן התחתונה לכוון בית החזה, עוזרת לנעלי ההליכה לבלום את הזעזועים מהמפגש של כפות הרגלים והמדרכה תוך צעידה די מהירה. ישנם כעשרה רחובות שפונים ימינה, אני חוצה את רחוב הרהיטים הקלים, רחוב המנורות המסנוורות ...לבסוף פונה ימינה לרחוב העפרונות, שהוא רחוב קסום באמת, למשל באחת החנויות ישנם עפרונות ארוזים בקופסאות פלסטיק מעוצבות עליהן כל מיני הדפסים מסיפורי ילדים, ויש כאלה עם דוגמאות של צורות שחוזרות על עצמן, הפיתויים גדולים, אך דרכי להתמודד עם התאווה לכל הייתה לחלוף על פניהם ולהכירם היטב, מכאן כבר הייתי קרובה הביתה ימינה אל הריח המוכר שבקרוב מאד יגיע שוב אל אפי, חוצה את הכביש למדרכה השמאלית, מברכת את נוני מהדוכן עיתונים, אני ושובל ריח נכנסים לקונדיטוריה של אניקה ושרה, הפעמון מעל המשקוף מודיע, ואני קוראת:"הגענו! בוקר טוב! אני ושובל הנאמן! שמודיע בשמכן לכל מי שעובר על המאפים הממכרים שלכן!"..הן מחייכות, מגישות לי קרואסון וקפה חזק וטעים, אני לוגמת ולועסת, והן עסוקות ללא הרף, נכנסות ויוצאות מן המטבח, מכינות קפה, מקישות על הקופה, מברכות את כולם ליומם, אחר כך אני מטפסת למעלה בריצה שגומרת לי סופית את האוויר בגלגלים, ומכאן ממשיך יומי, שהוא לא מה שרציתי לספר לכם, למרות שאין לי כל בעיה לספר לכם על שגרת היומיום שלי, אך לא לשם כך כתבתי את כל המילים עד כה.
רציתי לספר על מקרה שקרה לי באחד הבקרים. כמובן קמתי והכול היה כרגיל, לא חשבתי שאני קמה ליום אחר, לא קיצצתי מאף פעולת בוקר, פעולותיי זרמו בנחת, זמני היה רחב בידי, שובל ריח העירני כרגיל, ברכות, חוטמי המפונק מסר את ההודעה בדבר הגעתו של השובל בנחת, ההכרה בדבר התעוררותי הגיעה, וככה מדלגת מטה, נפרדתי משובל בפנייה לרהיטים כבדים, ושם פתאום חשבתי שאולי היום אחרוג ממנהגי ואמשיך קצת הלאה ברהיטים כבדים, חשבתי שאני חסונה מספיק לספוג מהקדרות בלי להתקדר אני,ו גם ידעתי שיש שם את העצי הדר מהפלסטיק בכניסה לרחוב אשר על פניו חלפתי לפני כמה שבועות לראשונה, הייתה לי בלימה תמיד מלהיכנס לרחוב רהיטים כבדים, בכל אופן, הלכתי כשראשי מביט על המדרכה, צועדת במרוצה שמא תדבק אלי קדרות, ידעתי שיש לי לפחות עשר דקות הליכה עד לרחוב עצי ההדר, הלכתי והתחזקתי, בחושי זכרתי את שובל ריח, הרגשתי שאני יכולה להישיר מבטי אל פני הרחוב, הרחובות החוצים את רהיטים כבדים הלכו והתבהרו, סקרנותי גברה, רציתי להיכנס לכולם, אך הייתי נחושה, חלפתי על פני רחוב פרות וירקות כתומים, עוד חלפתי על פני רחוב עלי שלכת, שרתה שם עצבובית מתוקה, ורחוב פרחי בר, שם הריח הכה בבום בקולטני הריח שלי, וכבר ראיתי את העלים הירוקים והפרות הצהובים כתומים של רחוב הפרדס, בכניסה עמד שומר, זה היה מן פסאז' מקורה בזכוכית שקופה מעוגלת, הוא לא היה צריך לבדוק מאומה, היינו רק אני וגופי ובגדי ההליכה והנעליים עם הבולמים, חציתי את קו הכניסה, הריצוף היה באריחים קטנים של אבן צהבהבה-פסטל, מרובעים, עצי הפלסטיק היו טמונים בתוך יציקות פלסטיק ורודות-פסטל, ורוד בהיר מאד, והיו המוני פניות לרחובות, רחוב תשוקה, רחוב ההיכלות, רחוב חלימה, רחוב רמזים, הכל במרחקים של מטרים, שלטים ברורים ציינו שם כל סמטה כזו, הסתובבתי חזרה לרגע, כי ליד הכניסה היה דוכן למיץ הדר, ביקשתי מיץ תפוזים סחוט, רגע לפני שאכנס, ההליכה המואצת, הקרואסון והקפה יחכו היום עוד כמה רגעים, לגמתי בפעם אחת את מיץ המרווה, לאט הרמתי את עיני והבטתי עמוקות סביבי, התלבטתי בין התשוקה לרחוב רמזים, רחוב רמזים משך אותי כי היו לי כמה שאלות חשובות וחשבתי שאולי אוכל לקלוט איזה רמז, אך רחוב תשוקה סקרן אותי יותר באותו רגע, וחשבתי שגם הוא יכול לחכות לי. בכניסה לרחוב תשוקה עמדה אישה נראית כבת שבעים עם ילד שנראה כבן עשר, הילד מסובב את המוסיקה שבוקעת מתיבת הנגינה הגדולה, האישה נעה ברכות מצד וצד אל הצלילים, היה צליל דומה לשל עוגב, לא יודעת מה הייתה המוסיקה, גם לא הספקתי לברר עד עכשיו, אך הייתה מנגינה ענוגה, האישה תוך כדי תנועה פזמה מנגינה משל עצמה, ברחש כמו של מים שזורמים...

פתאום...כמו פרח...צליל חדש,,,פתאום...פתאום...פתאום כמו פרח...צליל חדש...אחר כל כך...ככה קרה...נחו עיני על משהו חדש...לפתע פתאום צליל חדש...כי השירים קורים פתאום...ראיתי חלון ראווה גדול ועליו כתוב באותיות ישרות,בתכלת בהיר,לא אותיות גדולות,אותיות של טל ומטר,ארבע שורות לרוחב מרכז הזכוכית שלושה מילימטרים:

~התחלה,הקשבה אהבה כמו הגדולים,מוסיקה היא תמיד לבד,מחפשים-הקשבה מבקשים-אהבה מנסים לבכות-אכזבה כמו ילדים,והמוסיקה היא תמיד לבד,איך זה שוב קורה מחדש,מי זה שבורא מחדש אהבה שבאה אל הלב,מתרגשת בי מחדש,מתעקשת בי מחדש אהבה שאין לה שם אחר~
(עלי מהר ושלום ויינשטיין)

מסביב לזכוכית הגדולה ואותיות התכלת הייתה מסגרת ברזל דקה יחסית , צבועה באדום, והשלט היה ענן פלסטיק ורוד ועליו היה כתוב בכחול:
[[~מוזיקה ~ללב היא חודרת~|מוזיקה]]
זו הייתה חנות דיסקים
פתאום...פתאום...הסתובבתי ורצתי במהירות...חזרה לרחוב רהיטים קודרים מחכה בריצה להגיעה כבר אל הרחוב הצבעוני, רצתי עוד ועוד, איברי נשלחו לכל עבר, בקושי נשמתי, הגעתי לפניה ימינה לרחוב העפרונות, בריצתי לא הבחנתי בשובל ריח שחיכה לי במעבר החצייה שממול לדוכן העיתונים של נינו. הוא רץ איתי מבלי ששמתי לב אליו, נופפתי מהר לשלום לכולם, גם לאניקה ושרה מבעד לחלון הקונדיטוריה, הן לא ראו אותי, אני לא ראיתי את שובל, טיפסתי מהר אל ביתי, פתחתי את הדלת במהרה, אפילו קצת בחוזקה, דרך הכניסה והמסדרון, מהר זרקתי גופי על המיטה, כיסיתי את עיני בשתי ידי חזק, רציתי חושך, רציתי לא לראות את כל המחשבות המציפות מבלי לראות דבר ולראות נכוחה...שכבתי ככה, הלמות לבי אט אט פסקה, התחלתי לנשום, נזכרתי בקדרות של רחוב רהיטים קודרים, שפתי קפצו קדימה, נזכרתי ביפי רחוב עלי שלכת, התרככתי קצת, הפה מעט רפה, נזכרתי בתנועותיה של האישה שנעה לצלילי תיבת הנגינה , מוסיקה חדרה ללבי, מילאתי פי מים, לאט פקחתי עיני, שמעתי את בטני המקרקרת, שובל ריח עלה באפי, זה כבר היה ריחו של בריוש, הבטתי אל תקרת חדר השינה שלי, הסתובבתי, קמתי, חייכתי, חיוך גדול חייכתי, שמחתי, התלבשתי יפה, בבגדים רכים וחמימים, דילגתי מטה על פני המדרגות הלולייניות, ניגשתי לדוכן העיתונים של נינו וקניתי עיתון וגם מגאזין מוסיקה, נכנסתי לאניקה ושרה, הן אמרו ששובל ריח קרואסון הבין אותי, הן שמעו אותו אומר לשובל ריח בריוש שיקבל את פני, הזמנתי בריוש וספל של אותו קפה כמו בכל יום, ישבתי שם וישבתי, והחלטתי שהיום לא אתנהל באופן שגרתי...נפרדתי לשלום מאניקה ושרה, שובל ריח ליווה אותי עד לרחוב רהיטים כבדים, קרן שמש האירה את הרחוב, פסעתי בוטחת אל רחוב פרדס, חשבתי שאם יוותר לי זמן אור אלך גם לרחוב עלי שלכת ולרחוב פרחי בר, אולי בפרחי בר אוכל ארוחה עיקרית, אך נחושה לרחוב רמזים..לא מפחדת...ולדעת...דבר מה אחר... 

[img[pictures/spectrum.jpg]]

!!![[אירי]]:

במסגרת הלימודים  לתואר ראשון בחינוך, נדרשנו להשתתף בקורס "שואה". את השיעור הראשון פתח המרצה בשאלה:

מה הדבר החשוב ביותר אותו ניתן ללמוד מן השואה?

והוא גם ענה מיד:

הדבר החשוב ביותר שעל כל אחת ואחד ללמוד מן השואה הוא, //שבכל אחת ואחד מאיתנו טמון הפוטנציאל להפוך לנאצי.//

[[''שאלתם את עצמכם פעם איפה אתם על המדד הנאצי?''|https://www.youtube.com/watch?v=stN6ZjpbRYk]]

האם אתם משתפים פעולה עם השלטונות? האם אתם מקבלי משרות? האם אתם משתפים פעולה עם התקשורת? האם לצרוך תקשורת נחשב שיתוף פעולה? האם אתם ממומנים על ידי גופים שממומנים על ידי גופים ממומנים?

[[יש הרבה מדדים וכל מדד לגופו.|https://he.wikipedia.org/wiki/%D7%A1%D7%A4%D7%A7%D7%98%D7%A8%D7%95%D7%9D]]

 
שאלתם את עצמכם פעם האם אתם על איזשהו רצף? האם אתם על [[הרצף האוטיסטי?|כישורים חברתיים]] על רצף ההפרעות הנפשיות? מה הסינדרום שלכם? עד כמה אתם מכורים לסמים כולל תרופות מרשם? [[האם אתם יסודיים או שמא יש לכם ocd?|יסודי או ocd]] איפה עובר הקו בין פרפקציוניזם ל ocd? האם הייתם מוכנים להיות האינסטלטור של [[אושוויץ?|https://he.wikipedia.org/wiki/%D7%90%D7%95%D7%A9%D7%95%D7%95%D7%99%D7%A5]] הקבלן של  [[האוטובאן|https://en.wikipedia.org/wiki/Autobahn]]? האם יש סינדרום על שם מי שקורא לספקטרום [[מקשתת|http://hebrew-academy.org.il/2014/11/17/%D7%9E%D7%9C%D7%99%D7%90%D7%AA-%D7%94%D7%90%D7%A7%D7%93%D7%9E%D7%99%D7%94-%D7%9C%D7%9C%D7%A9%D7%95%D7%9F-%D7%94%D7%A2%D7%91%D7%A8%D7%99%D7%AA-%D7%90%D7%99%D7%A9%D7%A8%D7%94-%D7%A8%D7%A9%D7%99%D7%9E/]]? האם אתם שמים לב לחוסר צדק? חוסר השוויון? הכיבוש?

[[האם אתם חושבים שהכיבוש השחית אתכם?|https://www.youtube.com/watch?v=vKZtzmjm-FM]]

האם אתם רוצים להוציא אדם או קבוצת אנשים מסביבתכם על רקע של גזע, דת או מגדר?

איפה אתם על רצף הזכרון הקולקטיבי? רצף השליטה? רצף הכח? רצף הראייה? האם אתם מכים? האם אתם צועקים? איפה אתם על רצף האמפתיה או חוסר האמפתיה? האם אתם מבקשים לפני שאתם לוקחים? האם אתם שואלים לפני שאתם נדחפים? האם אתם משלמים מעט להרבה משרתים? האם למישהו מגיע יותר מלאחר לדעתכם? האם אתם משתפים פעולה עם בעלי הכח המנצלים בכח? 

האם אתם שמחים שירושלים הוכרזה כבירת ישראל  על ידי הצורר האמריקני? לא טוב היות האדם [[לבד בברלין|https://he.wikipedia.org/wiki/%D7%9C%D7%91%D7%93_%D7%91%D7%91%D7%A8%D7%9C%D7%99%D7%9F]].


<<englink [[On the spectrum]]>>
[img[pictures/aley-gefen.jpg]]

!!![[תומר]]:

בעוד אנו סגורים בדירתנו, בחוץ האביב [[שוב צוהל|https://www.youtube.com/watch?v=Te-1uSxoNyg]], וכמה מאותותיו הגיעו אלינו תודות לליקוטי הדוק של [[מכולת האחים]] - ההיילייט של הסגר הזה, כמו עלי הגפן הצעירים שמגיעים בחבילה של 250 גרם, ובציור נראים מתייבשים אחרי חליטה. עד כה הכנתי אותם שלוש פעמים, כך שאני עדיין מתאמן, וזה המתכון הנוכחי:

*25 גרם עלי גפן צעירים
*כוס אורז עגול 
*4 עגבניות קטנות
*בצל סגול בינוני
*בצל לבן בינוני
*כף גדושה מחית חומץ רימונים
*מיץ מחצי לימון
*כפית מלח ים גס
*ליטר מים רותחים

1. מניחים את העלים (שהגיעו נקיים ויפים) בקערה גדולה, ומכסים אותם בעדינות במים רותחים. נותנים לעלים לשרות במים כעשרים דקות, מסננים את המים ומניחים אותם על הקערה ההפוכה אחד אחד בעדינות, כשהחלק המחוספס כלפי מעלה. את הפחות יפים מניחים בצד - הם ישמשו בהמשך לריפוד הסיר.

2. מערבבים בקערה כוס אורז עגול ששרה חצי שעה במים קרים, נשטף וסונן ועגבניה קטנה קצוצה קטן קטן.

3. מרפדים סיר בינוני (ואני אוהב את הנמוכים יותר) בעלי הגפן הפחות יפים (10-15 עלים), מעליהם מסדרים פרוסות משלוש עגבניות ופרוסות מבצל אחד לבן ובצל אחד סגול. על כל אלה נניח בהמשך את עלי הגפן המגולגלים.

4. בשלב הזה או לפניו אפשר להפעיל את רשימת השמע שהאחים היקרים שלחו לנו ולאט ובסבלנות לגלגל אותם אחד אחד:

*מניחים עלה על קרש חיתוך עם החלק המחוספס כלפי מעלה, והטוסיק עם הפנים אלינו
*בעזרת סכין כותמים את הפטוטרת 
*מניחים כפית בערך מהאורז לרוחב העלה
*מגלגלים מהחלק התחתון כלפי מעלה גלגול וחצי שניים, ומתחילים להכניס פנימה את צידי העלה, ממשיכים לגלגל תוך כדי שמכניסים את צידי העלה פנימה עד שהעלה מגולגל כולו וסגור מהצדדים. נוח יותר לעבוד עם עלים גדולים, הקטנים יכולים לשמש לריפוד הסיר או כפלסטר לאלה שיצאו פחות יפים. 
*מניחים את העלה הממולא בסיר, ובהמשך מניחים את השאר צמודים זה לצד זה, מהמעגל החיצוני של הסיר פנימה. מכמות העלים הזו יוצאים 40-45 ממולאים, כלומר שכבה אחת.
*ממלאים בכד מדידה ליטר מים רותחים, מוסיפים פנימה כף ממרח רימונים, מיץ מחצי לימון וכפית מלח ים גס ומערבבים עד שהנוזל אחיד
*מוזגים בעדינות ומגובה נמוך את המים עד כיסוי עלי הגפן. מניחים על העלים צלחת הפוכה שמא יצופו, ומבשלים על אש נמוכה שלוש שעות
*בזמן הבישול בודקים מידי פעם מה נשמע בסיר והאם יש מספיק מים. אם אין מספיק מוסיפים מעט כל פעם
*לאחר כיבוי הלהבה, נותנים לסיר להתקרר קצת, מסירים את הצלחת ומזליפים שמן זית ועוד כמה גרגרי מלח ים גס על הכל, וזה מוכן




<<englink [[Grape leaves]]>>
[img[pictures/stuffedchard.jpg]]

!!![[אירי וגורה]]:

את האיור הזה גורה עשתה עכשיו, בימי המלחמה.
זה התחיל [[כשאבא יואל|אבא יואל]] הציע לגורה הבוכיה לצייר משהו על קיר המטבח. גורה, לאחר חיטוט במרשתת נדלקה על [[הרוטב הנפלא|https://en.m.wikipedia.org/wiki/File:Jehan_Georges_Vibert_-_The_Marvelous_Sauce,_ca._1890,_Albright-Knox_Art_Gallery.jpg]], ציור שלא הכירה.  האיור הוא מתמונה שיואל צילם. שתינו מכינות ממולאים ממש באותו המטבח.


''
עלי מנגולד ופלפל שושקה ממולאים''

כמות שמתאימה לסוטאז' בגודל 26:

__החומרים:__

1.	__בסיס:__
5 עגבניות פרוסות 
3 בצלים פרוסים (סגול, לבן, שלוט, מעורבב)
2-3 שיני שום קלופות ופרוסות

2.	__מילוי:__
2 כוסות אורז מכל סוג/כוסמת/קינואה שנשטפו, הושרו וסוננו כל אחד לחוד ולפי זמן ההשריה המתאים בקערה מעורבבים עם 2 עגבניות סחוטות.

3.	__הירקות אותם אנו ממלאים:__
פלפלים מנוקים ושטופים, עלי מנגולד חלוטים, מיושרים, הפוכים ובטמפרטורת החדר (זו הבחירה האישית שלי אבל ברור שאפשר איזה ירק מתאים שבוחרים).

4.	__ירקות נוספים:__
בטטות וגזרים

5.	__רוטב:__
פחית קטנה של רסק עגבניות מוטי

כף רכז רימונים (האירני מאד טוב)

מיץ מחצי לימון (רבע כוס)

רבע כוס שמן זית

כף עדינה של מלח ים

ליטר-ליטר וחצי מים רותחים
(אני עושה את זה בכד מידה)

כל אלה מעורבבים לנוזל חלק.

6.	__מעל הכול:__
6-8 גבעולי טימין

__חיבור:__

1.	לסדר בתחתית הסיר שכבת עגבניות צמודות.

2.	מעליה שכבה צפופה יחסית של עיגולי בצל ואת פרוסות השום. 

3.	ממלאים את הירקות: את העלים כמו מלפוף, כלומר מניחים כפית שתיים בשליש התחתוך ומגלגלים צמוד, או כמו עלי גפן עם סגירה בצדדים, ממלאים פלפלים עד חצי ומניחים (הכנתי חצאי פלפלי שושקה שכובים וצמודים זה לזה. בקצוות סגרתי אותם עם החלקים הפחות מתאימים למילוי של עלי המנגולד, ולא נורא אם חלק מהמלית גולשת לתוך הרוטב).

4.	מניחים בצורה יפה וצמודה את הירקות הממולאים מעל שכבת הבצל.

5.	בעזרת מצקת מוזגים בעדינות ומגובה נמוך מהרוטב החלק מעל הירקות הממולאים עד שהם מכוסים בנוזל פלוס מילימטר שניים.

6.	מסדרים מעל הכול את ענפי התימין (אפשר עוד כמה אם אוהבים)

7.	מניחים צלחת חלקה מעל הכול (למניעת התרוממות הירקות בזמן הבישול).

8.	מניחים על להבה בינונית ומתחילים לבשל עד לכמעט רתיחה.

9.	מנמיכים להבה, וממשיכים לבשל לפחות שעתיים. 




<<englink [[Stuffed Peppers and chard leaves]]>>
[img[pictures/im-hapanim-hachuza.jpg]]

!!![[אירי]]:

הגעתי למסקנה, שאני צריכה להיות מוכנה לרכב המואר והנחמד, שעשוי לבוא יום אחד מבחוץ, ולאסוף אותי מכאן. הרכב יעצור לידי, הדלת של המושב שליד הנהג, ששם נפשו בכפו, תיפתח, ואני אכנס פנימה. אני אביט בנהג, הדלת תיסגר והרכב יתחיל לעלות. אלחץ את ידו תוך שאשמע את הגלגלים נכנסים, אני בטוחה שהוא יהיה חביב מאד. החלונות יסגרו ונמשיך לעלות, וזהו, [[ניסע|https://www.youtube.com/watch?v=7zaBCbXUkeU]]. כעת אני מנסה להעריך כמה זמן אורכת נסיעה כזאת, וחושבת איזה מין תיק אני  מכינה, ואיפה הכי כדאי לי לחכות.

<<englink [[The Face Directed Outside]]>>
[img[pictures/amsterdam-im-yoyo.jpg]]

!!![[גורה]]:

בנובמבר 2016 [[יויו]] לקח אותי לאמסטרדם, כדי לעזור לי להשתחרר [[מארועי יוני|דןדן נסע]]. 

אין מה לבוא לאדם בטענות על כך שהלך, זה מותר, לכל הצדדים. כן, צריכים להיות הגונים, כל הצדדים, גם מי שנשאר כועס, צריך להיות הוגן והגון - כנראה שקודם כל עם עצמו.

היה קר, הסתובבנו מעט, דיברנו הרבה, לנו סמוך [[לוונדלפארק|https://en.wikipedia.org/wiki/Vondelpark]] ולאזור המוזיאונים. המקום היחידי שממש רציתי לבקר בו היה [[מוזיאון ואן-גוך|https://en.wikipedia.org/wiki/Van_Gogh_Museum]]. פרט [[לכאב המכאיב|וינסנט ואן-גוך]] המורגש בציוריו של וינסנט היקר, שיושב ומצייר עוד ועוד, את עצמו, את בית הוריו, את הטבע, את האנשים, וכואב ללא סוף, כבר זמן מה שקינאתי, (בקטע טוב), באפשרות להעביר תמונה שלימה בלי להזדקק למילים.

כמעט ואיבדתי את זה לכמה חודשים, אך [[האתר שלנו|האחיות כהן]] מציל אותי.

[[בשמי|וויקליף ז'אן]] ובשם [[וויקליף ז'אן|https://www.youtube.com/watch?v=kI6MWZrl8v8&list=RDkI6MWZrl8v8]], ובליווי כלי מיתר ראויים:


I wanna dedicate this song, Gone 'Til November...
To all you ladies out there, crying all alone in your room
And all you fellas, going down south...Not making it back...
May the lord bless your soul, I love you girl



<<englink [[With Yoyo in Amsterdam]]>>
[img[pictures/six-feet-under.jpg]]

!!![[גורה]]:

בשבועיים האחרונים שתינו בצמא את [[עמוק באדמה|http://www.imdb.com/title/tt0248654/]].
אם סדרות הן מה שעד לא מזמן היו ספרים עבורנו , אז עמוק באדמה הוא ספר מעולה שיש בו כל מה שאתה מבקש מספר להיות - חכם, יפה, מחכים, מצחיק, רגיש, מרגש, קיצוני, אמיתי למרות שהוא בדוי, עם דמויות שאתה אוהב והן הולכות איתך לפחות בימים בהם אתה קורא אותן, ואתה מתגעגע אליהן ורוצה לדעת מה עוד קרה, ובסוף אתה קצת מאט - כי אתה לא רוצה להיפרד מהן, וכשזה נגמר אתה ממשיך לקרוא בזה עוד.

מכל מי שמת בסדרה, הכי היה קשה לי עם המוות של [[הקדילאק|https://www.historicvehicle.org/five-famous-hearses/]] של [[קלייר|http://www.imdb.com/name/nm0024404/?ref_=tt_cl_t4]]. אחר כך זה צבט לראות אותה נוסעת במכונית קומפקטית ונטולת אופי או חן כמו אלה שעושים [[עכשיו|פעם]] אך יחד עם זה - נוסעת אל העתיד המבטיח [[בסיום המרגיע|https://www.youtube.com/watch?v=O2nTyiMEukE]] .

אני ממש אוהבת את בני משפחת פישר ושאר הדמויות. הן מגולמות על ידי שחקנים מקסימים גם בהם התאהבתי. [[גם|https://www.youtube.com/watch?v=wYUJZSl3V4E]] התסריטאים נפלאים והבמאים והארט והצילום והעריכה המוש [[ואלן בול|אלן בול]]. תודה  ואהבה מיויו, אנג'ליק וממני.



<<englink [[Six feet under]]>>
[img[pictures/amalya.jpg]]

!!![[גורה]]:

לשים לה את היד (עם כפפה) על הפנים, ולסובב.


<<englink [[Amalya]]>>

[img[pictures/eva-garinit.jpg]]


!!![[אווה|אווה כהן]]:

וזה מה שסיפרתי ליויו, כפי שכתבתי ב[[כוכב המשאלות בעל תשע הצלעות]], ביום השני להגעתי אליו לדירה בפריז ל[[ארוחת כריסמס]]. זה היה יום לפני הארוחה, ב-23 בדצמבר 2015. הדברים שכתובים בהמשך הם ניסיון לתאר בקצרה את נוף ילדותי, ליויו שמידי פעם מגיב:

דמיין: חצר ענקית, שמחולקת לבתים בתים. מעין שכונה. שכונה סגורה וענקית ובה שבעה בתים גדולים. 
שבע חווילות ביניהן גנים יפהפיים ומלאי עצים. כל בית הוא בסדר גודל של 300-400 מטרים רבועים וסביבו עשרה דונמים של חצר עבותה. לצד כל בית כזה יש גם בית לעובדים וכן סדנאות עבודה ומחסנים.
הנחלה כולה משתרעת על שטח של כמאה וחמישים דונמים, אותם סובבת שדרה רבועה מפוארת ורחבה ובערך באמצעה עובר ערוץ נחל. בצדי הדרכים והשבילים פרחו פרחים צבעוניים וציפורים צייצו. 
היינו משפחה עשירה מאד בכסף ובנכסים ואנחנו עדיין. את הנחלה הקיפו דונמים רבים של שדות. שדות של תירס, שדות של חיטה, שדות של ירקות, כרמים של גפנים וכרמים של זיתים, פרדסים של תפוזים ולימונים ומטעי פרות נשירים. בצד הצפוני היה דיר גדול ולידו הייתה אורווה. היה יקב ומפעל לשימורים, נגריה ומטבח רחב ידיים ששכן במבנה גדול ועבדו בו שלוש נשים. הן היו מבשלות ואופות לכולנו אוכל משובח. אחת מהשלוש, איריס, הייתה לי כאם. צמוד למטבח היה מבנה נוסף ששימש כמעין מועדון. היו בו שולחנות נמוכים עם כורסאות ושולחנות אוכל ומכונת קפה ומשחקים.
בכל אחד מהבתים הגדולים גרה אחת משבע נשותיו של אבי וצאצאיה.
ליתר דיוק בחמשה מהבתים גרו נשים של אבי וזאת כיוון שאשתו הראשונה נפטרה לפני שנים רבות וגם אמי היפה נפטרה כשהייתי בת ארבע.
היו לי  23 חצאי אחים ואחיות ואח אחד שלם. כלומר, לאבי נולדו 25 בנים ובנות בסך הכול. 
כל הילדים למדו יחד עד כיתה ח' וחולקו לקבוצות למידה לפי רמת התקדמות. את הבנים לימדו גם לעבוד בשדות, במשק החי, נפחות, חשבונאות, נגרות ועוד מיני מלאכות וכישורים, ואת הבנות גידלו להיות מתחזקות בית לעילא. למדנו לעשות כל שתעלה על הדעת כולל עבודות יד, מוסיקה, מחול. בין ח' ליב' עברנו ללמוד בבית ספר אזורי שהיה חצי שעה נסיעה מהנחלה. 
עד כאן הצלחת לדמיין?

אימא'לה !!  אני מת !!

צחקתי בקול רם.

זה סיפור עם נוף ציורי יויו יקר שלי. אבינו דר בבית בו התגורר כל ימי חייו, להוציא שבע שנים בהן חי עם אשתו הראשונה בבית שלימים הפך לבית שלנו, אותו בנו לו הוריו מבעוד מועד נישואיו הראשונים. ביתנו היה הבית האהוב על אבינו. לאחר שהוריו, שהיה בנם היחיד, הלכו לעולמם, הוא חזר לבית ילדותו עם פרלה, אשתו הראשונה, לה נישא כשהיה בן עשרים ושתיים. היו להם 3 בנים. פרלה אשתו הראשונה של אבי הייתה עקרת בית למופת. לאחר שחזר לבית הוריו ביקשה פרלה להשאיר את הבית שלהם ריק למרות שלאחר מות הוריו עמד אבינו לשאת אישה שנייה. כשהיה בן 29 נישא לנורית, ממלא אחר בקשת הוריו שלחצו עליו לשאת אישה נוספת, לאחר שפרלה שברה את האגן שנתיים קודם, ובנה לה בית חדש. הם רצו המשכיות למשפחתם. ועודדו את אבי להביא לעולם צאצאים נוספים.
הבית שלנו היה ממוקם בפינה הצפון מערבית של החצר הענקית שמוקמה סביב הנחל. מצד אחד שלנו, במרחק די גדול, גרו נורית וארבעת בניה ומהצד השני, מעבר לנחל התגוררה מלכה עם שני בניה ושלוש בנותיה. בניה של נורית היו פרועים וחסרי מעצורים.
אמי הייתה אשתו הרביעית של אבא. הוא נישא לה זמן קצר לאחר שנישא למלכה. כשילדה אותי חלתה. זו לא הייתה מחלה ממש כי אם איבוד כמות עצומה של דם לאחר הלידה בשל סיבוך ברחם. היא התגברה על איבוד הדם אך סבלה מבעיות פיזיולוגיות רבות. הייתה לי מטפלת ובהתחלה אף מינקת. גרנו יחד אמי אחי ואני. כשמלאו לי ארבע היא הלכה לעולמה. שמה היה חנה. אחי היה מבוגר ממני באחת עשרה שנים. הוא שמר עלי תמיד ככל שיכל. לפעמים יצא לנסיעות וככל שבגר הלכו ורבו סמכויותיו ואחריותו גדלה. אחי היה מעין שר חוץ של המשפחה כולה. הוא זה שידע שפות זרות, הוא זה שידע לנהל שיחה עם כל אדם, הוא זה שעורר אמון וחיבה בקרב הבריות. אחי הגדול החליף הרבה מאד נשים והיה גבר גדול ומושך. בימים בהם אחי אהרון היה בנסיעות אילץ אותי אבינו לשהות בביתה של מלכה. התנגדותי לא הועילה. 
"אני רועדת מקור יויו"
נכנסנו והכנו עוד קפה וכוסות מים ואגוזי קשיו וצימוקים שחורים קטנים ושוטטנו והתחבקנו והסתובבנו עוד בבית – יויו מְטָווס גאה. ישבנו ליד שולחן האוכל. הבטנו אחד בשני. "אני רוצה שתמשיכי לספר לי, אני מרותק". הוא אמר. 
היו עוד שלוש נשים, ליליאן, דבורה ורחל האהובה. אבא כמו עץ, המשכתי, גוו היה זקוף וחזק כגזע וקומתו גבוהה. הוא היה חכם וקל לשון אך העדיף לעסוק כמה שפחות בעסקים ובכל הכרוך בהם ואת ימיו בילה בשדות. עם הזמן ובטבעיות, ולמרות שהיו בנים מבוגרים ממנו, הפך אחי לאיש שלו. 
בימים שלאחר מות אמי, מלכה ונורית, האימהות השכנות, דאגו לנו. מלכה השקיע בנו שעות רבות מזמנה ומרצה וניסתה להעביר אותנו לחזקתה. למרבה המזל אחי היה מבוגר ונחוש מספיק בכדי להתנגד לדבר. הוא כבר היה בוגר מספיק כדי לדעת שמלכה חומדת את ביתנו, שאבא אהב ולכן דאג להיות בעל הבית.
אני מספרת לך את הדברים עכשיו, שנים לאחר אותם חיים באותה חצר סגורה וכמעט 32 שנים מאז שאני לא שם יותר. גיליתי פרצה דרכה חמקתי החוצה אל העולם הפתוח אותו לא באמת הכרתי במהלך 18 שנות חיי עד אז. 
סבלתי את אמותיי החורגות רק מתוך כבוד לאבא שלי, כמו שאני סובלת את האחים החורגים מתוך כבוד למשפחה, למרות שלא כולם בלתי ראויים. חלקם ראויים ביותר והיו אחים נהדרים ואני אוהבת כמה מהם עד מאד. אתה יכול רק לנסות ולדמיין כמה צאצאים נוספים נולדו מתוך 25 אחים ואחיות...? לא מעט, זה בטוח.
אני חושב שיש לי הרבה מאד שאלות אלייך. אבל שאלה ראשונה ברשותך אישה יקרה... זה חוקי הדבר הזה?
זה היה במקום אחר שהיה בזמן אחר וכן, זה היה לגיטימי למרות שזה לא היה מקובל, ואבא הלך רחוק עם הלגיטימציה ולשמחתי זה מאחורי והיום אני גרה במקום אחר לגמרי, שוב קרובה לאבא שכבר מלאו לו 92, וקרובה לאהרון שבעוד שבוע ימלאו לו 60, וקרובה לאדית – עוד חצי אחות שלי, בתה של מלכה, אשתו השלישית של אבא והיא בת גילי, וקרוב לניקי, האחות האחת לפני הצעירה ביותר מ25 בניו ובנותיו של אבינו ובתה של רחל, אשתו הצעירה ביותר והנפלאה ביותר שאהבה אותי ואני אותה. עם ניקי נפגשנו באיחור מה. אני אצייר לך יום אחד את עץ המשפחה שלי.
זה סיפור עבות וצפוף כמו כמות עצים שמוח אחד לא יכול לדמיין בבת אחת, ולא יודעת כמה אספר לך ממנו ובטח לא עכשיו. עכשיו מה שעכשיו. אבינו לא התעסק אתנו יותר מידי, אבל מידי בוקר ברבע לשמונה היינו מתקבצים כולנו באמצע הנחלה, סמוך למקום בו עובר הנחל, וישנה במה קטנה ורחבה מרוצפת, וחורשת עצי מחט. אבא, שמצד אחד היה טיפוס ארטיסטי ומן הצד השני היה קשוח עד מפחיד, אסף את כולנו מידי בקר באותה רחבה. יויו יקר שלי... אני עצמי עוד לא לגמרי יודעת איך לדבר על 18 השנים הראשונות של חיי ולכן לא נוהגת לדבר עליהן. אני עוד אספר לך המון יויוקה ויש לי מספיק מה לספר גם אם לא אגיע בשלב זה לדברים שעדיין איני מסוגלת לדבר עליהם, אבל בינתיים, אני רוצה לספר לך עוד דבר אחד מאותה נחלה. 


[img[pictures/aba-etz.jpg]]



בבקרים באסיפה המשפחתית היה אבי עומד מולנו ועורך טקס לא ארוך, בו דבר ראשון איחל לכולנו בקר טוב ואנחנו לו. אחריו הוא היה מנחה אותנו לנשימה נכונה משך כמה דקות. מביט לכל אחד ואחד מאתנו לתוך העיניים. מסיים. מסתכל על כולנו ואומר: ועכשיו כל אחד מכם ילדי היקרים, יכול לבקש דבר מה אותו הוא מאחל לעצמו מכוכב המשאלות בעל תשע הצלעות. כל אחד מאתנו דמם עם עצמו לדקה. ואז חייך אבינו חיוך גדול. הצמיד כפות ידיו זו לזו בהנאה, בירך את כולנו ליום מוצלח ופורה, ומשם המשכנו כל אחד אל משימותיו. 





.


<<englink [[Eva`s family tree]]>>
[img[pictures/trees.jpg]]



!!![[גורה]]:

למה אדם חשוב מעץ? זאת לא אקבל. אך אם חיי אדם יהיו בסכנה, ואדרש לכרות עץ כדי להצילו, כנראה שאכרות, והמחשבה הזאת מזעזעת אותי.


<<list-links filter:"[tag[עצים]]">>


<<englink [[Trees]]>>



[img[pictures/f-m-alexander.jpg]]

!!![[אירי]]:

כשחקן צעיר נטה [[אלכסנדר|https://he.wikipedia.org/wiki/%D7%A4%D7%A8%D7%93%D7%A8%D7%99%D7%A7_%D7%9E%D7%AA%D7%99%D7%90%D7%A1_%D7%90%D7%9C%D7%9B%D7%A1%D7%A0%D7%93%D7%A8]] להצטרד בזמן שהופיע. הוא החל לחקור את התופעה, וכך פיתח את [[השיטה|שיטת אלכסנדר]].


<<englink [[F.M. Alexander]]>>

[img[pictures/pie-agasim.jpg]]

!!![[אווה]]:

הבצק הפריך הזה, הוא בצק עשיר וטעים מאד, ובשל עושרו קשה יותר לרדד אותו, ומכיון שכך, משטחים אותו עם כפות הידיים בעובי פחות או יותר אחיד, עולים שניים-שלושה סנטימטרים לשוליים ואת השאריות מסירים בעזרת גב של סכין או פלטה או קלף או סכין גלגלת.

:) 


1. בצק פריך:

במעבד מזון:

קודם :

* 200 גרם חמאה
* כוסכוס סוכר

עד למשחה חלקה

מוסיפים:
 

* 350 גרם קמח
* כפית מחוקה אבקת אפייה
* 2 חלמונים
* 2 כפות שמנת חמוצה
* 2 כפות ברנדי

וממשיכים לערבל עד לקבלת כדור בצק

2. מלית גבינה:

* 250 גרם גבינה לבנה - זה יכו להיות גם שילוב של 
כמה גבינות: מסקרפונה, ריקוטה, גבינת שמנת, גבינה לבנה פשוטה, שמנת חמוצה, אני השתמשתי באותו יום בריקוטה, גבינה לבנה רכה 5%, שמנת חמוצה ושתי כפות שמנת מתוקה
* שני שקיקים של סוכר וניל
* 2 כפות סוכר לבן
* חלמון אחד
* 6 כפות שקטים מולבנים טחונים 
* כף קורנפלור
* גרד קליפת לימון אחד

טורפים את כל החומרים לקרם חלק

3. האגסים:

* קולפים שלושה אגסים, מוציאים מהם את הליבה וחותכים לשמיניות
* במחבת כבדה צולים את האגסים בכף חמאה על להבה גבוהה שלוש דקות
* מנמיכים את הלהבה ומוסיפים שתי כפות סוכר וממשיכים ארבע דקות, בהן מידי פעם הופכים בעדינות את האגסים
* מוסיפים רבע כוס בחרובקה, מיץ מחצי לימון, ממשיכים עוד שלוש-ארבע דקות ומכבים.

הרכבת העוגה:

* מחממים תנור ל 170 מעלות
* בתבנית עגולה 28, משטחים 2/3 מהבצק כולל הדפנות
* אופים את הבסיס עשר דקות
* מוציאים מהתנור ונותנים לו להתקרר רבע שעה
* מורחים את תערובת הגבינה על תחתית הבצק
* מעליה מסדרים את האגסים במעגל
* מקשטים עם שארית הבצק את חלקה העליון של העוגה
* מפזרים שקדים מולבנים פרוסים
* אופים 40-50 דקות ( עד שהבצק זהוב)



<<englink [[Pear pie with almonds cream cheese]]>>
[img[pictures/cheese-pie.jpg]]

!!![[אווה|אווה כהן]]:

1. מכינים [[בצק פריך]], ומניחים אותו במקרר ל-20 דקות עד שעה.

2. . מרדדים משני שלישים של הבצק עלה שיתאים לתבנית 24, מהדקים את התחתית ומשאירים שוליים בגובה התבנית. (את השליש הנותר מניחים עטוף במקרר, עד להכנת כיסוי הפאי).

3. . בעזרת מזלג מחוררים את הבצק בכמה מקומות.

4. מקפיאים את הבצק עשר דקות ואחר כך אופים אותו בתנור שחומם מראש לחום בינוני (170 מעלות צלזיוס) עשר דקות.

5. בינתיים בקערה בינונית ובעזרת מטרפה, מערבבים 200 גרם גבינות לבנות רכות (זה יכול להיות עם אחוזי שומן שונים כולל גבינה לבנה רגילה, מסקרפונה, גבינת שמנת, שמנת חמוצה)

6. מוסיפים לגבינות ביצה אחת ושתי שקיות סוכר וניל וממשיכים לערבב עד שהתערובת אחידה וחלקה

7. מוסיפים  2 כפות קמח שקדים וכף אחת של קמח לבן מנופה וממשיכים לערבב עד - שוב - שהתערובת אחידה, ומניחים אותה במקרר

8. לאחר שהבצק התקרר מוציאים את תערובת הגבינה מהמקרר, מערבבים אותו ומוזגים על תחתית הפאי.

9. מניחים 20 דובדני אמרנה (שומרים שליש כוס מהסירופ של הדובדבנים בצד)

10. מרדדים לעלה את שליש הבצק שנשאר ושהה במקרר, וחותכים אותו לרצועות בעובי של כחצי סנטימטר עד סנטימטר 

11. מניחים לסירוגין פס לאורך ופס לרוחב עד שנוצרת רשת על פני הפאי.

12. אופים בחום בינוני 40-50 דקות

13. מרתיחים את מיץ הדובדנים עם 1/3 כוס מים, ומבשלים דקה נוספת

14. בעזרת מברשת מברישים מהסירופ דובדנים על הבצק

15. הפאי מוכן :)



<<englink [[Cheese pie]]>>
[img[pictures/pie-duvdevanim.jpg]]



!!![[אווה]]:

הפאי הזה בנוי מתחתית בצק פריך עם שקדים, מלית דובדבנים מבושלת שעשויה מדובדבנים חמוצים ומגולענים שקונים בצנצנות וקישוט מהבצק של התחתית. מעל כל אלה מפזרים שקדים מולבנים פרוסים, ומכניסים לתנור.

אם כן, ב[[מיזונפלציה]], הכינו גם שקדים מולבנים פרוסים בהם תשתמשו אחרונים.


בצק פריך שקדים:

* 120 גרם שקדים טחונים
* 200 גרם חמאה
* כוס סוכר
* 5חלמונים
* מיץ מחצי לימון
* שקיק סוכר וניל
* 2 כוסות ושני שליש כוס קמח לבן מנופה
* כפית מחוקה אבקת אפייה

1. לתוך מעבד מזון מכניסים את השקדים וטוחנים לאבקה

2. מוסיפים את החמאה והסוכר וממשיכים לעבד עד לקבלת משחה חלקה

3. מוסיפים את שאר החומרים ומערבלים עד לקבלת כדור בצק.


מילוי דובדבנים מבושל:

* 2 צנצנות דובדבנים חמוצים ללא חרצנים
*  כוס מהמיץ
* כוסיין אדום
* כף קינמון
 * 2כפות קורנפלור
* 2 כפות סוכר


1.לסנן את הדובדבנים ולשמור בצד

2. לבשל את המיץ עם היין, הקינמון, הקורנפלור והסוכר תוך כדי בחישה עד לקבלת מרקם סמיך 

3.להסיר מהאש, להוסיף את הדובדבנים ולקרר

הרכבת העוגה:

1.לחמם תנור לחום בינוני (170 מעלות)

2.לשטח שני שלישים מהבצק בתבנית 24 עגולה כולל הדפנות

3.למלא במילוי דובדבנים

4.לקשט בשליש הבצק הנותר מלמעלה

5.לפזר שקדים מולבנים פרוסים

6.לאפות 40 דקות בערך, עד שמזהיב יפה יפה.



<<englink [[Cherry pie]]>>
[img[pictures/pie-naktarin.jpg]]

!!![[אווה|אווה כהן]]:


(נקטרינות, אפרסקים, שזיפים)

1.בסיס בצק פריך שקדים

*90 גרם שקדים טחונים
*150 גרם חמאה
*6 כפות סוכר
*4 חלמונים
*כף מיץ לימון
* שתי כוסות קמח
*כפית אבקת אפייה

2. מלית שקדים:

* 100גרם חמאה
*100גרם סוכר
*2 ביצים
*125 שקדים
*50 גרם קמח
*כפית סוכר וניל


3. 1 ק"ג נקטרינות פרוסות לפלחים

4. בצק שטרוייזל:

*200 גרם חמאה
*200 גרם סוכר
*250 גרם קמח
*כפית סוכר וניל

אופן ההכנה:

1. מכינים את בצק מספר 1 באותו האופן שמכינים [[בצק פריך]]

2. במעבד מזון מערבבים את כל החומרים לכדי משחה.


3., חותכים קילו פרות לפלחים לא גדולים.

4. מכינים את בצק השטרויזל, באותו אופן שמכינים בצק פריך. עוטפים אותו בניילון נצמד, מקפיאים כחצי שעה.

5. מחברים את העוגה - משטחים את הבצק שקדים בתחתית התבנית, מעליו מורחים שכבה של משחת השקדים, מעל מסדרים את הפרות, מעל גוררים בעזרת פומפייה את בצק הפרורים.

6.אופים בתנור שחומם מראש ל 170 מעלות 40-50 דקות, עד שהפאי זהוב.

7. מגישים בטמפרטורת החדר.



<<englink [[Nectarine pie]]>>
[img[pictures/pekan-pie.jpg]]

!!![[אווה|אווה כהן]]:

חומרי גלם לקרמל

*מאה גרם חמאה
*כוס וחצי סוכר
*כוס וחצי  שמנת מתוקה

חומרי גלם [[לבצק|בצק פריך]]

   *מאה וחמשים גרם חמאה
  *שתי כפות סוכר
    *חצי כף סוכר וניל
    *שתי כפות חלב
     *ביצה אחת
    *שתי כוסות קמח
    *כפית שטוחה של אבקת אפיה
    *קורט מלח
__
__אופן ההכנה____

''הקרמל:''



*ממיסים את החמאה, וכשהיא נמסה מוסיפים את הסוכר. משתדלים לא לבחוש, אלא מניעים בעדינות את הסיר מצד לצד מעל להבה גבוהה, כדי שהסוכר לא יתגבש. הסוכר הולך ונמס, מזהיב ומשחים.הבועות הולכות, מתרבות ומתעבות…. כשהוא מגיע לצבע חום טופי מעט כהה, ואדים עולים מצידיו הפנימיים של הסיר. *מכבים את האש ומוזגים מאד!! לאט תוך בחישה מתמדת את השמנת המתוקה שהוכנה מראש אל תוך הקרמל.
''אזהרה - הקרמל מתחיל לרתוח בטירוף עם מזיגת השמנת, לכן יש להתכונן לפעולה, לשמור מרחק, למזוג לאט ולא להיבהל. יש לבחוש כל העת, למזוג מעט בכל פעם ולערבב עד שהקרמל נרגע ומתקבל נוזל סמיך ורך. בזמן שהקרמל מתקרר, מסדרים על הבצק את חצאי האגוזים. מעליהם יוצקים בעדינות את הקרמל.''

''
הבצק: (אפשר להסתכל ם במתכון [[בצק פריך]])''

*במעבד מזון או במערבל חשמלי עם להב ה"גיטרה":
*קודם להכניס את החמאה והסוכר והלפעיל את המכשיר עד לקבלת משחה חלקה.
*להוסיף את שאר החומרים ולהמשיך לערבב עד לקבלת כדור בצק. .
*לעטוף את הבצק ולקרר.
''
הכנת הפאי:''

*לשטח את הבצק בתבנית עגולה 26" ולחורר קלות עם מזלג.
*לאפות כעשר דקות ב-170 מעלות.
*להוציא את הבצק מן התנור ולסדר עליו את הפקאנים.
*למזוג בעדינות מעל הפקאנים את הקרמל מבלי *לכסות אותם לגמרי. (את הקרמל שנשאר אפשר לשמור במקרר או במקפיא ולהשתמש בו לפאי נוסף.)
*לאפות ב-170 מעלות 40-50 דקות., עד שהבצק זהוב.





<<englink [[Caramelized pecan pie]]>>
[img[pictures/fargo.jpg]]

!!![[יויו]]:

זה לא [[שזו|https://www.youtube.com/watch?v=KQb00kKRA08]] הסצנה הכי טובה בשלוש עונות מצויינות מכל בחינה של פארגו, שהיא סוג של טייק על [[פארגו הסרט|https://www.imdb.com/title/tt0116282/]] של האחים כהן, ובעצם אי אפשר לבחור מה הכי, אבל אפשר להגיד שרצח בינות לעצים ורציחות בכלל, קורות שם.

<<englink [[Fargo]]>>



[img[pictures/pavlova.jpg]]

!!![[פיליפ]]:

שלום למי שקורא,


ובכן,

אני בכלל לא איש מטבח, למעט העובדה שבזמן האחרון אני מוקף בכאלה, וזה נהדר.

אבל, 

למדתי פטנט עם טאצ' אישי,

וכשאני מוזמן לארוחות חגיגיות, אני קונה, בדרך כלל בקונדיטוריה שליד הבית, או בזו שליד הקליניקה - תחתיות מרנג.

קטנות, גדולות, מה שנראה לי באותו הרגע.

אני גם קונה מיני תותים, פטל וכו'

חצי מהפטל ופרות היער אני טוחן עם סוכר וניל ומיץ לימון לפי הטעם, וחצי משאיר כמו שהם.

חוץ מזה אני מקציף לקצפת חזקה, שני מיכלים של שמנת מתוקה עם ארבע כפות סוכר שטוחות.

אני אורז כל דבר לחוד, מחבר ברגע המתאים

וכולם נהנים מאד.



<<englink [[Pavlova]]>>
[img[pictures/merryfebruary.jpg]]

[[אימא של ג'אזז]]:

את פברואר השמח התחלנו לחגוג ב2022, לזכר ארועי פברואר 2002. 



<<englink [[Merry February]]>>
[img[pictures/pedro-almodovar.jpg]]

!!![[גורה]]:

[[זה|http://www.indiewire.com/wp-content/uploads/2016/08/shutterstock_5827053e.jpg?w=780]] הצילום ממנו ניסיתי לצייר את [[פדרו|http://www.imdb.com/name/nm0000264/]] המשגע, שב 1999 הוציא את הסרט [[הכל אודות אימא|http://www.imdb.com/title/tt0185125/?ref_=nm_flmg_wr_9]] -  שם מסכם, אבל הכי אהבתי את [[דבר אליה|http://www.imdb.com/title/tt0287467/?ref_=nm_flmg_wr_8]].

<<englink [[Pedro Almodóvar]]>>
[img[pictures/fa.jpg]]

!!![[יויו]]:

פה, הוא, מה שנקרא כאן בגנזך, [[מהסינים|הסינים]].

אביו הגיע רווק לפריז, וחיש חש הכיר את אמו, שעבדה ועדיין עובדת במרכז הקליטה, כעובדת סוציאלית.

פה הוא חכם, מקסים ונדיב. 
הוא מסיים תואר שני במחשבים.

יותר מקצרה היריעה מלהכיל מילות התפעמות ממנו ומהחבורה כולה. אירי טוענת כי הוא [[זקוף גו|זקופי הגו]].

<<englink [[Fa]]>>



[img[pictures/rice-pudding.jpg]]

!!![[סוניה]]:

זמן טוב [[להכין פודינג אורז|הרוקי מורקמי]], זה אם במילא נמצאים במטבח, ויש להבה קטנה פנויה על הכיריים.

כי את הפודינג אורז צריך לבחוש בעדינות מידי כמה דקות.

חומרים לשש מנות:

*חצי כוס אורז לריזוטו
*שלוש כוסות מים
*שתי כוסות חלב
*ארבע כפות סוכר
*שקית סוכר וניל
*קומץ קינמון טחון

אופן ההכנה:

1. שמים את כל המרכיבים בסיר, אותו מניחים על הלהבה הקטנה. מכסים את הסיר עד לרתיחה. (מערבבים כל כמה דקות)

2. לאחר הרתיחה מסירים את המכסה מהסיר, ומבשלים שעה נוספת. ממשיכים מידי כמה דקות לערבב בעדינות. 

3. כאשר מתקבל פודינג סמיך, מסירים אותו מן האש, מערבבים בעדינות שוב,  מחכים כמה דקות, ומוזגים לשש קעריות או שישה ספלים יפים.

4. אפשר לאכול מיד או לעטוף ולקרר במקרר.

5. [[בקוסקוס|הקוסקוס]] אנחנו מגישים את זה קר וכמו שזה, אבל אפשר גם לפזר מעל הפודינג, קוקוס, אגוזים, פירות, רוטב, סירופ...


<<englink [[Rice Pudding]]>>
[img[pictures/politician.jpg]]


!!![[גורה]]:

נכון לרגע זה, היינו אומרים, שפוליטיקאי הוא:

[[תאב שלטון|סוסים לדבק]] ו[[משחקי כח|https://www.youtube.com/watch?v=yb2rkbHXtow]].



<<englink [[A politician]]>>


[img[pictures/pooa.jpg]]

!!![[יויו]]:

[[פועה|https://puaa.rol.co.il/]], האישה והמקימה, נפטרה בינואר 2015.

הקפה-מסעדה שהוקם ב-1999 ממשיך לעבוד. 

שם יויו דיבר עם [[אווה|אווה כהן]] בפעם הראשונה.


<<englink [[Puaa]]>>
[img[pictures/pachzaniyot.jpg]]

!!![[אנג'ליק]]:


כבד קצוץ:

* מבשלים ארבע ביצים קשות ולאחר שהן מוכנות קולפים אותן ומניחים בצד.
* במחבת כבדה וחמה צולים חצי קילוגרם כבד עוף נקיים. בשלב הראשון  צולים ללא כל שומן, וכעבור מספר דקות של צלייה משני הצדדים, מוסיפים 25 גרם מהחמאה, וממשיכים עד - מבחינתי - שאין דם.
* מעבירים את הכבדים לקערה, ולאותה המחבת מוסיפים עשרה גרם חמאה בה את הבצלים על להבה נמוכה עד הזהבתם.
* במכונת בשר טוחנים את הכבד המוכן, הבצל והביצים הקשות. מתבלים במלח גס ופלפל שחור גרוס ושומרים במקרר.

*** אם אין ברשותכם מכונת בשר אפשר לטחון (בפולסים עדינים) במעבד מזון, או לקצוץ בסכין חדה.



פחזניות:

בצק הפחזניות הוא [[בצק רבוך|https://he.wikipedia.org/wiki/%D7%91%D7%A6%D7%A7_%D7%A8%D7%91%D7%95%D7%9A]].

80 גרם חמאה חתוכה לקוביות
כוס חלב
שליש כוס מים
שלושת רבעי כוס קמח מנופה
3 ביצים
כפית מלח מחוקה

* מחממים את התנור לחום של 210 מעלות.
* בסיר עם תחתית עבה מרתיחים תוך ערבוב את החלב, המלח והשמן.
* כשהחלב מתחיל לרתוח מסירים את הסיר מהלהבה ומוסיפים את הקמח בבחישה מהירה עד לתערובת אחידה וחלקה ומופרדת מדפנות הסיר. 
* מעבירים את התערובת לקערה, וטורפים פנימה את הביצים בזו אחר זו.
* מעבירים את הבצק לשקית זילוף עם פיית זילוף בצורת כוכב ובתבנית גדולה מרופדת בנייר אפייה מזלפים פחזניות בקוטר ארבעה ס"מ ובמרווחים גדולים.
* אופים 10 דקות, מנמיכים את חום התנור ל-170 מעלות, משאירים את דלת התנור מעט פתוחה, וממשיכים באפייה של עוד כ-20 דקות, עד שהפחזניות יציבות וחלולות.
*מצננים על רשת עד למילוי.

חיבור:

כשהפחזניות מוכנות ומצוננות חותכים כל אחת מהן לרוחבה וממלאים בכבד קצוץ. אוכלים מיד או אורזים ושומרים במקרר עד להגשה.

מגישים אותן עם [[חזרת]].



<<englink [[Éclair with liver stuffing]]>>
[img[pictures/vegan-pate.jpg]]

!!![[הצוות]]:

החומרים:

1. כוס עדשים שחורות מבושלות עד ריכוך

2. כוס אגוזי מלך מושרים במים לשעה-שעתיים

3. בצל קצוץ מוזהב במעט שמן קנולה ושמן שומשום

4. מלח ים ופלפל שחור גרוס

אופן ההכנה:

1. מסננים את העדשים המבושלות ואת האגוזים המושרים

2. מכניסים למעבד מזון את העדשים, האגוזים והבצל וטוחנים בפולסים עד משחה חלקה

3. טועמים ומוסיפים לפי הטעם מלח ים, פלפל שחור גרוס.
(אם חסרים לכם טעמים אפשר להוסיף עוד טיפה או שתיים משמן השומשום)


4. מרפדים תבנית אינגליש קייק בניילון נצמד, יוצקים לתוכה את המשחה, וממשיכים לעטוף היטב עם הניילון הנצמד. מאפסנים במקרר לכמה שעות (6-8) עד להגשה.



<<englink [[Vegan pate]]>>
[img[pictures/pate-kaved.jpg]]

החומרים:

1. 200 גרם חמאה

2. 1 ק"ג כבד עוף נקי

3. 2 בצלים בינוניים-גדולים חתוכים

4. רבע כוס יין אדום מתוק או ברנדי או יגר מייסטר וכו'

5. מלח ים גס ופלפל שחור גרוס

אופן ההכנה:

1. צולים את הכבדים במחבת כבדה עם מעט מהחמאה עד שהם מוכנים, מניחים בקערה ומעליהם 50 גרם חמאה

2. מוסיפים עוד מעט חמאה למחבת, מזהיבים את הבצלים ומוציאים אותם אל קערת הכבדים

3. מוסיפים למחבת את שארית החמאה עד שהיא נמסה ומוזגים אותה מעל הכבדים והבצל

4. מוסיפים לקערה את האלכוהול

5. טוחנים הכל במעבד מזון עם מעט מלח ופלפל - טועמים ומתקנים אם צריך

6. את משחת הכבד מוזגים לכלי הגשה או לתוך תבנית אנגליש מרופדת בניילון נצמד, אוטמים ומניחים במקרר ל 6 שעות לפחות.




<<englink [[Chicken pate]]>>
[img[pictures/phillip.jpg]]

!!![[גורה]]:

פיליפ שלנו. 

ניסיתי בעיקר להראות את רעמת השיער המפוארת של הדוקטור, שצומחת ממצחו הגבוה בצורת לב, ואת פניו הנהדרים, ואת מבטו החכם והמעמיק.

הוא היה הפסיכיאטר שלי, וכשיויו הגיע לפריז, הלכנו אליו יחד.

נפשותינו נקשרו ואחרי שנפצעתי התקרבנו עוד.

ב[[ארוחת כריסמס]] הוא פגש את [[אווה|אווה כהן]] - אותה הכיר שנים רבות קודם, ובעצם שניהם אהבו זה את זו כל השנים האלה.

יש לו שני בנים גדולים, הוא עצמו בן מעל ששים והתאלמן לפני כמה שנים.

היום, כידוע, [[אנחנו|האחיות כהן]] משפחה אחת [[גדולה ושמחה|המשק האוטרקי שלנו]].


<<englink [[Philip]]>>
[img[pictures/Philip-Seymour-Hoffman.jpg]]

!!![[יויו]]:

נכון שהוא היה חור תחת [[בביג לבובסקי|ביג לבובסקי]] של [[האחים כהן|איתן וג'ואל כהן]], אבל הוא עשה את זה טוב, והוא גם היה בסינקדוכה ניו- יורק של [[צ'רלי קאופמן]], שגם אותו אני מחשיב [[לאחות חוץ|אחיות חוץ]]. 

אוהב אותו כאחות,

את [[פיליפ ז"ל|http://www.imdb.com/name/nm0000450/]]

<<englink [[Philip Seymour Hoffman]]>>
[img[pictures/pina-bausch.jpg]]

!!![[אירי]]:
[[פינה באוש|https://en.wikipedia.org/wiki/Pina_Bausch]] וחברי [[תאטרון המחול וופרטל|http://www.pina-bausch.de/en/]] רוקדים. זו יכולה להיות ריצה קלה או הליכה רגילה או [[rond de jambe en lair|http://www.abt.org/education/dictionary/terms/rond_jambe_lair.html]] 

[[זה|https://www.youtube.com/watch?v=LA65HrIMrjs]] למשל, קטע שרקדן של הלהקה הביא לאחר חופשה, [[ונכנס|https://www.youtube.com/watch?v=CIrRR48s5As]] למופע ציפורנים.

[[וזה|https://www.youtube.com/watch?v=WZd2SkydIXA]] מופע שיויו וגורה השתמשו בשמו [[ב-HH|HH]] בזמנו - [[קפה מילר]], כמחווה לרקדנית והכוריאוגרפית החשובה, פינה ז"ל.

<<englink [[Pina Bausch]]>>
[img[pictures/peacock.jpg]]

!!![[תומר]]:

כן, בגטו המיטיב, במעלה מרמורק, שוכן [[הפיקוק|http://peacock.rest.co.il/]], שהוא בר הכי שווה, שנפתח בשש בערב, השעות בהן מזה כמה חודשים אני אבא לתינוקת, ואחר כך עייף מאד ממחר המתקרב, אך כשהולך - הולך לפיקוק.

<<englink [[Peacock]]>>
[img[pictures/pele-ozen.jpg]]

!!![[הצוות]]:

[[נפלאים|http://coensisters.org/pictures/pele-ozen-beit-alpha.jpg]] ששרים על הסקייט והמייק חזק וברור. [[שלא נרדם כולנו|https://www.youtube.com/watch?v=HxdcYPaNIX0]] בשמירה על האחרים ועל [[עצמנו|על הספקטרום]]. [[בביט וכיף של גרוב|https://www.youtube.com/watch?v=9OlAf4fCv0Q]] לטייל איתם וללמוד שאפשר [[שיהיה לנו כבר טוב|https://www.youtube.com/watch?v=WPwFRyCuWpI]]. אנחנו [[כאן בדירה|הצוות]] התאהבנו בהם. 

זה [[מהאלבום החדש|https://www.youtube.com/watch?v=khMjy6gJIog99]]- נובמבר 2018.

[[כי את האור להפיץ זה לא פשע|https://www.youtube.com/watch?v=Z2mJLm8aUiI]]



<<englink [[Pele Ozen]]>>
[img[pictures/pilpelim.jpg]]

!!![[אווה]]:

* מרפדים תבנית גדולה בנייר אפייה, ומניחים עליו כמה פלפלים שרוצים, ומכניסים לתנור מחומם ל 190 מעלות צלזיוס.
* קולים אותם עד שהם משחימים מכל הצדדים וחלקים מהקליפה ניתקים ממנה.
* לאחר שהפלפלים קלויים משאירים אותם בתנור עד שהם מגיעים לטמפרטורת החדר.
* מוציאים אותם מן התנור, מושכים לכל אחד מהם את הראש ומסננים את המיץ שיש בתוך כל פלפל לקערה קטנה.
* קולפים שיני שום לפי הטעם ופורסים אותם לפרוסות קטנות.
* מקלפים את הפלפלים מהקליפה שלהם, חותכים אותם לרצועות ומסדרים על צלחת.
* מפזרים פרוסות שיני שום
* מוזגים לתוך מיץ הפלפלים כמות זהה של שמן זית, מערבבים ומוזגים מעל הפלפלים.
* מפזרים מלח קורט מלח ים גס.
* אפשר להגיש מיד או לתת לזה לעמוד, או לאפסן ולהגיש גם כמה ימים לאחר ההכנה.




<<englink [[Roasted peppers]]>>
[img[pictures/panatone.jpg]]

!!![[סוניה]]:

חומרים:

* 350 גרם קמח
* 30גרם שמרים טריים
* 100 גרם סוכר
* 3/4 כוס חלב
* 3 חלמונים
* קורט מלח
* קליפה מגוררת מתפוז אחד
* 50 גרם חמאה רכה
* 50 גרם צימוקים לבנים קטנים
* 50 גרם משמש/תאנים/קליפת אתרוג מסוכרת
* 50 גרם קליפות הדר
* רבע כוס רום


* במקור עושים את העוגה עם מחמצת שאור, אך כאן הגירסה המהירה עם שמרים
 * אפשר לשים כל סוג של פירות יבשים בפנים.
* בחנויות הפרות היבשים יש סוגים נהדרים של פרות יבשים בלי סוף ואפשר להשתולל


1. קוצצים את הפרות היבשים ומשרים אותם ברום למשך כמה שעות טובות

2. שמים את הקמח השמרים הסוכר, קליפת התפוז והמלח בקערת ומערבבים קלות בעזרת כף

3. מוסיפים לקערת הקמח את החלמונים והחלב ושמים במיקסר עם וו לישה עד שכל החומרים מתאחדים

4. מוסיפים את החמאה חתוכה לקוביות וממשיכים בלישה עוד שש-שמונה דקות

5. מניחים במקום חמים להתפחה עד שהבצק מכפיל את נפחו

6. מסננים היטב את הפרות היבשים ומוסיפים לבצק 
   בתנועות לישה עדינות
    
7. מעבירים את הבצק לתבנית משומנת ומתפיחים שנית כשעה במקום חמים.

8.אופים כ-15 דק' בתנור שחומם מראש ל180 מעלות.
    
9. לאחר 15 דק' מכסים את העוגה (מניחים נייר כסף מעל מבלי להצמידו), וממשיכים לאפות בחום של 160 עד שקיסם שננעץ בעוגה  יוצא יבש. (40 דקות עד שעה ולפעמים אף יותר בשל גובהה של העוגה)

10. מבשלים סירופ מכוס מיץ תפוזים וחצי כוס סוכר ומוזגים אותו מעל בעדינות כשהעוג שיצאה מהתנור עדיים חמה.




<<englink [[Panettone]]>>
[img[pictures/pasta-mia.jpg]]

!!![[תומר]]:

בהחלט נעים וטעים לאכול [[בפסטה מיאה|http://pastamia.co.il/]] שבווילסון, אך לרוב אני קונה שם פסטה ומכין בבית. הכי אני אוהב את [[החונקי כמרים|http://pastamia.co.il/pasta_catalog.pdf]]


<<englink [[Pasta Mia]]>>
!!![[האחיות כהן]]:

''
כשהיה מותר לעשן''

[img[pictures/paam-haya-mootar.jpg]]


<<list-links filter:"[tag[פעם]]">>

''נדמה היה, שהכל בסדר''


<<englink [[Once]]>>
!!![[יויו]]:
''
Fapina''


''מילה בהונגרית שפעם לימדו אותי ושמשמעותה:''


[img[https://i.imgur.com/xiMpKvk.jpg)]]




<<englink [[Fapina]]>>


[img[pictures/flowersinthekitchen.jpg]]


<<englink [[Flowers in the kitchen]]>>

!!![[אימא של ג'אזז]]:

פרחים וכל השאר.

[img[pictures/prince.jpg]]

!!![[הצוות]]:


[[גשם סגול, גשם סגול|https://www.youtube.com/watch?v=TvnYmWpD_T8]]. [[זו התמונה|https://www.billboard.com/files/styles/article_main_image/public/media/do-not-reuse-bb36only-prince-purple-rain-1984-richard-e-aaron-mptv-billboard-650.jpg]]. היום הוא יום השנה וחצי למותו של [[פרינס|https://he.wikipedia.org/wiki/%D7%A4%D7%A8%D7%99%D7%A0%D7%A1]], ינוח על משכבו בשלום. בגעגוע [[למוזיקולוגיה הייחודית|https://www.youtube.com/watch?v=zILabWVdIMs]].  כן, לפעמים נזכרים באוקטובר, [[שלפעמים יורד שלג באפריל|https://www.youtube.com/watch?v=uGzXiK8_KU8]].

<<englink [[Prince]]>>
[img[pictures/chilli-cmo-karne.jpg]]

!!![[הצוות]]:


החומרים:

*שמן תירס
*שמן חריף
*בצל גדול קצוץ לקוביות
*שתי שיני שום קצוצות
*פלפל אדום חתוך לקוביות קטנות
*פלפל צהוב חתוך לקוביות
*שני גזרים מגוררים
*20 עגבניות שרי תמר חתוכות לפלחים
*ארבע עגבניות בגודל בינוני מסוג טעים חתוכות לפלחים
*חצי כוס שעועית חומה מבושלת עד רכות (משרים לפני לפחות 8 שעות)
*חצי כוס שעועית שחורה מבושלת עד רכות (להשרות לפני לפחות שמונה שעות)
*חצי קילוגרם כמו בשר טחון
*שתי כוסות רסק עגבניות מבקבוק
*כוס-שתי כוסות מים
*פלפל שחור
*מלח ים גס
*כפית סוכר
*צ'ילי טחון
*שני עלי זעתר
*צרור כוסברה קצוץ 

אופן ההכנה:

1. בסיר בקוטר 24 ס"מ מחממים שתי כפות שמן תירס ושתי כפות שמן חריף וצולים את הבצל והשום עד הזהבה

2. מוסיפים את הפלפלים וממשיכים לצלות עד הזהבה

3. מוסיפים את הגזר המגורר וצולים

4. מוסיפים את העגבניות החתוכות וממשיכים לצלות עד שנגמרים הנוזלים בסיר

5. מוסיפים את הכמו בשר טחון וצולים כמה דקות תוך ערבוב בכף עץ

6. מוסיפים את רסק העגבניות וכוס-שתי כוסות מים

7. מערבבים ומוסיפים את התבלינים ומבשלים שעה על אש קטנה. מידי פעם מערבבים בעדינות

8. מכבים את האש. נותנים לצ'ילי להתקרר, טועמים ומתקנים תיבול ומחממים שוב.

9. מפזרים כוסברה קצוצה לפי הטעם ומגישים מעל אורז לבן




<<englink [[Chili cone carne]]>>

[img[pictures/chimchimney.jpg]]


!!![[רוז'ה]]:

אני קורא לתרגול הזה [[צ'ים צ'ימני|https://www.youtube.com/watch?v=BGCmVDl46rY]], כי זה מה שהוא מזכיר לי, ניקוי ארובה, שמתחילה בתחתית האגן ועולה לאורך עמוד השדרה, דרך החיבור שלו לראש ומעליו וכוללת [[שבע צ'אקרות|https://he.wikipedia.org/wiki/%D7%A6%27%D7%90%D7%A7%D7%A8%D7%94]] דרכן אני עובר כשאני מפלס את הדרך. אני שוכב בנח, מרפה את המקומות המתוחים בגוף ונושם. אני מתחיל מצ'אקרת הבסיס. עם כל הכנסת אוויר מפלס אט דרך מעלה  לעבר הצ'אקרה השניה, צ'אקרת המין, ובכל נשיפה חוזר לשורש. את הפעולה הזו אני ממשיך גם למקלעת השמש שהיא הצ'אקרה השלישית, אחר כך לצ'אקרת הלב, שמעליה צ'אקרת הגרון, אחר כך לצ'אקרה השישית היא העין השלישית ולבסוף לכתר שנפתח מעל הראש אל האינסוף. 





<<englink [[Chim Chimney]]>>
[img[pictures/chan.jpg]]

!!![[גורה]]:

לצ'ן יש אופי של חקלאי. הוא משקים קום, הוא אחראי על המשאית הקטנה של [[הסינים]], הוא חזק, חרוץ, ממושמע, נחמד ומצחיק טילים. 


<<englink [[Chan]]>>
[img[pictures/chang.jpg]]

!!![[גורה]]:

[[אירי]] טוענת, שגם צ'נג הוא [[זקוף גו|זקופי הגו]]. צ'נג המפואר עם [[דניאל]] המפואר גם כן, פתחו את האתר הזה.

הוא בן יחיד, הוא מסיים השנה תואר שני בסטטיסטיקה, 
הוא שולט ברזי המרשתת, הוא מתגורר בדירת חדר שקנה ושיפץ, לא רחוק מאיתנו.

<<englink [[Cheng]]>>

[img[pictures/charlie-kaufman.jpg]]

[[התסריטאי והבמאי|https://he.wikipedia.org/wiki/%D7%A6%27%D7%90%D7%A8%D7%9C%D7%99_%D7%A7%D7%90%D7%95%D7%A4%D7%9E%D7%9F]] הנערץ עלי.


<<englink [[Charlie Kaufman  ]]>>
[img[pictures/zavarim.jpg]]

!!![[אירי]]:

[[כשאלכסנדר|פ.מ.אלכסנדר]] אומר להניח לצוואר להיות חופשי, הוא מתכוון כמובן, לחלק שמחבר בין הגוף לראש,  ממנו מתחילה שרשרת הכיוונים. 

[[בשוכבי בהודו על המזרון|מחפשת את אירי]], ראיתי כל מפרק ופרק כצוואר, הנחתי לו להיות חופשי, נתתי לראשו ללכת קדימה ולמעלה, ולגב להתארך ולהתרחב.





<<englink [[Necks]]>>
[img[pictures/tzaziki.jpg]]

!!![[סולטנה]]:

סרז' שלי תמיד היה ילד מיוחד, והוא גם לא אהב מלפפונים. סבתי ז"ל הייתה עושה לו את [[הצזיקי|https://en.wikipedia.org/wiki/Tzatziki]] כמו שהוא אוהב, ועם קשוא ירוק כהה וזרעי קימל

* לוקחים שני קישואים ירוק כהה, קטנים קטנים וקשים קשים, חותכים אותם לקוביות קטנות ושמים בקערת ערבוב בינונית (עדיף נירוסטה)
* קוצצים חופן שמיר דק דק
* קוצצים שום אחד דק
* מוזגים מעל יוגורט סמיך לא חמוץ - 2 כוסות
* מתבלים עם מלח גס ופלפל שחור
* מפזרים מעל כף זרעי קימל (אם אוהבים)
* מערבבים בעזרת שתי כפות מלמטה למעלה, ומבחוץ פנימה בתנועות עדינות, זאת אומרת בתנועה מעגלית מהחוץ למרכז, כך שכלום לא ימעך
*מקשטים בכמה טיפות שמן זית, ומגישים

[img[pictures/zli-bakar.jpg]]

!!![[סוניה]]:

סיר גדול מספיק

* ארבע כפות חמאה
* שני קילוגרם של שריר קדמי של עגל.
* שישה-שמונה תפוחי אדמה קטנים מהסוג האדום
*  שני בצלים בינוניים
* כרישה 
* שני גזרים
* ארבע שיני שום
* שתי כפות חרדל
* שורש פטרוזיליה
* שני חבושים 
* בקבוק יין אדום
* רבע כוס דבש
*מעט קינמון (אפשר גם מקל קינמון)
* שני עלי דפנה
* פלפל שחור גרוס 
* מלח גס
* מים לכיסוי הנתח בעת הבישול

אופן ההכנה:
* קולפים ומנקים את כל הירקות וגם את החבושים
* מחממים את הסיר, מכניסים לתוכו את החמאה, "עוזרים" לה להינמס בעזרת כף עץ, ומניחים עליה את חתיכת הבשר ואת השום.
* לאט לאט מכינסים את  הירקות  החבושים בשלמותם,     
וצולים אותם מכל הכוונים ומכבים את הלהבה.
* לאחר שהצלי התקרר מעט (20 דקות), מוסיפים מים כדי כיסוי ומבשלים אותו מעל להבה נמוכה שעה.
* לאחר שעה מערבבים בקערה את החרדל, היין, הדבש והתבלינים. מוסיפים אותם לצלי שעל הכיריים וממשיכים לבשל שלוש שעות נוספות לפחות.


<<englink [[Roast beef with potatoes]]>>
[img[pictures/queng.jpg]]

!!![[גורה]]:

קואנג בסינית זה היקום.

הוא למד עיצוב תעשייתי, ויש לו [[חלל עבודה|הסדנה של קואנג]] ברובע ה-13.
הוא תמיד העדיף להתפרנס מהעבודה בשיפוצים עם [[חבריו|הסינים]], ובזמן האחרון אלפרד והוא [[משפצים ובונים רהיטים]] במלוא האון.


<<englink [[Queng]]>>
[img[pictures/veg-cube.jpg]]

!!![[הצוות]]:


לבצק: (כ-12 כדורים)

*כוס וחצי קמח סולת
*2 כפות שמן
*1/2-3/4 כוס מים

למלית:

*שמן זית
*בצל קצוץ
*גזר מגורר
*2-3 סלסלות של פטריות מכל סוג שתרצו ורצוי מכמה סוגים, חתוכות לקוביות קטנות
* חופן צנוברים

לרוטב:

*שמן זית
*ג'ינגר 
*שתי שיני שום כתושות או גרורות במגררת דקה
*שלושה מקלות סלרי פרוסים
*שתי בטטות בינוניות חתוכות לקוביות
*חמש עגבניות קטנות חתוכות לקוביות
*קופסת עגבניות קלופות 
*כפית תבלין קארי אדום
*רבע כפית קינמון
*רבע כפית חוואייג' לקפה או בהרט
*מלח ים גס לפחות 2 כפיות, ובהמשך לטעום ולהוסיף באם צריך
*פלפל שחור
*קורט סוכר
*ג'ינג'ר מגורר
*2 ליטרים מים

אופן ההכנה:

1. מערבבים את חומרי הבצק עד לכדור חלק ואחיד ומניחים בקערה עטופה במקרר - לגבי המים - בהתחלה מוסיפים לקמח הסולת והשמן חצי כוס מים ולשים עד לבצק חלק. אם הוא יבש מידי מוסיפים עוד כף או שתיים ובודקים.

2. למלית - במחבת גדולה מחממים 3-4 כפות שמן זית וצולים  על להבה בינונית בהתחלה, ולאחר צריבה ראשונית  על להבה נמוכה לפי הסדר את הבצל, הגזר, הפטריות והצנוברים- בכל שלב לתת לפריט להזהיב יפה. מניחים למלית להתקרר. 

3. לרוטב - בסיר בינוני-גדול מחממים 3--4 כפות שמן זית ומתחילים להזהיב לפי הסדר את השום, הסלרי, הבטטות והג'ינג'ר מגורר על פומפיה דקה.

4. כשהבטטות זהובות מוסיפים אליהן את התבלינים  ומטגנים אותן דקה-שתיים נוספות תוך ערבוב עדין כך שהכל ייעטף בתבלינים.

5. מוסיפים את העגבניות וצולים אותן עוד 15 דקות בערך (הלהבה עדיין נמוכה)

6.מוסיפים את המים ועל להבה בינונית שוב, נותנים לרוטב לרתוח. לאחר שרתח  מנמיכים את הלהבה ומבשלים כ-30-40 דקות (טועמים ואם צריך מתקנים תיבול)

8. בזמן שהרוטב מתבשל מוציאים את בצק הסולת מהמקרר ויוצרים כשכפות הידיים מעט רטובות כ-12 כדורי בצק. מחזירים למקרר ל-10-15 דקות נוספות

9. לאחר שהבצק התקרר, ממלאים אותו במלית הפטריות: 

*משטחים את הבצק למעגל בקוטר של 8 סנטימטרים בערך

* קורצים מהמילוי כמות של בערך כפית וחצי ומאחדים אותה לכדור, אותו מניחים במרכז עיגול הבצק, סוגרים את קצוותיו ומאחדים אותם לסגירה אחת, מגלגלים מעט ובודקים שהכדור סגור כמו שצריך

*מקררים את הקובות הלא מבושלות עד שהרוטב מוכן

10. כשהרוטב מוכן, מכניסים בעדינות את כדורי הקובה לתוכו (אנחנו מניחים כדור על כף ובעזרתה מחדירים אותו בעדינות לתוך הרוטב בינות לירקות), ומבשלים על להבה נמוכה כשעה.

* טעים מאד על [[קוסקוס]] או [[אורז|אורז לבן עם צנוברים]]





<<englink [[Vegan kubbeh]]>>
[img[pictures/kresha-ve-mangold.jpg]]

!!![[יויו]]:

[[גורה ואירי|אירי וגורה]] נסעו לכמה ימים ואני כולי לבד [[בדירה|כוכב המשאלות 01]]. לא רוצה לעשות כלום. לא בא לי לבשל. לא בא לי על אוכל מוזמן. אין לי כח לצאת מהבית. אני קם בקושי מהספה באמצע [[חינוך מיני]], ומתחיל להוציא מהמקרר. חותך מנגולד וכרישה ושן שום ומתחיל לצלות אותם לאט בסוטאז'. חתכתי גם בטטות דקות והחלטתי שאבשל את אלה עם מעט מים, ג'ינג'ר, מלח ופלפל שחור ובסוף אניחם על קוסקוס שאכין משקית. הייתי סגור שזה מה שבא לי. חתכתי את [[העגבניות|עגבניות בתנור]], הבטטות התבשלו וזה נראה היה די נחמד. בדרך לעגבניות החלטתי שאני מוסיף עדשים שחורות לתבשיל ככה כמו שהן חצי כוס, הוספתי עוד מים ועוד קצת מלח ובישלתי הכל עד שהעדשים התרככו והייתה לי ארוחה נחמדה מאד.




<<englink [[First we take leek and mangold]]>>
[img[pictures/coucous.jpg]]


!!![[ז'נבייב]]:

את הקוסקוס שלי אני הכי אוהבת עם סלט פול קר שכולל הרבה בצל סגול והרבה לימון והרבה עשבי תיבול, אבל כשאני מתארחת אני לרוב מביאה את הגירסה המוכרת - עם או בלי בשר - אבל יש בפנים תמיד דלעת, גזר, בצל, גרגרי חומוס - אבל לא קישואים. קישואים אני לא אוהבת.



חומרים לקוסקוס:

* ק"ג סולת
* שתיים וחצי כוסות מים
* רבע כוס שמן קנולה
ָ כף מלח

חומרים למרק:

* 2 בצלים
* 2 גזרים
* 2 תפוחי אדמה קטנים
* שלושה עלי סלרי
* חצי כוס גרגירי חומוס שהושרו שמונה שעות
* חצי קילוגרם דלעת
* מלח גס
* פלפל שחור גרוס
* 2כפיות שטוחות כורכום
* רבע כוס שמן
* 2 ליטר מים


אופן ההכנה:

1. מבשלים את גרגירי החומוס במים עד שהם רכים ונותנים להם להתקרר.

2. מכינים את הקוסקוס: 

בקערה

:מערבבים מעט סולת (קמצוץ שנלקח בכף היד) מרטיבים אותו וממוללים בעזרת האצבעות. במטרה לפורר את כל הסולת שנגעה במים. מפוררים בהדרגה את כל הסולת שבקערה לחתיכות קטנות, ודואגים שלא יוותרו גושים. בגמר העיבוד מנפים הכל במסננת דקה שמתאימה לקוסקוס ,וכך שנוצרים פירורים קטנטנים ואחידים ובלי גושים.

3. מאדים את הקוסקוס:

 מחזירים לקערה, שמים רבע כוס שמן ומעט מלח. מאדים חצי שעה בסיר אידוי לקוסקוס (או כשהקוסקוס בתוך קערה מעל לסיר עם אדים) כשהקוסקוס מכוסה. (אסור שהמים יגעו בקוסקוס)

4. שוטפים היטב את הירקות: 

את הדלעת חותכים לכמה קוביות גסות, את הבצל חוצים, את הגזרים ותפוחי האדמה משאירים שלמים. מטגנים אותם בסיר של המרק, ומוסיפים  מים  כדי כיסוים. מביאים לרתיחה ומוסיפים את עלי הסלרי, גרגרי החומוס, מלח גס, פלפל שחור גרוס וכורכום. מבשלים על אש נמוכה שעה ורבע.

5. לאחר האידוי הראשוני מורידים את הקוסקוס מהאש, מוסיפים את השמן והמלח ומערבבים.

6. מאדים את הקוסקוס בשנית, הפעם כ-20 דקות. ומסירים מן האש.

7. מגישים: על צלחת גדולה ערימת קוסקוס ועליה המרק.



<<englink [[Couscous]]>>
[img[pictures/kofim-memunaim.jpg]]

!!![[יויו]]: 

את המשפט הזה, כביכול אימא של וודי אלן, אומרת [[לאד|http://www.imdb.com/name/nm0123261/?ref_=nm_mv_close]], בסידרה [[חשיפה לצפון]] [[(עונה שלישית פרק ארבע)|http://www.imdb.com/title/tt0662321/]]

[[כאחות כהן|אחות כהן]], ה-DNA שלי נושא בתוכו, אני מניח, אי אילו עוברי אורח - אולי [[קוזאקים|https://he.wikipedia.org/wiki/%D7%A7%D7%95%D7%96%D7%90%D7%A7%D7%99%D7%9D]], אולי [[טטרים|https://he.wikipedia.org/wiki/%D7%98%D7%98%D7%A8%D7%99%D7%9D]], אולי [[ויקינגים|https://he.wikipedia.org/wiki/%D7%95%D7%99%D7%A7%D7%99%D7%A0%D7%92%D7%99%D7%9D]], [[פיניקים|https://he.wikipedia.org/wiki/%D7%A4%D7%99%D7%A0%D7%99%D7%A7%D7%99%D7%9D]], [[יבוסים|https://he.wikipedia.org/wiki/%D7%99%D7%91%D7%95%D7%A1%D7%99%D7%9D]], [[הונים|https://he.wikipedia.org/wiki/%D7%94%D7%95%D7%A0%D7%99%D7%9D]] וכל השאר

 
[[כהומו ספיאנס|https://he.wikipedia.org/wiki/%D7%90%D7%93%D7%9D]] יש מצב שבמטעני הגנטי קיימת כמות לא ידועה, של שרידי גנום [[ניאנדרטלי|https://he.wikipedia.org/wiki/%D7%94%D7%90%D7%93%D7%9D_%D7%94%D7%A0%D7%99%D7%90%D7%A0%D7%93%D7%A8%D7%98%D7%9C%D7%99]] או [[אוסטרלופיתקוסי|https://he.wikipedia.org/wiki/%D7%90%D7%95%D7%A1%D7%98%D7%A8%D7%9C%D7%95%D7%A4%D7%99%D7%AA%D7%A7%D7%95%D7%A1]], שלא לומר [[אורורין טוגננסיס|https://he.wikipedia.org/wiki/%D7%90%D7%95%D7%A8%D7%95%D7%A8%D7%99%D7%9F_%D7%98%D7%95%D7%92%D7%A0%D7%A0%D7%A1%D7%99%D7%A1]], ומי יודע?

אנחנו כולנו כולנו, וכולנו זה [[אנחנו|https://i.pinimg.com/236x/c3/7a/64/c37a645d3911729deef9f23354ce32bc--northern-exposure-car-keys.jpg]], שהולכים בדרך, הופה היי.

גם אני, אומנם נוסע [[בתחב"צ|תחבורה ציבורית]], אך עדיין ממונע ששואל את עצמו, מה עוד הוא?



<<list-links filter:"[tag[קופים ממונעים]]">>



<<englink [[Monkeys with car keys]]>>
[img[pictures/kibbutzbeeri.jpg]]






<<englink [[Kibbutz Beeri massacre]]>>
[img[pictures/cannelloni.jpg]]

!!![[יויו]]:


 כש"גיליתי" את [[הבשאמל|רוטב בשאמל]] - הייתי רעב. אף אחד לא היה [[בדירה|כוכב המשאלות 01]]. סרקתי בראשי אפשרויות. המקרר היה די ריק.

1. הכנתי בשמל כפול 4

2. צליתי במחבת כמה עגבניות שרי חתוכות ושתי שיני שום חתוכות במעט חמאה

3. במחבת שניה אידתי תרד, ועלי בזיליקום

4. את עלי התרד והבזיליקום ערבבתי עם 250 גרם גבינה לבנה יבשה ולא מלוחה שמתאימה לאפייה.

5. לוקחים תבנית גדולה וגלילי קנלוני, וממלאים אותם בתערובת הגבינה והתרד (מעט כל פעם, בעדינות ובעזרת האצבעות, ממלאים את פנים הגליל), ומסדרים בתבנית.

6. לבשמל הוספתי שליש כוס גבינות מגוררות (גרוייר, גאודה עם כמהין ומוצרלה), ואת העגבניות הצלויות, מלח, פלפל שחור ואגוז מוסקט, ומזגתי מעל הקנלוני.

7. מניחים נייר אלומיניום מעל הקנלוני, ואופים שעה ורבע ב-170 מעלות

8. מסירים את נייר הכסף וממשיכים לאפות 15-25 דקות - עד שהצבע יפה ומוציאים מהתנור.

''החומרים:''

לבשמל  (פי ארבעה מהמתכון הבסיסי):

*200 גרם חמאה
*4 כוסות חלב
*4 כפות קמח לבן

לשאר המאפה:

* כ-20 גלילי קנלוני
*10-20 עגבניות שרי
*מעט חמאה לטיגון העגבניות
*שתי שיני שום
*עלי תרד 
*עלי בזיליקום
*250 גרם גבינה רכה ללא מלח שמתאימה לאפייה
*שליש כוס גבינה קשה מגוררת
*תבלינים: מלח ים, פלפל שחור גרוס ואגוז מוסקט טחון





<<englink [[Cannelloni]]>>



[img[pictures/coffee.jpg]]

!!![[ז'נבייב]]:

עד לא מזמן הייתי שותה בבית בבוקר לפני כל דבר אחר שני קפה ממקינטה בבית, עוד הפוך חזק מהמכונה כשמגיעה לעבודה, ואחר כך במהלך היום עוד כמה עם או בלי חלב, אך [[הגוף המתבלה|האחיות בלות]] הודיע לי שזה מופרז, וירדתי לאחד בבית ואחד בעבודה :(




<<list-links filter:"[tag[קפה]]">>

<<englink [[Coffee]]>>



[img[pictures/edmundcoffee.jpg]]

!!![[יויו]]:

בהמלצת [[ג'אז|Jazz]] קבעתי פגישה [[בקפה אדמונד|https://www.instagram.com/edmundcoffee/]]. הקדמתי לצאת, צועד ביהודה הלוי, חוצה את אלנבי וממשיך עד 33, שם נכנס לחצר ממנה פונה ימינה ונכנס לדלפק הנהדר. בוחר מהתפריט פרוסת אבוקדו עם טחינה, מקיאטו כפול ועוגיה עם ריבה. את העוגיה אני לוקח איתי במפית, ומשם ברבע סיבוב שמאלה ממשיך ועולה שתי מדרגות אל תוך חצר גדולה ומלאה בשולחנות כאלה ואחרים מרוחקים חברתית זה מזה, לצידם כסאות וספסלים ויש גם במה מדורגת ועצים. אני מתיישב בצד השמאלי של החצר על ספסל פנוי מולו שולחן נמוך, מולי [[מדרגות לגן עדן|Born & Raised]]. קצת אחר כך מובאים אלי הפרוסה עם האבוקדו והקפה, ואני לועס בנחת וטעים לי. לוגם וגם הקפה טעים ממש. אני קורא תוך כדי את מומנט מוזיקלי של [[יהושע קנז|https://he.wikipedia.org/wiki/%D7%99%D7%94%D7%95%D7%A9%D7%A2_%D7%A7%D7%A0%D7%96]], שנפטר בחודש שעבר, וזה רגע טוב.

[img[pictures/cafebashuk.jpg]]



<<englink [[CafeBashuk]]>>
[img[pictures/cafe-vemamtakim.jpg]]

!!![[תומר]]:

עכשיו כבר נובמבר, [[וויקליף|וויקליף ז'אן]] אמור לחזור. עדיין חם, אבל פחות ולא מזיעים. התינוקת מתרגלת למטפלת, כך שיצאתי לסיבוב קניות דרך יהודה הלוי, ימינה באלנבי עד 107, שם [[בקפה וממתקים|https://hamordim.wordpress.com/tag/%D7%A7%D7%A4%D7%94/]] נמצא אדון מסביר פנים, מוקף בשוקולד וטוחן קפה. קניתי בונבוני שוקולד במילוי דובדבני אמרנה על המשקל והמשכתי במסע.

<<englink [[Coffee and Candies]]>>

[img[pictures/cafe-muller.jpg]]

!!![[גורה]]:

הקפה שנמצא בקומה הראשונה של [[געזונטהייטס]], והוא קפה בר.

הוא שייך [[לשלום|שלום]], שמעריץ את [[פינה באוש]], אך מנהלת אותו [[הברמנית]] ששמה גורה.

:)

ה HAPPY HOUR היומי קורה בקפה מילר, והוא כולל קוקטיילים ומשקאות במחיר מוזל, והופעה של [[אנט ג'מיימה]].


<<englink [[Cafe Müller]]>>



[img[pictures/kfitz-spirali.jpg]]

[[אירי]]:

הגוף שלנו משוכלל, בין השאר, ביכולתו לנוע בחכמה ובגמישות, ולבלום זעזועים.

לאורכו קשתות קעורות וקמורות, החל בקשת כף הרגל, שגודלה תלוי במיקום האחזות גיד אכילס, דרך הקרסול, הברכיים, מפרק הירך, המותנית והצוואר - כל אלה מהווים בולם זעזועים קפיצי, שיכול לנוע גם בתנועה [[ספירלית|ספירל]] סביב אותו ציר אנכי.

[[בשיעורי האלכסנדר|שיטת אלכסנדר]], לומדים לכוון, [[להניח לצוואר להיות חופשי|צווארים]], לרווח בין מפרק למפרק, ובכך, בין השאר, לשמור על הקפיץ הספירלי, ולנוע ביתר קלות קדימה ולמעלה.


<<englink [[Spiral Spring]]>>

[img[pictures/apple-crust.jpg]]

!!![[הצוות]]:

קראסט כזה אנחנו מכינים כשנשארים לנו תפוחים שאין סיכוי שכבר נאכל וזה לא שהם רקובים כי אם לכל היותר מעט מוכתמים. את כתמי הבשלות מסירים כמובן כשמקלפים. זה מאפה שמומלץ לאכול כחצי שעה אחרי שיצא (לבד) מן התנור.

אם להתחפש לז'נבייב לרגע, שמזיעה מדיבורים כאלה, נגיד שהכנו קראסט תפוחים של תפוחים וקראסט תפוחים של אגסים (כי נשארו לנו שלושה מאלה ושלושה מאלה).

ובכן:

1. קולפים תפוחים או אגסים, חותכים לפרוסות או קוביות, ומערבבים אותם עם כפית סוכר, 2 כפיות מיץ לימון וחצי כפית קינמון.

2. מערבבים בקערה כוס קמח לבן, כוס סולת, שקיק סוכר וניל, חצי כוס סוכר

3. לתוכם גוררים על פומפיה 200 גרם חמאה

4. מחברים עם האצבעות לכדי גוש אחיד

5. חצי ממנו משטחים בתבנית (במקרה שלנו שתי תבניות קטנות)

6. מפזרים את התפוחים/אגסים החתוכים

7. מפזרים מעל גושים משאר הבצק

8. אופים בחום בינוני נמוך 40 דקות עד שעה (תלוי בתנור)



<<englink [[Apple crust]]>>
[img[pictures/karl-ove.jpg]]

!!![[יויו]]:



[[מהתמונה הזו|https://res.cloudinary.com/simpleview/image/fetch/c_limit,f_jpg,q_64,w_800/https://media.newmindmedia.com/TellUs/image/%3Ffile%3D3E95034E807A06F46BB55415BAD15A5271D79551.jpg%26dh%3D533%26dw%3D800%26cropX%3D0%26cropY%3D263%26cropH%3D2663%26cropW%3D4000%26t%3D4&.jpg]] ציירה גורה [[את הציור|לצייר]] שלקוח מתוצאות הקלדת השם [[טרומואיה|https://en.wikipedia.org/wiki/Trom%C3%B8ya]] במנוע החיפוש, המקום בו גדל [[קרל אובה|https://en.wikipedia.org/wiki/Karl_Ove_Knausg%C3%A5rd]]. אם אני זוכר נכון, אחד הדברים שהוא כותב בספר הראשון (או השני), שאחד הדברים שהוא אוהב זה מציאת הדומה בין מקומות שונים, והמראה בציור הזה דומה מאד לדרך [[לבית בו גרתי אז|המעבדה]]. הכביש המתעקל לתוך העצים, המבנה שמימין והמבנה המרוחק שליד העיקול. העצים הנשירים שהיו שקדיות במקרה שלי, ועצי החורש שמבחינתי הם בעיקר עצי אלון. אני גבר בן כמעט 40 שמאוהב [[באנג'ליק|אנג'ליק]], ומתחיל לחשוב על ילדים, וכבר הבנתי שזה לא עניין של מה בכך. אני מזדהה עם כל כך הרבה דברים שקרל אובה כותב עליהם והכי זה הוא ואינגבה אחיו, [[כמו שגורה ואני|יויו וגורה]].


<<englink [[Karl Ove Knausgard]]>>
[img[pictures/keren.jpg]]

!!![[יויו]]:

כנערה קרן הייתה הרקדנית השמורה והמטופחת של אימא ואבא, אך היום היא בת 42, נשואה, ואם לשלושה.

הם גרים בקיבוץ בערבה והיא מתפרנסת מאריגת שטיחים צבעוניים, על נולים ענקיים, מרצועות טריקו צבעוניות.


<<englink [[Keren]]>>

[img[pictures/rachel.jpg]]

!!![[גורה]]:

ראשל היא בתה הצעירה של [[ז'נבייב]], היא ילידת שנת 2000, היא תיכוניסטית במגמת אומנות פלסטית, והיא [[ג'וקרית|ילדים חד הוריים]] אמיתית.

<<englink [[Rushell]]>>
[img[pictures/revisia-bamitbach.jpg]]

!!![[ז'נבייב]]:



כנראה שדברים באמת באים בצרורות.
[[המכתב מדןדן|שה פניס]], הגיע בדיוק בזמן מבחינתי. רציתי שינוי.
 [[הסלואו פוד|https://en.wikipedia.org/wiki/Slow_Food]] תפס אותי, כי יותר מכל קשה לי הלחץ של הסרוויס. ומבחינת הסטייל - ונכון שקוסקוס הוא למעשה סלואו פוד, אבל [[המטבח הקליפורני|https://en.wikipedia.org/wiki/California_cuisine]] דיבר אלי מבחינת החומרים. בנוסף לאלה - מתפנה חנות ליד הקוסקוס, כך שאוכל להגדיל את המקום, וזהו, החלטתי. בעוד חודש אסגור את המסעדה לשבועיים עד חודש. נתכנן מטבח נח יותר לצורת העבודה החדשה. אשאיר שולחנות ללא הגשה, ואפתח [[מעדניית סלואו פוד בהשראת המטבח הקליפורני|דליקטסן אצל ז'נבייב]]. מן "אוסף פרטי". כמובן שיהיה קוסקוס. יש לי את [[סוניה]], את [[סולטנה]], את [[אווה]], את כל הילדים - והשיא, [[אירי]] [[ויויו|יויו]] החליטו להכין [[מרק עם קניידלך]].



<<englink [[Revision in the kitchen]]>>
[img[pictures/radio-epgb.jpg]]

!![[תומר]]:

אני אוהב מקומות סמויים מן העין, שנפתחים רק כשכבר חשוך, כמו [[הרדיו|https://www.timeout.com/israel/nightlife/radio-epgb]], שנמצא בשד"ל 7. נכנסים ויורדים לבר החשוך והטוב, ולמוזיקה המזיזה והנוגעת, ולאווירה. אם זה קורה בימי שלישי תהנו מליין קטלן [[שג'אז|Jazz]], שאני, כידוע, גרופי שלה, אחראית עליו ומופיעה בו - וגם בשאר הימים [[שווה לבדוק|https://www.tripadvisor.com/Attraction_Review-g293984-d3584847-Reviews-Radio_E_P_G_B-Tel_Aviv_Tel_Aviv_District.html]].

<<englink [[Radio epgb]]>>
[img[pictures/5VdqSTjL1ficmZ1K.jpg]]


!!![[יויו]]:

כשראיתי בפעם הראשונה את רוז'ה הושלמה מבחינתי דמותו של שלמה קומפלישן, עורך הוידאו הסטלן, שמצלם ועורך 12 סרטוני וידאו קצרצרים בהם הוא מציע סוגים שונים של מדיטציה, שעל דמותו חשבתי בתקופה שאחרי [[אלה|כוכב המשאלות 04]].
הוא ג'ינג'י לא גדול, אך מעט מסורבל, עם עיני דב טובות בצבע דבש, הוא מצחקק תדיר אל תוך עצמו ונע בחוסר שקט.
כן, [[הרבה שעות מדיטציה נדרשות|טיפולים מהספה]]. 

על כל פנים, בתקופה הקשה ביותר בהבראתה של גורה, הוא הגיע לבית החולים עם קבוצה של מתמחים ברפואה אלטרנטיבית, ומיד התחבר לגורה והיא אליו. 
הוא אדם עם חשיבה מקורית. כשהוא מקשיב לך, הוא מביט בך בשקט מבלי להסיר את עיניו. הוא בן 36. הוא נולד בפריז. אביו, שנפטר לפני שלוש שנים, היה פקיד במשרדי מס הכנסה. אמו עובדת בגלרי לה פאייט ויש לו אח בן 29.

הוא סיים תיכון במגמת קולנוע, וכבר כנער פרנס עצמו מעריכת סרטי משפחה. כשהיה בן 22 נאלץ להיגמל מהמורפיום ששיכך את כאבי הטיפולים בסרטן בלוטות הלימפה שנתגלה אצלו שנתיים קודם. 
בשנים בהן היה חולה וגם אחריהן הוא עבר סוגים שונים של טיפולים אלטרנטיביים תוך שהוא ממשיך לעבוד כעורך וידאו.

בקרוב הוא יסיים את לימודיו, כשהוא כבר עסוק למדי בטיפול וליווי במחלימים. הוא משתמש בהילינג הכולל לעתים מגע מינימליסטי. הוא משתמש הרבה בדמיון מודרך, במדיטציית נשימות (שבהחלט תיכנס לסדנאות של שלמה קומפלישן ביום שרוז'ה יסכים לגלם את דמותו). הוא נעזר בשיטות נוספות שהוא מכיר.
הוא [[אחות|האחיות כהן]], ובשנתיים האחרונות הוא חבר של [[אנה]], שמייצרת תכשירים קוסמטיים ומרפאים מחומרים טבעיים. היא מייצרת את טיפות האוזניים היעילות ביותר אי פעם, והנשים שלנו, אווה וז'נבייב מאד מרוצות ממסכת הפנים שלה, שעשויה מתערובת אדמה כלשהי, שארוזה בקופסה, ומגיעה עם בקבוקון שמן, אותו מערבבים אל תוך תערובת האדמה לפני השימוש.
מבחינת רוז'ה, שיושב לידי כעת, כתבתי עליו מספיק לעת עתה.




<<englink [[Roger]]>>
[img[pictures/rotev-bashamel.jpg]]


!!![[יויו]]:

בזמן האחרון נדלקתי על [[רוטב בשאמל|https://he.wikipedia.org/wiki/%D7%A8%D7%95%D7%98%D7%91_%D7%91%D7%A9%D7%90%D7%9E%D7%9C]]. ראשית כי בהרבה מאד מהימים האחרונים בא לי על אוכל לבן, ושנית כי גיליתי שזה הכי קל בעולם ושאפשר להוסיף את זה ולזה הרבה דברים.

''אופן ההכנה:''

בקלחת:

1. ממיסים 50 גרם חמאה על חום נמוך

2. טורפים כף קמח לתוך החמאה הנמסה עד שהתערובת חלקה.

3. מוסיפים כוס חלב תוך ערבוב עד שהכל אחיד

4. ממשיכים לבשל ולערבב (כשהרביכה חמה כדאי לערבב אפילו כל דקה ולקראת הסוף כל הזמן), החלב הולך ומסמיך. עוצרים את הבישול כשכבר מרגישים את הסמיכות בערבוב, והנוזל נראה קרמי וחמים.

''
זהו בעצם הבשאמל ואפשר להכפיל את הכמות לפי הצורך''


[[עכשיו אפשר לתבל אותו בדרכים רבות, למזוג אותו על דברים שונים ולאפות|קנלוני]].



<<englink [[Béchamel sauce]]>>
[img[pictures/RothschildBlvd&BalfourSt.jpg]]

!!![[אימא של ג'אזז]]:

לפני שישה שבועות מעדתי במעבר החצייה שברוטשילד פינת בלפור ונחבלתי די קשה. ניסיתי בימי ההחלמה לדמיין את גודל הבור וצורתו ומאיזו זווית חטפתי את המכה. הבוקר הלכתי לראות את הבור וזה אפילו לא בור, אבל אני יכולה לדמיין איך זה קרה.


<<englink [[Rothschild Blvd & Balfour St]]>>
[img[pictures/romema.jpg]]

!!![[תומר]]:

הבניין, החוטים ומה שבינהם

<<englink [[Romema]]>>
[img[pictures/roast-beef.jpg]]

!!![[יויו]]:

בשר זה עניין של מזל. גם אם יש לך סופר בוצ'ר, טעמה הבסיסי של החתיכה הוא החשוב ביותר. זה למעשה נכון לגבי כל דבר, טעמן של עגבניות, טעמו של שמן זית, טעמו של מלח, לחות הקמח, אך כל אלה משמעותיים הרבה פחות מטעמה הבסיסי של חתיכת הבשר. אני לא מומחה אבל אני בזמן האחרון מכין פעם בשבוע בערך, ולפעמים אפשר להשתגע מכמה שזה טעים, ולפעמים זה נחמד עד נחמד מאד, כי אם יש לך קצב מרהיב קשה שזה יהיה ממש לא טעים. 

החומרים:

* ק"ג סינטה
*שמן זית
*כפית-כף חרדל עם דבש
*שלוש שיני שום מקולפות וחצויות
*מלח ים גס
*פלפל שחור גרוס 

אופן ההכנה:

1. מחממים את התנור ל220 מעלות צלזיוס

2. מניחים את חתיכת הבשר בתבנית עם החלק השומני למעלה וורצים בו שישה חריצים לתוכם מכניסים את חצאי שיני השום

3. בעזרת הידיים מורחים שמן זית וחרדל באופן אחיד על החתיכה כולה

4. מפזרים מלח ים ופלפל שחור גרוס

5. מכניסים למרכז התנור ואופים 15 דקות ב-220 מעלות

6. אחרי 15 הדקות מורידים את הטמפרטורה ל170- 180 מעלות ואופים ארבעים דקות נוספות. בין לבין רצוי לסובב את התבנית ומי שאוהב פחות דם יכול גם רבע שעה לפני סוף האפייה לחתוך שני חתכים בחלקו העליון שך הבשר.

7. מוציאים מהתנור, נותנים לבשר לעמוד עוד 15 דקות ואפשר לחתוך ולאכול.


<<englink [[Roast beef]]>>
[img[pictures/refaelveraziel.jpg]]

!!![[אווה]]:

[[רזיאל ורפאל|עץ המשפחה של אווה]] הם שניים מ-23 חצאי אחי ואחיותי , שבכל חיי בחווה היו לצדי ועזרו לי כשיכלו. הם שניים משלושת בניה של פרלה, אשתו הראשונה של אבי, שנפטרה כשהייתה בת 35 מהמחלה הקשה. רפאל היה אז בן שמונה, רזיאל בן 13 וישי בן 15. 

פרלה ואבי התגוררו בבית סבי וסבתי, וגם לאחר מותה של פרלה המשיכו, אבי ושלושת הבנים, לגור ולנהל את ביתם.

לא הכרתי את פרלה, אך על פי הסיפורים ועל פי בניה, היא הייתה אישה נפלאה. היא הייתה אישה חולנית ובניה טיפלו בה תמיד. הייתה בינהם אחוות אחים. הם היו אנשים טובים.

ישי נישא כשהיה בן 25 ועזב את הנחלה. רזיאל ורפאל לא נישאו, ופרט לשנים בהן למדו בקולג', רזיאל מדעים ורפאל אומנות, חיו כל חייהם עם אבא באותו בית גדול, והיו ממשיכי מורשת הנגרות של סבא שלנו.

בחלק האחורי של המחסן הכחול והתמים למראה שבצד שמאל של הציור, שבחלקו הקדמי היה מסודר חלק גדול מאוסף האומנות של רפאל, גידל רזיאל מריחואנה. זה היה סוד שמור, שרק בשנים האחרונות סיפר לי עליו אהרון.
הם שניהם עדיין מתגוררים שם.



<<englink [[Raziel and Rafael]]>>







 

[img[pictures/rigo-jancsi.jpg]]

!!![[סוניה]]:

מחממים את התנור לחום בינוני (170 מעלות) ומרפדים תבנית 26 עגולה עם תחתית נשלפת בנייר אפייה

1. הבסיס

* 8  ביצים
* 8כפות סוכר
* 4כפות קקאו
*  כפות קמח תופח

 שמים בקערת המערבל הנקייה את הביצים ומפעילים, מוסיפים בהדרגה את הסוכר וממשיכים להקציף עד לקבלת קצף בהיר ותפוח

 מערבבים ומסננים את הקקאו והקמח, ומקפלים אותם לתוך תערובת הביצים. מעבירים לתבנית ואופים כ־30-20 דקות, עד שהעוגה מתייצבת וקיסם הננעץ במרכזה יוצא יבש. מוציאים ומניחים לצינון מלא.

2.  קצפת הקפה: 

* 2 מיכלי (500 מ"ל) שמנת מתוקה
* 3כפיות נס קפה
* 400 גרם שוקולד מריר

מבשלים את השמנת המתוקה עם השוקולד והנס קפה, ובוחשים מידי פעם עד לרתיחה.מצננים, ומקררים במקרר לשש שעות לפחות.

3.  סירופ

בסיר קטן מרתיחים כמה דקות חצי כוס ברנדי וחצי כוס מים

4. קרם שוקולד

מרתיחים כוס שמנת מתוקה, וטורפים לתוכה 150 גרם קוביות שוקולד מריר עד לקבלת קרם חלק 

3. הרכבת העוגה: 

* מחלצים את העוגה מהתבנית ופורסים אותה לרוחבה שלוש פעמים (כך שיהיו ארבעה חלקים)
* מניחים שכבה ראשונה על בסיס התבנית, מתיזים מעט ברנדי שבושל עם כמות שווה של מים, ומורחים שליש מכמות הקרם
* חוזרים על הפעולות הללו עם עם שני חלקי עוגה נוספים.
* את הרביעי מניחים מעל, ומעליו יוצקים את קרם השוקולד.

מקררים כמה שעות ומגישים


<<englink [[Rigo Jancsi]]>>
[img[pictures/reychot.jpg]]

!!![[אווה]]:

מימין [[לעץ|כורתים עצים]] שנמצא בצד ימין של התמונה, עמדה הנגרייה של הנחלה בה גדלתי וחייתי עד שהגעתי לארץ, קצת אחרי שמלאו לי 18.



ריח שהוא שילוב של נסורת, אלכוהול, ניקוטין ולחות, זה הריח שעלה באפי כשראיתי את התמונה הזו, אותה נתן לי לפני כמה שבועות, [[אהרון|אהרון אחי השלם]] - אחי [[השלם|עץ המשפחה של אווה]] -  הריח של אדם - נגר אומן שהיה מגיע פעמיים-שלוש בשבוע לנגריה. אדם היה אדם משכיל וחביב, שסבל מבעיית שתייה מודחקת - [[עץ שזכיתי לנוח תחת ענפיו|https://www.youtube.com/watch?v=KfNt3BrFELM]]. הוא לימד את מי שהתעניין מביננו, אבל בעיקר בנה ותיקן כל מה שנדרש לבתים. אהבתי לעבוד בנגריה ולהקשיב לאדם ולדבר אתו, למדתי ממנו לעבוד אבל גם בכלל. מי שדמתה לו במובן הזה הייתה [[איריס]], שעבדה [[במטבח של הנחלה|המטבח של הנחלה]], בעיקר כאופה.

בנחלה של [[אבי|אבינו]], לא היו מבנים ממש קטנים, אך הנגריה שכנה באחד מהמבנים הפחות גדולים, אך היפה מבינהם.

סבי, אביו של אבי, שהלך לעולמו לפני שנולדתי, בנה אותו. זה היה מבנה עץ שבסיסו גבוה יחסית, ואל הדלת הובילו עשר מדרגות. מסביב היה דק ברוחב של 30 סנטימטרים, מלאכת מחשבת של חיבור פלטות מסוגי עץ  שונים ובגדלים שונים. את שלושה מקירות החלל הפנימי ובגובה של 30 סנטימטרים מהריצפה סבב ספסל אחד שלם, שחלקו, עם השנים, הפך למדף  - גם הוא - מרוצף פלטות שונות ומשוייפות עד כדי שלמות. מעל לספסל חלונות מלבניים, ארבעה על כל קיר. במרכז החלל שגודלו היה 15 על 20 מטרים רבועים היו שני שולחנות עבודה גדולים ומתחתם מדפים. המסור הגדול, מכונת השיוף ושאר כלי העבודה עמדו על הקיר הרביעי, שבמרכזו הייתה דלת רחבה לה קראנו דלת הספקים. זו הייתה הלצה של רזיאל, כי לא היו ספקים, כי אם רק משפחתנו ועובדי הנחלה. עובדי הנחלה במקרה הזה היו בעיקר [[רזיאל ורפאל]], שניים מ-24 חצאי אחי ואחיותי, ושניים משלושת בניה של פרלה, אשתו הראשונה של אבי, שנפטרה שנים קודם. זה היה הבניין היפה ביותר בנחלה, ולאחר שסבי , שאהבתו הגדולה הייתה נגרות, נפטר, דאג אבי לנגר אומן שיישמר את כל מה שסבי בנה. 

אדם הגיע כמה שנים אחרי שסבי נפטר, ונשאר [[עד הסוף|הנחלה בה גדלתי]].



<<englink [[Scents]]>>











[img[pictures/rani.jpg]]

!!![[אימא של ג'אזז]]:

מהתמונה [[הזו|https://i.ytimg.com/vi/IPMJ1ptECSk/maxresdefault.jpg]] ניסתה גורה לצייר את [[רן יגיל|https://he.wikipedia.org/wiki/%D7%A8%D7%9F_%D7%99%D7%92%D7%99%D7%9C]], שהוא סופר, עורך, לשונאי, מוציא לאור, מבקר, איש [[עמדה|https://he.wikipedia.org/wiki/%D7%A2%D7%9E%D7%93%D7%94_(%D7%9B%D7%AA%D7%91_%D7%A2%D7%AA_%D7%A1%D7%A4%D7%A8%D7%95%D7%AA%D7%99)]] ואחות אהובה.


<<englink [[Ran Yagil]]>>


[img[pictures/rafi-munz.jpg]]

!!![[הצוות]]:

[[רפי מינץ|https://www.rafim.com/new.htm]] הוא אחות ראשית מקורית, ולמעשה [[בראשית האחיות|המעבדה]] הוא מונה לראש השבט. הוא אומן נפלא ומקורי שמצייר, כותב, מסמל ומפסל.

מהתמונה [[הזו|https://shulashek.net/rafim.com/new/invit_gansh.jpg]] ציירה גורה את הציור.


<<englink [[Rafi Műnz]]>>
[img[pictures/TheValhallaMurders.jpg]]

!!![[ראשל]]:

"אני לא בטוח איך אני יכול לתאר את זה לאלו שמעולם לא התנסו במשהו כזה", מספר ויהאר יונסן לכתבת הטלוויזיה בסידרה [[רציחות בוולהאלה|https://en.wikipedia.org/wiki/The_Valhalla_Murders]], "אבל כשאתה חשוף למכות ולאלימות בגיל כ"כ צעיר, הכל, איכשהו, נעשה מטורף בראש שלך".

במתן העדות הטלוויזיונית הזאת, שמתרחשת בערך באמצע הפרק הרביעי של הסידרה, יושב ליד ויהאר,  בנדיקט גסטון, שלא פוצה פה ומתפתל למשמע מילותיו של ויהאר, שחושף לראשונה את התופת שעברו ילדי בית הילדים וולהאלה. הם כבר אנשים בוגרים. ויהאר הוא נהג אוטובוס ובנדיקט מהנדס, ושניהם הצליחו לשרוד ולחיות חיים נורמטיביים פחות או יותר, תוך שכלאו בתוכם את הסיפור הנוראי, עד לרגע מכונן זה, בסידרה הרגישה, שראשיתה רצח.





<<englink [[The Valhalla Murders]]>>
[img[pictures/rakafot.jpg]]

!!![[אימא של ג'אזז]]:

בחורף גשום למדי, על אדמה סלעית, מתחת לעצי האלון גדולים - [[צומחות לפלא רקפות נחמדות מאד|https://www.youtube.com/watch?v=jSyIEPBUsZo]].




<<englink [[Cyclamen]]>>




[img[pictures/sheelon-haachayot.jpg]]

!!![[גורה]]:

את השאלון שבהמשך כתבנו, [[יויו]] ואני, כשהיינו [[שם|המעבדה]]. השארתי גם את ההקדמה שכתבנו אז, זה היה ב-2003 פלוס-מינוס, כלשונה. זה משעשע אותי ואפילו מעט מביך, כי זה נשמע לי מיושן. מאידך גם כתבנו, שהאחיות מדברות "עברית ממוקססת" כנהוג בעידן זה. ואולי כעת זה יותר "גלובלית ממוקססת". אז הנה הדברים:

''
שאלון המאה ואחת:''

לאחר שקראתן וביקרתן באתר, בודאי הייתן מעוניינות לדעת אם גם אתן מתאימות להיקרא אחות כהן .

שאלון האחיות מיועד לגברים ולנשים כאחד (או אולי כאחת). 
גם אישה וגם גבר יכולים להיות או לא להיות [[אחות כהן|אחיות חוץ]], ומכיוון שכך, כל איש או אישה הקוראים בו ומעוניינים לענות על שאלון זה, יקראו בו על פי מינם ועל פי העדפתם המינית, למרות שהוא כתוב בלשון נקבה הטרוסקסואלית.

השיבי על כל שאלה, בסוף השאלון לחצי על שלח, המתיני עד לקבלת תשובה.

בזמן ההמתנה הקפידי לעשות מעשה מועיל, אל תסתובבי סחור סחור, וכמו כן לעולם אל תלכי בידיים ריקות.


# האם את רואה עצמך כאחות כהן?
# האם את מאמינה?
# האם את מאמינה לאנשים?
# האם את פגועה?
# האם את חושבת שאחרים רואים אותך כאחות כהן?
# האם יש לך יותר מטלפון נייד אחד?
# האם את אוהבת ללבוש בגדים סינטטיים?
# האם את יודעת אילו בגדים את אוהבת?
# האם את מכינה אוכל?
# האם את אוהבת לאכול?
# כאשר את שומעת על דבר טוב שקרה למישהו , האם את מרגישה שמחה?
# האם עוברים בראשך תכנונים כיצד לפגוע באנשים?
# האם את מרגישה כעס שעובר בך מספר פעמים ביום?
# האם את נרדמת בקלות?
# האם את שמחה לשמוע שקרה למישהו דבר רע?
# כשאת רואה אישה יפה האם את רוצה בקרבתה?
# האם את רגישה לריחות?
# האם את מתבשמת?
# האם את הוגה חיבה יתרה לגברים בשפם?
# האם את שומעת מוסיקה כשאת לבד?
# האם את הוגה חיבה יתרה לנשים עם שפם?
# האם את לפעמים חשה חשק עז לקנות דיסק ואז אף הולכת וקונה אותו?
# האם את קונה מוזיקה ממוזיקאים ?
# האם את קונה מוזיקה מאנשים עם עניבות ?
# האם את קוראת ספרים?
# לכמה מהדורות חדשות את מאזינה מידי יום?
# האם את מחבבת את משה נוסבאום?
# האם את מאמינה בקיומם של חיים על כוכבי לכת אחרים או בגלקסיות רחוקות?
# האם היית רוצה להשתייך למועדון שמקבל אנשים מסוגך?
# האם את בזה לאנשים שמאמינים בחיים בכוכבי לכת אחרים?
# האם את נוהגת להיוועץ במגידי עתידות, יידעונים וכו' וגו'?
# האם את חושבת שאת יודעת לומר לאנשים מה יעלה בגורלם?
# האם את חושבת שאת יודעת יותר טוב מאחרים מה טוב להם?
# האם יש לך חלומות נבואיים?
# האם את זוכרת חלומות?
# האם יש לך חלומות ארוטיים?
# האם קורה שנדבק לך מבטא ולא עוזב אותך חודשים?
# האם את נותנת מתכונים,ואם כן,האם מפרטת הכל כולל אופן ההכנה?
# האם את חושבת שכולם שווים?
# האם יש בני לאום,דת, צבע, ג'נדר וכו' שאת לא אוהבת בכלל בכלל?
# האם את חשה צער על אישה שננטשה על ידי בן זוגה?
# האם תתחילי עם גבר לו אישה?
# האם את שמחה לשמוע שארע למישהו משהו טוב?
# האם ניחנת באינטואיציה מפותחת? ("חוש שישי")
# האם תת המודע שלך מתפקד כאירגונית?
# האם את סובלת מרגשות אשם?
# האם חשובים לך מותגים?
# האם את מתאפרת?
# האם עברת חרמות בחייך?
# האם גנבת לחברתך הטובה את בן זוגה?
# האם חברתך הטובה גנבה לך את בן זוגך או את שהשתוקקה לו נפשך?
# האם אי פעם פגעת בבן זוגך?
# האם יש לך עוזרת בית?
# האם יש לך מזגן מיני מרכזי?
# האם רכשת לאחרונה שרעובנשליסעל?
# האם את יודעת להחליף גלגל?
# האם יש לך ביטוח גרר?
# איזו תחושה נגרמת לך מהמילה רוחניות?
# האם את אוהבת חלווה?
# האם את אוהבת בינגו?
# האם את אוהבת לשחק בינגו?
# האם את חושבת שאת תלפאטית?
# האם את מאמינה בכח עליון?
# האם את מאמינה שההשגחה טובה אלייך?
# האם את מודה בליבך לבורא עולם?
# האם לדעתך היית זוכה בחרב אור?
# האם את שמאלית?
# האם את ימנית?
# האם דעותייך הפוליטיות ימניות?
# האם את אוהבת לערוך רשימות?
# האם את מוצאת סיפוק, ולו גם רגעי, בנקמה?
# האם קנאה מחמיאה לך?
# האם את בעד ביקורת בונה?
# האם את אוהבת סיגריות?
# האם את שותה קפה חזק?
# האם את נהנית לחלק הוראות?
# האם את נהנית לקבל הוראות?
# האם את יכולה לקבל הוראות ואף לבצען?
# האם את אוהבת קולנוע?
# האם את אוהבת קולה?
# האם את אוהבת את סרטיהם של האחים כהן?
# האם את אוהבת מזונות מתוקים?
# האם את מוצלחת באפייה?
#האם את מדברת בקול רם?
#האם את מדברת לעצמך?
# האם יש לך עולם פנימי?
# האם את אדם נאור?
#האם את מסוגלת לקרוא טקסט ולדמיין אותו?
# האם את נאיבית?
# האם את מתלבשת ספורט אלגנט?
# האם את עושה כושר?
#האם את שומרת טוב על השיניים שלך?
#האם את נמשכת לגדי סוקניק?
# לו לא הייתה לך מגבלה כספית, האם היית עושה ניתוח פלסטי כלשהו?
# האם את אוהבת קניות?
# האם את מתקלחת כל יום?
# האם אי פעם עשית בניית ציפורניים?
# האם את יודעת לשחות?
# האם לא היית עושה סקס עם ביל קלינטון?
# האם את בעלת חוש הומור?
# האם ידוע לך מי הקים את המאה ואחת?

[[שלח]]

<<englink [[The sisters' questionnaire]]>>
[img[pictures/blacksabath.jpg]]

<<englink [[Black Sabath October 7th]]>>
[img[pictures/chatnoir.jpg]]


!!![[יויו]]:

ב[[ים טתיס]] אין כיסוי סלולרי או אינטרנט, אבל ב[[געזונטהייטס]] יש
[[מגדל סלולרי מקומי|https://en.wikipedia.org/wiki/OpenBTS]]
שמספק לדיירים טלפוניה ביניהם, וגישה ל[[אינטראנט|https://he.wikipedia.org/wiki/%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%90%D7%A0%D7%98]], שזו מילה קצת גדולה בשביל רשת שמכילה שרת אחד בלבד. לשרת הזה קוראים שָה נוּאָר. ממעמקי [[המרתף של סטלין]] הוא מספק עולם דיגיטלי קסום וארכאי: פורום, מערכת בלוגים, וויקי, ואפילו [[מערכת רדיו מקוון|https://en.wikipedia.org/wiki/Icecast]] שבאמצעותה אפשר להאזין ל[[גלי זחל]] — תחנת הרדיו של [[חנות התקליטים|חנות דיסקים]].


<<englink [[Chat noir]]>>
!!![[יויו]]:

כן - [[הוא|דןדן]] כתב לנו עוד מכתב (אוגוסט 2017), וגם אותו אני מעתיק לכאן:


[img[pictures/chez-panisse.jpg]]

אחיות שלי,

נכנסנו הבייתה לפני שעה, אחרי שלושה ימים בברקלי, ואני משולהב כל כך וחייב לספר לכם:

דודי מו חוגג יום הולדת 60, ולכבוד הארוע, ילדיו, בני דודי, בן (22) ונטלי (20), החליטו להוציא אותו (ואותי) מהבית.
בן הגיע עם המכונית שלו, הם לקחו ארבעה חדרים בבית מלון מפנק. טיילנו והסתובבנו, והשיא מבחינת כולנו היה לאכול [[Chez Panisse|https://en.wikipedia.org/wiki/Chez_Panisse]]. מסעדה שהקימה [[אליס ווטרס|https://en.wikipedia.org/wiki/Alice_Waters#Slow_Food]]

אכלנו יום אחד [[במסעדה|http://www.chezpanisse.com/menus/restaurant-menu/]], ויום אחד [[בבית קפה|http://www.chezpanisse.com/menus/cafe-menu/]]. 

חומרי הגלם שם - הדגים ופירות הים, הבשר, הירקות והפרות - פשוט טעימים. כל כך התרגשתי, הרגשתי חלק מעולם הקולינריה בזכותכם. הגישה של המקום הזה הזכירה לי את [[הקוסקוס]], ובעיקר את [[ז'נבייב המתוקה|המטבח על פי ז'נבייב]]. 

לא הכרתי את המושג [[slow food|https://en.wikipedia.org/wiki/Slow_Food]], לא התעניינתי [[במטבח קליפורני|https://en.wikipedia.org/wiki/California_cuisine]], זה הכל היה הפתעה מוחלטת בשבילי, אבל פתאום שם, בעיקר כשראיתי את ההווי במטבח והאוכל הכיפי, חשבתי עליכם. על השיחות שלנו במטבח. על הדיבורים שלכם על אוכל.

מתגעגע ואוהב

שלכם - דןדן



<<englink [[Chez Panisse]]>>
[img[pictures/shoa.jpg]]


!!![[הצוות]]:


כל שואה לגופה.



<<englink [[Holocaust]]>>

[img[pictures/chocolate-fudge.jpg]]

!!![[אירי]]:

התפקיד האהוב עלי בעבודה אצל ז'נבייב הוא הכנת מנות אישיות של שוקולד פאדג'. תפקיד [[שסוניה|סוניה]] העבירה [[ליויו|יויו]] לפני, ועכשיו גם אלי אחר כבוד. אני מתה על שוקולד, ואתמול הכנתי כאן בבית מנה אחת שהספיקה לחמישה כלים אישיים של סופלה. הלכתי עד הסוף, (מהבחינה שמים בתנור מוסיפים לחות ולכן פאדג'יות לפאדג'), ושמתי מעט מים בתבנית. השוקולד האפוי התבקע וזה היה מרגש ממש.

המתכון:

*180 גרם שוקולדד מריר
*160 גרם חמאה
*200 גרם סוכר
*3 ביצים
*3 חלמונים
*20 גרם קורנפלור
*מעט אלכוהול (השתמשתי ביין מרסלה)

אופן ההכנה:

1.  ממיסים את השוקולד והחמאה ומערבבים אותם במטרפה ידנית עד לקרם חלק.

2.טורפים פנימה את הסוכר

3. טורפים פנימה את הביצים והחלמונים אחת אחת 

4. טורפים פנימה את הקורנפלור ואת האלכוהול

5. מחממים תנור ל200 מעלות

6. מוזגים לכלים 

7. אופים עשר דקות, מנמיכים את החום ל 170 מעלות וממשיכים לאפות עוד 20 דקות עד 1/2 שעה לפי הצורך




<<englink [[Chocolate fudge]]>>
[img[pictures/shorezky.jpg]]

!!![[תומר]]:

אם אין את זה //[[בשורצקי|https://www.shoretzki.com/]], לא צריך את זה!// 

מחוץ לרדיוס הקרוב ממש, בצד השני של השדרה, במורד שינקין, נמצאת המכולת של המשפחה הכי חמודה ואוהבת על  הוריה וילדיה ועובדיה, אחד אחד משובחים ונבחרים, כולל המוצרים שמסודרים על המדפים, כולל המשלוחים, כולל טיפול פסיכולוגי אצל הקופאי/ת.

<<englink [[Shoretzky]]>>

[img[pictures/shoshanim.jpg]]

!!![[אווה|אווה כהן]]:

~ את הבצק מכינים כמה שעות מראש, ומתפיחים במקרר 3 שעות לפחות.

//1//

~במיקסר, עם וו הלישה, במהירות הנמוכה ביותר, מערבבים קודם את החומרים הרטובים ואז את היבשים.

*4 כוסות קמח
*30 גרם שמרים
*200 גרם חמאה מומסת
*3 חלמונים
*1 כוסות חלב
*1/3 כוס סוכר
*1כפיות סוכר וניל
קורט מלח

//2//

~ מלית אותה מכינים במעבד מזון:

*100 גרם אגוזי פקאן טחונים
*200 גרם חמאה רכה
*3/4 כוסות סוכר
*1 שקית סוכר וניל

//3//

* 1 כוס חלב חם לסוף האפייה עם כפית סוכר וניל

~הכנה:

1. מחלקים את הבצק לארבעה כדורים, ומרדדים כל כדור לעלה מלבני

2.את העלה מורחים במלית האגוזים

3. מגלגלים לרולדה

4. חותכים שושנים

5.מניחים אותן עומדות בתבנית

6.אופים בחום בינוני נמוך כ-40 דקות (השושנים יהיו בצבע אפוי בהיר)

7. מוזגים על השושנים את החלב המורתח עם מעט תמצית או סוכר וניל בתוכו, בערך 2-3 כפות על כל שושנה, וממשיכים לאפות 10 דקות נוספות.



<<englink [[Yeast roses]]>>
[img[pictures/miz-anavim.jpg]]

!!![[אווה|אווה כהן]]:

בשבת האחרונה התעוררתי, כמו תמיד, לפני פיליפ ואיריס, ובנייד היה מסרון מגורה. ששאלה אם היא יכולה לבוא. עניתי לה מיד שכן, והתקלחתי הכי מהר שאפשר. תוך כדי שאלתי את עצמי מה אכין לנו. נזכרתי בענבים הלא יפים שהרגיזו אותי. הנחתי על הכיריים קומקום קפה, הוצאתי את הענבים וניקיתי אותם, טחנתי אותם בפולסים עדינים עם מיץ לימון ומעט סוכר, וכשגורה הגיע שתינו קפה וקוקטייל וודקה עם מיץ ענבים ולימון.

אופן ההכנה:

1. ענבים מרוסקים (היה לי כמעט קילו אותו נקיתי וטחנתי עם בערך שליש כוס מיץ לימון, ארבע כפות סוכר, שקיק סוכר וניל והרבה קרח).

2. על כל שוט של וודקה הוספנו חצי כוס ממיץ ענבים וקרח מלוא הכוס

והיה מעולה




<<englink [[Drinking with Gura]]>>
[img[pictures/shay-tra-litman.jpg]]


!!![[תומר]]:

שי טרא ליטמן הוא [[עלם חמודות|https://www.youtube.com/watch?v=_awp-5mjewA]], הוא [[נער אומן|https://www.youtube.com/watch?v=yGlQ5xUyx_g]], הוא [[חזק בחלשותו|https://www.youtube.com/watch?v=g2VEAqm_8cU]], הוא [[כשרוני וחכם|https://www.youtube.com/watch?v=5QhE_JMvrDg]], כותב שר ומתנועע עם טיימינג מושלם, הוא [[קטלן בכריזמה|https://www.youtube.com/watch?v=J1aTFmOlYE4]], הוא [[שי טרא ליטמן|https://www.youtube.com/watch?v=VzN8mh8P3M4]] שחביב על העולם.


<<englink [[Shay Tra Litman]]>>
[img[pictures/siach-cafe.jpg]]

!!![[תומר]]: 

אחרי [[שורצקי]], עוד קצת במורד הרחוב, אני קונה קפה ששרלי, שיודע את שפתם של הפולים, קלה וטחן בשינקין 50. 


<<englink [[Siach Cafe]]>>
[img[pictures/shitat-alexander.jpg]]

!!![[אירי]]:


בנערותי סבלתי מכאבי גב חזקים, שהתבררו כעקמת, שנבעה מצמיחה מהירה לגובה. בין גיל 14 ל-15 נוספו  12 סנטימטרים לגובהי, שנעצר ב- 172 ס"מ. אמי לקחה אותי לכל סוגי המרפאים והרופאים, וכך נתקלתי לראשונה [[בשיטת אלכסנדר|https://he.wikipedia.org/wiki/%D7%A9%D7%99%D7%98%D7%AA_%D7%90%D7%9C%D7%9B%D7%A1%D7%A0%D7%93%D7%A8]].  

[[אלכסנדר|פ.מ.אלכסנדר]], שלקה בקולו, גילה שהדבר נובע מליקוי בהתנהגותו הגופנית והנפשית. 

די מהר הוחלט שאצטרך ללבוש סד שיישר את גבי ונטשתי גם את האלכסנדר. בסוף השרות הצבאי הכאבים חזרו, החלטתי לנסות שוב את השיטה, ומאז אני הולכת כל שבוע לשיעור, ואף מניחה את הגב מידי יום בעצמי. לקח לי לפחות שנה עד שהצלחתי להבין את שלושת משפטי הכוונים הבסיסיים, עליהם מושתתת העבודה כולה:

להניח [[לצוואר|צווארים]] להיות חופשי

כדי לתת לראש ללכת קדימה ולמעלה.

כדי לתת לגב להיות ארוך ורחב.


<<englink [[Alexander Technique]]>>

[img[pictures/preservation.jpg]]

!!![[תומר]]:

אחת לאיזה זמן מוגבל אני צועד מהיר ועצבני לכוון מתחם שרונה, לראות איך התקדמו ענייני הבינוי בתוך וסביב לרשות השידור מערכת תל-אביב ז"ל.

<<englink [[Preservation]]>>
[img[pictures/shalom.jpg]]

!!![[גורה]]:

שלום הוא הבעלים של [[געזונטהייטס]].  הוא גבר בן ששים כמעט. אדם אמיד, שכל הונו מירושה שירש.
הוא טוב מראה, טוב לב, חביב על הבריות, חסר חוש עסקי, בעל חוש אומנותי ואף יוצר בעצמו, חובב נשים (אך לא רודף שמלות).
שלום גר בקומה חמש בבניין, ובקומה מעליו הוא חולק סטודיו עם מסאז'יסטית ואומנית נוספת.


<<englink [[Shalom]]>>
[img[pictures/shalom-chanoch.jpg]]

!!![[יויו]]:

[[מכאן|https://www.ynet.co.il/PicServer2/24012010/2389758/_DSC0020_wa.jpg]] גורה לקחה את [[הבונבונייר|https://he.wikipedia.org/wiki/%D7%A9%D7%9C%D7%95%D7%9D_%D7%97%D7%A0%D7%95%D7%9A]]  שהוא מילים ומנגינות יפות וקול חם, מלא טוב ואהבה מלטפים.

למשל:

[[כי שירי הוא עלה ברוח|https://www.youtube.com/watch?v=0QhM-_h3Yg8]]. 

[[שעונים|https://www.youtube.com/watch?v=P97ASmkE2Rs]]

[[על פני האדמה|https://www.youtube.com/watch?v=HoaaKznBmK0]]

[[אדם בתוך עצמו הוא גר|https://www.youtube.com/watch?v=vjEbQr56ty4]]


[[לא יכול לישון עכשיו|https://www.youtube.com/watch?v=iMHxzmiMCzU]]

[[היא באה השמש|https://www.youtube.com/watch?v=j1YAMfeT-s8]]

[[טיול ליפו|https://www.youtube.com/watch?v=rV9emtkpO5w]]

[[אני לא יודע איך לומר לך|https://www.youtube.com/watch?v=oq-wSaSh-Do]]

[[את מביאה הכל|https://www.youtube.com/watch?v=JSYt63blLJ0]]  

(  //אין לעולם דבר פשוט, אי שם בדרך מחכה טעות// )

[[בגלגול הזה|https://www.youtube.com/watch?v=KS25hjyFC9c]]



<<englink [[Shalom Hanoch]]>>
[img[pictures/CT2ku66Mqk7cBavl.JPG]]
''
הכל ייתברר''


<<englink [[Send]]>>
[img[pictures/fall.jpg]]



<<englink [[Fall December 2023]]>>
[img[pictures/shmarim-krantz.jpg]]

!!![[ז'נבייב]]:

אני לא אדם של מתוקים, אבל נפלו עלי השתיים האלה הנפלאות [[סוניה]] [[ואווה|אווה]], וכשמדובר בהן - אני מחכה למתוקים. בשבת האחרונה סוניה הזמינה רק את הזקנים, כלומר את [[ג'וזף|ג'וזף אברואה]] ואותי ואת אווה [[ופיליפ|פיליפ]]. היא הכינה ארוחה הונגרית הורגת מ א' ועד ת'.

אחרי שכבר אכלנו ושתינו והתפוצצנו, היא הכינה לנו קפה עם השמרים קרנץ הזו:


שמרים קרנץ

החומרים :

1. לבצק :

* 50 גרם שמרים יבשים או שמרית
* 4 כוסות וחצי קמח לבן
* 4 כפות סוכר
* 2 ביצים
* 200 גרם חמאה
* כוס חלב

2. למלית :

* כוס סוכר
* 4כפות קקאו
* כף קינמון טחון
* 200גרם חמאה

3. לסירופ :

* כוס ושליש סוכר
* כוס מים
*רום.מי ורדים.תמצית וניל


אופן ההכנה :

1. במערבל חשמלי עם וו לישה לשים את חומרי הבצק ,בתחילה את היבשים , אליהם מוסיפים כהדרגה את הנוזלים, וממשיכים את הלישה במהירות בינונית-נמוכה כעשר דקות.

2. מקררים את הבצק 3-9 שעות במקרר.

4. מחממים תנור לחום בינוני, מרפדים תבנית בנייר אפיה (תבנית התנור)

5. מערבבים את חומרי המלית  למשחה חלקה. (ביד או במעבד מזון)

6. מחלקים את הבצק לשניים או שלושה חלקים שווים.

7. מרדדים כל עלה בנפרד,מורחים שכבה אחידה של משחת החמאה וההקקאוו.

8. מקפלים את הבצק והמלית באופן הבא:

 קצה ימני וקצה שמאלי לאמצע ,ואז את שני הקפלים מקפלים שוב זה על זה. חוזרים על הפעולה גם מלמעלה ולמטה. את הבצק המקופל מרדדים שוב,  לפס ברוחב 6–12סנטימטרים ובאורך של כ-24 סנטימטרים. חותכים לאורך שלושה פסים, מהם קולעים צמה , את הצמות מניחים בתבנית.

9. אופים 40-50 דקות (עד שהעוגה אפויה היטב אך לא שרופה)

10.  בזמן שהעוגה בתנור מכינים סירופ. מרתיחים את המים הסוכר  ותמצית הורדים וממשיכים את הבישול בלהבה בינונית חמש דקות נוספות.

11. כשהעוגות מוכנות יוצקים עליהן את הסירופ.

12. מחכים חצי שעה ומגישים.




<<englink [[Yeast krantz cake]]>>
[img[pictures/schnitzel.jpg]]

!!![[יויו]]:

החוקים המקובלים להכנת שניצל אומרים, שמצפים אותו בקמח, ביצה טרופה ופרורי לחם. אני פוסח על הקמח. ולביצה אני מוסיף חרדל. כמו כן אומרים לטגן בשמן עמוק טיגון מהיר. אני מטגן בשכבת שומן דקה בטיגון איטי.

כך אני עושה:

1. קונים אצל הקצב פרוסות דקות של בשר לשניצל - זו בדרך כלל איזו חתיכה אחורית של עגל.

2. כשמגיעים הביתה טורפים ביצים (בהתאם לכמות הבשר, לקילו בשר שלוש ביצים) עם כפית חרדל, ומכניסים פנימה את פרוסות הבשר, תוך כדי שעוטפים אותן עם הבלילה.

3. מניחים במקרר לכמה שעות - אפשר גם ליממה.

4. מוציאים את השניצלים מהמקרר, מסננים מהביצים ומצפים אותם בפרורי לחם כמו שצריך.

5. מחממים מחבת ברזל על הלהבה הנמוכה, וכשהיא כבר חמה מניחים בתוכה: [[חמאת שום|חמאת שום ועשבי תיבול]]/שמן זית/חמאה - כשליש כוס.

6. מניחים את פרוסות השניצלים במחבת ומתחילים לצלות. בהתחלה על החום הגבוה יותר של הלהבה הנמוכה, וכעבור דקה שתיים מנמיכים, וממשיכים לצלות כמה דקות נוספות.

7. הופכים את השניצלים, מוסיפים שומן אם צריך, וממשיכים בצליה - ככה - עשרים דקות עד חצי שעה. אפשר לשחק עם הלהבה. לא מוסיפים עוד ועוד שומן, כי אם לפי הצורך.




<<englink [[Schnitzel]]>>
[img[pictures/sheooit.jpg]]

!!![[אווה]]:

כמה מילים לפני שאכתוב את המתכון עצמו.

מבחינת כמויות, הכל תלוי בכמות הסועדים, מה עוד יש על השולחן ומה מרכז הארוחה.

שעועית היא לבטח, לדעתי, תוספת. באם יש כמה תוספות, אזי לא נדרשת כמות גדולה מידי של כל אחת מן התוספות. 

אני ממליצה לארוחה בינונית על שני חופני שעועית, אותם שוטפים היטב ואם צריך קוטמים את הקצוות.

* חולטים את השעועית במים רותחים 5-10 דקות, תלוי בגודלן, מסננים ומייבשים.
* במחבת ברזל ממיסים חמשים גרם חמאה ומטגנים את השום. (כדאי לתת למחבת להתחמם ורק אז להמיס את החמאה ומיד להניח את השום).
* מוסיפים את השעועית וחופן שומשום, וצולים תוך כדי ערבוב עדין. (עדיפה כף עץ שטוחה).
* מסירים מן האש ומגישים, וזה יכול להאכל גם בטמפרטורת החדר, ובמקרר להישמר עד שלושה ימים.


<<englink [[Green beans]]>>
[img[pictures/searot-leachor.jpg]]

!!![[ז'נבייב]]:

בנובמבר הקרוב ימלאו לי 46, ובעידודו של [[ג'וזף|ג'וזף אברואה]], החלטתי לעשות [[רביזיה במטבח]].

ראשית - להביא מבשלת נוספת, ולעבוד פחות, ודבר שני לעשות שיפוץ קטן גם למסעדה וגם לתפריט.

קיבלתי לעבודה את [[סולטנה]], אישה מקסימה בת 56.

בסוף יום העבודה הראשון שלה שוחחנו, והיא אמרה:

//
ברשותך, אני מבינה שזה עוד לא הזמן שלי להעיר הערות, אבל דבר אחד, לא מפריע לי כובע או לא כובע, אבל אי אפשר שהשערות של החברה יטבלו באוכל ויתרוצצו על הפנים - במטבח משאירים את השערות מאחור, אני בעד קשתות.//


<<englink [[Hair up]]>>
[img[pictures/sarale-hayta.jpg]]


[[מילים ולחן: מאיר אריאל|https://www.youtube.com/watch?v=86rhzXjYzJg]]



עננים על הדרך.
הרוח בעץ.
עגלה על הגשר.
העשב נוצץ.



מגבעות ומטפחת.
ושד מתרוצץ:
"בואי בואי ליער,"
אומר וקורץ.


צחקה צחקה
עת חלף בה החץ...
עננים על הדרך,
הרוח בעץ.


מגבעות כועסות:
מטפחתן סוררה.
לצדדים היא צוחקת,
עכשיו אין ברירה.

האב והבן
והבת האחות,
הצילוה, ולא -
ישחטוה שחוט.

והרוח פרחה
לחפש לה ברירה...
מגבעות כועסות,
מטפחתן סוררה.

מתייבש אגל טל
על עלה עשב חד.
ועל פני הרקיע
מעוף וצווחה.

עגלה מתגלגלת
הרוח חזרה,
וילדה מבוהלת
אומץ אזרה,

צחקה צחקה
ולבה התפרץ...
עננים על הדרך.
העשב נוצץ.

צחקה צחקה
וליבה התפרץ
עננים על הדרך.
העשב נוצץ.
שד מתרוצץ.
הרוח בעץ.

<<englink [[Saraleh would have liked it]]>>
[img[pictures/tavshil-yerakot.jpg]]


החומרים:

1. בצל קצוץ

2. שמונה עגבניות בינוניות חתוכות קטן

3. פלפל אדום חתוך לקוביות

4. גזר חתוך לקוביות

5. כוס עדשים שחורות

6. כוס עדשים ירוקות

אופן ההכנה:

1. מחממים סיר רחב יחסית (28) ומוסיפים שמן זית ואת הבצל הקצוץ ומזהיבים

2. מוסיפים את קוביות הגזר וצולים עד שהן "מזהיבות"

3. מוסיפים את הפלפלים וכנ"ל

4. מוסיפים את העגבניות וצולים היטב עד שאוזלים הנוזלים כליל

5. מוסיפים ליטר אחד של מים וממשיכים לבשל על אש קטנה כשעה

6. מוסיפים מעט מלח, פלפל שחור וקומץ סוכר

7. מוסיפים את הקטניות ומבשלים עוד כשעה תוך ערבוב

8. במהלך הבישול כדאי מידי פעם לערבב ולבדוק את התיבול



<<englink [[Vegetables stew]]>>
[img[pictures/orez-bishlosha.jpg]]

!!![[אלפרד]]:

* משרים כוס אורז בשלושה צבעים לשעתיים לפחות.
(יש חבילות עם שלושתם - או לפי משקל: אורז עגול, אורז אדום ואורז בר).

* מסננים את האורז, קוצצים בצל, קולפים בטטה ושני גזרים.

* בסיר רחב יחסית, מתחילים לטגן את הבצל בתוך שתי כפות שמן עד להזהבה.

* מכניסים פנימה את הבטטה והגזרים וצולים עוד.

* מוסיפים את האורז ומטגנים עוד מעט.

* מוסיפים שתי כוסות מים ןמתבלים במלח, פלפל שחור, כף חומץ רימונים, כף-שתיים סויה, כף טריאקי, מעט בהרט.

* מבשלים על אש נמוכה ובודקים מידי פעם את מצב המים - מוסיפים רקלגובה האורז ולא יותר עד עשרים דקות לפני הסוף ובעשרים הדקות האחרונות מבשלים עד שהמים מתכלים.



<<englink [[Three colored rice and roots stew]]>>
[img[pictures/tahapochet.jpg]]

!!![[יויו]]:

[[אנג'ליק]] המתוקה נראתה לי יפהפיה ברגע שראיתי אותה, אבל הייתי בטוח שיש לה עניינים עם [[אלפרד]], מה שהתברר כלא נכון לאחר שציננתי פוטנציאל להתלהבות מבעוד מועד. בתקופה שהיא נתפסה על [[הסופרנוס]] היא השפיעה על כולנו, ואת פרק הסיום ראינו יחד. ככה הזמן עבר עד שיומיים לפני הארוחה היא באה איתי לשוק ובדרך בגינה הרגשתי שבשל הרגע. אספתי אותה אלי כאביר, הבטתי בה, ראיתי את מבטה המחייך ונישקתי אותה ארוכות והיא אהובתי. 


<<englink [[Flip-flopping]]>>
[img[pictures/tomer.jpg]]

!!![[יויו]]:

כשבאנו מפריז להלוויה של [[אימא שלנו|דינה זכרה לברכה]], [[גורה]] ואני, ומיד אחר כך [[אבא|אבא יואל]] סיפר לי שיש לו חברה כבר שנים, והייתי מחוסל, תומר לקח אותי לסלע שמעל הים עם בקבוק ויסקי. אנחנו חברים מהגנון, הוא גר בתל אביב עם אשתו והתינוקת שלהם, ובכל פעם שאני מגיע, אני לוקח יומיים שלושה בעיר, ומבלה איתו אצלו [[בגטו|כאן בגטו]].

<<englink [[Tomer]]>>



[img[pictures/tachbura-ziburit.jpg]]

!!![[יויו]]:

לפעמים אידאלים הופכים למעשים, ולפעמים מעשים הופכים לאידאלים

למשל, אני גאה לומר שאינני אוחז ברכב פרטי, כי אם עושה תחב"צ או טרמפים

<<englink [[Public Transportation]]>>

[img[pictures/tik-kniyot.jpg]]

!!![[גורה]]:

מאחר שאחד מעיסוקיו המרכזיים של יויו הוא הליכה  לקניות, הוא החליט שהוא רוצה לבנות תיק גב נח.

זה היה קצת אחרי שעברנו [[לדירה|כוכב המשאלות 01]], וכמה חודשים לפני [[שדןןדןן נסע|דןדן נסע]].

הם קנו מוטות אלומיניות מתכווננים, חלקם עם זוויות, ובנו "קופסה". הם קנו חתיכות [[ברזנט|https://he.wiktionary.org/wiki/%D7%91%D7%A8%D7%96%D7%A0%D7%98]], רצועות ואבזמים מתכווננים.

את ה"קופסה", הברזנט, הרצועות והאבזמים, הם לקחו לתופרת, שחיברה לפי בקשתם את הכל. התיקים כוללים מחיצה במרכז התיק. כיס פנימי, כיס קידמי וכיס צדדי קטן ומאובטח.



<<englink [[Self-made backpacks for shopping at the market]]>>
[img[pictures/lentofsilence.jpg]]

!!![[רוז'ה]]:

כבר כמה ימים שאני תחת תענית שתיקה שגזרתי על עצמי. אתמול כתבתי הודעת טקסט לאימי ושאלתי אם אוכל לבוא אליה, אבל שאני שותק. היא כתבה לי שהיא אצל סבתא שלי שגרה ברובע השישי, ושאני מוזמן לשתוק שם. הגעתי. השתיים טיפלו בי יפה, ולא ניסו  כלל לדובב אותי לדבר.



<<englink [[Lent of silence]]>>
[img[pictures/batatot-batanoor.jpg]]

!!![[אירי]]:

* מחממים את תנור האפייה ל180 מעלות צלזיוס.
* לתוך תבנית מרופדת בנייר אפייה חותכים ל"סירות" ארבעה תפוחי אדמה בינוניים ושלוש בטטות בינוניות (בגודל).
* פורסים שתי שיני שום לפרוסות דקות ומפזרים מעל תפוחי האדמה והבטטות בחתוכים.
* ממיסים בקערה חמישים גרם חמאה, לאחר שנמסה מערבבים לתוכה רבע כוס שמן זית, ומברישים את כל הפינות.
* מפזרים מלח ים גס וגבעולי רוזמרין.
* אופים 40 דקות ב180 מעלות ואחר כך מעלים את  הטמפרטורה ל-200 מעלות ואופים רבע שעה-עשרים דקות נוספות.




<<englink [[Baked potatoes and yams]]>>
[img[pictures/90sBKBFvOgA1QT3a.jpg]]

שיטת מימשל שמוצעת כתחליף ל[[דמוקרטיה|https://he.wikipedia.org/wiki/%D7%93%D7%9E%D7%95%D7%A7%D7%A8%D7%98%D7%99%D7%94]]. היא מתבססת על
[[תרבות הניהול היפנית|https://en.wikipedia.org/wiki/Japanese_management_culture]]
שמבוססת על הדרך שבה הבינו מנהלים אמריקנים את הדרך שבה הבינו מנהלים יפנים את תרבות הניהול האמריקנית.

//המשך יבוא//
[img[pictures/targil-lebalata.jpg]]

!!![[אירי]]:

אני לא אוהבת טכניקה - וטכניקה לא אוהבת אותי, למעט [[טכניקת אלכסנדר|שיטת אלכסנדר]], שדבר ראשון אומרת, להניח לצוואר להיות חופשי.

רקדתי מאז ומתמיד, [[הורה]], [[דבקה]], [[דעסה|https://www.youtube.com/watch?v=uJqF6r-obdg]]. למדתי בלט קלאסי, מחול מודרני, ריקודי עם, [[כתב תנועה|כתב התנועה אשכול-וכמן]], קומפוזיציה ועוד התנסויות בכל מיני כמו יוגה, טאי-צ'י, פלנדקרייז... הייתה לי מורה לטכניקת [[מרתה גראהם|ספירל]] שקראה לי [[איזדורה דאנקן]]. כשאני מתנועעת, אני נועלת נעלי רחוב עם סוליית גומי, וחושבת אלכסנדרונית. מחשבה שהולכת איתי כבר זמן מה היא, שהמחול נועד לרוקד ולא לצופה.

תמיד אהבתי אטיודים. על תרגיל לבלטה חשבתי לראשונה בהודו, כשגרנו בחדר הקטן, עוד לפני [[הצלילה|מחפשת את אירי]].

הוא מצריך מרחב של 12 בלטות, אך משתמשים רק ב-8 מתוכן.

אפשר עם  או בלי מוזיקה, כפות הרגליים עומדות כל אחת על בלטה, מקבילות זו לזו. הברכיים כפופות מעט ורכות, מפרקי הירך רכים, [[המותנית|צווארים]]. מניחים לצוואר להיות חופשי ומתחילים שני סיבובים, אחד כשרגל ימין נעה קדימה וחוזרת, הצידה ימינה וחוזרת, אחורה וחוזרת, הצידה ימינה וחוזרת (8 פעמות). אחר כך ובאותו אופן ברגל שמאל לצד שמאל.

קל לזכור את התרגיל בדומה לריקודי העם של פעם, כלומר - ארבעה רבעים, כמו בדבקה או בהורה, הטקסט ברור, וכל שנותר הוא להתנועע ולאלתר תוך כדי תנועה.

כן או לא להעביר את המשקל לרגל המתנועעת, שינוי המהירות, הוספה של תנועת הידיים. כשהטקסט קצר וברור, אפשר להתעמק בתנועה, במקצב, בקצב, בחשיבה התנועתית ועוד.

התרגיל הזה עובד על היציבה, מחזק את שרירי הגו והירכיים, ואם עושים אותו מספיק זמן רצוף, ובתנועות מהירות, הוא משפר סבולת לב-ריאה. :)

אני אוהבת להשתמש בסוגים שונים של מוזיקה. גם את  [[ברכת השמש]]  אני עושה לצלילי מוזיקה, שהופכת הכל ליותר נעים ומעניין.

בימים האחרונים נהניתי [[מפנטסי|https://www.youtube.com/watch?v=fdBTWbQEQ2s]] של מיילס דייויס, שאיתו כפות הרגליים פלשו לבלטות נוספות.




<<englink [[A tile’s etude]]>>

[img[pictures/turkey-cock.jpg]]

!!![[ז'נבייב]]:

1. ממלאים תרנגול הודו לא גדול, ונקי מחלקים פנימיים ומהגרון, באורז לבן מוכן, מעורבב בבצל מקורמל ופרות יבשים.

2. מכינים בקערה תערובת הכוללת:

* 100 גרם חמאה מומסת
* רבע כוס שמן זית
* גרד קליפת תפוז שלם
* 3 שיני שום
* שני עלי מרווה
* פלפל שחור גרוס
* מלח ים 


3.  כשאלה מעורבבים, מורחים אותם היטב סביב התרנגול הממולא, ומניחים בסיר עבה ועמוק, שבתחתיתו כוס ורבע יין לבן יבש, לצלייה של שעתיים, בתנור שחומם מראש ל-170 מעלות.

4. מבשלים בסיר כמה דקות (עד שהנוזלים מצטמצמים ומסמיכים - אך לא יותר מידי)

* כוס מיץ תפוזים
* כוס מים
* כף סוכר

מוזגים אותם מסביב לתרנגול ההודו האפוי, ומכניסים חזרה לחצי שעה נוספת של אפייה



<<englink [[Baked turkey]]>>
|''&#9608;''|''&#9608;''|''&#9608;''|''נ''|''&#9608;''|''&#9608;''|
|''&#9608;''|''&#9608;''|''&#9608;''|''ח''|''&#9608;''|''&#9608;''|
|''&#9608;''|''&#9608;''|''&#9608;''|''מ''|''&#9608;''|''&#9608;''|
|''&#9608;''|''&#9608;''|''&#9608;''|''נ''|''&#9608;''|''&#9608;''|
|''&#9608;''|''&#9608;''|''&#9608;''|''מ''|''&#9608;''|''&#9608;''|
|''מ''|''&#9608;''|''&#9608;''|''א''|''&#9608;''|''&#9608;''|
|''&#9608;''|''ל''|''&#9608;''|''ו''|''&#9608;''|''&#9608;''|
|''&#9608;''|''&#9608;''|''ו''|''נ''|''&#9608;''|''&#9608;''|
|''&#9608;''|''&#9608;''|''&#9608;''|''כ''|''&#9608;''|''&#9608;''|
|''&#9608;''|''&#9608;''|''&#9608;''|''M''|''ס''|''&#9608;''|
|''&#9608;''|''&#9608;''|''&#9608;''|''A''|''&#9608;''|''נ''|
|''&#9608;''|''&#9608;''|''&#9608;''|''N''|''O''|''S''|