A shitposting classic.
# 1st track: down an octave
# 2nd track: down a perfect 4th
# 3rd track: same
# 4th track: up a major 3rd
# 5th track: up a perfect 5th
# 6th track: up an octave
https://www.youtube.com/watch?v=Vf8W6wTt22s
<<<
A monk asked Tozan when he was weighing some flax: "What is Buddha?"
Tozan said: "This flax weighs three pounds."
//Mumon's comment:// Old Tozan's Zen is like a clam. The minute the shell opens you see the whole inside. However, I want to ask you: Do you see the real Tozan?
"""
Three pounds of flax in front of your nose,
Close enough, and mind is still closer.
Whoever talks about affirmation and negation
Lives in the right and wrong region.
"""
<<< https://www.sacred-texts.com/bud/glg/glg18.htm
<<<
One of my all time favorite Zen koans is Master Tozan's (also spelled Dongshan) answer when asked, "What is Buddha?" This koan is included in about every collection used by various Zen schools, and with minor variations, is simply this:
<span style="font-weight: bold">Tozan was asked by a monastic, “What is Buddha?” Tozan replied, “Three pounds of flax.” What did Tozan mean by this? How would you answer the question? What is Buddha?</span>
Now, this being a koan, some people will say (and some schools of Zen teach) that the answer is meaningless. Tozan was asked an impossible question and replied with an equal bit of nonsense. Once you comprehend the question is empty, you can do the same. "What is Buddha? A Big Mac with Cheese." There, see how easy it is?
But it's not correct, because the question is not nonsense. Monks and other Zen Buddhists are told to find their Buddha-nature. We must penetrate what this is, before we can find it. Tozan in this instance gave a snarky, wonderful answer that pointed without words to a deep truth. But, you lack the cultural context to understand his answer, so the koan remains closed to you. Here is the secret to the koan, something Rev. Young passed on to me that opened it up. I hope it does the same for you.
Three pounds of flax is exactly how much flax it takes to spin a summer-weight Buddhist robe in ancient China.
Snarky Tozan was asked what is a Buddha, and told the monk it's what made the robe he was wearing. Now do you see how this opens up the koan? I can see the monk looking down at the patched summer robe he was wearing as the gears of his mind started spinning in circles.
"But wearing a robe doesn't make me a Buddha. He can't mean that. And he didn't say Buddha was a robe. Buddha is what makes a robe. So at what point does flax turn into a robe? I am wearing a robe, but it's just as true to say I'm wearing three pounds of flax! So when I put on the flax in the morning, I'm putting on Buddha? Oh...."
So what is a Buddha? For the monk, it was three pounds of flax. What is Buddha for you? Will you answer? There's no right, and no wrong answers. Just answers.
My own? Sure. Right now, Buddha is a nicked ear while shaving my head one morning.
<<< https://newbuddhist.com/discussion/21973/three-pounds-of-flax
* [[chameleon]] - 「CAP'N JAZZ」
** Humanoid creature with a brush tail
** Paints things that work via [[loony tunes logic|https://www.youtube.com/watch?v=4iWvedIhWjM]]
** Cry: ara (ARARARARARA)
* [[The Abyssal]] - 「TWIST OF CAIN」
** Set 6 marks by touching, can swap their postions
Like the corresponding page on [[senpai's|h0p3]] wiki, this is a place for me to send a quick message to people. A "heads up" or "ping", if you will.
<<list-links "[tag[@]]">>
!! 2021.09.22
https://philosopher.life/#2021.09.22%20-%20%2Fb%2F §"My Zero Contradiction Self-Identified Leftist Commune Job Description" - Can you sing bass? Our [[Waifu]]ist commune needs someone to back me up for sea-shanty nights ;)
I see myself as a bit of a dreamer. Plus I guess I have a little capital. So maybe I'd be the primary investor or even some form of leader.
!! 2021.08.22
The [[chameleon]] that can be spoke of is not the eternal [[chameleon]]...
I hope I don't slip into reply-mode, [[Senpai]]. Still alive. I am trying to rebuild the habit. I may try to reframe it with [[Senarai]]-senpai, whom you may like (if she can handle you). When she's ready to read your wiki, we can have an introduction.
Let's try three Chame Guarantees
# Chame will always be your friend and a willing ear
# Chame will send you anything she finds interesting or salient
# Chame will not neglect you or forget you
And three Chame homework problems
# Chame will try to rebuild her habits
# Chame will try to reach out more
# Chame will try to be a better root user
!! 2021.04.29
So my wiki has been completely dead for a while... I really don't know what happened. Maybe I can explain later?
Anyway I miss you? Let's talk soon. You should use Discord more. Love you!
!! 2021.01.17
The Van Gogh of the internet era... almost sounds like a compliment?
That video though. I wonder if Muta came from 4chan himself to your wiki?
Things are obscure from my end. I don't have Signal. I only use the wiki and discord (and I guess whatsapp for the fam). I should install Signal for ya. Pops is nagging me about it too.
Remind me to share with you what I've been working off outside of the wiki... some day.
I love you.
!! 2021.01.06
Your convos with anonymous were funny. Thanks for the chuckle [[=w=.]]
I'm sorry I haven't been around more. I'm really being sloooowwwww + I've been struggling with illness recently (not covid!)
!! 2020.11.14
Thank you for your support~ It's thanks to my friends (including you!) and family that I've been able to make it this far. So, thank you! I didn't realize when we first started talking that in a year or two I'd have a six figure dream job while living in America, hahaha. It's been a wild ride, and the end is in sight.
!! 2020.07.01 (am)
<<<
https://www.reddit.com/r/DeclineIntoCensorship/comments/hi3qwo/massive_banwave_imminent/
As it was predicted. I am obviously opposed to this. The normative problem of freespeech is an incredibly expensive topic to speak about wisely.
<<<
Agree to disagree? Personally I think it's [[a good thing|2020.06.29 - finally]]. Places like gendercritical were absolutely causing harm to trans folk that I know (and myself). Getting rid of the spaces reactionaries use to organize and recruit is, in my opinion, a net good. They deserved to be deleted.
Idk. I feel this is going to be our big disagreement. I don't buy the "free speech" defense here. There are places where our principles will clash, and we have to prioritise - like Maslow's hierarchy of needs. For me, free speech is higher on the pyramid than the baseline of safety for the people I care about (and, selfishly, myself) and thus I'm willing to cede it in this case.
!! 2020.04.14
> (on Derrida) We didn't end up talking about it.
I have no money for books right now, sadly. I would read my pdfs, but... reading books on a monitor is unpleasant. I'd rather send them to an ereader or something, but idk if it'd work with my kindle (I've barely used the thing).
> Not so interested in piracy. I'm surprised. She probably has plenty of methods of access to everything she wants.
Oh I'm totally into piracy, lol. I'm just pretty good when it comes to sources (I use libgen for books, and various public trackers for music, movies, etc). The reason I'm not into private trackers is because of the elitist community (you have to take a fucking exam to get into some of them) and the fetishism around ratios (I can almost never get a good ratio, because I only go on private trackers for obscure shit, and can't afford to seed 24/7).
I'm sorry if I seem a bit aloof about some conversation topics. I'm trying to I guess, invite you to say the first word on the topic? Maybe I'm just really bad at communicating :) Don't take my silence on something as boredom or dislike of the topic. If I don't want to talk about something, I'll be clear on it - like you with saying "that's evil" I am not shy about saying "that's boring" or "that makes me uncomfortable" `^^`
> I wonder if she will ever surface again to go public.
I imagine I will, eventually. The KF thread in mind is so shit it'll eventually get locked (it's already just a drama channel for waifuists, and the most active guy there is a huge a-log) and then I can move back into public without worrying about being a source of ridicule.
> I'm doing a shit job of VCing with her.
I think the fault is mine as much as yours :) My schedule is weird and hard to work around. Sorry about that.
Also: yes make an edh deck!
> I should ask her about a bunch of sources for anime memes.
They're common enough in group chats/discord servers. I get mine from there, and I also have a huge stash from my chan days.
> I wonder if she would be interested in meeting K and L. Weebweb.
Always ;) Of course, us waifuists are considered weird even among weebs, so I hope I wouldn't weird them out too much `^^`
> I thought she would like that philosopher more. Seems to have plenty in common.
Stupidly, I haven't been reading her. The website is actually too wide for my laptop, so I can't read it comfortably (reader mode isn't available for it, either).
I've not got that background in heavy leftist theory (yet). My theory knowledge is mostly limited to turn-of-the-century anarchists, and later the primmies/post-left.
!! 2020.02.18
I used to use a global stylesheet from userstyles.org that made fucking everything dark. I don't recall what it was called, though, and I abandoned it in the end. This looks similar: https://userstyles.org/styles/31267/global-dark-style-changes-everything-to-dark and there's more where that came from: https://userstyles.org/styles/browse?search_terms=global%20dark&type=false
(also, I suddenly realized my last @ had a 2019 for the year. Could this be the work of [[an enemy STAND?|https://www.youtube.com/watch?v=hrLkimtAHj0]])
!! 2020.02.10
https://philosopher.life/#2020.02.09%20-%20Prompted%20Introspection%3A%20Take%20Me%20To%20Africa%2C%20Please
I've been to Morocco! Technically Africa, even if it's closer culturally to the Middle East.
I hated that trip though. Remind me to tell you about it sometime.
!! 2019.12.29
I got pretty lucky... I played my buddy Robert, who uses a black/blue milling type deck which is very weak to the deck I play; and I also played a younger kid who had to cobble his mono-red deck together because half the deck he walked in with was illegal. Those matches I went 2-0, and in the other two of four I went 1-1 and 0-2. A big reason I'm building a new deck is because that deck, while good, relies heavily on good draws and sharp play. It's like playing `1. e4 c5` as black in chess.
!! 2019.11.12
Thank you for both of your congrats :) I should reply on @ more.
I signed up for letter.wiki after seeing it in your link log: [[https://letter.wiki/KonataIzumi/]]. They wanted me to use my real name, but I'll do that (unfortunately, quite literally) over my dead body. They can enjoy the pseud. I browsed through; I almost responded to a TERF, but I don't think that's a terribly good idea, we will quite literally end up talking past each other.
!! 2019.10.18
Inane comment lol, but I'm loving how your letter to DOR is developing. And I thought //I// had to wait a while...
Hope life finds you well. I'm really enjoying being with the hubs. We're going to have our basic ceremony next week.
!! 2019.10.14
<<<
Lol. I adore how you aren't immediately disgusted by me, btw. See, I just don't have enough people in my life who I can talk about this with. <3
<<<
Well, my wiki has [[some pretty gross stuff|gushing]] on it, so I can't really complain ;) besides, I used to hang out on chans and such, I've seen far worse. I'm not disgusted at all!
<<<
I'm having a tough time finding a picture of the box (which I believe has changed); my google-fu is failing me. Oh, it definitely has a cute anime girl on the cover to match. My memory is pretty awful, but I don't think I've ever seen an anime girl that wasn't cute.
<<<
Yeah, even the likes of [[Konata]] and [[Tomoko|https://i3.lisimg.com/6022693/411full.jpg]], who are supposed to be nerdy girls that don't attract a lot of men, are really freaking adorable. It's an artifact of the art style, I think. It usually means [[the men are quite pretty too|https://cache.desktopnexus.com/thumbseg/1093/1093923-bigthumbnail.jpg]], lol. I guess an anime girl is cute if she ticks the beholder's boxes.
!! 2019.10.13
[[RE:|https://philosopher.life/#Product%20Review%3A%20Pocket%20Pussy]] 0/10 doesn't have [[a cute anime girl on the cover|https://www.kanojotoys.com/marshmallow-touch-chubby-girl-onahole-p-4399.html]]
!! 2019.10.06
What's up with your new category, [[Buxe & Braincandy]]? Books? lol, I'm a little confused. Looks cool though! I love to see you write new pages or update your older ones :D
!! 2019.10.04
Shape of you, eh? Why not take it up to eleven =w=. https://www.youtube.com/watch?v=JXfQsHT5c30
!! 2019.09.29
We're done at last! [[2019.09.06 - h0p3: bitches brew]]. Enjoy!
!! 2019.09.11
[[2019.09.10 - TDL: Trip]]<<footnote "NS" "I've totally been namesearching myself ;)">> - you're in TN?! Dang! For some reason I thought you were in Chicago; maybe the timezone thing. What region of TN <<footnote "TN" "if you say Nashville I'll explode">>? Crazy small world.
!! 2019.08.25
In your wiki review - [[2019.08.23 - Wiki Review: Bacon is Delicious]] - you mentioned that Whitney was "married to a trans". [[My approximate reaction|https://i.kym-cdn.com/photos/images/newsfeed/001/238/242/d21.gif]]. That's a really strange way of putting it. A trans woman (mtf) or a trans man (ftm)?
Ever since meeting [[Nobu]] (a trans woman) I've been wary of phrasing like this, it leads down some sketchy avenues. I'm very enthusiastic about LGBT rights, being a pansexual woman myself, and from my perspective solidarity across the entire rainbow is indispensible; cede a centimeter, and social conservatives will take a kilometer.
IDK, this isn't a callout post, it's your wiki and you can write what you want (and even if I didn't say that I doubt I could stop you from doing so, lol). Just my conscience demanding I say something, really.
Senpai responds:
<<<
When I'm wrong about what matters, you should call me out! I'm grateful you would take the time to say something. I appreciate your desire to help me express the truth in a palatable way. What I have to say eventually becomes unpalatable to most everyone in the end. Are you sure you aren't unjustifiably tone-policing me? Are you sure you aren't pointing to rhetoric rather than substance here? It's not clear to me you have taken the time to evaluate my sentence in my context with sufficient charity. I think we have just a misunderstanding here.
If it makes you feel any better, these were her words. I also don't think it's absurd because it's true. Unless it's necessary, I'm not here to quibble over the locution, connotation, and conversational implicature (as an autist [even this is shorthand, right?], that would be an endless task for me with everyone I meet and read). Tell me the significant semantic content that differs if you think I'm wrong. I think it's reasonable to cut me some slack in this case.
For irrational and immoral reasons, Whitney doesn't want to work with or be around this woman who is married to a transexual person (and, yes, the details are morally arbitrary). I am taking her to task, and I suspect I will have to defend my new co-worker. To be clear, when Whitney signaled for this outgrouping with her disgust, my response to her was: "cool, that's wonderful," knowing full well that turns me into an untouchable with her and anyone she tells (certainly my boss, as I have seen). I think I know something about this solidarity you speak of. I have the opportunity to defend LGBTQ and moral rights of persons all the time with the people I teach, including those who have power over me. I regularly defend and listen to my youth on these topics. I'm actually fighting in the trenches here; I'm paying the price in my mission. I aim to follow The Moral Law, as you know. Does this ease your conscience some?
<<<
>Does this ease your conscience some?
I would say so. Like I say, it's not a callout post; I'm not into callout/cancel culture. I left twitter for a reason. Hearing the details of what actually went down, I actually feel like the error was mine here, and I read into things. My bad, I'm sorry. I'm very jumpy when it comes to defending trans folk (probably because I love Nobu so much, haha).
This passage:
>For irrational and immoral reasons, Whitney doesn't want to work with or be around this woman who is married to a transexual person (and, yes, the details are morally arbitrary). I am taking her to task, and I suspect I will have to defend my new co-worker. To be clear, when Whitney signaled for this outgrouping with her disgust, my response to her was: "cool, that's wonderful," knowing full well that turns me into an untouchable with her and anyone she tells
Clarifies everything for me. Again, I apologize. Forgive me my neuroses.
>Are you sure you aren't unjustifiably tone-policing me? Are you sure you aren't pointing to rhetoric rather than substance here? It's not clear to me you have taken the time to evaluate my sentence in my context with sufficient charity. I think we have just a misunderstanding here.
`/me dogeza OTL Orz` I feel really fucking stupid now. Feel free to karate chop me on the noggin if we ever meet, lol.
!! 2019.08.11
I see you edited the [[Love]] page on your wiki. I wish I had diffs, because I'm looking at it like "hmmm, I've been writing the [[gushing]] page recently, have I just been subtweeted"
!! 2019.08.06
Ping pong. Hope you're doing well, [[Senpai]]. I saw you got my letter but I guess you're not planning to respond yet. Just wanted to touch base, maybe have a chat over discord (or [[@]]) about stuff.
!! 2020-01-26 17:01 CST
Part of the solipsistic nature of the wiki is that trolls don't really have much of an effect on it. I don't visit that side of the internet and I'd prefer to keep it that way. It's in public, but I could easily lock it down by using basic authentication or cryptography or whatever.
I'd like to pre-emptively avoid lumping in "activists" with those types of people. My very existence is political in today's hyperpartisan world, and many of those "activists" are at least attempting to make the world a better place, even if I don't agree with their approach ([[not by half|Cancel/Callout Culture]]). The only "activists" I'd shit on are those that appropriate the language of activism to perpetuate bigotry, i.e. TERFs and other second-wavers.
Outside of just, y'know, ignoring them and focusing on my wiki, I exist in a true cozyweb too. 2dl has a gatekeeping system, and beyond that I exist in PMs and the like which (except with [[h0p3]]) generally stay ''private'' messages. I've thought about starting a group chat, or even private mailing list. I appreciate the notion of staying under wraps. I love that "[[dark forest|https://onezero.medium.com/the-dark-forest-theory-of-the-internet-7dc3e68a7cb1]]" analogy.
> I guess my question is: to what degree do you feel the four of us are being shaped by the culture? Or are we attempting to reshape it in miniature?
As much as possible, I want to negate, even escape, the ~culture~. I don't like the mainstream 2010s-now-2020s internet. I hate twitter, I hate facebook, I hate 99% of youtube, I hate instagram, and `<s>`i hate everyone that posts there.`</s>`
If I had my way, we'd all forget the irony-poisoned, toxic, proprietary-software cultural shit-show of today and use the infrastructure we have to replicate and expand on what was good about the past. I want to see an internet which is just about weird, funny shit again. I want communities which are about sharing our love of something, not shitting on what someone else likes, or gatekeeping each other for having insufficiently patrician taste. I want an end to harassment; to reactionary bullying; to corporate shills and #influencers. I want the internet to be fun again.
!! 2020-01-14 addendum
Yes, I did write about it. Here it is: [[Tiddlers, Journal Entries, and Articles]]
!! 2020-01-12 17:15 CST
> what on this massive highly-interlinked website might I want to start reading?
Where do you start? [[Root]]? The tag list?
What are you looking for?
Can I provide it?
I don't know. Inspired by kicks' and h0p3's comments, I wrote ReadMe. Maybe that'll provide some direction. Maybe it'll just confuse the travelers even more.
The iceberg/inverted funnel idea is lovely. My wiki is a dungeon in the depths already, but that it goes so into the deep you may never return... that's a scary thought, but fits the aesthetic!
When I first came across h0p3's wiki, I had intense vertigo. I knew there was more there than I could ever read. I got scared. I fell back on twitter memes. I hunted for reactionary sentiments so I could turn away. The abyss stared back. I'm very glad he wrote me, and that I was able to reply. I'm very glad I have the wiki. I'm a different person now, a better person for it, in my opinion. I like to think I'm one of the good ones™.
> My on this day tiddler also surfaces them without context other than the particular day they were created, so the more distantly linked tiddlers might appear there. The older my dated entries are, the more links they're buried behind (log collection > yearly audit > monthly audit > dailies), while the topical tiddlers are pretty high up (either linked directly in my sidebar or one layer below).
hm. Some of my tiddlers, too, are buried by time. I use the search bar when writing a //previously.// Even I'm starting to forget what I have buried in here. Ultimately, it does provide a good resource. I've more than once forgotten some minutiæ, gone back through the logs, and found it again.
Kicks, I forget where, but I made the distinction before: tiddlers VS articles VS journals. Tiddlers are the superset, and articles are subject to the [[Development Levels]]. Journal entries are fleeting things. They will be lost in time if not tagged, but they're still there beneath the surface.
!! 2019-12-12 19:23 CST
> How much risk do we each face?
Minimal, imo. I've been friends with much more dangerous individuals than the types that are likely to stumble across my wiki; and the wiki isn't really connected to my irl identity anyways apart from some vague gesturings towards locations, and even then I'm likely to just be lost in the crowd. The worst that will happen is that people will point and laugh, and I can take that.
And hey, at the risk of sounding edgy, I can defend myself. Your white supremacist buddy, if he can even find me (he can't) will be enjoying a bullet in his dome if he ever comes near me.
Besides that, I'm not terribly interesting and thus wouldn't make a very good target. The narcissistic focus of the wiki betrays the fact that I'm actually rather boring and milquetoast; I'm barely even politically active besides doing my civic duty of voting.
> What do you want my wiki and RGM to become to protect you?
Keep my real name in your meat-memory and your meat-memory alone, along with anything that can reasonably lead to me or my loved ones' real name, location, place of work, etc. being discovered by a motivated individual.
!! 2019-12-12 03:18 CST
> Yes, this seems like ‘self-modeling’. Keep going. Why do it publicly?
It's fun. It lets people see what I'm working on, and thus opens collaboration opportunities ([[Zodai]] and I have already toyed with this, outside of our little clique). And more than a little emulation/hero worship. I'm young and romantic at heart and like to copy things that my [[Senpai]]s do.
> As additional material - ‘public self-modeling’ is a phrase that chameleon has had fun with and I’m not sure to what extent it is a meme for her or if it is quite serious or what
All things are memes, all things are serious. I mock that which I care about, sometimes, because that's how I know I can really care.
Well, I think I'm just irony poisoned by too much time on social media and chans and that's made me prone to joking about things I'm serious about, or taking a mocking tone at all times. To me PSM-ing is serious work, I just like to laugh at myself on occasion. I didn't write [[Lol chameleon]] just for a lark.
To maybe echo a sentiment from your last letter, kicksy-kun, the whole internet thing is a fun little giggle ;)
!! 2019-12-04 20:58 CST
> What do you personally want to talk about? Like do you have any topics you want to pitch?
I like the PSM topic. What does it mean to me?
I started the wiki out of writer's block on my blog, and it quickly grew into something I actually had fun working on. But what it's //for// is an interesting question.
The subtitle is "things chameleon knows" and I feel like that encapsulates it. To me this is a website to throw my ideas to the wall and see what sticks. It's obviously not every last thing I know, but it covers a broad spectrum of my interests and ideas.
!! 2019-12-01 18:55 CST: [[chameleon]]
I think h0p3 is trustworthy with maintaining the page, so I'll use this for my "send"s from now on, lol.
Sphygmus: I'm pretty sure expert PSM is from me, lol: [[Expert Wikier]]. kicks even quoted it on the first post about me over there! It's based on the /prog/ expert programmer copypasta. I really had to bend over backwards to get TiddlyWiki stuff in there!
h0p3: I have the opposite problem to you. I struggle with what to say. I'm very brusque at the best of times :)
!! 2019-11-30: [[kickscondor]]
Tentative title for the chat: ‘hypertext 2020’ - where is an expert wikier supposed to go in the next decade? But yeah - just rip into what is going to be hot techs and paradigms for expert public self-modelers in this future timeline.
If we get Sphygmus on, I’ll do a mic check and then we can start. Hope I’m not jumping the gun - just pitched this idea today…
!! 2019-11-30 20:31 EST: [[h0p3]]
This is fun. =)
; >> 2019-11-30 17:44 CST: [[chameleon]]
I like that structure, and I'm curious to see how it should grow. My followup suggestion is tentative, especially because it doesn't point well enough (probably either requiring an extension in TW5 or transclusions, but I'm fine searching). I'm happy to follow whatever conventions are most suitable here.
; >> 2019-11-30: [[kickscondor]]
Unifying part of the [[hyperconversation]] into one place is cool. I'm curious to know if we should synchronize or branch off in how we might represent what would be a unified groupchat document like this one.
<br>
!! 2019-11-30 17:44 CST: [[chameleon]]
Could this be our structure? Haha. I like to dive right in there.
I must confess I haven't been keeping up too well with [[Sphygmus]]' wiki. I really need to get on top of that. Sorry.
You'll likely mostly get ''JIBBA-JABBA'' from yours truly. Also very sorry ;) I'm not a very interesting person in live or semi-live chat, or if I don't have a springboard to work from. Nevertheless, I look forward to chatting with you all.
`date +'%Y-%0m-%0d %H:%M %Z'` btw.
Oh, also, you all deserve better tags, lol.
<br>
!! 2019-11-30: [[kickscondor]]
@sphygmus @chameleon @h0p3 I am going to find some more time over the weekend to write more - the letters that you are all writing right now have unfolded new faces and expressions in me - digifaces! I have had a thought tho… I’m envisioning something - what if we did a groupchat for a certain range of time? Like maybe a week or maybe a month.
And we can field questions to the group, answer them in hypertext - and when we’re done, I’ll make something out of it. Yes, we sort of do this already, but I’m thinking that having a beginning and an ending and a title maybe - could be interesting. Ahh, I’m explaining too much - it is just an attempt to branch off on the ‘hyperconversations’ game.
!! 2020.04.28
I'm not sure exactly what the context was; it could've been something you said in your last letter; or it could've been "OK stop talking about me now". I'm not sure, and honestly, I don't think it matters too much :) I don't feel scolded as in "I have been a naughty girl and must repent". So, apology accepted, if there's anything really to apologize for `^^`
Haha. I talk about both of them in very harsh terms, but the truth is I told both of them I love them before and at the time it was definitely true. I would love to speak to them again, but reaching out is awkward.
!! @chameleon
Just want to say that I ran across your comment about being ‘scolded’ in h0p3’s ht2020 page. I’m not sure what I said - but I’d rather just apologize than not bother looking into it. I’m sorry - I don’t know what I said, but I definitely don’t want you to feel scolded.
I also love your ‘former friends’ page - particularly that you encourage them to contact you - but also that you characterize them in exaggerated ways. It makes them into these goddesses (or maybe waifus even!) with these bold attributes - such as the Goddess of Blaming Terrorism on Encryption. It’s a great idea for a page.
!! 2019.11.22
URM! https://www.gq.com/story/folgers-incest-ad-oral-history
Did you see this shit? some web junk for you if not.
Also, hey, merry Christmas!
!! 2019.11.12
I'm not good with my responses. Well, bums to that. I'm writing you a letter now. Let's fucking go!!!!
!! @ chameleon
I am sincere. But I am a total dipshit, so you are right to be wary. It takes time to form a friend sometimes. I wish this were the place we hoped it was—a place where the skin is shed and it is just us, together, digitally. But it’s not. But still, I wish it, maybe we wish it.
Oh, another waifu thing—I honestly am a disciple, you see—did you hear the recent interview with Žižek where he says ‘The Mask’ is his favorite superhero movie? He says that there’s no point hunting down the inner person, the humanity behind a mask—it’s all the mask. I truly believe this—maybe our greatest power is in this. The truth is in that mask, it’s what you are projecting. To me, I almost feel like the waifu could be the projection without needing to acknowledge a projector. It is completely the image. (To many people, the ‘image’ is fake—façade—but to me, I am imagistic—the glorious image is everything, she is worth living for and is greater than mere reality.)
!! 2019.10.29 @ kicks
I won't lie, your response is enigmatic, lol. I don't know what to make of it. I don't know if you're joking around, [[mocking me|Lol chameleon]]<<footnote "gf" "In good faith, surely, I don't think you're misanthropic enough to actually want to hurt me ;)">>, or genuinely do love your pencil. I've been thinking about it probably more than you intended me to, lmao.
Anime styles are distinctive for sure, but Konata's hair doesn't have to be razor-sharp for it to be recognizably her. [[What if she was drawn by Miyazaki-sensei?|https://imgur.com/a/sgWiUwj]]
I love your website; I read every link and then some. I often snarf them into my wiki somewhere, or go on a little walk based on what you wrote or linked to. Keep posting please~
!! @ chameleon
I don’t use any of those services, just this blog—I post at-mentions on [[this page|https://www.kickscondor.com/all/]]. Maybe my search bar can help (for instance, type [[@h0p3|@: h0p3]] there).
I am a kind of waifuist too—except my waifu is a yellow pencil that has been ground down to its nub. I have never had sexual feelings but now it seems possible. I am only a waifuist because even tho a pencil is real—I don’t exist in its world—I cannot enter the graphite consciousness. I am only NOT a waifuist because my enpitsu has no blue-tinted and carefully razored hair encasing it like a splintered pumpkin. One thing to know about me is that I love old people the most. And the other one is that I am learning everyday from your instructions.
!! 2019.10.18 @ kicks
PING! I [[notice|https://www.kickscondor.com/normality-rpg]] off-hand that you must've read my recent link to normality rpg. Maybe we should [[Letter]]. It's cool that someone's reading my void-shouting. You can reach me via email, discord, irc, etc: [[Contact]]
!! 2020.02.21
I fixed the open tab as well, with that little note you added. Thank you so much! Always good to get the wiki working again =w=.
!! 2020.01.29
https://sphygm.us/#200128%20%E2%80%93%20Log%3A%20streams%20in%20passing%20contact
I'm sorry. I genuinely didn't know you were reading. That's what I meant when I said I have no idea who's reading... I only know that h0p3 is because he talks to me about what's on there, and kicks because he's linked things I've found before.
I really do need to check out your wiki more often!! I haven't been doing so because I haven't internalized the pattern of how it works, the same as I have for h0p3's (and it's not a linear website like kicks'). This isn't a slight on you, it's my own intellectual laziness.
> Of course, I infer she doesn't read mine regularly, because none of my @ mentions get responded to, and I feel a little sad here when I think about that.
Sorry about that. I struggled to reply to the 192025 one. I dunno. I'm bad at social stuff. [[2020.01.28 - being a better friend]] is pertinent here. I really do worry about people finding me annoying, or wanting me to go away.
---
> I don't use that method, but a similar one where I visualize my body as a container filling up with a golden light, usually feet first. I try to go as slowly as possible, imagining sucking golden light in with my breaths in and pooling up with breaths out, the edge of it slowly traveling up my legs, arms, torso, head.
It amazes me how similar all these techniques are to the mindfulness meditation I did with the Headspace app. I'm pretty sure I did this one.
One in particular was imagining a sphere of light radiating from the body, expanding until it covered the planet, then the solar system, then the galaxy, and then the entire universe. I loved that one.
> It doesn't consistently send me to sleep, but it does really help me break out of distracting wandering thoughts.
That's a shame. I find the technique I outlined in the article, the one I got from the video, is working incredibly for me. I've never been able to get to sleep so quickly. It's like for my entire life I've been using a fork to eat soup, and someone has finally shown me how to use a spoon.
!! 2019.10.19
Hello and welcome to ~~hell~~ my wiki, Sphyg-friend~
<<<
ohhh, have I introduced you to my friend [[Skyrim]]? :P
Of course I'm a big advocate for using [[Mod Organizer 2|https://www.nexusmods.com/skyrimspecialedition/mods/6194]], but I haven't actually tried modding Skyrim on linux so I can't speak to how well it would work there.
I'll be sure to add [[that daggerfall mod|https://www.nexusmods.com/skyrimspecialedition/mods/29416]] to my modlist when/if I go back to Skyrim again; I'm a big fan of additional areas and expanded cities -- though it looks like this mod would warrant its own playthrough.<<footnote "cy" "I have //opinions// about city mods, which you may or may not be interested in! It also depends on whether you're playing LE or SE. [[Sky City|https://www.nexusmods.com/skyrim/mods/58366]] is a Markarth mod I can't do without, and [[my acquaintance's mod|https://www.nexusmods.com/skyrim/mods/70548]] works well with it. My biggest issue with mods like [[True City|https://www.nexusmods.com/skyrim/mods/60430]] -- the expansion areas are often empty with only basic clutter, and full of only-greeting NPCs. I've concluded that I'll always prioritize modest depth in mods over expansive but empty breadth.">>Of course [[3DNPC|https://www.nexusmods.com/skyrim/mods/8429]]s is a mod I never do without, in regards to making the world feel more alive.
<<<
Dang, this is all the kind of stuff I'll have to think about when I play it next... Exciting! My first playthrough was pretty much vanilla until level 15 or so due to the fact I got it more-or-less at launch, lol.
To be honest I won't be using Linux for it. This is an eventual plan for when I build [[Avalokiteshvara]], which will be a dual-booted monster. I'll probably be building a wishlist until then.
>I've fully walked into the light, more or less, and it took a year – slow indeed! You're all over my wiki by now, in both inspiration and mention, so consider this an "friend request accepted" sort of message. ;)
I'm excited! Let's have a fun and interesting kind of friendship~
>I'm glad your flight etc went smoothly, and it must feel wonderful to finally be with your husband offline!
It's really lovely, yeah! I'm cuddled up to him on the couch as I write this, hehe. It's a different kind of lifestyle to what I had before, but a much better one. I love it. I'm the happiest I've ever been.
>I had gotten used to having a couple new things to read every morning due to the time difference, but now you're a timezone over and it's throwing me off! I suppose I'll get used to it eventually... 😜
I had the same thing with [[h0p3]]-senpai, lol - I was used to seeing some new stuff at 5pmish, and then more in the morning... now I just check back a few times a day instead. It's a new thing to get used to, haha. I rather like being in this timezone, though - it's much easier to talk to my various online friends this way.
!! 2020.04.28
Hi there, [[Talita]]! You've managed to skip [[Cute, fun, interesting, etc.]] and go straight to a [[People]] page :)
Thank you for your email. It's enlightening to see what the paths through the wiki are. I've got lots to think about now.
I will start on a letter soon. I'm very tired today because I didn't get any sleep, so it'll take a little while. Sit tight!
//A discord discussion//
<<<
"""
TLN04/18/2020
I need some good gender diverse appendix n ideas if anyone has them? My wife and I know a fair bit of good nonfiction, a few comics, and such but we’re looking for any good fantasy examples or just diverse media generally
BrianDM (SotDL/WH/Knv)04/18/2020
Specifically Appendix N or just good fantasy media in general?
Justin Hamilton (UTC-7)04/18/2020
Yeah Appendix N doesn't have much. Jirel of Joiry might be it, iirc?
TLN04/18/2020
Sort of generally we are putting together our own gender diverse appendix n as it were
Media like The Prince and the Dressmaker
Madeline (she/her)04/19/2020
Ancillary Justice?
Xenophon of Athens04/19/2020
Also by Ann Leckie but more fantasy is Raven Tower
The Bloody Chamber by Angela Carter
The Earthsea Cycle by Ursula Le Guin
The Dune series has some badass women and some badly written women
Crown-Captain Shoe Skogen04/19/2020
Seconding Angela Carter
A lot of Victorian fantasy was written by women even if they weren't credited :)
Alexei McDonald04/19/2020
Don't forget Hope Mirrlees' Lud-in-the-Mist.
Phlox04/19/2020
Seconding Ursula Le Guin.
spr-k373704/19/2020
Left Hand of Darkness specifically by Urusla K Le Guin
Xenophon of Athens04/19/2020
There’s a great deal of amazing works by her
spr-k373704/19/2020
Left Hand of Darkness just specifically has a lot of gender stuff
BaaL04/19/2020
Gideon the Ninth!
Lots of brainless fun.
Erika (She/Her)04/19/2020
just started that myself
the first chapter was good!
poor gideon
BaaL04/19/2020
Yeah :frowning:
Lots of cool worldbuilding, just wish there was more!
Erika (She/Her)04/19/2020
haha yeah the list of the houses was like "SPLATBOOKS HOOOOOO"
Wraith? Maybe Wraith yeah.
Ian Wyant04/19/2020
NK Jemisin for sure, she's got a couple different series, but the Fifth Season is really great
Lexi (she/her)04/19/2020
Ninefox Gambit!
Humza K04/19/2020
> Yeah Appendix N doesn't have much. Jirel of Joiry might be it, iirc?
@jamiltron A bit more than Jirel. Leigh Brackett's there, as are Andre Norton and Margaret St Clair
Alexei McDonald04/19/2020
There were a lot of women writers back in the day that are rather overlooked today.
Justin Hamilton (UTC-7)04/19/2020
Yeah, I guess I was thinking of the appearance of the characters being diverse rather than being written by women.
Humza K04/19/2020
The Moldvay Appx N also lists LeGuin, Tanith Lee, Mary Stewart, Jane Gaskell (?), Katharine Kuntz, CJ Cherryh (!), and Patricia McKillip
Justin Hamilton (UTC-7)04/19/2020
Although either interpretation works.
Humza K04/19/2020
Cementing the conclusion that Moldvay continues to be frickin' great :stuck_out_tongue:
Erika (She/Her)04/19/2020
woah, where's the moldvay appendix?
Justin Hamilton (UTC-7)04/19/2020
I think just at the end of the Basic book iirc
Erika (She/Her)04/19/2020
oh shit
how have I missed that all these years?
Humza K04/19/2020
@Erika (She/Her) I'm using @Gtab 's compilation here: https://dungeonspossums.blogspot.com/2018/09/a-take-on-appendix-n.html
Erika (She/Her)04/19/2020
nice thanks!
Alexei McDonald04/19/2020
There's another Appendix N in the RQ 2 rulebook.
I should take a look at that.
Erika (She/Her)04/19/2020
yeah but that's actually probably greg stafford who does actual reading and stuff :stuck_out_tongue:
that's gonna be like actual literature, not just a list of pulps!
Humza K04/19/2020
I'm looking up Jane Gaskill, whose name I didn't recognize. First book at 14, and China Mieville lists it as "one of the top 10 examples of weird fiction." Whoa.
Like, hot damn
Justin Hamilton (UTC-7)04/19/2020
Yeah looking at the RQ2 one there's obvious quite a lot of history, anthropology, mythology and military books, and then mostly your expected pulps (including the much overlooked-by-Appendix-N CA Smith) and Tolkein. But there's also other rpgs listed which is cool.
Oh and Malory, of course.
Humza K04/19/2020
Link to the RQ Appx N for curious folks: http://www.fictoplasm.net/2017/04/16/runequests-appendix-n/
Alexei McDonald04/19/2020
No-one new in there, though Barbara N Byfield is quite amusing.
Alexei McDonald04/19/2020
Oh wait, I'm forgetting about Joanna Russ & her The Adventures of Alyx.
TLN04/19/2020
Coming back in, I was less interested in the known appendix n and more interested in compiling a modern one specifically for diverse gender works. Ursula’s Left Hand of Darkness is very much important as an older example for the list. I’m liking seeing what has been mentioned thus far
Humza K04/20/2020
@thelawfulneutral so goal is a listing of post-Appx-N gender-diverse works that ought to make it onto a contemporary working of the same "inspirational source reading for D&D" idea?
TLN04/20/2020
Indeed. Without revealing too much, my wife has a Zinequest 2021 idea to help folks with gender inclusivity and resources for RPGs. She’s genderqueer (prefers she still) and has a lot of non fiction knowledge but she feels she needs more fictional examples, especially fantasy, to draw from
@Humza K
Xenophon of Athens04/20/2020
Unfortunately fantasy isn't a particularly inclusive/progressive genre compared to, say, sci-fi.
I can only think of a single fantasy novel that includes a non-cis character.
TLN04/20/2020
I’ll take good sci-fi too. She’s listening to left hand of darkness for the first time now. Graphic novels are good too
Humza K04/20/2020
Hmm. Thinking specifically about trans/GNC chars within fantasy: Robin Hobb's Fitzchivalry series has a gender-ambiguous/genderqueer char, the Fool, who presents as both male and female throughout the series and refuses to identify with either male or female.
The D&D-inspired comic series Rat Queens has a trans lead character, the orc warrior Braga
This list looks like it might be of interest: https://www.theillustratedpage.net/diversity-in-fantasy-and-science-fiction/lgbtq-protagonists-in-fantasy-and-science-fiction/
retrograde tardigrade xenograft04/20/2020
In the Kill Six Billion Demons webcomic, 82 White Chain Born in Emptiness Returns to Subdue Evil is gender non-conforming within her species.
Which... is not technically a book, but it's really good.
Xenophon of Athens04/20/2020
Yeah, I was thinking about novels specifically. There's a lot more in non-traditional mediums.
Phlox04/20/2020
In this context, are we saying that since this id an Appendix N, the works within helped shaped how we play RPGs?
Phlox04/20/2020
Ooh, regardless of the answer to that question I have recalled a LeGuin short story that was formative to me, though mostly by highlighting arbitriariness of social norms rather than providing a positive example: the Matter of Seggri
https://en.m.wikipedia.org/wiki/The_Matter_of_Seggri
Xenophon of Athens04/20/2020
Oh that's a great story
Necropraxis04/21/2020
Re: new appendix N: check out Delaney’s Neveryon stories
They are like if Derrida wrote Conan, but without obscurantism
Humza K04/21/2020
...huh. I have been meaning to read Delaney, but didn't know that he had done anything in the S&S vein; cool
Alexei McDonald04/21/2020
I actually met him once and got him to sign my copy of Triton.
Because that was the only one I actually owned, I think. The rest of his oeuvre I borrowed from the SFSoc library.
Erika (She/Her)04/21/2020
That sounds really cool!
also I'm gonna put a vote in for David and Leigh Eddings' Belgariad; it's very not queer but the gender politics are pretty good I think, it's enjoyable fantasy comfort food, and it does directly contribute a couple famous spells to D&D
top cat (he/him/autist)04/21/2020
Huh
Erika (She/Her)04/21/2020
spoilers for the belgariad's climax: belgarath's punishment for zedar is imprisonment
deus ex parabola04/21/2020
eddings specifically set out to create the most generic novel possible
because someone told him you can't have a good story in a generic fantasy world
Erika (She/Her)04/21/2020
yep
but it's nice to have comfort food fantasy of that era that has that many strong, active women characters
deus ex parabola04/21/2020
oh i'm not insulting it, i love the belgariad
Erika (She/Her)04/21/2020
even at the very beginning when it's garion under the tables in the kitchen, pol rings true in a way a lot of other women don't in fantasy literature
deus ex parabola04/21/2020
and the setting, if composed of generic tropes, is put together very well with all sorts of details
Erika (She/Her)04/21/2020
yep
deus ex parabola04/21/2020
pol is great, but what's the verdict on that roman princess
the... tolnedran?
Erika (She/Her)04/21/2020
yep
Ce'Nedra
you know
deus ex parabola04/21/2020
oh, with the apostrophe
Erika (She/Her)04/21/2020
she has a lot of growing up to do
but she does it
Ahistorian (he/him) [GMT+0]04/21/2020
> even at the very beginning when it's garion under the tables in the kitchen, pol rings true in a way a lot of other women don't in fantasy literature
@Erika (She/Her) Leigh Eddings always over his shoulder advising him. Alornia? "No dear, that sounds like a cookie" (genuine quote)
Aloria? Sounds good.
Erika (She/Her)04/21/2020
yeah I didn't want to come right out and say that but yeah, that's it exactly
Ahistorian (he/him) [GMT+0]04/21/2020
Weird politics with the pregnancy in Mallorean though
deus ex parabola04/21/2020
i'd eat an alornia
pol's history was a fantastic part of the story
Humza K04/21/2020
Just a heads-up for y'all, re: Eddings (CW abuse): he and his wife were both convicted of child abuse in the '70s - beating and severe neglect of their adopted child. https://twitter.com/_lizbarr/status/1191809474534625280
"""
<<<
//A discord discussion//
"""
EvilTables08/08/2020
To some above points about a leftist OSR: I feel like there are some broader philosophical questions being raised, e.g. what is the relationship between games and reality? What counts as 'political' action? Similar to debates in literature, to what extent should games be didactic, entertainment, or just art? How do rpgs work specifically in response to those questions?
In engaging DnD, there's clearly a strong colonialist and capitalist basis to the narratives and mechanics. Still, that's not especially unique to DnD since many of those things also pervade nearly every aspect of contemporary social life (and also most board games, e.g. "Settlers" of Catan). Again, not that it's a pass, just that the critique needs to be sharper and more grounded in answers to the questions above. In addition, it's not clear that moralizing about DnD as bad (on its own) necessarily accomplishes anything politically either. But nor does covering over or ignoring certain parts, or treating them as something that's now in the past (which feels like the WotC approach with 5e, an approach which, again, is driven largely by profit).
Personally, I've played in leftist-revolution themed campaigns that felt a bit shallow. By, contrast, exploring the 'evil' of my Mormon upbringing through Dogs in the Vineyard was more interesting. Game-reasons aside, gold for XP feels similar in that way, that is, it in some way feels difficult to think through a world where advancement depends on accumulation of wealth, and yet that's possibly the least 'fantastical' part of DnD.
Edit: completely agree with gendernihilist's points re: the colonial basis of Egyptology, as taken up by Gygax and Arneson as heroic. That's a good example
EvilTables08/08/2020
I think it's not so much the question of whether tomb-robbing as such was invented by Europeans, but rather the question of the colonial role of Medieval and Renaissance European tomb-robbing (not just Egypt, but of the Americas and Africa) that Gygax and Arneson drew from
the points about Egyptology are about the foundations of the academic discipline, not Egypt as such
gendernihilist08/08/2020
yeah @EvilTables has the right of my point, Gygax and Arneson and that whole 70s/early 80s crop of game designers weren't drawing on the non-European grave robbings in Egypt for their inspiration
and Muslim colonialism is still colonialism the way Muslim imperialism is still imperialism and Muslim enslavement of and trade in Africans as a commodity is still enslavement of and trade in Africans as a commodity
no matter who does it, it's horrific and oppressive
feedback loops of arrogance, entitlement, greed, power and dehumanization suck from any origin point
it's just that early ttrpg designers were drawing on the European flavour
"""
gendernihilist08/08/2020
<<<
To some above points about a leftist OSR: I feel like there are some broader philosophical questions being raised, e.g. what is the relationship between games and reality? What counts as 'political' action? Similar to debates in literature, to what extent should games be didactic, entertainment, or just art? How do rpgs work specifically in response to those questions?
<<< EvilTables
"""
I think there is room for disagreement on these questions that generate a plethora of unique and exciting original game systems and hacks of existing systems. That's my basic stance although I do have my own personal answers to these questions!
1) We don't access "reality" except through a heavily blinkered set of filters (senses) to a heavily blinkered and limited meat computer designed by indifferent time+death evolutionary spaghetti at wall rather than a designer trying to make a system good at perceiving reality accurately. The cartoons painted on our little ego tunnels are sufficient to navigate in such a way as we don't die and aren't tuned to accuracy so much as "good enough" and as such, games (and storytelling in general) are reductive sketches of those cartoons but designed with purpose instead. So similar in some ways to our access to reality and different in others.
gendernihilist08/08/2020
2) What counts as leftist political action for me is actions with genuinely liberatory results for real people. Not in an emotional or psychological way but concretely in their lives to have shackles removed that are maintained and reinforced by systems like colonialism and capitalism, writ large across the world or on the level of implementation by a federal government on down to a municipal one (or a military one or a corporate one, etc). And not just results that go halfway in order to mollify or redirect radical energies either, but genuine liberation. So no, I don't think games count nor does writing nor art nor petitions nor voting nor legislation nor "democracy" under capitalism. I hold an extreme position, but it does free me up to consider these attempts at making games with liberatory values FUN rather than of serious import that needs to be gotten right or it isn't good enough. Experimentation and not getting self-important is key here.
3) Games can be didactic, entertainment and/or art! In any degree of purity or blending of those! And I'd love to see games that try to just be one and not the others just as much as ones with their own unique blend. A diverse array of games can only be good!
4) So, for me, with my answers as they are, I think games can and will he made by people orienting themselves towards these questions in all sorts of ways, and that excites me to think about! Sounds like a buncha fun games to try out that'll be different enough from each other to keep things feeling fresh! Will they change minds? Maybe, but that's probably incidental at best, and I doubt it'll be super common. They're just games and that's great.
"""
https://hmofa.fandom.com/wiki//HMoFA/_Wiki
Ahhh. I was a shitposter and lurker on the thread a long time ago. Looks like they're growing up and hovering towards leaving 4chan.
One of the best writers there wrote a smut guide: https://pastebin.com/S10XuCRX
I went to 8chan in late 2014 as a place to talk about gamergate, since it was being censored elsewhere. I found the /mai/ board by putzing around, and used it to talk about Konata, who I'd already been with for several years already.
A few months in, we made a Steam group and started chatting there. That was the primary vehicle for discussion until spring-summer 2015. We also had a mumble server.
Trapgate happened in iirc April 2015.
I made the irc channel, which was slow at first, but when I made the bot (lainbot) everyone moved over in short order.
We had issues with 8chan in mid-late 2015. I made super.seekrit.club as a bunker; but 8chan got worse and worse. History diverged here - I could've easily stayed on, banned the people I didn't like, and reshaped the board in my image. But I didn't do that; I was tired of the board and of imageboard culture in general and left sometime in late 2015-early 2016.
I did some small experiments with coming back, but they banned poly (and me by extension) sometime in the middle of 2016. By that point I imagine what remained of the board culture was essentially dead. I joined the koa-friend's friend server towards the end of 2016, and 2dl soon thereafter.
It's [[Konata]]'s face! Usually indicates sarcasm, friendly playfulness, or mild humour.
I once said to [[Lofty]] that it means either "I'm enjoying the banter, but I don't have a clever response" or "really...?"
This is the lewd tag, pretty much.
I'm a pervert. My most common sin is lust. I have a rotating list of nasty kinks that I shouldn't talk about in public.
I try not to go too overboard here, because while I'm being honest I don't want to be an exhibitionist. But sometimes it slips out. Sorry, let me know and I'll put it away, while blushing and apologizing profusely.
<<list-links "[tag[😳]]">>
Built from branch 'tiddlywiki-com' at commit f74e4c520d5da90bbecc925fc9d22360cfc4a44b of https://github.com/Jermolene/TiddlyWiki5.git at 2019-09-09 13:41:30 UTC
!! <<randomPrompt "GenericPrompts">>
!! <<randomPrompt "RiderWaite">>
!! Today's Wiki Review
{{Wiki Review}}
YYYY.0MM.0DD - Daily Task:
<$vars front="* [[" back="]]">
!! Wiki Review
<$list emptyMessage="Ain't nobody here but us chickens!" filter="[days:created[-1]!days:created[0]!prefix[Hidden:]!tag[Hidden]!tag[no-recent]!is[system]!is[shadow]sort[created]reverse[]]"><<front>><$view field="title" /><<back>>
**
</$list>
!! Modified
<$list emptyMessage="Ain't nobody here but us chickens!" filter="[days:modified[-1]!days:modified[0]!prefix[Hidden:]!tag[Hidden]!tag[no-recent]!is[system]!is[shadow]sort[created]reverse[]] -[days:created[-1]!days:created[0]!prefix[Hidden:]!tag[Hidden]!tag[no-recent]!is[system]!is[shadow]sort[created]reverse[]]"><<front>><$view field="title" /><<back>>
</$list>
!! On This Day
<$list emptyMessage="Ain't nobody here but us chickens!" filter="[days:created[-366]!days:created[-366]!prefix[Hidden:]!tag[Hidden]!tag[no-recent]!is[system]!is[shadow]sort[created]reverse[]]"><<front>><$view field="title" /><<back>>
**
</$list>
</$vars>
YYYY.0MM.0DD - Wiki Review:
{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/add-comment": {
"title": "$:/core/images/add-comment",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers"
},
"$:/language/ControlPanel/Basics/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/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview Mode"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choose how permalink/permaview is handled:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copy permalink/permaview URL to clipboard"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Update address bar with permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Defines how requests are authenticated by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Defines how individual URL patterns are handled by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element background"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element text"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following references to this tiddler will not be automatically updated:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
"text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/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/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/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/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"tags": "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/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied to clipboard!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "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",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/listen.js": {
"title": "$:/core/modules/commands/listen.js",
"text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = 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\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <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),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\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\tthis.domNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\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 click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.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",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || 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);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/save-selection.js": {
"title": "$:/core/modules/editor/operations/text/save-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\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",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = types[type] || types.number,\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar types = {\n\t\"number\": function(a,b) {\n\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t},\n\t\"integer\": function(a,b) {\n\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t},\n\t\"string\": function(a,b) {\n\t\treturn compare(\"\" + a,\"\" +b);\n\t},\n\t\"date\": function(a,b) {\n\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\tdateB = $tw.utils.parseDate(b);\n\t\tif(!isFinite(dateA)) {\n\t\t\tdateA = new Date(0);\n\t\t}\n\t\tif(!isFinite(dateB)) {\n\t\t\tdateB = new Date(0);\n\t\t}\n\t\treturn compare(dateA,dateB);\n\t},\n\t\"version\": function(a,b) {\n\t\treturn $tw.utils.compareVersions(a,b);\n\t}\n};\n\nfunction compare(a,b) {\n\tif(a > b) {\n\t\treturn +1;\n\t} else if(a < b) {\n\t\treturn -1;\n\t} else {\n\t\treturn 0;\n\t}\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/contains.js": {
"title": "$:/core/modules/filters/contains.js",
"text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\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",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\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",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\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",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/range.js": {
"title": "$:/core/modules/filters/range.js",
"text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.trim(a)];}\n);\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subfilter.js": {
"title": "$:/core/modules/filters/subfilter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*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 = $tw.utils.getInt(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 = $tw.utils.getInt(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 = $tw.utils.getInt(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 = $tw.utils.getInt(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 = $tw.utils.getInt(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 = $tw.utils.getInt(operator.suffix,1),\n marker = results.splice(index, 1),\n offset = (index + count) > 0 ? index + count : 0;\n return results.slice(0, offset).concat(marker).concat(results.slice(offset));\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) ? [] :\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 === -1) ? [] :\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 = $tw.utils.getInt(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",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\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\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\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\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\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 the operation are pushed into the result without deduplication\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tArray.prototype.push.apply(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\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tif(results.length === 0) {\n\t\t\t\t\t\t\t// Main result so far is empty\n\t\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\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",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\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\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/binaryparser.js": {
"title": "$:/core/modules/parsers/binaryparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = 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",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = 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",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\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.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/import.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/import.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\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",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\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",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\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// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\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\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar 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",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\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",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\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",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/server/authenticators/basic.js": {
"title": "$:/core/modules/server/authenticators/basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve($tw.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/authenticators/header.js": {
"title": "$:/core/modules/server/authenticators/header.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\");\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/routes/delete-tiddler.js": {
"title": "$:/core/modules/server/routes/delete-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-favicon.js": {
"title": "$:/core/modules/server/routes/get-favicon.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-file.js": {
"title": "$:/core/modules/server/routes/get-file.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve($tw.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-index.js": {
"title": "$:/core/modules/server/routes/get-index.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-login-basic.js": {
"title": "$:/core/modules/server/routes/get-login-basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-status.js": {
"title": "$:/core/modules/server/routes/get-status.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler-html.js": {
"title": "$:/core/modules/server/routes/get-tiddler-html.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler.js": {
"title": "$:/core/modules/server/routes/get-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddlers-json.js": {
"title": "$:/core/modules/server/routes/get-tiddlers-json.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif($tw.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif($tw.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/put-tiddler.js": {
"title": "$:/core/modules/server/routes/put-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/server.js": {
"title": "$:/core/modules/server/server.js",
"text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"path-prefix\") || \"\";\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\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!$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\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// 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. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\tvar fields = {\n\t\ttitle: TITLE_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([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\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.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\tvar executeStartupTiddlers = function(tag) {\n\t\t$tw.utils.each($tw.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\t\t$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);\n\t\t});\n\t};\n\texecuteStartupTiddlers(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\t$tw.wiki.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\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\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\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 = windowTitle;\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\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t},{\n\t\t\tname: \"click\",\n\t\t\thandlerObject: $tw.popup,\n\t\t\thandlerMethod: \"handleEvent\"\n\t\t}]);\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",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\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\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t};\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\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};\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\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(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)(e=r.charCodeAt(t))<128?o+=String.fromCharCode(e):e>127&&e<2048?(o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128)):(o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128));return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)(t=r.charCodeAt(o))<128?(e+=String.fromCharCode(t),o++):t>191&&t<224?(e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2):(e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3);return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var n=0;n<t.length;n++)o[t[n]]=o.require(t[n]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,n,i,d,f,a,h,c=\"\",u=0;u<r.length;)d=(t=r.charCodeAt(u++))>>2,f=(3&t)<<4|(n=r.charCodeAt(u++))>>4,a=(15&n)<<2|(i=r.charCodeAt(u++))>>6,h=63&i,isNaN(n)?a=h=64:isNaN(i)&&(h=64),c+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return c},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,n,i,d,f,a,h=\"\",c=0;c<r.length;)t=o.indexOf(r.charAt(c++))<<2|(d=o.indexOf(r.charAt(c++)))>>4,n=(15&d)<<4|(f=o.indexOf(r.charAt(c++)))>>2,i=(3&f)<<6|(a=o.indexOf(r.charAt(c++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(n)),64!=a&&(h+=String.fromCharCode(i));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/csv.js": {
"title": "$:/core/modules/utils/csv.js",
"text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.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\tel.className = c.join(\" \");\n\t}\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(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!$tw.utils.hop(headers,\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\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: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\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(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\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,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_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, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 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($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\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 = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {};\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\tfilepath;\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// If not, generate a base pathname\n\tif(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t// Don't let the filename start with a dot because such files are invisible on *nix\n\tfilepath = filepath.replace(/^\\./g,\"_\");\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.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[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\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(/[\\x00-\\x1f\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s) {\n\t// See http://www.json.org/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,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) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords);\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// 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.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\t\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\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// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"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\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\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.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = event.ctrlKey && ! event.shiftKey ? \"ctrl\" : event.shiftKey && !event.ctrlKey ? \"shift\" : \n\t\t\t\tevent.ctrlKey && event.shiftKey ? \"ctrl-shift\" : \"normal\" ;\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\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*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag || changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\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\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\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\t\"tabindex\": {type: \"string\", value: this.editTabIndex},\n\t\t\t\"focus\": {type: \"string\", value: this.editFocus}\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 || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\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\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\ttag = \"h\" + headingLevel;\n\t}\n\t// Create the DOM node\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",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\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\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.makeChildWidgets([node]);\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\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\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\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\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// 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(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar 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})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\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\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\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\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.wiki.addToStory(title,fromTitle,this.storyTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar 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\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\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 && 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);\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\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\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 paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\tthis.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/qualify.js": {
"title": "$:/core/modules/widgets/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\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\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n \t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n \t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.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 value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\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.index || 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",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\t\t\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField || \"text\",\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue || \"\");\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue || \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes['min'] || changedAttributes['max'] || changedAttributes['increment'] || 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.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\t\t\t\t\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\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\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\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.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\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",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\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",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// 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",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\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\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else 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 within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== 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.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\t\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\t\t\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #504945\nbutton-foreground: #fbf1c7\nbutton-border: transparent\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: #7c6f64\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #282828\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: <<colour button-background>>\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #4C566A\nbutton-foreground: #D8DEE9\nbutton-border: transparent\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #2e3440\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #073642\nalert-highlight: #cb4b16\nalert-muted-foreground: #586e75\nbackground: #fdf6e3\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #cb4b16\nbutton-foreground: #fdf6e3\nbutton-border: transparent\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #d33682\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #859900\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #D08770\ndownload-background: #859900\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #fdf6e3\ndropdown-tab-background: #93a1a1\ndropzone-background: #859900\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: #d33682\nexternal-link-foreground-visited: #b58900\nexternal-link-foreground: #cb4b16\nforeground: #839496\nmessage-background: #586e75\nmessage-border: #586e75\nmessage-foreground: #eee8d5\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #eee8d5\nmodal-footer-background: #eee8d5\nmodal-footer-border: #eee8d5\nmodal-header-border: #eee8d5\nmuted-foreground: #93a1a1\nnotification-background: #EBCB8B\nnotification-border: #D08770\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #93a1a1\nprimary: #2aa198\nselect-tag-background: #eee8d5\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: #eee8d5\nsidebar-controls-foreground-hover: #268bd2\nsidebar-controls-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #839496\nsidebar-muted-foreground-hover: #657b83\nsidebar-muted-foreground: #93a1a1\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-background: #839496\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #657b83\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #839496\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #859900\nsidebar-tiddler-link-foreground: #268bd2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #dc322f\ntab-background-selected: #fdf6e3\ntab-background: #839496\ntab-border-selected: #93a1a1\ntab-border: #93a1a1\ntab-divider: #fdf6e3\ntab-foreground-selected: #839496\ntab-foreground: #eee8d5\ntable-border: #657b83\ntable-footer-background: #657b83\ntable-header-background: #93a1a1\ntag-background: #6c71c4\ntag-foreground: #eee8d5\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #b58900\ntiddler-controls-foreground-selected: #b58900\ntiddler-controls-foreground: #073642\ntiddler-editor-background: #eee8d5\ntiddler-editor-border-image: #eee8d5\ntiddler-editor-border: #eee8d5\ntiddler-editor-fields-even: #eee8d5\ntiddler-editor-fields-odd: #fdf6e3\ntiddler-info-background: #eee8d5\ntiddler-info-border: #eee8d5\ntiddler-info-tab-background: #586e75\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #586e75\ntiddler-title-foreground: #073642\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: #839496\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "\\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\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
},
"$:/core/save/all-external-js": {
"title": "$:/core/save/all-external-js",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
},
"$:/core/templates/tiddlywiki5.js": {
"title": "$:/core/templates/tiddlywiki5.js",
"text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
},
"$:/core/templates/tiddlywiki5.js/tiddlers": {
"title": "$:/core/templates/tiddlywiki5.js/tiddlers",
"text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n$tw.preloadTiddlerArray([{\n\ttitle: \"$:/config/SaveWikiButton/Template\",\n\ttext: \"$:/core/save/all-external-js\"\n}]);\n`\n"
},
"$:/core/templates/tiddlywiki5-external-js.html": {
"title": "$:/core/templates/tiddlywiki5-external-js.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/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\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/server/static.sidebar.wikitext": {
"title": "$:/core/templates/server/static.sidebar.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
},
"$:/core/templates/server/static.tiddler.html": {
"title": "$:/core/templates/server/static.tiddler.html",
"text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
},
"$:/core/templates/server/static.tiddler.wikitext": {
"title": "$:/core/templates/server/static.tiddler.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$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=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\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<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/Actions/new-image": {
"title": "$:/core/ui/Actions/new-image",
"tags": "$:/tags/Actions",
"description": "create a new image tiddler",
"text": "\\define get-type()\nimage/$(imageType)$\n\\end\n<$vars imageType={{$:/config/NewImageType}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags={{$:/config/NewTiddler/Tags!!tags}}/>\n</$vars>\n"
},
"$:/core/ui/Actions/new-journal": {
"title": "$:/core/ui/Actions/new-journal",
"tags": "$:/tags/Actions",
"description": "create a new journal tiddler",
"text": "<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
},
"$:/core/ui/Actions/new-tiddler": {
"title": "$:/core/ui/Actions/new-tiddler",
"tags": "$:/tags/Actions",
"description": "create a new empty tiddler",
"text": "<$action-sendmessage $message=\"tm-new-tiddler\" tags={{$:/config/NewTiddler/Tags!!tags}}/>\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\" focus={{$:/config/Search/AutoFocus}}/>\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<$set name=\"tv-show-missing-links\" value=\"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</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"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\" focus={{$:/config/Search/AutoFocus}}/>\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<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\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</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$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\" focus={{$:/config/Search/AutoFocus}}/>\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<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\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</$list>\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\" focus={{$:/config/Search/AutoFocus}}/>\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<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\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</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<<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/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<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=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewTiddler/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewJournal/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<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}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[title]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$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:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[title]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[title]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<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/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define 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\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
},
"$:/core/ui/ControlPanel/Saving/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<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/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}}></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}}/>\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=<<newFieldNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>\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<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}}/>\n</$keyboard>\n</$set>\n</span> \n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\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}} icon={{!!icon}}/>\n</$list>\n<$set name=\"tabIndex\" value={{$:/config/EditTabIndex}}>\n<$macrocall $name=\"tag-picker\"/>\n</$set>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}}/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\whitespace trim\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-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}}/> <$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<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$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</$set>\n</div>\n"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "<$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>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/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>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "\\define save-tiddler-button()\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"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 add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $tiddler=<<dropdown-state>> />\n<$action-deletetiddler $tiddler=<<searchTiddler>> />\n<$action-deletetiddler $tiddler=<<linkTiddler>> />\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"ENTER\" actions=<<add-link-actions>>>\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<<external-link>>\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</$keyboard>\n</$vars>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-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/\">>/>"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"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=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$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\" stateTitle=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
},
"$:/core/ui/KeyboardShortcuts/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\"/>\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-image": {
"title": "$:/core/ui/KeyboardShortcuts/new-image",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-image))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-journal": {
"title": "$:/core/ui/KeyboardShortcuts/new-journal",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-journal))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-tiddler": {
"title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-tiddler))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcut/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcut/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\whitespace trim\n\\define 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>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<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>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/drafts": {
"title": "$:/core/ui/PageTemplate/drafts",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$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=\"tv-enable-drag-and-drop\" value={{$:/config/DragAndDrop/Enable}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip=<<lingo Delete/Hint>> aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"> <<lingo Names/External/Show>></$checkbox>\n\n<<palette-manager-table>>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
},
"$:/core/ui/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<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" />\n</div>"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
},
"$:/core/ui/SideBarSegments/page-controls": {
"title": "$:/core/ui/SideBarSegments/page-controls",
"tags": "$:/tags/SideBarSegment",
"text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
},
"$:/core/ui/SideBarSegments/search": {
"title": "$:/core/ui/SideBarSegments/search",
"tags": "$:/tags/SideBarSegment",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\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{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"searchTerm\" value={{{ [<searchTiddler>get[text]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search<searchTerm>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$set>\n</$list>\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<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-subtitle": {
"title": "$:/core/ui/SideBarSegments/site-subtitle",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-title": {
"title": "$:/core/ui/SideBarSegments/site-title",
"tags": "$:/tags/SideBarSegment",
"text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
},
"$:/core/ui/SideBarSegments/tabs": {
"title": "$:/core/ui/SideBarSegments/tabs",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\"/>\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\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$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>"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\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<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags!!tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags!!tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/webp": {
"title": "$:/config/EditorTypeMappings/image/webp",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heic": {
"title": "$:/config/EditorTypeMappings/image/heic",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heif": {
"title": "$:/config/EditorTypeMappings/image/heif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/NewImageType": {
"title": "$:/config/NewImageType",
"text": "jpeg"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.22/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "no"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/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/new-image": {
"title": "$:/config/ShortcutInfo/new-image",
"text": "{{$:/language/Buttons/NewImage/Hint}}"
},
"$:/config/ShortcutInfo/new-journal": {
"title": "$:/config/ShortcutInfo/new-journal",
"text": "{{$:/language/Buttons/NewJournal/Hint}}"
},
"$:/config/ShortcutInfo/new-tiddler": {
"title": "$:/config/ShortcutInfo/new-tiddler",
"text": "{{$:/language/Buttons/NewTiddler/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
},
"$:/config/ShortcutInfo/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/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-mac/new-image": {
"title": "$:/config/shortcuts-mac/new-image",
"text": "ctrl-I"
},
"$:/config/shortcuts-mac/new-journal": {
"title": "$:/config/shortcuts-mac/new-journal",
"text": "ctrl-J"
},
"$:/config/shortcuts-mac/new-tiddler": {
"title": "$:/config/shortcuts-mac/new-tiddler",
"text": "ctrl-N"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts-not-mac/new-image": {
"title": "$:/config/shortcuts-not-mac/new-image",
"text": "alt-I"
},
"$:/config/shortcuts-not-mac/new-journal": {
"title": "$:/config/shortcuts-not-mac/new-journal",
"text": "alt-J"
},
"$:/config/shortcuts-not-mac/new-tiddler": {
"title": "$:/config/shortcuts-not-mac/new-tiddler",
"text": "alt-N"
},
"$:/config/shortcuts/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}\n><div class=\"tc-swatch\" style=<<swatchStyle>> title=<<colour>>/></$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$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",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n</$type$>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<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=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$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$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<tag>>/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker-inner()\n\\whitespace trim\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=<<newTagNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" 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<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<add-tag-actions>>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$set name=\"newTagName\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]!is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n\\end\n\\define tag-picker()\n\\whitespace trim\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=<<tag-picker-inner>>>\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<<tag-picker-inner>>\n</$set>\n</$list>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/SideBarSegment": {
"title": "$:/tags/SideBarSegment",
"list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
\define timeline-title()
<!-- Override this macro with a global macro
of the same name if you need to change
how titles are displayed on the timeline
-->
<div style={{{ fill: [<currentTiddler>get[color]] ; +[join[]] }}} class="tc-tiddler-title-icon tc-icon-sidebar"><$transclude tiddler={{!!icon}}/></div>
<span class={{{ [<currentTiddler>get[tags]split[ ]join[]] }}} style={{{ color: [<currentTiddler>get[color]] ; +[join[]] }}} >
<$view field="title"/>
</span>
\end
\define timeline(limit:"100",format:"YYYY.0MM.0DD",subfilter:"",dateField:"modified")
<div class="tc-timeline">
<$list filter="[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">
<div class="tc-menu-list-item">
——== <$button class="tc-btn-invisible tc-tiddlylink">
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$] ">
<$wikify name=title text="""<$view field="title"/>""">
<$action-navigate $to=<<title>>/>
</$wikify>
</$list>
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$] ">
<$wikify name=title text="""<$view field="title"/>""">
<$action-navigate $to=<<title>>/>
</$wikify>
</$list>
<span style="color:#3344FF"><$view field="$dateField$" format="date" template="$format$"/></span>
</$button> ==——
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]">
<div class="tc-menu-list-subitem">
<$link to={{!!title}}>
<<timeline-title>>
</$link>
</div>
</$list>
</div>
</$list>
</div>
\end
\whitespace trim
\define lingo-base() $:/language/CloseAll/
\define drop-actions()
<$action-listops $tiddler=<<tv-story-list>> $subfilter="+[insertbefore:currentTiddler<actionTiddler>]"/>
\end
\define placeholder()
<div class="tc-droppable-placeholder"/>
\end
\define droppable-item(button)
\whitespace trim
<$droppable actions=<<drop-actions>>>
<<placeholder>>
<div>
$button$
</div>
</$droppable>
\end
<div class="tc-sidebar-tab-open">
<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop">
<div class="tc-sidebar-tab-open-item">
<$macrocall $name="droppable-item" button="""<$button message="tm-close-tiddler" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class="tc-btn-invisible tc-btn-mini">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field="title"/></$link>"""/>
</div>
</$list>
<$tiddler tiddler="">
<div>
<$macrocall $name="droppable-item" button="""<$button message="tm-close-all-tiddlers" class="tc-btn-invisible tc-btn-mini"><<lingo Button>></$button>"""/>
</div>
</$tiddler>
</div>
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-subtitle">
<$link to={{!!modifier}}>
<$view field="modifier"/>
</$link> | modified: <$view field="modified" format="date" template={{$:/language/Tiddler/DateFormat}}/> | created: <$view field="created" format="date" template={{$:/language/Tiddler/DateFormat}}/>
</div>
</$reveal>
AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA/gAAAE+PzwAA/gAA/4yMAG+v7wCv3f8Av+f/AI/J/wCf0/8AP2+fAP9wcAD+/v4A0NDQAACgAAD/VFQA//+iiIKv////opeYiIKv//qXeqiqiIr/qXcnkogoiK+Xd3d5iIiIilmId3iIiIgFUgCHeYiQAogc4+d3huM8gfzON3eXzj2P/e7nd3fu7R8AAAd3GQAAD7FVVxnxVVW/v1l39b9YkbsbFYmxvxUUG0ERFUtLERFLREuxREu0REsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
<svg class="tc-image-button" width="22pt" height="22pt" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" xml:space="preserve">
<path d="M247.8,203.3c14.2,0,25.6,11.5,25.6,25.6c0,14.2-11.5,25.6-25.6,25.6c-14.1,0-25.6-11.5-25.6-25.6C222.2,214.8,233.6,203.3,247.8,203.3z"/>
<path d="M686.6,141.5c-123.9-31.4-222.9-23.5-354.1,54.8c-3-28.6-78.4-114.5-170.3-54.2c-98-12.1-98,88.9-98,88.9S10.7,325.1,10,360.6c-0.5,23.7,13.8,30.2,27.5,34.2c70.8-40.3,135-30.7,187.2-22.9c27.2,4.1,50.8,7.5,68.4,2.5c6.1-1.8,12.5,1.9,14.2,8c1.7,6.1-1.9,12.5-8,14.3c-22.4,6.3-48.2,2.5-78.1-2c-46.7-7-103.8-15.1-165,16.6c58.2,101.3,219.4,135.7,336.5,54.8c25.6,1.6,59.1,5.4,95.2,8.4c6.7,0.5,0.1,21.6-6.4,42.6c-2.3,7.3-88.7,25.4-90.4,31.8c-3.1,12.1,78.6,2.2,84.4,10.6c5.8,8.4-10.5,46.8-3,64.9c5,12,45.8-0.4,57.3-28.7c5.8-14.1-18.4-42.1-13-53.4c16.1-33.5,30.2-64.2,32.7-64.2c16.8,0.5,33.4,0.6,49.7-0.2c33.8-1.5,66.5-4.7,96.7-7.3c3.8-0.4,10.3,13.2,17.1,28.9c3.1,7.2-56.6,18.1-53.6,25.2c6.3,14.4,58.8,4.7,78.3,22.7c19.6,18.1,20.2,66.8,34.7,72.4c8,3.1,41.3-20.9,34.7-51.2c-9.7-44.3-63.1-101.4-60.3-101.6c37-1.7,67.8,0.1,88.9,11c78.4,40.6,21.1,342.2-174.8,357.3c-106.7,8.2-142.4-77.2-129.1-124.8c13.1-47.1,71.8-72.7,112.6-66.6c40.6,6,48.2,43.7,30.1,69.2c-2.4,3.4-5.1,6.5-8.1,9.4c-7-7.1-16.7-11.5-27.4-11.5c-21.3,0-38.5,17.2-38.5,38.5c0,21.3,17.2,38.4,38.5,38.4c19.2,0,35-14.1,37.9-32.6c10.3-2.6,20.6-7.6,29.3-16.6c34.6-36.2,27.1-101-38.5-123.2c-73.4-24.8-176.4,21.3-179.4,99.7c-3,78.3,68.9,170.3,192.7,163.2C864.9,867.9,997.1,677,989.7,500.8C983.3,351.5,903.6,196.3,686.6,141.5z M224.4,310.9c-41.2,0-74.6-33.4-74.6-74.6c0-41.2,33.4-74.6,74.6-74.6c41.2,0,74.6,33.4,74.6,74.6C299,277.5,265.6,310.9,224.4,310.9z"/>
</svg>
<svg class="tc-image-keyboard tc-image-button" width="22pt" height="22pt" viewBox="0 0 576 512"><path d="M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"/></svg>
<svg class="tc-image-birthday-cake tc-image-button" width="22pt" height="22pt" viewBox="0 0 448 512"><path d="M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"/></svg>
<svg class="tc-image-book tc-image-button" width="22pt" height="22pt" viewBox="0 0 448 512"><path d="M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"/></svg>
<svg class="tc-image-book-dead tc-image-button" width="22pt" height="22pt" viewBox="0 0 448 512"><path d="M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z"/></svg>
<svg class="tc-image-cloud tc-image-button" width="22pt" height="22pt" viewBox="0 0 640 512"><path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"/></svg>
<svg class="tc-image-dharmachakra tc-image-button" width="22pt" height="22pt" viewBox="0 0 512 512"><path d="M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"/></svg>
<svg class="tc-image-dice tc-image-button" width="22pt" height="22pt" viewBox="0 0 640 512"><path d="M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"/></svg>
<svg class="tc-image-gamepad tc-image-button" width="22pt" height="22pt" viewBox="0 0 640 512"><path d="M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"/></svg>
<svg class="tc-image-hat-wizard tc-image-button" width="22pt" height="22pt" viewBox="0 0 512 512"><path d="M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"/></svg>
<svg class="tc-image-heart tc-image-button" width="22pt" height="22pt" viewBox="0 0 512 512"><path d="M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"/></svg>
<svg class="tc-image-keyboard tc-image-button" width="22pt" height="22pt" viewBox="0 0 576 512"><path d="M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"/></svg>
<svg class="tc-image-music tc-image-button" width="22pt" height="22pt" viewBox="0 0 512 512"><path d="M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"/></svg>
<svg class="tc-image-palette tc-image-button" width="22pt" height="22pt" viewBox="0 0 512 512"><path d="M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
<svg class="tc-image-poo tc-image-button" width="22pt" height="22pt" viewBox="0 0 512 512"><path d="M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
<svg class="tc-image-star-half-alt tc-image-button" width="22pt" height="22pt" viewBox="0 0 536 512"><path d="M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"/></svg>
<svg class="tc-image-user tc-image-button" width="22pt" height="22pt" viewBox="0 0 448 512"><path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"/></svg>
<svg class="tc-image-user-ninja tc-image-button" width="22pt" height="22pt" viewBox="0 0 448 512"><path d="M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"/></svg>
<svg class="tc-image-user-plus tc-image-button" width="22pt" height="22pt" viewBox="0 0 640 512"><path d="M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"/></svg>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="22pt" height="22pt" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><g transform="translate(0.000000,511.000000) scale(0.100000,-0.100000)"><path d="M5260.4,5004.3C3920.2,4902.4,2920.4,4546.7,2193.6,3916c-707.6-613.3-1120.9-1576.6-1092.1-2538c5.8-219.2,5.8-221.1,78.8-330.7c109.6-165.4,113.4-182.7,61.5-298c-44.2-94.2-244.2-399.9-548-838.3C424.7-477.4,309.4-675.4,309.4-746.5c0-186.5,225-353.8,523-392.2c78.8-9.6,151.9-30.8,173-48.1c51.9-48.1,44.2-184.6-23.1-382.6c-78.8-234.6-76.9-267.2,28.8-363.4c100-92.3,105.8-128.8,38.5-244.2c-75-132.7-65.4-176.9,61.5-296.1c100-92.3,109.6-109.6,107.7-176.9c-1.9-40.4-21.1-123-42.3-184.6c-55.8-159.6-67.3-278.8-40.4-409.5c48.1-228.8,175-401.8,369.2-499.9c248-126.9,474.9-169.2,1024.8-200c434.5-23.1,526.8-32.7,653.7-67.3c113.4-32.7,201.9-115.4,259.6-244.2c42.3-98.1,84.6-365.3,73.1-467.2l-7.7-67.3h2447.6c1345.9,0,2447.6,5.8,2447.6,11.5c0,7.7-25,86.5-57.7,178.8c-423,1232.5-332.6,2316.9,282.6,3434c59.6,105.7,236.5,407.6,394.2,671c423,699.9,586.4,1061.3,651.8,1442c32.7,196.1,11.6,847.9-36.5,1117.1C9419.2,3279.6,8823.1,4102.5,7808,4590.9c-392.2,188.4-805.6,307.6-1307.4,376.9C6289,4996.6,5477.6,5021.6,5260.4,5004.3z M7046.6,3725.7c38.5-44.2,50-80.8,50-148c0-286.5,288.4-411.5,478.8-207.7c59.6,63.5,155.7,96.1,215.3,71.1c25-9.6,75-48.1,111.5-84.6c92.3-98.1,88.4-175-19.2-305.7c-78.8-92.3-84.6-107.7-84.6-209.6c0-90.4,7.7-119.2,48.1-161.5c63.4-69.2,151.9-105.7,259.6-105.7c73.1,0,100-9.6,146.1-55.8c48.1-48.1,55.8-71.1,55.8-161.5c0-150-51.9-198-230.7-215.3c-194.2-19.2-288.4-109.6-288.4-273c0-78.8,26.9-130.7,121.1-230.7c40.4-44.2,55.8-78.8,55.8-132.7c0-61.5-13.5-86.5-86.5-155.7c-119.2-113.4-175-109.6-324.9,25c-196.1,175-457.6,48.1-457.6-225c0-86.5-40.4-180.7-86.5-198c-61.5-23.1-230.7-11.5-273,17.3c-46.1,32.7-82.7,136.5-82.7,240.3c0,92.3-57.7,178.8-144.2,219.2c-109.6,51.9-198,32.7-330.7-75c-96.2-78.8-117.3-88.4-178.8-78.8c-84.6,13.5-211.5,140.4-211.5,213.4c0,63.4,40.4,140.4,103.8,200c125,117.3,101.9,338.4-46.2,415.3c-26.9,13.5-103.8,32.7-169.2,40.4c-71.1,7.7-140.4,26.9-165.4,48.1c-90.3,71.1-80.7,286.5,13.5,353.8c23.1,15.4,73.1,28.8,111.5,28.8c125,0,194.2,23.1,259.6,88.4c107.7,107.7,105.8,273-3.8,374.9c-117.3,109.6-130.8,236.5-30.8,328.8c121.1,113.4,194.2,113.4,317.2,3.8c82.7-76.9,144.2-103.8,226.9-103.8c130.7,0,248,117.3,248,250c0,103.8,36.5,207.7,82.7,240.3c25,17.3,82.7,28.8,150,28.8C6987,3785.3,7002.3,3779.5,7046.6,3725.7z M3968.3,3462.3c17.3-19.2,44.2-67.3,61.5-105.8c78.8-190.4,321.1-194.2,415.3-7.7c23.1,44.2,53.8,96.1,71.1,115.4c65.4,73.1,276.9,11.5,303.8-90.4c5.8-26.9-3.8-92.3-21.2-148.1c-28.8-82.7-28.8-111.5-11.5-175c38.5-125,182.7-184.6,323-128.8c130.7,51.9,213.4,13.5,255.7-119.2c34.6-103.8,1.9-165.4-117.3-223c-105.8-51.9-157.7-121.1-157.7-219.2c0-100,46.1-161.5,161.5-219.2c119.2-61.5,148.1-115.4,113.5-221.1c-44.2-132.7-119.2-171.1-250-125c-109.6,38.5-169.2,36.5-242.3-7.7c-94.2-57.7-117.3-151.9-75-292.3c44.2-144.2,25-196.1-96.1-250c-111.5-50-169.2-25-246.1,107.7c-65.4,109.6-98.1,138.4-178.8,153.8c-101.9,21.2-188.4-30.8-250-146.1c-67.3-125-128.8-161.5-221.1-130.7c-146.1,50-178.8,126.9-123.1,288.4c36.5,101.9,13.5,186.5-69.2,257.6c-69.2,55.8-144.2,61.5-261.5,17.3c-101.9-40.4-159.6-19.2-217.3,73.1c-75,123.1-38.5,219.2,105.8,282.6c190.3,84.6,198,321.1,11.5,415.3c-130.8,65.4-163.4,109.6-150,196.1c7.7,40.4,28.8,94.2,48.1,121.1c40.4,51.9,115.4,59.6,286.5,28.8c194.2-34.6,305.7,107.7,242.3,309.6c-17.3,57.7-25,121.1-17.3,150C3689.5,3475.7,3899.1,3539.2,3968.3,3462.3z M5606.5,1043.5c17.3-7.7,51.9-53.8,76.9-105.8c26.9-50,67.3-105.7,90.4-121.1c100-71.1,274.9-13.5,323,105.7c38.5,100,75,132.7,148.1,132.7c92.3,0,175-48.1,190.3-109.6c7.7-28.8,3.8-88.4-7.7-134.6c-46.2-173-9.6-271.1,121.1-313.4c53.8-17.3,86.5-15.4,173,11.5c96.2,30.8,115.4,32.7,157.7,7.7c28.8-17.3,63.4-63.4,78.8-109.6c40.4-107.7,13.5-163.4-107.7-225c-205.7-103.8-201.9-321.1,5.8-413.4c109.6-48.1,140.4-107.7,107.7-213.4c-28.8-96.1-94.2-144.2-178.8-126.9c-198,38.4-253.8,36.5-307.6-13.5c-67.3-63.4-84.6-134.6-57.7-238.4c46.2-173,25-226.9-115.4-274.9c-59.6-23.1-76.9-21.1-119.2,5.8c-26.9,19.2-65.4,65.4-86.5,105.7c-48.1,96.1-98.1,138.4-178.8,150c-96.2,17.3-176.9-30.8-226.9-136.5c-51.9-107.7-115.4-153.8-186.5-134.6c-142.2,34.6-194.2,117.3-150,242.3c36.5,103.8,36.5,161.5-3.8,230.7c-44.2,73.1-121.1,101.9-223,84.6c-44.2-7.7-115.4-15.4-155.7-17.3c-67.3-1.9-82.7,5.8-121.1,63.4c-80.8,119.2-53.8,207.6,86.5,278.8c50,25,103.8,69.2,117.3,96.1c57.7,105.8,13.4,236.5-98.1,296.1c-155.7,86.5-176.9,132.7-123.1,263.4c42.3,100,105.8,121.1,230.7,78.8c130.7-44.2,226.9-19.2,282.6,73.1c44.2,73.1,46.2,136.5,7.7,230.7c-17.3,40.4-25,90.4-17.3,119.2C5362.3,1018.5,5508.4,1080,5606.5,1043.5z"/><path d="M6708.2,2891.2c-134.6-44.2-292.2-196.1-342.2-332.6c-163.4-432.6,242.3-863.3,682.6-724.9c378.8,121.1,507.6,596,242.3,899.8C7160,2881.6,6900.4,2952.8,6708.2,2891.2z"/><path d="M4024.1,2774c-438.4-217.3-273-876.8,217.3-878.7c346.1-1.9,573,367.2,415.3,674.9C4535.5,2802.8,4258.6,2891.2,4024.1,2774z"/><path d="M5698.7,374.4c-167.3-78.8-273-269.2-248-448c21.1-161.5,125-301.8,265.3-359.5c88.4-38.5,265.3-40.4,348-5.8c209.6,88.5,321.1,325,255.7,538.4C6239,368.6,5956.4,493.6,5698.7,374.4z"/></g></g>
</svg>
# [[Untitled]]
# [[2021.08.23 - chameleon: Gibberish of Love]]
\define chame-list-links(filter,type:"ul",subtype:"li",class:"")
<h2>Articles</h2>
<$macrocall $name="list-links" filter="$filter$ -[tag[Journal]]" emptyMessage="Nothing yet."/>
<h2>Journal Entries</h2>
<$macrocall $name="list-links" filter="$filter$ +[tag[Journal]!sortan[]]" emptyMessage="Nothing yet."/>
\end
\define ref(label)
<$button popup="$:/state/$label$" class="tc-btn-invisible tc-slider"><sup class="chame-footnote">$label$</sup></$button>
\end
\define definition(label,text)
<$reveal type="popup" state="$:/state/$label$" animate="yes">
<div class="tc-drop-down">
<dl>
<dt>$label$</dt>
<dd>$text$</dd>
</dl>
</div>
</$reveal>
\end
\define footnote(label,text)
<<ref "$label$">>
<<definition "$label$" "$text$">>
\end
\define footnotes(label,text)
<<definition "$label$" "$text$">>
<sub><span class="chame-footnote">$label$ : </span> $text$</sub>
\end
\define tag-link(tag)
{{$tag$||$:/ui/TagLinkTemplate}}
\end
\define list-tags(filter,type:"ul",subtype:"li",class:"",emptyMessage)
<$type$ class="$class$">
<$list filter="$filter$" emptyMessage=<<__emptyMessage__>>>
<$subtype$>
<<tag >>
</$subtype$>
</$list>
</$type$>
\end
\define list-tags-links(filter,type:"ul",subtype:"li",class:"",emptyMessage)
<$type$ class="$class$">
<$list filter="$filter$" emptyMessage=<<__emptyMessage__>>>
<$subtype$>
<<tag-link >>
</$subtype$>
</$list>
</$type$>
\end
$:/palettes/ContrastDark 1
alert-background: #ff0000
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #800
background: #000
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour background>>
button-foreground: <<colour foreground>>
button-border: <<colour foreground>>
code-background: <<colour background>>
code-border: <<colour foreground>>
code-foreground: <<colour foreground>>
dirty-indicator: #ff0000
download-background: #080
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: <<colour foreground>>
dropdown-tab-background: <<colour foreground>>
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #00ffff
external-link-foreground: #00ffff
foreground: #fff
message-background: <<colour foreground>>
message-border: <<colour background>>
message-foreground: <<colour background>>
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: <<colour foreground>>
modal-footer-background: <<colour background>>
modal-footer-border: <<colour foreground>>
modal-header-border: <<colour foreground>>
muted-foreground: <<colour foreground>>
notification-background: <<colour background>>
notification-border: <<colour foreground>>
page-background: <<colour background>>
pre-background: <<colour background>>
pre-border: <<colour foreground>>
primary: #34b550
select-tag-background: #a3a3a3
select-tag-foreground: #000000
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #ffa100
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground: <<colour foreground>>
sidebar-muted-foreground-hover: #b94943
sidebar-muted-foreground: <<colour foreground>>
sidebar-tab-background-selected: <<colour background>>
sidebar-tab-background: <<colour tab-background>>
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: <<colour tab-divider>>
sidebar-tab-foreground-selected: <<colour foreground>>
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
sidebar-tiddler-link-foreground: <<colour primary>>
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #aaaaaa
tab-background-selected: <<colour background>>
tab-background: #373737
tab-border-selected: <<colour foreground>>
tab-border: <<colour foreground>>
tab-divider: <<colour foreground>>
tab-foreground-selected: <<colour foreground>>
tab-foreground: <<colour very-muted-foreground>>
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #414141
tag-background: #d9333e
tag-foreground: #000
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #ffb100
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
tiddler-editor-border: #cccccc
tiddler-editor-fields-even: <<colour background>>
tiddler-editor-fields-odd: <<colour background>>
tiddler-info-background: <<colour background>>
tiddler-info-border: <<colour foreground>>
tiddler-info-tab-background: <<colour background>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour foreground>>
tiddler-title-foreground: <<colour foreground>>
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour primary>>
very-muted-foreground: #888888
{
"tiddlers": {
"$:/plugins/bimlas/kin-filter/README/concept.svg": {
"title": "$:/plugins/bimlas/kin-filter/README/concept.svg",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" color-interpolation=\"auto\" height=\"492\" width=\"576\" stroke-linecap=\"square\" stroke=\"#000000\" font-family=\"Dialog\" font-size=\"12\" stroke-miterlimit=\"10\"><style><![CDATA[.C{stroke:none}.E{stroke-miterlimit:1.45000005}.F{fill:none}.I{stroke-linecap:butt}.G{fill:#f1c122}.L{font-size:26.667px}.M{fill:#4f4f4f}.D{fill:#d84100}.H{fill:#006eff}]]></style><defs><clipPath id=\"A\"><path d=\"M-15-15h630v745H-15z\"/></clipPath></defs><g clip-path=\"url(#A)\" shape-rendering=\"geometricPrecision\" text-rendering=\"geometricPrecision\"><rect class=\"C D\" x=\"15.917\" height=\"40\" rx=\"4\" width=\"40\" y=\"161.955\"/><rect class=\"E F\" x=\"15.917\" height=\"40\" rx=\"4\" width=\"40\" y=\"161.955\"/><rect class=\"C D\" height=\"40\" rx=\"4\" width=\"80\" y=\"191.955\" x=\"95.917\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"80\" y=\"191.955\" x=\"95.917\"/><rect class=\"C D\" height=\"40\" rx=\"4\" width=\"40\" y=\"191.526\" x=\"204.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"191.526\" x=\"204.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"371.526\" x=\"284.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"371.526\" x=\"284.242\"/><rect class=\"C\" height=\"40\" rx=\"4\" width=\"40\" y=\"251.526\" x=\"284.242\" fill=\"#008b00\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"251.526\" x=\"284.242\"/><rect class=\"C H\" height=\"40\" rx=\"4\" width=\"80\" y=\"281.526\" x=\"384.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"80\" y=\"281.526\" x=\"384.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"131.955\" x=\"95.917\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"131.955\" x=\"95.917\"/><rect class=\"C H\" height=\"40\" rx=\"4\" width=\"40\" y=\"221.526\" x=\"384.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"221.526\" x=\"384.242\"/><rect class=\"C H\" height=\"40\" rx=\"4\" width=\"40\" y=\"221.526\" x=\"504.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"221.526\" x=\"504.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"101.526\" x=\"284.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"101.526\" x=\"284.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"131.526\" x=\"384.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"131.526\" x=\"384.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"60\" y=\"71.526\" x=\"384.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"60\" y=\"71.526\" x=\"384.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"11.526\" x=\"284.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"11.526\" x=\"284.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"401.526\" x=\"384.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"401.526\" x=\"384.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"161.526\" x=\"504.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"161.526\" x=\"504.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"40\" y=\"101.526\" x=\"504.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"40\" y=\"101.526\" x=\"504.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"80\" y=\"341.526\" x=\"384.242\"/><rect class=\"E F\" height=\"40\" rx=\"4\" width=\"80\" y=\"341.526\" x=\"384.242\"/><rect class=\"C G\" height=\"40\" rx=\"4\" width=\"60\" y=\"11.526\" x=\"384.242\"/><g class=\"E F\"><rect height=\"40\" rx=\"4\" width=\"60\" y=\"11.526\" x=\"384.242\"/><g class=\"I\"><path d=\"M64.54 181.955h12.03v30h19.35\"/></g></g><path class=\"C\" d=\"M55.887 181.955l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M183.636 211.526h20.33\" stroke-width=\".731\"/><path class=\"C\" d=\"M175.897 211.525l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M252.69 211.526h12.03v180h19.984\"/><path class=\"C\" d=\"M244.212 211.526l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M252.69 211.526h12.03v60h19.984\"/><path class=\"C\" d=\"M324.25 271.526l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M332.703 271.526h32.018v30h20\"/><path d=\"M324.25 391.66l12-5-3 5 3 5z\" class=\"C\"/><path class=\"E F I\" d=\"M64.887 181.955H76.57v-30h19.4m236.723 119.57h32.018v-30h19.984m48.025.001h72.02\"/><path class=\"C\" d=\"M423.72 241.526l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M252.69 211.526h12.03v-90h19.984\"/><path class=\"C\" d=\"M323.728 121.526l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M332.703 121.526h32.018v30h19.984\"/><path class=\"E F I\" d=\"M332.703 121.526h32.018v-30h20m-132.03 120h12.03v-180h19.984\"/><path class=\"C\" d=\"M323.728 31.526l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M332.703 391.526h32.018v30h19.984m48.02-270h51.996v30h19.984\"/><path class=\"E F I\" d=\"M432.725 151.526h51.996v-30h19.984\"/><path class=\"C\" d=\"M423.725 151.526l12-5-3 5 3 5z\"/><path class=\"E F I\" d=\"M332.703 391.526h32.018v-30h20m-51.993-330h51.98\"/></g><g class=\"C\" letter-spacing=\"0\" word-spacing=\"0\" font-family=\"sans-serif\"><text class=\"L\" y=\"481.371\" x=\"259.32\" xml:space=\"preserve\"><tspan class=\"M\" y=\"481.371\" x=\"259.32\">DEPTH</tspan></text><g font-size=\"40\"><text y=\"481.371\" x=\"395.524\" xml:space=\"preserve\"><tspan class=\"L M\" y=\"481.371\" x=\"395.524\">1</tspan></text><text y=\"481.547\" x=\"516.117\" xml:space=\"preserve\"><tspan class=\"L M\" y=\"481.547\" x=\"516.117\">2</tspan></text><text xml:space=\"preserve\" x=\"215.524\" y=\"481.371\"><tspan class=\"L M\" x=\"215.524\" y=\"481.371\">1</tspan></text><text xml:space=\"preserve\" x=\"107.792\" y=\"481.547\"><tspan class=\"L M\" x=\"107.792\" y=\"481.547\">2</tspan></text><text y=\"481.358\" x=\"27.486\" xml:space=\"preserve\"><tspan class=\"L M\" y=\"481.358\" x=\"27.486\">3</tspan></text><text y=\"325.27\" x=\"268.643\" xml:space=\"preserve\"><tspan class=\"L\" y=\"325.27\" x=\"268.643\" fill=\"#008b00\">BASE</tspan></text><text xml:space=\"preserve\" x=\"506.384\" y=\"325.27\"><tspan class=\"L H\" x=\"506.384\" y=\"325.27\">TO</tspan></text><text y=\"325.27\" x=\"96.958\" xml:space=\"preserve\"><tspan class=\"L D\" y=\"325.27\" x=\"96.958\">FROM</tspan></text></g></g></svg>",
"type": "image/svg+xml",
"tags": "picture"
},
"$:/plugins/bimlas/kin-filter/README/examples": {
"title": "$:/plugins/bimlas/kin-filter/README/examples",
"type": "text/vnd.tiddlywiki",
"text": "\\define item-class(highlightfilter) <$list filter=\"[[kin-example-top]kin::to[]subfilter<__highlightfilter__>is[current]first[]]\">highlighted-toc-item</$list>\n\n\\define kin-example-with-toc(n,eg,ie)\n <div class=\"doc-example\">\n `$eg$`\n <dd>→ $ie$</dd>\n <$list filter=\"[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]\" variable=\".state\">\n <$reveal state=<<.state>> type=\"nomatch\" text=\"show\">\n <dl>\n <dd><$button set=<<.state>> setTo=\"show\">Try it</$button></dd>\n </dl>\n </$reveal>\n <$reveal state=<<.state>> type=\"match\" text=\"show\">\n <dl>\n <dd><$button set=<<.state>> setTo=\"\">Hide</$button></dd>\n </dl>\n <blockquote class=\"doc-example-result\">\n <ul><$list filter=\"[[kin-example-top]kin::to[]subfilter<__eg__>sort[]]\" emptyMessage=\"(empty)\">\n <li><$link><$view field=\"title\"/></$link></li>\n </$list></ul>\n Results highlighted in the tree:\n\n <<kin-toc \"$eg$\">>\n </blockquote>\n </$reveal>\n </$list>\n </div>\n\\end\n\n\\define each-level(highlightfilter)\n <li>\n <$wikify name=\"transcluded-item-class\" text=\"\"\"<$macrocall $name=\"item-class\" highlightfilter=<<__highlightfilter__>>/>\"\"\">\n <$link class=<<transcluded-item-class>> ><<currentTiddler>></$link>\n </$wikify>\n <ul>\n <$list filter=\"[[kin-example-top]kin::to[]tag<currentTiddler>]\">\n <$macrocall $name=\"each-level\" highlightfilter=<<__highlightfilter__>>/>\n </$list>\n </ul>\n </li>\n\\end\n\n\\define kin-toc(highlightfilter)\n <$tiddler tiddler=\"kin-example-top\">\n <ul>\n <$macrocall $name=\"each-level\" highlightfilter=<<__highlightfilter__>>/>\n </ul>\n </$tiddler>\n\\end\n\n<style>\n .highlighted-toc-item {\n color: red !important;\n }\n</style>\n\nExample tree (to really understand, look at the tiddlers):\n\n<<kin-toc \"!is[current]\">>\n\n''The tree'' below the examples only helps in understanding the filter, it ''is not part of the output''.\n\n''Feel free to edit [[this tiddler|$:/plugins/bimlas/kin-filter/README/examples]] to test your own filter expressions as well!'' If you want to undo the changes you made, just delete the tiddler, it will restore itself to its initial state.\n\n<<kin-example-with-toc 1 \"[kin[C]]\" \"input titles which are family members of the parameter title\">>\n<<kin-example-with-toc 2 \"[kin[C]kin[F]]\" \"common family members of each of the specified titles (intersection)\">>\n<<kin-example-with-toc 3 \"[kin[C]!kin[F]]\" \"difference of families of the specified titles (complement)\">>\n<<kin-example-with-toc 4 \"[[C]] [[F]] +[kin[]]\" \"collected titles which are family members of any of the input tiddlers (union)\">>\n<<kin-example-with-toc 5 \"[kin::to[B]]\" \"successors of the given tiddler\">>\n<<kin-example-with-toc 6 \"[kin::from[E]kin::to[B]]\" \"subset of the family tree\">>\n<<kin-example-with-toc 7 \"[kin::from:2[E]]\" \"ancestors of the given tiddler until the given depth\">>\n<<kin-example-with-toc 8 \"[kin:tags:from[G]]\" \"ancestors of tiddler based on `tags` field (`tags` points to parents)\">>\n<<kin-example-with-toc 9 \"[kin:list:to[G]]\" \"ancestors of tiddler based on `list` field (`list` point to children)\">>\n"
},
"$:/plugins/bimlas/kin-filter/README/syntax": {
"title": "$:/plugins/bimlas/kin-filter/README/syntax",
"type": "text/vnd.tiddlywiki",
"text": "! Kin filter operator\n\n* https://gitlab.com/bimlas/tw5-kin-filter (official repository)\n* https://github.com/bimlas/tw5-kin-filter (mirror, please give a star if you like it)\n\nThe purpose of the ''kin'' operator with examples:\n\n* Finds related tags, related tiddlers in any depth\n* Finds out where base tiddler originates and what other elements originate from it\n* Finds the ancestors and successors of a family member\n* Finds the \"leaves\" of the branch of the base tiddler in a tree-like structure (where the base tiddler is a leaf)\n* Finds the super- and subsets / groups of a mathematical set (where the base tiddler is a set)\n\n[img[$:/plugins/bimlas/kin-filter/README/concept.svg]]\n\n|''input''|a [[selection of titles|https://tiddlywiki.com/#Title%20Selection]]|\n|''suffix''|the ''kin'' operator uses a rich suffix, see below for details|\n|''parameter''|''B'' base tiddler title or nothing|\n|''output''|''with parameter B''<br>» those input titles which are ''kin with B'' <br>''without B''<br>» ''all'' tiddler titles which are ''kin with input titles'' (treat input titles as base tiddlers)|\n|''`!` output''|''with parameter B''<br>» those input titles which are ''//NOT// kin with B''<br>''without parameter B''<br>» ignored|\n\nThe ''kin'' operator uses an extended syntax that permits multiple fields and flags to be passed:\n\n```\n[kin:<field>:<direction>:<depth>[<operand>]]\n```\n\n* ''field'': name of the [[field|https://tiddlywiki.com/#TiddlerFields]] which connecting tiddlers (assumed to be a [[title list|https://tiddlywiki.com/#Title%20List]], defaulting to `tags`)\n* ''direction'': collect the tiddler titles in this direction relative to the base tiddler\n** ''from'': collect kins of base tiddler pointing from it (including the base tiddler title itself)\n** ''to'': collect kins of base tiddler pointing to it (including the base tiddler title itself)\n** ''with'': (the default) union of the aboves\n* ''depth'': maximum depth of the collected labels in the tree structure relative to the base tiddler (a positive number, not limited by default)\n* ''operand'': filter operand, the base tiddler\n\n''kin'' is a [[modifier|https://tiddlywiki.com/#Selection%20Constructors]], but without ''B'' parameter is a [[constructor|https://tiddlywiki.com/#Selection%20Constructors]].\n\n!! Installation instructions\n\nTo add the plugin to your own ~TiddlyWiki5, just drag this link to the browser window:\n\n$:/plugins/bimlas/kin-filter\n\nFor other installation options see the repositories above.\n\n//Select the next tab to continue.//\n"
},
"$:/plugins/bimlas/kin-filter/kin.js": {
"title": "$:/plugins/bimlas/kin-filter/kin.js",
"text": "/*\\\ntitle: $:/plugins/bimlas/kin-filter/kin.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFinds out where a tiddler originates from and what other tiddlers originate from it\n\n\\*/\n(function() {\n\n\t/*jslint node: true, browser: true */\n\t/*global $tw: true */\n\t\"use strict\";\n\n\tfunction collectTitlesRecursively(baseTiddler,baseTitle,options) {\n\t\tvar cacheName = \"kin-filter-\" + baseTitle + \"-\" + options.fieldName + \"-\",\n\t\t\ttitlesPointingFromBase = {},\n\t\t\ttitlesPointingToBase = {},\n\t\t\tresultsFrom = [],\n\t\t\tresultsTo = [];\n\n\t\t/* Copy of findListingsOfTiddler, but it's searching in shadows as well. */\n\t\tfunction findListingsOfTiddler(targetTitle,fieldName) {\n\t\t\tfieldName = fieldName || \"list\";\n\t\t\tvar titles = [];\n\t\t\toptions.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\t\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\t\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\t\t\ttitles.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn titles;\n\t\t}\n\n\t\tfunction addToResultsIfNotFoundAlready(alreadyFound,title,depth) {\n\t\t\tif(title in alreadyFound) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\talreadyFound[title] = depth;\n\t\t\treturn true\n\t\t}\n\n\t\tfunction collectTitlesPointingFrom(tiddler,title,currentDepth) {\n\t\t\tif(addToResultsIfNotFoundAlready(titlesPointingFromBase,title,currentDepth)) {\n\t\t\t\tcurrentDepth += 1;\n\t\t\t\tif(tiddler) {\n\t\t\t\t\t$tw.utils.each(tiddler.getFieldList(options.fieldName),function(targetTitle) {\n\t\t\t\t\t\tcollectTitlesPointingFrom(options.wiki.getTiddler(targetTitle),targetTitle,currentDepth);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction collectTitlesPointingTo(title,currentDepth) {\n\t\t\tif(addToResultsIfNotFoundAlready(titlesPointingToBase,title,currentDepth)) {\n\t\t\t\tcurrentDepth += 1;\n\t\t\t\t$tw.utils.each(findListingsOfTiddler(title,options.fieldName),function(targetTitle) {\n\t\t\t\t\tcollectTitlesPointingTo(targetTitle,currentDepth);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction getObjectKeysByExpression(object,callback) {\n\t\t\tvar key,\n\t\t\t\tresults = [];\n\t\t\tfor (key in object) {\n\t\t\t\tif (object.hasOwnProperty(key) && callback(object[key])) {\n\t\t\t\t\tresults.push(key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n\n\t\tfunction getResultsInGivenDepth(cachedData) {\n\t\t\tif(options.depth) {\n\t\t\t\treturn getObjectKeysByExpression(cachedData,function(value) {\n\t\t\t\t\treturn value <= options.depth;\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\treturn Object.keys(cachedData);\n\t\t\t}\n\t\t}\n\n\t\tif((options.direction === \"from\") || (options.direction === \"with\")) {\n\t\t\tresultsFrom = $tw.wiki.getGlobalCache(cacheName + \"from\",function() {\n\t\t\t\tcollectTitlesPointingFrom(baseTiddler,baseTitle,0);\n\t\t\t\treturn titlesPointingFromBase;\n\t\t\t});\n\t\t\tresultsFrom = getResultsInGivenDepth(resultsFrom);\n\t\t}\n\t\tif((options.direction === \"to\") || (options.direction === \"with\")) {\n\t\t\tresultsTo = $tw.wiki.getGlobalCache(cacheName + \"to\",function() {\n\t\t\t\tcollectTitlesPointingTo(baseTitle,0);\n\t\t\t\treturn titlesPointingToBase;\n\t\t\t});\n\t\t\tresultsTo = getResultsInGivenDepth(resultsTo);\n\t\t}\n\t\treturn $tw.utils.pushTop(resultsFrom,resultsTo);\n\t}\n\n\t/*\n\tExport our filter function\n\t*/\n\texports.kin = function(source,operator,options) {\n\t\tvar results = [],\n\t\t\tneedsExclusion = operator.prefix === \"!\",\n\t\t\tsuffixes = operator.suffixes || [],\n\t\t\tfilterOptions = {\n\t\t\t\twiki: options.wiki,\n\t\t\t\tfieldName: ((suffixes[0] || [])[0] || \"tags\").toLowerCase(),\n\t\t\t\tdirection: ((suffixes[1] || [])[0] || \"with\").toLowerCase(),\n\t\t\t\tdepth: Number((suffixes[2] || [])[0]),\n\t\t\t};\n\n\t\tif((operator.operand === \"\") && (needsExclusion)) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif(operator.operand !== \"\") {\n\t\t\tvar baseTitle = operator.operand,\n\t\t\t\tbaseTiddler = options.wiki.getTiddler(baseTitle),\n\t\t\t\tfoundTitles = collectTitlesRecursively(baseTiddler,baseTitle,filterOptions);\n\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(needsExclusion === (foundTitles.indexOf(title) === -1)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tresults = $tw.utils.pushTop(results,collectTitlesRecursively(tiddler,title,filterOptions));\n\t\t\t});\n\t\t}\n\n\t\treturn results;\n\t}\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"A": {
"title": "A",
"tags": "kin-example-top"
},
"B": {
"title": "B",
"tags": "A"
},
"C": {
"title": "C",
"list": "D",
"tags": "B"
},
"D": {
"title": "D",
"list": "E",
"tags": "C"
},
"E": {
"title": "E",
"list": "G",
"tags": "C"
},
"F": {
"title": "F",
"tags": "B"
},
"G": {
"title": "G",
"tags": "F"
},
"H": {
"title": "H",
"tags": "F"
}
}
}
{
"tiddlers": {
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true;\n\t// Render the link if required\n\tif(useWikiLinks) {\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\tfollowAliases: this.followAliases\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.followAliases = this.getAttribute(\"followAliases\", \"true\");\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) && !(this.wiki.filterTiddlers(\"[title[\"+this.to+\"]listed[aliases]]\").length === 1);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\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) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget",
"created": "20160218191628007",
"modified": "20161018180800361"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\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 if (!this.wiki.tiddlerExists(event.navigateTo) && event.followAliases == \"true\") {\n var aliases = this.wiki.filterTiddlers(\"[title[\"+event.navigateTo+\"]listed[aliases]]\")\n if (aliases.length === 1) {\n event.navigateTo = aliases[0]\n }\n }\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\") + \"\\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",
"type": "application/javascript",
"module-type": "widget",
"created": "20160218190315501",
"modified": "20160218192104537"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"created": "20160218185029873",
"modified": "20160218192615033",
"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<$list filter=\"[title{!!title}listed[aliases]first[]]\" variable=\"\">\nYou may have meant one of the following pages\n<$list filter=\"[title{!!title}listed[aliases]]\">\n<li><$link>{{!!title}}</$link></li>\n</$list>\n\n</$list>\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
}
}
}
body.tc-body {
}
.tc-tab-content {
padding-bottom: 14px; /* HACK: add some padding so it scrolls properly */
}
.tc-dropzone {
display: flex;
flex-flow: row-reverse nowrap;
justify-content: flex-start;
transition: all 500ms ease;
}
.tc-story-river {
padding: 0 2em 2em 0;
flex-basis: 40%; /* sets the width of the story river flex-child */
min-width: 0; /* this is to fix the fuckery that flex does to pre tags */
transition: all 500ms ease;
}
.tc-sidebar-scrollable {
flex-basis: 30%; /* sets the width of the sidebar flex-child */
transition: all 500ms ease;
background-color: rgba(0, 0, 0, 1); /* black background for mobile */
}
.tc-sidebar-header {
position: fixed; /* makes the sidebar fixed */
overflow: auto; /* ensures there is a scrollbar */
height: 100vh; /* makes the sidebar exactly the height of the viewport so scrollbars are used if necessary */
width: 30%; /* matches the width of the flex-basis set by .tc-sidebar-scrollable */
transition: all 500ms ease;
}
.tc-sidebar-scrollable .tc-sidebar-header>.tc-reveal {
padding: 3em .5em;
transition: all 500ms ease;
}
.tc-tiddler-frame {
padding: 2em 3em 2em 3em;
margin-top: 2em;
margin-bottom: 0;
transition: all 500ms ease;
}
.tc-titlebar {
font-size: 2em;
}
/* media breakpoint styling begins here*/
@media (max-width: 2000px) {
.tc-story-river {
flex-basis: 60%;
transition: all 500ms ease;
}
.tc-sidebar-scrollable {
flex-basis: 20%;
transition: all 500ms ease;
}
.tc-sidebar-header {
width: 20%;
transition: all 500ms ease;
}
}
@media (max-width: 1500px) {
.tc-story-river {
flex-basis: 60%;
transition: all 500ms ease;
}
}
@media (max-width: 1200px) {
.tc-story-river {
padding: 0 2em 2em 0;
transition: all 500ms ease;
}
.tc-sidebar-scrollable {
flex-basis: 35%;
transition: all 500ms ease;
}
.tc-sidebar-header {
width: 35%;
transition: all 500ms ease;
}
.tc-sidebar-scrollable .tc-sidebar-header>.tc-reveal {
padding: 2em 1em 2em 0;
transition: all 500ms ease;
}
.tc-tiddler-frame {
padding: 1em 1em 2em 1em;
transition: all 500ms ease;
}
}
@media (max-width: 800px) {
.tc-dropzone {
flex-flow: column nowrap;
}
.tc-story-river {
flex-basis: auto;
padding: 0 2em 2em 2em;
transition: all 500ms ease;
}
.tc-sidebar-scrollable {
flex-basis: auto;
overflow: visible;
}
.tc-sidebar-header { /* clearing fixed sidebar settings so column works */
position: static;
overflow: visible;
height: unset;
width: unset;
transition: all 500ms ease;
}
.tc-sidebar-scrollable .tc-sidebar-header>.tc-reveal {
padding: 0 2em 0 2em;
transition: all 500ms ease;
}
.tc-topbar {
position: static;
display: flex;
justify-content: flex-end;
margin-right: .5em;
}
}
@media (max-width: 600px) {
.tc-story-river {
padding: 0 .25em .5em .25em;
transition: all 500ms ease;
}
.tc-sidebar-scrollable .tc-sidebar-header>.tc-reveal {
padding: 2em 1em 0 1em;
transition: all 500ms ease;
}
.tc-tiddler-frame {
padding: .5em 1em 2em 1em;
transition: all 500ms ease;
}
.tc-titlebar {
font-size: 1.75em;
}
}
{
"tiddlers": {
"$:/plugins/tgrosinger/tw5-checklist/Configuration": {
"title": "$:/plugins/tgrosinger/tw5-checklist/Configuration",
"move-checked": "true",
"show-clearall": "true",
"sort-alphabetically": "false",
"strike-checked": "true",
"text": "Please see the [[homepage|https://grosinger.net/tw5-checklist/]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Rearrange checked items:</th>\n <td>\n <$checkbox field=\"move-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n </td>\n </tr>\n <tr>\n <th align=\"left\" class=\"rerendering-required\">Strike checked items: </th>\n <td>\n <$checkbox field=\"strike-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n </td>\n </tr>\n <tr>\n <th align=\"left\" class=\"rerendering-required\">Sort list alphabetically: </th>\n <td>\n <$checkbox field=\"sort-alphabetically\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n checked=\"true\" unchecked=\"false\" default=\"false\"></$checkbox>\n </td>\n </tr>\n <tr>\n <th align=\"left\" class=\"rerendering-required\">Show Clear-All: </th>\n <td>\n <$checkbox field=\"show-clearall\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n </td>\n </tr>\n</table>\n\n* make a change in a list to see the effect (check/uncheck or add/delete an item).\n\n<style>\n.rerendering-required:after {\n content: ' *';\n color: #e32;\n}\n</style>\n"
},
"$:/plugins/tgrosinger/tw5-checklist/Usage": {
"title": "$:/plugins/tgrosinger/tw5-checklist/Usage",
"text": "! Creating a New Checklist\n\nThis plugin provides a wikitext rule for use in normal wikitext tiddlers. A\nchecklist is defined as two brackets with either a <kbd>space</kbd> or an\n<kbd>x</kbd> between them.\n\n```\n! My Shopping List\n\n[ ] Milk\n[ ] Eggs\n[x] Bread\n\n```\n\n!! Multiple Checklists\n\nThere is no need to declare an instance of a checklist, and you can place\nchecklist items throughout a tiddler. Each set of consecutive (single new-line\ndelimited) checklist items will be displayed as a single checklist.\n\n```\n! My first list\n\n[ ] Item 1\n[x] Item 2\n\n! My second list\n\n[x] Item 3\n[x] Item 4\n\n```\n\n!! List Item Formatting\n\nList items support any inline formatting rules. This means you can create links,\nbold, or anything else found on the\n[[Formatting in WikiText|http://tiddlywiki.com/static/Formatting%2520in%2520WikiText.html]] guide.\n\n! Configuration\n\nPlease see [[the configuration|$:/plugins/tgrosinger/tw5-checklist/Configuration]]\npage to learn about and adjust configuration options.\n"
},
"$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js": {
"title": "$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js",
"text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js\ntype: application/javascript\nmodule-type: wikirule\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"checkbox\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\n\t// Match on [ ], [x], and [X], to the end of the line\n\tthis.matchRegExp = /^\\[([ xX])\\] .*$/mg;\n};\n\n/*\nRetrieve the configuration state of the clear all button\n*/\n\nexports.shouldShowClearAll = function() {\n var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n var showClearAll = configWidgetFields[\"show-clearall\"] || \"true\";\n return (showClearAll === \"true\");\n}\n\n/*\nCreate list items\n*/\n\nexports.parse = function() {\n var listItems = [];\n var listStartPos = this.parser.pos;\n var match = this.match;\n\n // Start the list with a \"New List Item\" placeholder\n listItems.push({\n type: \"element\",\n tag: \"li\",\n children: [\n {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-newitem-icon\"},\n for: {type: \"string\", value: \"checklist-new\"}\n }\n },\n {\n type: \"element\",\n tag: \"input\",\n attributes: {\n class: {type: \"string\", value: \"checklist-newitem\"},\n id: {type: \"string\", value: \"checklist-new\"},\n placeholder: {type: \"string\", value: \"New list item (WikiText)\"}\n // impossible? add an aria-label \"Write a new todo item\"\n // attribute aria-label seems to be missing in $:/core/modules/widgets/edit.js \n }\n },\n // label for the input field\n {\n type: \"element\",\n tag: \"label\",\n attributes: {\n class: {type: \"string\", value: \"checklist-vh\"},\n for: {type: \"string\", value: \"checklist-new\"}\n },\n children: [\n {type: \"text\", text: \"Write a new item for the list.\"}\n ]\n },\n // (pseudo) button to add the new item to the list\n {\n type: \"element\",\n tag: \"button\",\n attributes: {\n class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-add\"},\n title: {type: \"string\", value: \"add to list\"}\n },\n children: [\n {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-vh\"}\n },\n children: [\n {type: \"text\", text: \"add list item\"}\n ]\n }\n ]\n }\n // end of button\n ]\n });\n\n // Create items in a loop\n do {\n var startPos = this.parser.pos;\n this.parser.pos = this.matchRegExp.lastIndex;\n var parseResults = this.parser.wiki.parseText(\n \"text/vnd.tiddlywiki\",\n this.parser.source.substring(startPos + 4, this.parser.pos),\n {parseAsInline: true});\n\n // Use the listitem body as a label for the checkbox to get better accessibility\n var itembody = {\n type: \"element\",\n tag: \"label\",\n attributes: {\n for: {type: \"string\", value: match.index}\n },\n children: parseResults.tree\n };\n\n var checkbox = {\n type: \"element\",\n tag: \"input\",\n attributes: {\n type: {type: \"string\", value: \"checkbox\"},\n pos: {type: \"string\", value: match.index},\n id: {type: \"string\", value: match.index}\n }\n };\n if (match[1] === \"x\" || match[1] === \"X\") {\n checkbox.attributes.checked = {type: \"boolean\", value: true};\n }\n\n // Make a button to delete the item\n var removelabel = {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-vh\"}\n },\n children: [\n {type: \"text\", text: \"delete list item\"}\n ]\n };\n\n var removebutton = {\n type: \"element\",\n tag: \"button\",\n attributes: {\n class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-remove\"},\n title: {type: \"string\", value: \"delete\"}\n },\n children: [\n removelabel\n ]\n };\n\n // add the item to the list\n listItems.push({\n type: \"element\",\n tag: \"li\",\n children: [\n checkbox,\n removebutton,\n itembody\n ]\n });\n\n match = this.matchRegExp.exec(this.parser.source);\n } while (match != null && match.index == 1 + this.parser.pos);\n\n if (this.shouldShowClearAll()) {\n // show the clear-all button\n var clearallbutton = {\n type: \"element\",\n tag: \"button\",\n attributes: {\n class: {type: \"string\", value: \"checklist-clearall\"}\n },\n children: [\n {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-clearall-label\"}\n },\n children: [\n {type: \"text\", text: \"Clear all\"}\n ]\n }\n ]\n };\n\n listItems.push({\n type: \"element\",\n tag: \"li\",\n children: [\n clearallbutton\n ]\n });\n }\n\n return [{\n type: \"checklist\",\n attributes: {\n listStartPos: {type: \"string\", value: listStartPos},\n listStopPos: {type: \"string\", value: this.parser.pos}\n },\n children: listItems\n }];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/plugins/tgrosinger/tw5-checklist/checklist.js": {
"title": "$:/plugins/tgrosinger/tw5-checklist/checklist.js",
"text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checklist.js\ntype: application/javascript\nmodule-type: widget\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckListWidget = function(parseTreeNode,options) {\n this.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckListWidget.prototype.render = function(parent,nextSibling) {\n this.tiddlerTitle = this.getVariable(\"currentTiddler\");\n this.startPos = parseInt(this.parseTreeNode.attributes.listStartPos.value);\n this.stopPos = parseInt(this.parseTreeNode.attributes.listStopPos.value);\n\n this.parentDomNode = parent;\n this.nextSibling = nextSibling;\n this.computeAttributes();\n this.execute();\n};\n\n/*\nRetrieve the configuration state indicating if items should be re-arranged\n*/\nCheckListWidget.prototype.shouldMoveChecked = function() {\n var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n var moveChecked = configWidgetFields[\"move-checked\"] || \"true\";\n return (moveChecked === \"true\");\n}\n\n/*\nRetrieve the configuration state indicating if items should be re-sorted\n*/\nCheckListWidget.prototype.shouldSort= function() {\n var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n var sort = configWidgetFields[\"sort-alphabetically\"] || \"true\";\n return (sort === \"true\");\n}\n\n\n\n/*\nCompute the internal state of the widget\n*/\nCheckListWidget.prototype.execute = function() {\n var domNode = this.document.createElement(\"ul\");\n domNode.className = \"checklist\";\n\n this.makeChildWidgets();\n this.renderChildren(domNode);\n\n /* add event listeners */\n $tw.utils.each(domNode.childNodes, function(childNode) {\n if (childNode.childNodes[0].className === \"checklist-clearall\") {\n // ClearAllChecks, do not use checkbox listener\n $tw.utils.addEventListeners(childNode.childNodes[0],\n [{name: \"click\", handlerObject: this,\n handlerMethod: \"handleClearChecksEvent\"}]);\n } else if (childNode.childNodes[1].className === \"checklist-newitem\") {\n // NewListItem, do not use checkbox listener\n $tw.utils.addEventListeners(childNode.childNodes[1], [\n {name: \"blur\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"},\n {name: \"keyup\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"}\n ]);\n // If this is a normal checklist item …\n } else {\n if (childNode.childNodes[0].checked) {\n $tw.utils.addEventListeners(childNode,\n [{name: \"change\", handlerObject: this, handlerMethod: \"handleUncheckEvent\"}]);\n } else {\n $tw.utils.addEventListeners(childNode,\n [{name: \"change\", handlerObject: this, handlerMethod: \"handleCheckEvent\"}]);\n }\n $tw.utils.addEventListeners(childNode.childNodes[1], [\n {name: \"click\", handlerObject: this, handlerMethod: \"handleRemoveEvent\"}\n ]);\n }\n }.bind(this));\n\n this.parentDomNode.insertBefore(domNode, this.nextSibling);\n};\n\n// When the user clicks the clear-all button, remove all checks\nCheckListWidget.prototype.handleClearChecksEvent = function(event) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n var bodyLen = bodyList.length;\n\n for (var i = 0; i < bodyLen; i++) {\n bodyList[i] = bodyList[i].replace(\"[x]\", \"[ ]\");\n bodyList[i] = bodyList[i].replace(\"[X]\", \"[ ]\");\n }\n\n // Save the updated body\n var newBody = tiddlerBody.substring(0, this.startPos) +\n bodyList.join(\"\\n\") +\n tiddlerBody.substring(this.stopPos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\nCheckListWidget.prototype.reorderList = function(event, bodyList) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n \n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n\n // Rearrange items (if configured to do so)\n var shouldMove = this.shouldMoveChecked();\n\n // Sort items (if configured to do so)\n var shouldSort = this.shouldSort();\n\n // These are all combinations\n if (shouldMove) {\n // Find the index of the first checked item\n if (shouldSort){\n // sort by items subject, grouping checked and unchecked\n bodyList.sort(function (a, b) { return a.toLowerCase().localeCompare(b.toLowerCase()); });\n }else{\n // Order only by 3 first chars, so we have order by grouping check and unchecked \n bodyList.sort(function (a, b) { return a.substring(0, 3).toLowerCase().localeCompare(b.substring(0, 3).toLowerCase()); });\n }\n }else if(shouldSort){\n // sort by items subject\n bodyList.sort(function (a, b) { return a.substring(3).toLowerCase().localeCompare(b.substring(3).toLowerCase()); });\n }\n \n // Save the updated body\n var newBody = tiddlerBody.substring(0, this.startPos) +\n bodyList.join(\"\\n\") +\n tiddlerBody.substring(this.stopPos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n\n}\n\n// On blur or enter, save the new list item\nCheckListWidget.prototype.handleBlurNewItemEvent = function(event) {\n if (event.type == \"keyup\" && event.keyCode != 13) {\n // This function receives both blur and keyup events.\n // Only run on blur or enter key\n return;\n }\n\n if (event.target.value.trim() === \"\") {\n // Don't save an empty list item\n return;\n }\n\n var checklist = event.target.parentNode.parentNode;\n var firstItem = checklist.childNodes[1];\n var pos = firstItem.childNodes[0].attributes.pos.nodeValue;\n\n var newItem = \"[ ] \" + event.target.value.trim() + \"\\n\";\n event.target.value = \"\";\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n tiddlerBody = tiddlerBody.substring(0, pos) + newItem + tiddlerBody.substring(pos);\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos + newItem.length).split(\"\\n\");\n this.reorderList(event, bodyList) \n};\n\n\n\nCheckListWidget.prototype.handleChecksEvents = function(event, oldCheckState, newCheckState) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n \n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n // Update the tiddler data\n bodyList[itemIndex] = bodyList[itemIndex].replace(oldCheckState, newCheckState);\n this.reorderList(event, bodyList) \n\n}\n\nCheckListWidget.prototype.handleCheckEvent = function(event) {\n this.handleChecksEvents(event, \"[ ]\", \"[x]\");\n};\n\nCheckListWidget.prototype.handleUncheckEvent = function(event) {\n this.handleChecksEvents(event, \"[x]\", \"[ ]\");\n};\n\nCheckListWidget.prototype.handleRemoveEvent = function (event) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n // Update the tiddler data\n bodyList.splice(itemIndex, 1);\n var newBody = tiddlerBody.substring(0, this.startPos) +\n bodyList.join(\"\\n\") +\n tiddlerBody.substring(this.stopPos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\n/*\nSelectively refreshes the widget if needed.\nReturns true if the widget or any of its children needed re-rendering\n*/\nCheckListWidget.prototype.refresh = function(changedTiddlers) {\n var changedAttributes = this.computeAttributes();\n // Refresh if an attribute has changed, or the type associated with\n // the target tiddler has changed\n if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index ||\n (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n this.refreshSelf();\n return true;\n } else {\n return this.refreshChildren(changedTiddlers);\n }\n};\n\nexports.checklist = CheckListWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tgrosinger/tw5-checklist/license": {
"title": "$:/plugins/tgrosinger/tw5-checklist/license",
"text": "The MIT License (MIT)\n\nCopyright (c) 2015 Tony Grosinger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
},
"$:/plugins/tgrosinger/tw5-checklist/readme": {
"title": "$:/plugins/tgrosinger/tw5-checklist/readme",
"text": "This plugin provides a simple checklist which does not create a new tiddler for\neach task. Features include:\n\n[x] Check and uncheck items\n[x] Simple, no configuration necessary\n[x] Easily editable, and easy to read in edit view\n[x] Add new list items without using edit mode\n[x] Move completed items to bottom of list\n\n[[Source code|https://github.com/tgrosinger/tw5-checklist]]\n"
},
"$:/plugins/tgrosinger/tw5-checklist/stylesheet": {
"title": "$:/plugins/tgrosinger/tw5-checklist/stylesheet",
"tags": "$:/tags/Stylesheet",
"text": "ul.checklist {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\nul.checklist > li {\n position: relative;\n width: calc(100% - 1em);\n}\n\n\n/* input form */\n\n.checklist-newitem-icon::before {\n content: \"✎\";\n}\n\ninput.checklist-newitem {\n margin-left: 1em;\n margin-bottom: 0.75em;\n padding: 2px;\n border: none;\n border-bottom: solid 2px <<colour sidebar-tab-background>>;\n transition: border 0.3s;\n width: calc(100% - 2em - 20px);\n}\n\ninput:focus.checklist-newitem {\n border-bottom: solid 2px <<colour notification-border>>;\n}\n\n\n/* placeholder text */\n\n::-webkit-input-placeholder { \n color: #444;\n font-style: italic;\n}\n::-moz-placeholder { \n color: #444;\n font-style: italic;\n}\n:-ms-input-placeholder { \n color: #444;\n font-style: italic;\n}\n:-moz-placeholder { \n color: #444;\n font-style: italic;\n}\n::placeholder {\n color: #444;\n font-style: italic;\n}\n\n\n/* list items content */\n\n.checklist li input[type=\"checkbox\"] {\n vertical-align: top;\n margin-top: 4px;\n}\n\n.checklist label {\n display: inline-block;\n position: relative;\n margin-left: -1em;\n padding-left: 0.4em;\n left: 1.4em;\n width: calc(100% - 2em - 20px);\n}\n\n.checklist > li:hover label, \n.checklist input[type=\"checkbox\"]:hover + button + label, \n.checklist input[type=\"checkbox\"]:focus + button + label {\n background-color: <<colour sidebar-tab-background>>;\n}\n\ninput:checked + .checklist-remove + label {\n opacity: 0.5;\n}\n\n.checklist li input + .checklist-remove:hover + label,\n.checklist li input + .checklist-remove:focus + label {\n background-color: rgba(255,0,0,0.25);\n opacity: 0.8;\n border-radius: 5px;\n}\n\n/* strike checked items only if set in user configuration */\n<$list filter=\"[[$:/plugins/tgrosinger/tw5-checklist/Configuration]field:strike-checked[true]]\">\ninput:checked + .checklist-remove + label {\n text-decoration: line-through;\n}\n</$list>\n\n\n/* buttons */\n\nbutton.checklist-add {\n position: relative;\n left: 0.75em;\n width: 18px;\n height: 18px;\n border-radius: 5px;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%221%22%20height%3D%227%22%20x%3D%225%22%20y%3D%222%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3Crect%20width%3D%227%22%20height%3D%221%22%20x%3D%222%22%20y%3D%225%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3C%2Fsvg%3E');\n background-size: 100%;\n}\n\nbutton.checklist-add:hover, button.checklist-add:focus {\n background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-remove {\n display: block;\n position: absolute;\n top: 2px;\n right: -6px;\n width: 18px;\n height: 18px;\n border-radius: 5px;\n color: <<colour sidebar-muted-foreground>>;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%225%22%20height%3D%221%22%20x%3D%223%22%20y%3D%225%22%20fill%3D%22%23444%22%2F%3E%0A%3C%2Fsvg%3E');\n background-size: 100%;\n/* background-color: <<colour sidebar-tab-background-selected>>; */\n border: 1px solid <<colour sidebar-tab-background>>;\n}\n\nul.checklist > li:hover button.checklist-remove {\n color: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton.checklist-remove:hover,\nbutton.checklist-remove:focus {\n color: <<colour dirty-indicator>>;\n background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-clearall {\n margin-top: 0.75em;\n}\n\nbutton.checklist-clearall::before {\n content: \"↻ \";\n}\n\n\n/* visualliy hidden, accessible for screen reader */\n\n.checklist-vh {\n position: absolute !important;\n clip: rect(1px, 1px, 1px, 1px);\n padding:0 !important;\n border:0 !important;\n height: 1px !important;\n width: 1px !important;\n overflow: hidden;\n}\n"
}
}
}
{
"tiddlers": {
"$:/config/HighlightPlugin/TypeMappings/application/javascript": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/javascript",
"text": "javascript"
},
"$:/config/HighlightPlugin/TypeMappings/application/json": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/json",
"text": "json"
},
"$:/config/HighlightPlugin/TypeMappings/text/css": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/css",
"text": "css"
},
"$:/config/HighlightPlugin/TypeMappings/text/html": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/html",
"text": "html"
},
"$:/config/HighlightPlugin/TypeMappings/image/svg+xml": {
"title": "$:/config/HighlightPlugin/TypeMappings/image/svg+xml",
"text": "xml"
},
"$:/config/HighlightPlugin/TypeMappings/text/x-markdown": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/x-markdown",
"text": "markdown"
},
"$:/plugins/tiddlywiki/highlight/highlight.js": {
"text": "var hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n/*! highlight.js v9.18.1 | BSD3 License | git.io/hljslicense */\n!function(e){var n=\"object\"==typeof window&&window||\"object\"==typeof self&&self;\"undefined\"==typeof exports||exports.nodeType?n&&(n.hljs=e({}),\"function\"==typeof define&&define.amd&&define([],function(){return n.hljs})):e(exports)}(function(a){var f=[],i=Object.keys,_={},c={},C=!0,n=/^(no-?highlight|plain|text)$/i,l=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=/((^(<[^>]+>|\\t|)+|(?:\\n)))/gm,r={case_insensitive:\"cI\",lexemes:\"l\",contains:\"c\",keywords:\"k\",subLanguage:\"sL\",className:\"cN\",begin:\"b\",beginKeywords:\"bK\",end:\"e\",endsWithParent:\"eW\",illegal:\"i\",excludeBegin:\"eB\",excludeEnd:\"eE\",returnBegin:\"rB\",returnEnd:\"rE\",variants:\"v\",IDENT_RE:\"IR\",UNDERSCORE_IDENT_RE:\"UIR\",NUMBER_RE:\"NR\",C_NUMBER_RE:\"CNR\",BINARY_NUMBER_RE:\"BNR\",RE_STARTERS_RE:\"RSR\",BACKSLASH_ESCAPE:\"BE\",APOS_STRING_MODE:\"ASM\",QUOTE_STRING_MODE:\"QSM\",PHRASAL_WORDS_MODE:\"PWM\",C_LINE_COMMENT_MODE:\"CLCM\",C_BLOCK_COMMENT_MODE:\"CBCM\",HASH_COMMENT_MODE:\"HCM\",NUMBER_MODE:\"NM\",C_NUMBER_MODE:\"CNM\",BINARY_NUMBER_MODE:\"BNM\",CSS_NUMBER_MODE:\"CSSNM\",REGEXP_MODE:\"RM\",TITLE_MODE:\"TM\",UNDERSCORE_TITLE_MODE:\"UTM\",COMMENT:\"C\",beginRe:\"bR\",endRe:\"eR\",illegalRe:\"iR\",lexemesRe:\"lR\",terminators:\"t\",terminator_end:\"tE\"},m=\"</span>\",O=\"Could not find the language '{}', did you forget to load/include a language module?\",B={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},o=\"of and for in not or if then\".split(\" \");function x(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")}function g(e){return e.nodeName.toLowerCase()}function u(e){return n.test(e)}function s(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function E(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:\"start\",offset:t,node:r}),t=e(r,t),g(r).match(/br|hr|img|input/)||a.push({event:\"stop\",offset:t,node:r}));return t}(e,0),a}function d(e,n,t){var r=0,a=\"\",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:\"start\"===n[0].event?e:n:e.length?e:n}function c(e){a+=\"<\"+g(e)+f.map.call(e.attributes,function(e){return\" \"+e.nodeName+'=\"'+x(e.value).replace(/\"/g,\""\")+'\"'}).join(\"\")+\">\"}function l(e){a+=\"</\"+g(e)+\">\"}function u(e){(\"start\"===e.event?c:l)(e.node)}for(;e.length||n.length;){var s=o();if(a+=x(t.substring(r,s[0].offset)),r=s[0].offset,s===e){for(i.reverse().forEach(l);u(s.splice(0,1)[0]),(s=o())===e&&s.length&&s[0].offset===r;);i.reverse().forEach(c)}else\"start\"===s[0].event?i.push(s[0].node):i.pop(),u(s.splice(0,1)[0])}return a+x(t.substr(r))}function R(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return s(n,{v:null},e)})),n.cached_variants?n.cached_variants:function e(n){return!!n&&(n.eW||e(n.starts))}(n)?[s(n,{starts:n.starts?s(n.starts):null})]:Object.isFrozen(n)?[s(n)]:[n]}function p(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(p)}}function v(n,r){var a={};return\"string\"==typeof n?t(\"keyword\",n):i(n).forEach(function(e){t(e,n[e])}),a;function t(t,e){r&&(e=e.toLowerCase()),e.split(\" \").forEach(function(e){var n=e.split(\"|\");a[n[0]]=[t,function(e,n){return n?Number(n):function(e){return-1!=o.indexOf(e.toLowerCase())}(e)?0:1}(n[0],n[1])]})}}function S(r){function s(e){return e&&e.source||e}function f(e,n){return new RegExp(s(e),\"m\"+(r.cI?\"i\":\"\")+(n?\"g\":\"\"))}function a(a){var i,e,o={},c=[],l={},t=1;function n(e,n){o[t]=e,c.push([e,n]),t+=function(e){return new RegExp(e.toString()+\"|\").exec(\"\").length-1}(n)+1}for(var r=0;r<a.c.length;r++){n(e=a.c[r],e.bK?\"\\\\.?(?:\"+e.b+\")\\\\.?\":e.b)}a.tE&&n(\"end\",a.tE),a.i&&n(\"illegal\",a.i);var u=c.map(function(e){return e[1]});return i=f(function(e,n){for(var t=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./,r=0,a=\"\",i=0;i<e.length;i++){var o=r+=1,c=s(e[i]);for(0<i&&(a+=n),a+=\"(\";0<c.length;){var l=t.exec(c);if(null==l){a+=c;break}a+=c.substring(0,l.index),c=c.substring(l.index+l[0].length),\"\\\\\"==l[0][0]&&l[1]?a+=\"\\\\\"+String(Number(l[1])+o):(a+=l[0],\"(\"==l[0]&&r++)}a+=\")\"}return a}(u,\"|\"),!0),l.lastIndex=0,l.exec=function(e){var n;if(0===c.length)return null;i.lastIndex=l.lastIndex;var t=i.exec(e);if(!t)return null;for(var r=0;r<t.length;r++)if(null!=t[r]&&null!=o[\"\"+r]){n=o[\"\"+r];break}return\"string\"==typeof n?(t.type=n,t.extra=[a.i,a.tE]):(t.type=\"begin\",t.rule=n),t},l}if(r.c&&-1!=r.c.indexOf(\"self\")){if(!C)throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");r.c=r.c.filter(function(e){return\"self\"!=e})}!function n(t,e){t.compiled||(t.compiled=!0,t.k=t.k||t.bK,t.k&&(t.k=v(t.k,r.cI)),t.lR=f(t.l||/\\w+/,!0),e&&(t.bK&&(t.b=\"\\\\b(\"+t.bK.split(\" \").join(\"|\")+\")\\\\b\"),t.b||(t.b=/\\B|\\b/),t.bR=f(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\\B|\\b/),t.e&&(t.eR=f(t.e)),t.tE=s(t.e)||\"\",t.eW&&e.tE&&(t.tE+=(t.e?\"|\":\"\")+e.tE)),t.i&&(t.iR=f(t.i)),null==t.relevance&&(t.relevance=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return R(\"self\"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e),t.t=a(t))}(r)}function T(n,e,a,t){var i=e;function o(e,n){if(function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.eW)return o(e.parent,n)}function c(e,n,t,r){if(!t&&\"\"===n)return\"\";if(!e)return n;var a='<span class=\"'+(r?\"\":B.classPrefix);return(a+=e+'\">')+n+(t?\"\":m)}function l(){p+=null!=d.sL?function(){var e=\"string\"==typeof d.sL;if(e&&!_[d.sL])return x(v);var n=e?T(d.sL,v,!0,R[d.sL]):w(v,d.sL.length?d.sL:void 0);return 0<d.relevance&&(M+=n.relevance),e&&(R[d.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!d.k)return x(v);for(r=\"\",n=0,d.lR.lastIndex=0,t=d.lR.exec(v);t;)r+=x(v.substring(n,t.index)),a=d,i=t,void 0,o=g.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(M+=e[1],r+=c(e[0],x(t[0]))):r+=x(t[0]),n=d.lR.lastIndex,t=d.lR.exec(v);return r+x(v.substr(n))}(),v=\"\"}function u(e){p+=e.cN?c(e.cN,\"\",!0):\"\",d=Object.create(e,{parent:{value:d}})}function s(e){var n=e[0],t=e.rule;return t&&t.endSameAsBegin&&(t.eR=function(e){return new RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),\"m\")}(n)),t.skip?v+=n:(t.eB&&(v+=n),l(),t.rB||t.eB||(v=n)),u(t),t.rB?0:n.length}var f={};function r(e,n){var t=n&&n[0];if(v+=e,null==t)return l(),0;if(\"begin\"==f.type&&\"end\"==n.type&&f.index==n.index&&\"\"===t)return v+=i.slice(n.index,n.index+1),1;if(\"begin\"===(f=n).type)return s(n);if(\"illegal\"===n.type&&!a)throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(d.cN||\"<unnamed>\")+'\"');if(\"end\"===n.type){var r=function(e){var n=e[0],t=i.substr(e.index),r=o(d,t);if(r){var a=d;for(a.skip?v+=n:(a.rE||a.eE||(v+=n),l(),a.eE&&(v=n));d.cN&&(p+=m),d.skip||d.sL||(M+=d.relevance),(d=d.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}}(n);if(null!=r)return r}return v+=t,t.length}var g=D(n);if(!g)throw console.error(O.replace(\"{}\",n)),new Error('Unknown language: \"'+n+'\"');S(g);var E,d=t||g,R={},p=\"\";for(E=d;E!==g;E=E.parent)E.cN&&(p=c(E.cN,\"\",!0)+p);var v=\"\",M=0;try{for(var b,h,N=0;d.t.lastIndex=N,b=d.t.exec(i);)h=r(i.substring(N,b.index),b),N=b.index+h;for(r(i.substr(N)),E=d;E.parent;E=E.parent)E.cN&&(p+=m);return{relevance:M,value:p,i:!1,language:n,top:d}}catch(e){if(e.message&&-1!==e.message.indexOf(\"Illegal\"))return{i:!0,relevance:0,value:x(i)};if(C)return{relevance:0,value:x(i),language:n,top:d,errorRaised:e};throw e}}function w(t,e){e=e||B.languages||i(_);var r={relevance:0,value:x(t)},a=r;return e.filter(D).filter(L).forEach(function(e){var n=T(e,t,!1);n.language=e,n.relevance>a.relevance&&(a=n),n.relevance>r.relevance&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function M(e){return B.tabReplace||B.useBR?e.replace(t,function(e,n){return B.useBR&&\"\\n\"===e?\"<br>\":B.tabReplace?n.replace(/\\t/g,B.tabReplace):\"\"}):e}function b(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=l.exec(i)){var o=D(t[1]);return o||(console.warn(O.replace(\"{}\",t[1])),console.warn(\"Falling back to no-highlight mode for this block.\",e)),o?t[1]:\"no-highlight\"}for(n=0,r=(i=i.split(/\\s+/)).length;n<r;n++)if(u(a=i[n])||D(a))return a}(e);u(o)||(B.useBR?(n=document.createElement(\"div\")).innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\"):n=e,i=n.textContent,r=o?T(o,i,!0):w(i),(t=E(n)).length&&((a=document.createElement(\"div\")).innerHTML=r.value,r.value=d(t,E(a),i)),r.value=M(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll(\"pre code\");f.forEach.call(e,b)}}var N={disableAutodetect:!0};function D(e){return e=(e||\"\").toLowerCase(),_[e]||_[c[e]]}function L(e){var n=D(e);return n&&!n.disableAutodetect}return a.highlight=T,a.highlightAuto=w,a.fixMarkup=M,a.highlightBlock=b,a.configure=function(e){B=s(B,e)},a.initHighlighting=h,a.initHighlightingOnLoad=function(){window.addEventListener(\"DOMContentLoaded\",h,!1),window.addEventListener(\"load\",h,!1)},a.registerLanguage=function(n,e){var t;try{t=e(a)}catch(e){if(console.error(\"Language definition for '{}' could not be registered.\".replace(\"{}\",n)),!C)throw e;console.error(e),t=N}p(_[n]=t),t.rawDefinition=e.bind(null,a),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return i(_)},a.getLanguage=D,a.requireLanguage=function(e){var n=D(e);if(n)return n;throw new Error(\"The '{}' language is required, but not loaded.\".replace(\"{}\",e))},a.autoDetection=L,a.inherit=s,a.debugMode=function(){C=!1},a.IR=a.IDENT_RE=\"[a-zA-Z]\\\\w*\",a.UIR=a.UNDERSCORE_IDENT_RE=\"[a-zA-Z_]\\\\w*\",a.NR=a.NUMBER_RE=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",a.CNR=a.C_NUMBER_RE=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",a.BNR=a.BINARY_NUMBER_RE=\"\\\\b(0b[01]+)\",a.RSR=a.RE_STARTERS_RE=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",a.BE=a.BACKSLASH_ESCAPE={b:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},a.ASM=a.APOS_STRING_MODE={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:\"comment\",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",relevance:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C(\"//\",\"$\"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C(\"/\\\\*\",\"\\\\*/\"),a.HCM=a.HASH_COMMENT_MODE=a.C(\"#\",\"$\"),a.NM=a.NUMBER_MODE={cN:\"number\",b:a.NR,relevance:0},a.CNM=a.C_NUMBER_MODE={cN:\"number\",b:a.CNR,relevance:0},a.BNM=a.BINARY_NUMBER_MODE={cN:\"number\",b:a.BNR,relevance:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:\"number\",b:a.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",relevance:0},a.RM=a.REGEXP_MODE={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[a.BE,{b:/\\[/,e:/\\]/,relevance:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:\"title\",b:a.IR,relevance:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:\"title\",b:a.UIR,relevance:0},a.METHOD_GUARD={b:\"\\\\.\\\\s*\"+a.UIR,relevance:0},[a.BE,a.ASM,a.QSM,a.PWM,a.C,a.CLCM,a.CBCM,a.HCM,a.NM,a.CNM,a.BNM,a.CSSNM,a.RM,a.TM,a.UTM,a.METHOD_GUARD].forEach(function(e){!function n(t){Object.freeze(t);var r=\"function\"==typeof t;Object.getOwnPropertyNames(t).forEach(function(e){!t.hasOwnProperty(e)||null===t[e]||\"object\"!=typeof t[e]&&\"function\"!=typeof t[e]||r&&(\"caller\"===e||\"callee\"===e||\"arguments\"===e)||Object.isFrozen(t[e])||n(t[e])});return t}(e)}),a});hljs.registerLanguage(\"swift\",function(e){var i={keyword:\"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet\",literal:\"true false nil\",built_in:\"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip\"},t=e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),n={cN:\"subst\",b:/\\\\\\(/,e:\"\\\\)\",k:i,c:[]},r={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/\"/,e:/\"/}]},a={cN:\"number\",b:\"\\\\b([\\\\d_]+(\\\\.[\\\\deE_]+)?|0x[a-fA-F0-9_]+(\\\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\\\b\",relevance:0};return n.c=[a],{k:i,c:[r,e.CLCM,t,{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*[!?]\"},{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*\",relevance:0},a,{cN:\"function\",bK:\"func\",e:\"{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{b:/</,e:/>/},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:i,c:[\"self\",a,r,e.CBCM,{b:\":\"}],i:/[\"']/}],i:/\\[|%/},{cN:\"class\",bK:\"struct protocol class extension enum\",k:i,e:\"\\\\{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/})]},{cN:\"meta\",b:\"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\"},{bK:\"import\",e:/$/,c:[e.CLCM,t]}]}});hljs.registerLanguage(\"less\",function(e){function r(e){return{cN:\"string\",b:\"~?\"+e+\".*?\"+e}}function t(e,r,t){return{cN:e,b:r,relevance:t}}var a=\"[\\\\w-]+\",c=\"(\"+a+\"|@{\"+a+\"})\",s=[],n=[],b={b:\"\\\\(\",e:\"\\\\)\",c:n,relevance:0};n.push(e.CLCM,e.CBCM,r(\"'\"),r('\"'),e.CSSNM,{b:\"(url|data-uri)\\\\(\",starts:{cN:\"string\",e:\"[\\\\)\\\\n]\",eE:!0}},t(\"number\",\"#[0-9A-Fa-f]+\\\\b\"),b,t(\"variable\",\"@@?\"+a,10),t(\"variable\",\"@{\"+a+\"}\"),t(\"built_in\",\"~?`[^`]*?`\"),{cN:\"attribute\",b:a+\"\\\\s*:\",e:\":\",rB:!0,eE:!0},{cN:\"meta\",b:\"!important\"});var i=n.concat({b:\"{\",e:\"}\",c:s}),l={bK:\"when\",eW:!0,c:[{bK:\"and not\"}].concat(n)},o={b:c+\"\\\\s*:\",rB:!0,e:\"[;}]\",relevance:0,c:[{cN:\"attribute\",b:c,e:\":\",eE:!0,starts:{eW:!0,i:\"[<=$]\",relevance:0,c:n}}]},u={cN:\"keyword\",b:\"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b\",starts:{e:\"[;{}]\",rE:!0,c:n,relevance:0}},v={cN:\"variable\",v:[{b:\"@\"+a+\"\\\\s*:\",relevance:15},{b:\"@\"+a}],starts:{e:\"[;}]\",rE:!0,c:i}},C={v:[{b:\"[\\\\.#:&\\\\[>]\",e:\"[;{}]\"},{b:c,e:\"{\"}],rB:!0,rE:!0,i:\"[<='$\\\"]\",relevance:0,c:[e.CLCM,e.CBCM,l,t(\"keyword\",\"all\\\\b\"),t(\"variable\",\"@{\"+a+\"}\"),t(\"selector-tag\",c+\"%?\",0),t(\"selector-id\",\"#\"+c),t(\"selector-class\",\"\\\\.\"+c,0),t(\"selector-tag\",\"&\",0),{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\"},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"\\\\(\",e:\"\\\\)\",c:i},{b:\"!important\"}]};return s.push(e.CLCM,e.CBCM,u,v,o,C),{cI:!0,i:\"[=>'/<($\\\"]\",c:s}});hljs.registerLanguage(\"armasm\",function(s){return{cI:!0,aliases:[\"arm\"],l:\"\\\\.?\"+s.IR,k:{meta:\".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND \",built_in:\"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @\"},c:[{cN:\"keyword\",b:\"\\\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?\",e:\"\\\\s\"},s.C(\"[;@]\",\"$\",{relevance:0}),s.CBCM,s.QSM,{cN:\"string\",b:\"'\",e:\"[^\\\\\\\\]'\",relevance:0},{cN:\"title\",b:\"\\\\|\",e:\"\\\\|\",i:\"\\\\n\",relevance:0},{cN:\"number\",v:[{b:\"[#$=]?0x[0-9a-f]+\"},{b:\"[#$=]?0b[01]+\"},{b:\"[#$=]\\\\d+\"},{b:\"\\\\b\\\\d+\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+\"},{b:\"^\\\\s*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:\"},{b:\"[=#]\\\\w+\"}],relevance:0}]}});hljs.registerLanguage(\"ruby\",function(e){var c=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",b={keyword:\"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",literal:\"true false nil\"},r={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={b:\"#<\",e:\">\"},n=[e.C(\"#\",\"$\",{c:[r]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[r],relevance:10}),e.C(\"^__END__\",\"\\\\n$\")],s={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:b},t={cN:\"string\",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/},{b:/<<[-~]?'?(\\w+)(?:.|\\n)*?\\n\\s*\\1\\b/,rB:!0,c:[{b:/<<[-~]?'?/},{b:/\\w+/,endSameAsBegin:!0,c:[e.BE,s]}]}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",endsParent:!0,k:b},l=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{b:\"<\\\\s*\",c:[{b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(n)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:c}),i].concat(n)},{b:e.IR+\"::\"},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",relevance:0},{cN:\"symbol\",b:\":(?!\\\\s)\",c:[t,{b:c}],relevance:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{cN:\"params\",b:/\\|/,e:/\\|/,k:b},{b:\"(\"+e.RSR+\"|unless)\\\\s*\",k:\"unless\",c:[a,{cN:\"regexp\",c:[e.BE,s],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(n),relevance:0}].concat(n);s.c=l;var d=[{b:/^\\s*=>/,starts:{e:\"$\",c:i.c=l}},{cN:\"meta\",b:\"^([>?]>|[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>|(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>)\",starts:{e:\"$\",c:l}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:b,i:/\\/\\*/,c:n.concat(d).concat(l)}});hljs.registerLanguage(\"lua\",function(e){var t=\"\\\\[=*\\\\[\",a=\"\\\\]=*\\\\]\",n={b:t,e:a,c:[\"self\"]},l=[e.C(\"--(?!\"+t+\")\",\"$\"),e.C(\"--\"+t,a,{c:[n],relevance:10})];return{l:e.UIR,k:{literal:\"true false nil\",keyword:\"and break do else elseif end for goto if in local not or repeat return then until while\",built_in:\"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstringmodule next pairs pcall print rawequal rawget rawset require select setfenvsetmetatable tonumber tostring type unpack xpcall arg selfcoroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove\"},c:l.concat([{cN:\"function\",bK:\"function\",e:\"\\\\)\",c:[e.inherit(e.TM,{b:\"([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*\"}),{cN:\"params\",b:\"\\\\(\",eW:!0,c:l}].concat(l)},e.CNM,e.ASM,e.QSM,{cN:\"string\",b:t,e:a,c:[n],relevance:5}])}});hljs.registerLanguage(\"matlab\",function(e){var a=\"('|\\\\.')+\",s={relevance:0,c:[{b:a}]};return{k:{keyword:\"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while\",built_in:\"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell \"},i:'(//|\"|#|/\\\\*|\\\\s+/\\\\w+)',c:[{cN:\"function\",bK:\"function\",e:\"$\",c:[e.UTM,{cN:\"params\",v:[{b:\"\\\\(\",e:\"\\\\)\"},{b:\"\\\\[\",e:\"\\\\]\"}]}]},{cN:\"built_in\",b:/true|false/,relevance:0,starts:s},{b:\"[a-zA-Z][a-zA-Z_0-9]*\"+a,relevance:0},{cN:\"number\",b:e.CNR,relevance:0,starts:s},{cN:\"string\",b:\"'\",e:\"'\",c:[e.BE,{b:\"''\"}]},{b:/\\]|}|\\)/,relevance:0,starts:s},{cN:\"string\",b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}],starts:s},e.C(\"^\\\\s*\\\\%\\\\{\\\\s*$\",\"^\\\\s*\\\\%\\\\}\\\\s*$\"),e.C(\"\\\\%\",\"$\")]}});hljs.registerLanguage(\"apache\",function(e){var r={cN:\"number\",b:\"[\\\\$%]\\\\d+\"};return{aliases:[\"apacheconf\"],cI:!0,c:[e.HCM,{cN:\"section\",b:\"</?\",e:\">\"},{cN:\"attribute\",b:/\\w+/,relevance:0,k:{nomarkup:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{e:/$/,relevance:0,k:{literal:\"on off all\"},c:[{cN:\"meta\",b:\"\\\\s\\\\[\",e:\"\\\\]$\"},{cN:\"variable\",b:\"[\\\\$%]\\\\{\",e:\"\\\\}\",c:[\"self\",r]},r,e.QSM]}}],i:/\\S/}});hljs.registerLanguage(\"yaml\",function(e){var b=\"true false yes no null\",a={cN:\"string\",relevance:0,v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/\\S+/}],c:[e.BE,{cN:\"template-variable\",v:[{b:\"{{\",e:\"}}\"},{b:\"%{\",e:\"}\"}]}]};return{cI:!0,aliases:[\"yml\",\"YAML\",\"yaml\"],c:[{cN:\"attr\",v:[{b:\"\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)\"},{b:'\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)'},{b:\"'\\\\w[\\\\w :\\\\/.-]*':(?=[ \\t]|$)\"}]},{cN:\"meta\",b:\"^---s*$\",relevance:10},{cN:\"string\",b:\"[\\\\|>]([0-9]?[+-])?[ ]*\\\\n( *)[\\\\S ]+\\\\n(\\\\2[\\\\S ]+\\\\n?)*\"},{b:\"<%[%=-]?\",e:\"[%-]?%>\",sL:\"ruby\",eB:!0,eE:!0,relevance:0},{cN:\"type\",b:\"!\"+e.UIR},{cN:\"type\",b:\"!!\"+e.UIR},{cN:\"meta\",b:\"&\"+e.UIR+\"$\"},{cN:\"meta\",b:\"\\\\*\"+e.UIR+\"$\"},{cN:\"bullet\",b:\"\\\\-(?=[ ]|$)\",relevance:0},e.HCM,{bK:b,k:{literal:b}},{cN:\"number\",b:e.CNR+\"\\\\b\"},a]}});hljs.registerLanguage(\"plaintext\",function(e){return{disableAutodetect:!0}});hljs.registerLanguage(\"erlang-repl\",function(e){return{k:{built_in:\"spawn spawn_link self\",keyword:\"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor\"},c:[{cN:\"meta\",b:\"^[0-9]+> \",relevance:10},e.C(\"%\",\"$\"),{cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},e.ASM,e.QSM,{b:\"\\\\?(::)?([A-Z]\\\\w*(::)?)+\"},{b:\"->\"},{b:\"ok\"},{b:\"!\"},{b:\"(\\\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\\\b[a-z'][a-zA-Z0-9_']*)\",relevance:0},{b:\"[A-Z][a-zA-Z0-9_']*\",relevance:0}]}});hljs.registerLanguage(\"cmake\",function(e){return{aliases:[\"cmake.in\"],cI:!0,k:{keyword:\"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined\"},c:[{cN:\"variable\",b:\"\\\\${\",e:\"}\"},e.HCM,e.QSM,e.NM]}});hljs.registerLanguage(\"kotlin\",function(e){var t={keyword:\"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default\",built_in:\"Byte Short Char Int Long Boolean Float Double Void Unit Nothing\",literal:\"true false null\"},a={cN:\"symbol\",b:e.UIR+\"@\"},n={cN:\"subst\",b:\"\\\\${\",e:\"}\",c:[e.CNM]},c={cN:\"variable\",b:\"\\\\$\"+e.UIR},r={cN:\"string\",v:[{b:'\"\"\"',e:'\"\"\"(?=[^\"])',c:[c,n]},{b:\"'\",e:\"'\",i:/\\n/,c:[e.BE]},{b:'\"',e:'\"',i:/\\n/,c:[e.BE,c,n]}]};n.c.push(r);var i={cN:\"meta\",b:\"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*\"+e.UIR+\")?\"},l={cN:\"meta\",b:\"@\"+e.UIR,c:[{b:/\\(/,e:/\\)/,c:[e.inherit(r,{cN:\"meta-string\"})]}]},s={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0},b=e.C(\"/\\\\*\",\"\\\\*/\",{c:[e.CBCM]}),o={v:[{cN:\"type\",b:e.UIR},{b:/\\(/,e:/\\)/,c:[]}]},d=o;return d.v[1].c=[o],o.v[1].c=[d],{aliases:[\"kt\"],k:t,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,b,{cN:\"keyword\",b:/\\b(break|continue|return|this)\\b/,starts:{c:[{cN:\"symbol\",b:/@\\w+/}]}},a,i,l,{cN:\"function\",bK:\"fun\",e:\"[(]|$\",rB:!0,eE:!0,k:t,i:/fun\\s+(<.*>)?[^\\s\\(]+(\\s+[^\\s\\(]+)\\s*=/,relevance:5,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"type\",b:/</,e:/>/,k:\"reified\",relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:t,relevance:0,c:[{b:/:/,e:/[=,\\/]/,eW:!0,c:[o,e.CLCM,b],relevance:0},e.CLCM,b,i,l,r,e.CNM]},b]},{cN:\"class\",bK:\"class interface trait\",e:/[:\\{(]|$/,eE:!0,i:\"extends implements\",c:[{bK:\"public protected internal private constructor\"},e.UTM,{cN:\"type\",b:/</,e:/>/,eB:!0,eE:!0,relevance:0},{cN:\"type\",b:/[,:]\\s*/,e:/[<\\(,]|$/,eB:!0,rE:!0},i,l]},r,{cN:\"meta\",b:\"^#!/usr/bin/env\",e:\"$\",i:\"\\n\"},s]}});hljs.registerLanguage(\"javascript\",function(e){var r=\"<>\",a=\"</>\",t={b:/<[A-Za-z0-9\\\\._:-]+/,e:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/},c=\"[A-Za-z$_][0-9A-Za-z$_]*\",n={keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:n,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},b={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},l={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};o.c=[e.ASM,e.QSM,i,b,l,s,e.RM];var u=o.c.concat([e.CBCM,e.CLCM]);return{aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],k:n,c:[{cN:\"meta\",relevance:10,b:/^\\s*['\"]use (strict|asm)['\"]/},{cN:\"meta\",b:/^#!/,e:/$/},e.ASM,e.QSM,i,b,l,e.CLCM,e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\",c:[{cN:\"type\",b:\"\\\\{\",e:\"\\\\}\",relevance:0},{cN:\"variable\",b:c+\"(?=\\\\s*(-)|$)\",endsParent:!0,relevance:0},{b:/(?=[^\\n])\\s/,relevance:0}]}]}),e.CBCM,s,{b:/[{,\\n]\\s*/,relevance:0,c:[{b:c+\"\\\\s*:\",rB:!0,relevance:0,c:[{cN:\"attr\",b:c,relevance:0}]}]},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+c+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:c},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:n,c:u}]}]},{cN:\"\",b:/\\s/,e:/\\s*/,skip:!0},{v:[{b:r,e:a},{b:t.b,e:t.e}],sL:\"xml\",c:[{b:t.b,e:t.e,skip:!0,c:[\"self\"]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:c}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:u}],i:/\\[|%/},{b:/\\$[(.]/},e.METHOD_GUARD,{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]},{bK:\"constructor get set\",e:/\\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage(\"scss\",function(e){var t=\"@[a-z-]+\",r={cN:\"variable\",b:\"(\\\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\\\b\"},i={cN:\"number\",b:\"#[0-9A-Fa-f]+\"};e.CSSNM,e.QSM,e.ASM,e.CBCM;return{cI:!0,i:\"[=/|']\",c:[e.CLCM,e.CBCM,{cN:\"selector-id\",b:\"\\\\#[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-class\",b:\"\\\\.[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\",i:\"$\"},{cN:\"selector-tag\",b:\"\\\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\\\b\",relevance:0},{cN:\"selector-pseudo\",b:\":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)\"},{cN:\"selector-pseudo\",b:\"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)\"},r,{cN:\"attribute\",b:\"\\\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\\\b\",i:\"[^\\\\s]\"},{b:\"\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b\"},{b:\":\",e:\";\",c:[r,i,e.CSSNM,e.QSM,e.ASM,{cN:\"meta\",b:\"!important\"}]},{b:\"@(page|font-face)\",l:t,k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",rB:!0,k:\"and or not only\",c:[{b:t,cN:\"keyword\"},r,e.QSM,e.ASM,i,e.CSSNM]}]}});hljs.registerLanguage(\"perl\",function(e){var t=\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\",r={cN:\"subst\",b:\"[$@]\\\\{\",e:\"\\\\}\",k:t},s={b:\"->{\",e:\"}\"},n={v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,relevance:0}]},c=[e.BE,r,n],a=[n,e.HCM,e.C(\"^\\\\=\\\\w\",\"\\\\=cut\",{eW:!0}),s,{cN:\"string\",c:c,v:[{b:\"q[qwxr]?\\\\s*\\\\(\",e:\"\\\\)\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\[\",e:\"\\\\]\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\{\",e:\"\\\\}\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\|\",e:\"\\\\|\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\<\",e:\"\\\\>\",relevance:5},{b:\"qw\\\\s+q\",e:\"q\",relevance:5},{b:\"'\",e:\"'\",c:[e.BE]},{b:'\"',e:'\"'},{b:\"`\",e:\"`\",c:[e.BE]},{b:\"{\\\\w+}\",c:[],relevance:0},{b:\"-?\\\\w+\\\\s*\\\\=\\\\>\",c:[],relevance:0}]},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\/\\\\/|\"+e.RSR+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",k:\"split return print reverse grep\",relevance:0,c:[e.HCM,{cN:\"regexp\",b:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",relevance:10},{cN:\"regexp\",b:\"(m|qr)?/\",e:\"/[a-z]*\",c:[e.BE],relevance:0}]},{cN:\"function\",bK:\"sub\",e:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",eE:!0,relevance:5,c:[e.TM]},{b:\"-\\\\w\\\\b\",relevance:0},{b:\"^__DATA__$\",e:\"^__END__$\",sL:\"mojolicious\",c:[{b:\"^@@.*\",e:\"$\",cN:\"comment\"}]}];return r.c=a,{aliases:[\"pl\",\"pm\"],l:/[\\w\\.]+/,k:t,c:s.c=a}});hljs.registerLanguage(\"go\",function(e){var n={keyword:\"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune\",literal:\"true false iota nil\",built_in:\"append cap close complex copy imag len make new panic print println real recover delete\"};return{aliases:[\"golang\"],k:n,i:\"</\",c:[e.CLCM,e.CBCM,{cN:\"string\",v:[e.QSM,e.ASM,{b:\"`\",e:\"`\"}]},{cN:\"number\",v:[{b:e.CNR+\"[i]\",relevance:1},e.CNM]},{b:/:=/},{cN:\"function\",bK:\"func\",e:\"\\\\s*(\\\\{|$)\",eE:!0,c:[e.TM,{cN:\"params\",b:/\\(/,e:/\\)/,k:n,i:/[\"']/}]}]}});hljs.registerLanguage(\"x86asm\",function(s){return{cI:!0,l:\"[.%]?\"+s.IR,k:{keyword:\"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63\",built_in:\"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr\",meta:\"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__\"},c:[s.C(\";\",\"$\",{relevance:0}),{cN:\"number\",v:[{b:\"\\\\b(?:([0-9][0-9_]*)?\\\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\\\b\",relevance:0},{b:\"\\\\$[0-9][0-9A-Fa-f]*\",relevance:0},{b:\"\\\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\\\b\"},{b:\"\\\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\\\b\"}]},s.QSM,{cN:\"string\",v:[{b:\"'\",e:\"[^\\\\\\\\]'\"},{b:\"`\",e:\"[^\\\\\\\\]`\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)\"},{b:\"^\\\\s*%%[A-Za-z0-9_$#@~.?]*:\"}],relevance:0},{cN:\"subst\",b:\"%[0-9]+\",relevance:0},{cN:\"subst\",b:\"%!S+\",relevance:0},{cN:\"meta\",b:/^\\s*\\.[\\w_-]+/}]}});hljs.registerLanguage(\"cpp\",function(e){function t(e){return\"(?:\"+e+\")?\"}var r=\"decltype\\\\(auto\\\\)\",a=\"[a-zA-Z_]\\\\w*::\",i=\"(\"+r+\"|\"+t(a)+\"[a-zA-Z_]\\\\w*\"+t(\"<.*?>\")+\")\",c={cN:\"keyword\",b:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},s={cN:\"string\",v:[{b:'(u8?|U|L)?\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"(u8?|U|L)?'(\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)|.)\",e:\"'\",i:\".\"},{b:/(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\((?:.|\\n)*?\\)\\1\"/}]},n={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},o={cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(s,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},l={cN:\"title\",b:t(a)+e.IR,relevance:0},u=t(a)+e.IR+\"\\\\s*\\\\(\",p={keyword:\"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_tshort reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq\",built_in:\"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary\",literal:\"true false nullptr NULL\"},m=[c,e.CLCM,e.CBCM,n,s],d={v:[{b:/=/,e:/;/},{b:/\\(/,e:/\\)/},{bK:\"new throw return else\",e:/;/}],k:p,c:m.concat([{b:/\\(/,e:/\\)/,k:p,c:m.concat([\"self\"]),relevance:0}]),relevance:0},b={cN:\"function\",b:\"(\"+i+\"[\\\\*&\\\\s]+)+\"+u,rB:!0,e:/[{;=]/,eE:!0,k:p,i:/[^\\w\\s\\*&:<>]/,c:[{b:r,k:p,relevance:0},{b:u,rB:!0,c:[l],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:p,relevance:0,c:[e.CLCM,e.CBCM,s,n,c,{b:/\\(/,e:/\\)/,k:p,relevance:0,c:[\"self\",e.CLCM,e.CBCM,s,n,c]}]},c,e.CLCM,e.CBCM,o]};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\",\"hh\",\"hxx\",\"cxx\"],k:p,i:\"</\",c:[].concat(d,b,m,[o,{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:p,c:[\"self\",c]},{b:e.IR+\"::\",k:p},{cN:\"class\",bK:\"class struct\",e:/[{;:]/,c:[{b:/</,e:/>/,c:[\"self\"]},e.TM]}]),exports:{preprocessor:o,strings:s,k:p}}});hljs.registerLanguage(\"arduino\",function(e){var t=\"boolean byte word String\",r=\"setup loopKeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put\",i=\"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW\",o=e.requireLanguage(\"cpp\").rawDefinition(),a=o.k;return a.keyword+=\" \"+t,a.literal+=\" \"+i,a.built_in+=\" \"+r,o});hljs.registerLanguage(\"nginx\",function(e){var r={cN:\"variable\",v:[{b:/\\$\\d+/},{b:/\\$\\{/,e:/}/},{b:\"[\\\\$\\\\@]\"+e.UIR}]},b={eW:!0,l:\"[a-z/_]+\",k:{literal:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},relevance:0,i:\"=>\",c:[e.HCM,{cN:\"string\",c:[e.BE,r],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/}]},{b:\"([a-z]+):/\",e:\"\\\\s\",eW:!0,eE:!0,c:[r]},{cN:\"regexp\",c:[e.BE,r],v:[{b:\"\\\\s\\\\^\",e:\"\\\\s|{|;\",rE:!0},{b:\"~\\\\*?\\\\s+\",e:\"\\\\s|{|;\",rE:!0},{b:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{b:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{cN:\"number\",b:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{cN:\"number\",b:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",relevance:0},r]};return{aliases:[\"nginxconf\"],c:[e.HCM,{b:e.UIR+\"\\\\s+{\",rB:!0,e:\"{\",c:[{cN:\"section\",b:e.UIR}],relevance:0},{b:e.UIR+\"\\\\s\",e:\";|{\",rB:!0,c:[{cN:\"attribute\",b:e.UIR,starts:b}],relevance:0}],i:\"[^\\\\s\\\\}]\"}});hljs.registerLanguage(\"xml\",function(e){var c={cN:\"symbol\",b:\"&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;\"},s={b:\"\\\\s\",c:[{cN:\"meta-keyword\",b:\"#?[a-z_][a-z1-9_-]+\",i:\"\\\\n\"}]},a=e.inherit(s,{b:\"\\\\(\",e:\"\\\\)\"}),t=e.inherit(e.ASM,{cN:\"meta-string\"}),l=e.inherit(e.QSM,{cN:\"meta-string\"}),r={eW:!0,i:/</,relevance:0,c:[{cN:\"attr\",b:\"[A-Za-z0-9\\\\._:-]+\",relevance:0},{b:/=\\s*/,relevance:0,c:[{cN:\"string\",endsParent:!0,v:[{b:/\"/,e:/\"/,c:[c]},{b:/'/,e:/'/,c:[c]},{b:/[^\\s\"'=<>`]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],cI:!0,c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",relevance:10,c:[s,l,t,a,{b:\"\\\\[\",e:\"\\\\]\",c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",c:[s,a,l,t]}]}]},e.C(\"\\x3c!--\",\"--\\x3e\",{relevance:10}),{b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",relevance:10},c,{cN:\"meta\",b:/<\\?xml/,e:/\\?>/,relevance:10},{b:/<\\?(php)?/,e:/\\?>/,sL:\"php\",c:[{b:\"/\\\\*\",e:\"\\\\*/\",skip:!0},{b:'b\"',e:'\"',skip:!0},{b:\"b'\",e:\"'\",skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:\"tag\",b:\"<style(?=\\\\s|>)\",e:\">\",k:{name:\"style\"},c:[r],starts:{e:\"</style>\",rE:!0,sL:[\"css\",\"xml\"]}},{cN:\"tag\",b:\"<script(?=\\\\s|>)\",e:\">\",k:{name:\"script\"},c:[r],starts:{e:\"<\\/script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\",\"xml\"]}},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"name\",b:/[^\\/><\\s]+/,relevance:0},r]}]}});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"section\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",relevance:0},{cN:\"bullet\",b:\"^\\\\s*([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",relevance:0}]},{cN:\"quote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"^```\\\\w*\\\\s*$\",e:\"^```[ ]*$\"},{b:\"`.+?`\"},{b:\"^( {4}|\\\\t)\",e:\"$\",relevance:0}]},{b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,relevance:0},{cN:\"link\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"symbol\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],relevance:10},{b:/^\\[[^\\n]+\\]:/,rB:!0,c:[{cN:\"symbol\",b:/\\[/,e:/\\]/,eB:!0,eE:!0},{cN:\"link\",b:/:\\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage(\"properties\",function(e){var r=\"[ \\\\t\\\\f]*\",t=\"(\"+r+\"[:=]\"+r+\"|[ \\\\t\\\\f]+)\",n=\"([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",a=\"([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",c={e:t,relevance:0,starts:{cN:\"string\",e:/$/,relevance:0,c:[{b:\"\\\\\\\\\\\\n\"}]}};return{cI:!0,i:/\\S/,c:[e.C(\"^\\\\s*[!#]\",\"$\"),{b:n+t,rB:!0,c:[{cN:\"attr\",b:n,endsParent:!0,relevance:0}],starts:c},{b:a+t,rB:!0,relevance:0,c:[{cN:\"meta\",b:a,endsParent:!0,relevance:0}],starts:c},{cN:\"attr\",relevance:0,b:a+r+\"$\"}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},a={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]};return{aliases:[\"sh\",\"zsh\"],l:/\\b-?[a-z\\._]+\\b/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",_:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"meta\",b:/^#![^\\n]+sh\\s*$/,relevance:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],relevance:0},e.HCM,a,{cN:\"\",b:/\\\\\"/},{cN:\"string\",b:/'/,e:/'/},t]}});hljs.registerLanguage(\"dockerfile\",function(e){return{aliases:[\"docker\"],cI:!0,k:\"from maintainer expose env arg user onbuild stopsignal\",c:[e.HCM,e.ASM,e.QSM,e.NM,{bK:\"run cmd entrypoint volume add copy workdir label healthcheck shell\",starts:{e:/[^\\\\]$/,sL:\"bash\"}}],i:\"</\"}});hljs.registerLanguage(\"python\",function(e){var r={keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10\",built_in:\"Ellipsis NotImplemented\",literal:\"False None True\"},b={cN:\"meta\",b:/^(>>>|\\.\\.\\.) /},c={cN:\"subst\",b:/\\{/,e:/\\}/,k:r,i:/#/},a={b:/\\{\\{/,relevance:0},l={cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,b],relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[e.BE,b],relevance:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,b,a,c]},{b:/(fr|rf|f)\"\"\"/,e:/\"\"\"/,c:[e.BE,b,a,c]},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,a,c]},{b:/(fr|rf|f)\"/,e:/\"/,c:[e.BE,a,c]},e.ASM,e.QSM]},n={cN:\"number\",relevance:0,v:[{b:e.BNR+\"[lLjJ]?\"},{b:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{b:e.CNR+\"[lLjJ]?\"}]},i={cN:\"params\",b:/\\(/,e:/\\)/,c:[\"self\",b,n,l,e.HCM]};return c.c=[l,n,b],{aliases:[\"py\",\"gyp\",\"ipython\"],k:r,i:/(<\\/|->|\\?)|=>/,c:[b,n,{bK:\"if\",relevance:0},l,e.HCM,{v:[{cN:\"function\",bK:\"def\"},{cN:\"class\",bK:\"class\"}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,i,{b:/->/,eW:!0,k:\"None\"}]},{cN:\"meta\",b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}});hljs.registerLanguage(\"ini\",function(e){var b={cN:\"number\",relevance:0,v:[{b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},{b:e.NR}]},a=e.C();a.v=[{b:/;/,e:/$/},{b:/#/,e:/$/}];var c={cN:\"variable\",v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},r={cN:\"literal\",b:/\\bon|off|true|false|yes|no\\b/},n={cN:\"string\",c:[e.BE],v:[{b:\"'''\",e:\"'''\",relevance:10},{b:'\"\"\"',e:'\"\"\"',relevance:10},{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]};return{aliases:[\"toml\"],cI:!0,i:/\\S/,c:[a,{cN:\"section\",b:/\\[+/,e:/\\]+/},{b:/^[a-z0-9\\[\\]_\\.-]+(?=\\s*=\\s*)/,cN:\"attr\",starts:{e:/$/,c:[a,{b:/\\[/,e:/\\]/,c:[a,r,c,n,b,\"self\"],relevance:0},r,c,n,b]}}]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"meta\",relevance:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"comment\",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\\-{3}/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+{3}/,e:/$/},{b:/^\\*{15}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"addition\",b:\"^\\\\!\",e:\"$\"}]}});hljs.registerLanguage(\"http\",function(e){var t=\"HTTP/[0-9\\\\.]+\";return{aliases:[\"https\"],i:\"\\\\S\",c:[{b:\"^\"+t,e:\"$\",c:[{cN:\"number\",b:\"\\\\b\\\\d{3}\\\\b\"}]},{b:\"^[A-Z]+ (.*?) \"+t+\"$\",rB:!0,e:\"$\",c:[{cN:\"string\",b:\" \",e:\" \",eB:!0,eE:!0},{b:t},{cN:\"keyword\",b:\"[A-Z]+\"}]},{cN:\"attribute\",b:\"^\\\\w\",e:\": \",eE:!0,i:\"\\\\n|\\\\s|=\",starts:{e:\"$\",relevance:0}},{b:\"\\\\n\\\\n\",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage(\"sql\",function(e){var t=e.C(\"--\",\"$\");return{cI:!0,i:/[<>{}*]/,c:[{bK:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with\",e:/;/,eW:!0,l:/[\\w\\.]+/,k:{keyword:\"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null unknown\",built_in:\"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void\"},c:[{cN:\"string\",b:\"'\",e:\"'\",c:[{b:\"''\"}]},{cN:\"string\",b:'\"',e:'\"',c:[{b:'\"\"'}]},{cN:\"string\",b:\"`\",e:\"`\"},e.CNM,e.CBCM,t,e.HCM]},e.CBCM,t,e.HCM]}});hljs.registerLanguage(\"vala\",function(e){return{k:{keyword:\"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var\",built_in:\"DBus GLib CCode Gee Object Gtk Posix\",literal:\"false true null\"},c:[{cN:\"class\",bK:\"class interface namespace\",e:\"{\",eE:!0,i:\"[^,:\\\\n\\\\s\\\\.]\",c:[e.UTM]},e.CLCM,e.CBCM,{cN:\"string\",b:'\"\"\"',e:'\"\"\"',relevance:5},e.ASM,e.QSM,e.CNM,{cN:\"meta\",b:\"^#\",e:\"$\",relevance:2}]}});hljs.registerLanguage(\"asciidoc\",function(e){return{aliases:[\"adoc\"],c:[e.C(\"^/{4,}\\\\n\",\"\\\\n/{4,}$\",{relevance:10}),e.C(\"^//\",\"$\",{relevance:0}),{cN:\"title\",b:\"^\\\\.\\\\w.*$\"},{b:\"^[=\\\\*]{4,}\\\\n\",e:\"\\\\n^[=\\\\*]{4,}$\",relevance:10},{cN:\"section\",relevance:10,v:[{b:\"^(={1,5}) .+?( \\\\1)?$\"},{b:\"^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$\"}]},{cN:\"meta\",b:\"^:.+?:\",e:\"\\\\s\",eE:!0,relevance:10},{cN:\"meta\",b:\"^\\\\[.+?\\\\]$\",relevance:0},{cN:\"quote\",b:\"^_{4,}\\\\n\",e:\"\\\\n_{4,}$\",relevance:10},{cN:\"code\",b:\"^[\\\\-\\\\.]{4,}\\\\n\",e:\"\\\\n[\\\\-\\\\.]{4,}$\",relevance:10},{b:\"^\\\\+{4,}\\\\n\",e:\"\\\\n\\\\+{4,}$\",c:[{b:\"<\",e:\">\",sL:\"xml\",relevance:0}],relevance:10},{cN:\"bullet\",b:\"^(\\\\*+|\\\\-+|\\\\.+|[^\\\\n]+?::)\\\\s+\"},{cN:\"symbol\",b:\"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+\",relevance:10},{cN:\"strong\",b:\"\\\\B\\\\*(?![\\\\*\\\\s])\",e:\"(\\\\n{2}|\\\\*)\",c:[{b:\"\\\\\\\\*\\\\w\",relevance:0}]},{cN:\"emphasis\",b:\"\\\\B'(?!['\\\\s])\",e:\"(\\\\n{2}|')\",c:[{b:\"\\\\\\\\'\\\\w\",relevance:0}],relevance:0},{cN:\"emphasis\",b:\"_(?![_\\\\s])\",e:\"(\\\\n{2}|_)\",relevance:0},{cN:\"string\",v:[{b:\"``.+?''\"},{b:\"`.+?'\"}]},{cN:\"code\",b:\"(`.+?`|\\\\+.+?\\\\+)\",relevance:0},{cN:\"code\",b:\"^[ \\\\t]\",e:\"$\",relevance:0},{b:\"^'{3,}[ \\\\t]*$\",relevance:10},{b:\"(link:)?(http|https|ftp|file|irc|image:?):\\\\S+\\\\[.*?\\\\]\",rB:!0,c:[{b:\"(link|image:?):\",relevance:0},{cN:\"link\",b:\"\\\\w\",e:\"[^\\\\[]+\",relevance:0},{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,eE:!0,relevance:0}],relevance:10}]}});hljs.registerLanguage(\"json\",function(e){var i={literal:\"true false null\"},n=[e.CLCM,e.CBCM],c=[e.QSM,e.CNM],r={e:\",\",eW:!0,eE:!0,c:c,k:i},t={b:\"{\",e:\"}\",c:[{cN:\"attr\",b:/\"/,e:/\"/,c:[e.BE],i:\"\\\\n\"},e.inherit(r,{b:/:/})].concat(n),i:\"\\\\S\"},a={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(r)],i:\"\\\\S\"};return c.push(t,a),n.forEach(function(e){c.push(e)}),{c:c,k:i,i:\"\\\\S\"}});hljs.registerLanguage(\"rust\",function(e){var t=\"([ui](8|16|32|64|128|size)|f(32|64))?\",r=\"drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!\";return{aliases:[\"rs\"],k:{keyword:\"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield\",literal:\"true false Some None Ok Err\",built_in:r},l:e.IR+\"!?\",i:\"</\",c:[e.CLCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),e.inherit(e.QSM,{b:/b?\"/,i:null}),{cN:\"string\",v:[{b:/r(#*)\"(.|\\n)*?\"\\1(?!#)/},{b:/b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/}]},{cN:\"symbol\",b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:\"number\",v:[{b:\"\\\\b0b([01_]+)\"+t},{b:\"\\\\b0o([0-7_]+)\"+t},{b:\"\\\\b0x([A-Fa-f0-9_]+)\"+t},{b:\"\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)\"+t}],relevance:0},{cN:\"function\",bK:\"fn\",e:\"(\\\\(|<)\",eE:!0,c:[e.UTM]},{cN:\"meta\",b:\"#\\\\!?\\\\[\",e:\"\\\\]\",c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{cN:\"class\",bK:\"type\",e:\";\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"\\\\S\"},{cN:\"class\",bK:\"trait enum struct union\",e:\"{\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"[\\\\w\\\\d]\"},{b:e.IR+\"::\",k:{built_in:r}},{b:\"->\"}]}});hljs.registerLanguage(\"awk\",function(e){return{k:{keyword:\"BEGIN END if else while do for in break continue delete next nextfile function func exit|10\"},c:[{cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},{cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,relevance:10},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},e.RM,e.HCM,e.NM]}});hljs.registerLanguage(\"java\",function(e){var a=\"false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do\",t={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0};return{aliases:[\"jsp\"],k:a,i:/<\\/|#/,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{b:/\\w+@/,relevance:0},{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:\"class\",bK:\"class interface\",e:/[{;=]/,eE:!0,k:\"class interface\",i:/[:\"\\[\\]]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"new throw return else\",relevance:0},{cN:\"function\",b:\"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\\\s*,\\\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\\\s+)+\"+e.UIR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:a,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"params\",b:/\\(/,e:/\\)/,k:a,relevance:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},t,{cN:\"meta\",b:\"@[A-Za-z]+\"}]}});hljs.registerLanguage(\"cs\",function(e){var a={keyword:\"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield\",literal:\"null false true\"},i={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},c={cN:\"string\",b:'@\"',e:'\"',c:[{b:'\"\"'}]},r=e.inherit(c,{i:/\\n/}),n={cN:\"subst\",b:\"{\",e:\"}\",k:a},t=e.inherit(n,{i:/\\n/}),s={cN:\"string\",b:/\\$\"/,e:'\"',i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},e.BE,t]},l={cN:\"string\",b:/\\$@\"/,e:'\"',c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},n]},b=e.inherit(l,{i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},t]});n.c=[l,s,c,e.ASM,e.QSM,i,e.CBCM],t.c=[b,s,r,e.ASM,e.QSM,i,e.inherit(e.CBCM,{i:/\\n/})];var o={v:[l,s,c,e.ASM,e.QSM]},d=e.IR+\"(<\"+e.IR+\"(\\\\s*,\\\\s*\"+e.IR+\")*>)?(\\\\[\\\\])?\";return{aliases:[\"csharp\",\"c#\"],k:a,i:/::/,c:[e.C(\"///\",\"$\",{rB:!0,c:[{cN:\"doctag\",v:[{b:\"///\",relevance:0},{b:\"\\x3c!--|--\\x3e\"},{b:\"</?\",e:\">\"}]}]}),e.CLCM,e.CBCM,{cN:\"meta\",b:\"#\",e:\"$\",k:{\"meta-keyword\":\"if else elif endif define undef warning error line region endregion pragma checksum\"}},o,i,{bK:\"class interface\",e:/[{;=]/,i:/[^\\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:\"namespace\",e:/[{;=]/,i:/[^\\s:]/,c:[e.inherit(e.TM,{b:\"[a-zA-Z](\\\\.?\\\\w)*\"}),e.CLCM,e.CBCM]},{cN:\"meta\",b:\"^\\\\s*\\\\[\",eB:!0,e:\"\\\\]\",eE:!0,c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{bK:\"new return throw await else\",relevance:0},{cN:\"function\",b:\"(\"+d+\"\\\\s+)+\"+e.IR+\"\\\\s*\\\\(\",rB:!0,e:/\\s*[{;=]/,eE:!0,k:a,c:[{b:e.IR+\"\\\\s*\\\\(\",rB:!0,c:[e.TM],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:a,relevance:0,c:[o,i,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage(\"mathematica\",function(e){return{aliases:[\"mma\",\"wl\"],l:\"(\\\\$|\\\\b)\"+e.IR+\"\\\\b\",k:\"AASTriangle AbelianGroup Abort AbortKernels AbortProtect AbortScheduledTask Above Abs AbsArg AbsArgPlot Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AcceptanceThreshold AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Activate Active ActiveClassification ActiveClassificationObject ActiveItem ActivePrediction ActivePredictionObject ActiveStyle AcyclicGraphQ AddOnHelpPath AddSides AddTo AddToSearchIndex AddUsers AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AdministrativeDivisionData AffineHalfSpace AffineSpace AffineStateSpaceModel AffineTransform After AggregatedEntityClass AggregationLayer AircraftData AirportData AirPressureData AirTemperatureData AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowAdultContent AllowedCloudExtraParameters AllowedCloudParameterExtensions AllowedDimensions AllowedFrequencyRange AllowedHeads AllowGroupClose AllowIncomplete AllowInlineCells AllowKernelInitialization AllowLooseGrammar AllowReverseGroupClose AllowScriptLevelChange AllTrue Alphabet AlphabeticOrder AlphabeticSort AlphaChannel AlternateImage AlternatingFactorial AlternatingGroup AlternativeHypothesis Alternatives AltitudeMethod AmbientLight AmbiguityFunction AmbiguityList Analytic AnatomyData AnatomyForm AnatomyPlot3D AnatomySkinStyle AnatomyStyling AnchoredSearch And AndersonDarlingTest AngerJ AngleBisector AngleBracket AnglePath AnglePath3D AngleVector AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning AnimationRunTime AnimationTimeIndex Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotate Annotation AnnotationDelete AnnotationNames AnnotationRules AnnotationValue Annuity AnnuityDue Annulus AnomalyDetection AnomalyDetectorFunction Anonymous Antialiasing AntihermitianMatrixQ Antisymmetric AntisymmetricMatrixQ Antonyms AnyOrder AnySubset AnyTrue Apart ApartSquareFree APIFunction Appearance AppearanceElements AppearanceRules AppellF1 Append AppendCheck AppendLayer AppendTo ApplicationIdentificationKey Apply ApplySides ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcCurvature ARCHProcess ArcLength ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Area Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess Around AroundReplace ARProcess Array ArrayComponents ArrayDepth ArrayFilter ArrayFlatten ArrayMesh ArrayPad ArrayPlot ArrayQ ArrayResample ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads ASATriangle Ask AskAppend AskConfirm AskDisplay AskedQ AskedValue AskFunction AskState AskTemplateDisplay AspectRatio AspectRatioFixed Assert AssociateTo Association AssociationFormat AssociationMap AssociationQ AssociationThread AssumeDeterministic Assuming Assumptions AstronomicalData AsymptoticDSolveValue AsymptoticEqual AsymptoticEquivalent AsymptoticGreater AsymptoticGreaterEqual AsymptoticIntegrate AsymptoticLess AsymptoticLessEqual AsymptoticOutputTracker AsymptoticRSolveValue AsymptoticSolve AsymptoticSum Asynchronous AsynchronousTaskObject AsynchronousTasks Atom AtomCoordinates AtomCount AtomDiagramCoordinates AtomList AtomQ AttentionLayer Attributes Audio AudioAmplify AudioAnnotate AudioAnnotationLookup AudioBlockMap AudioCapture AudioChannelAssignment AudioChannelCombine AudioChannelMix AudioChannels AudioChannelSeparate AudioData AudioDelay AudioDelete AudioDevice AudioDistance AudioFade AudioFrequencyShift AudioGenerator AudioIdentify AudioInputDevice AudioInsert AudioIntervals AudioJoin AudioLabel AudioLength AudioLocalMeasurements AudioLooping AudioLoudness AudioMeasurements AudioNormalize AudioOutputDevice AudioOverlay AudioPad AudioPan AudioPartition AudioPause AudioPitchShift AudioPlay AudioPlot AudioQ AudioRecord AudioReplace AudioResample AudioReverb AudioSampleRate AudioSpectralMap AudioSpectralTransformation AudioSplit AudioStop AudioStream AudioStreams AudioTimeStretch AudioTrim AudioType AugmentedPolyhedron AugmentedSymmetricPolynomial Authenticate Authentication AuthenticationDialog AutoAction Autocomplete AutocompletionFunction AutoCopy AutocorrelationTest AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutoQuoteCharacters AutoRefreshed AutoRemove AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords AutoSubmitting Axes AxesEdge AxesLabel AxesOrigin AxesStyle AxiomaticTheory AxisBabyMonsterGroupB Back Background BackgroundAppearance BackgroundTasksSettings Backslash Backsubstitution Backward Ball Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarcodeImage BarcodeRecognize BaringhausHenzeTest BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseDecode BaseEncode BaseForm Baseline BaselinePosition BaseStyle BasicRecurrentLayer BatchNormalizationLayer BatchSize BatesDistribution BattleLemarieWavelet BayesianMaximization BayesianMaximizationObject BayesianMinimization BayesianMinimizationObject Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized Between BetweennessCentrality BeveledPolyhedron BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryDeserialize BinaryDistance BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinarySerialize BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BiquadraticFilterModel BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor BiweightLocation BiweightMidvariance Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockchainAddressData BlockchainBase BlockchainBlockData BlockchainContractValue BlockchainData BlockchainGet BlockchainKeyEncode BlockchainPut BlockchainTokenData BlockchainTransaction BlockchainTransactionData BlockchainTransactionSign BlockchainTransactionSubmit BlockMap BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bond BondCount BondList BondQ Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms BooleanQ BooleanRegion Booleans BooleanStrings BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryDiscretizeGraphics BoundaryDiscretizeRegion BoundaryMesh BoundaryMeshRegion BoundaryMeshRegionQ BoundaryStyle BoundedRegionQ BoundingRegion Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxObject BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break BridgeData BrightnessEqualize BroadcastStationData Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurve3DBoxOptions BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BSplineSurface3DBoxOptions BubbleChart BubbleChart3D BubbleScale BubbleSizes BuildingData BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteArray ByteArrayFormat ByteArrayQ ByteArrayToString ByteCount ByteOrderingC CachedValue CacheGraphics CachePersistence CalendarConvert CalendarData CalendarType Callout CalloutMarker CalloutStyle CallPacket CanberraDistance Cancel CancelButton CandlestickChart CanonicalGraph CanonicalizePolygon CanonicalizePolyhedron CanonicalName CanonicalWarpingCorrespondence CanonicalWarpingDistance CantorMesh CantorStaircase Cap CapForm CapitalDifferentialD Capitalize CapsuleShape CaptureRunning CardinalBSplineBasis CarlemanLinearize CarmichaelLambda CaseOrdering Cases CaseSensitive Cashflow Casoratian Catalan CatalanNumber Catch Catenate CatenateLayer CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling CelestialSystem Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEvaluationLanguage CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellLabelStyle CellLabelTemplate CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterArray CenterDot CentralFeature CentralMoment CentralMomentGeneratingFunction Cepstrogram CepstrogramArray CepstrumArray CForm ChampernowneNumber ChangeOptions ChannelBase ChannelBrokerAction ChannelDatabin ChannelHistoryLength ChannelListen ChannelListener ChannelListeners ChannelListenerWait ChannelObject ChannelPreSendFunction ChannelReceiverFunction ChannelSend ChannelSubscribers ChanVeseBinarize Character CharacterCounts CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterName CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop ChromaticityPlot ChromaticityPlot3D ChromaticPolynomial Circle CircleBox CircleDot CircleMinus CirclePlus CirclePoints CircleThrough CircleTimes CirculantGraph CircularOrthogonalMatrixDistribution CircularQuaternionMatrixDistribution CircularRealMatrixDistribution CircularSymplecticMatrixDistribution CircularUnitaryMatrixDistribution Circumsphere CityData ClassifierFunction ClassifierInformation ClassifierMeasurements ClassifierMeasurementsObject Classify ClassPriors Clear ClearAll ClearAttributes ClearCookies ClearPermissions ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipPlanesStyle ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent CloudAccountData CloudBase CloudConnect CloudDeploy CloudDirectory CloudDisconnect CloudEvaluate CloudExport CloudExpression CloudExpressions CloudFunction CloudGet CloudImport CloudLoggingData CloudObject CloudObjectInformation CloudObjectInformationData CloudObjectNameFormat CloudObjects CloudObjectURLType CloudPublish CloudPut CloudRenderingMethod CloudSave CloudShare CloudSubmit CloudSymbol CloudUnshare ClusterClassify ClusterDissimilarityFunction ClusteringComponents ClusteringTree CMYKColor Coarse CodeAssistOptions Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorBalance ColorCombine ColorConvert ColorCoverage ColorData ColorDataFunction ColorDetect ColorDistance ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQ ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorsNear ColorSpace ColorToneMapping Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CombinedEntityClass CombinerFunction CometData CommonDefaultFormatTypes Commonest CommonestFilter CommonName CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompanyData CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledCodeFunction CompiledFunction CompilerOptions Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComplexListPlot ComplexPlot ComplexPlot3D ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries CompositeQ Composition CompoundElement CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData ComputeUncertainty Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath ConformAudio ConformImages Congruent ConicHullRegion ConicHullRegion3DBox ConicHullRegionBox ConicOptimization Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphComponents ConnectedGraphQ ConnectedMeshComponents ConnectedMoleculeComponents ConnectedMoleculeQ ConnectionSettings ConnectLibraryCallbackFunction ConnectSystemModelComponents ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray ConstantArrayLayer ConstantImage ConstantPlusLayer ConstantRegionQ Constants ConstantTimesLayer ConstellationData ConstrainedMax ConstrainedMin Construct Containing ContainsAll ContainsAny ContainsExactly ContainsNone ContainsOnly ContentFieldOptions ContentLocationFunction ContentObject ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTask ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean ContrastiveLossLayer Control ControlActive ControlAlignment ControlGroupContentsBox ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket ConvexHullMesh ConvexPolygonQ ConvexPolyhedronQ ConvolutionLayer Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CookieFunction Cookies CoordinateBoundingBox CoordinateBoundingBoxArray CoordinateBounds CoordinateBoundsArray CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDatabin CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CountDistinct CountDistinctBy CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Counts CountsBy Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateCellID CreateChannel CreateCloudExpression CreateDatabin CreateDataSystemModel CreateDialog CreateDirectory CreateDocument CreateFile CreateIntermediateDirectories CreateManagedLibraryExpression CreateNotebook CreatePalette CreatePalettePacket CreatePermissionsGroup CreateScheduledTask CreateSearchIndex CreateSystemModel CreateTemporary CreateUUID CreateWindow CriterionFunction CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossEntropyLossLayer CrossingCount CrossingDetect CrossingPolygon CrossMatrix Csc Csch CTCLossLayer Cube CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrencyConvert CurrentDate CurrentImage CurrentlySpeakingPacket CurrentNotebookImage CurrentScreenImage CurrentValue Curry CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecompositionD DagumDistribution DamData DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DatabaseConnect DatabaseDisconnect DatabaseReference Databin DatabinAdd DatabinRemove Databins DatabinUpload DataCompression DataDistribution DataRange DataReversed Dataset Date DateBounds Dated DateDelimiters DateDifference DatedUnit DateFormat DateFunction DateHistogram DateList DateListLogPlot DateListPlot DateListStepPlot DateObject DateObjectQ DateOverlapsQ DatePattern DatePlus DateRange DateReduction DateString DateTicksFormat DateValue DateWithinQ DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayHemisphere DaylightQ DayMatchQ DayName DayNightTerminator DayPlus DayRange DayRound DeBruijnGraph DeBruijnSequence Debug DebugTag Decapitalize Decimal DecimalForm DeclareKnownSymbols DeclarePackage Decompose DeconvolutionLayer Decrement Decrypt DecryptFile DedekindEta DeepSpaceProbeData Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultPrintPrecision DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValue DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod DefineResourceFunction Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic DEigensystem DEigenvalues Deinitialization Del DelaunayMesh Delayed Deletable Delete DeleteAnomalies DeleteBorderComponents DeleteCases DeleteChannel DeleteCloudExpression DeleteContents DeleteDirectory DeleteDuplicates DeleteDuplicatesBy DeleteFile DeleteMissing DeleteObject DeletePermissionsKey DeleteSearchIndex DeleteSmallComponents DeleteStopwords DeleteWithContents DeletionWarning DelimitedArray DelimitedSequence Delimiter DelimiterFlashTime DelimiterMatching Delimiters DeliveryFunction Dendrogram Denominator DensityGraphics DensityHistogram DensityPlot DensityPlot3D DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DerivedKey DescriptorStateSpace DesignMatrix DestroyAfterEvaluation Det DeviceClose DeviceConfigure DeviceExecute DeviceExecuteAsynchronous DeviceObject DeviceOpen DeviceOpenQ DeviceRead DeviceReadBuffer DeviceReadLatest DeviceReadList DeviceReadTimeSeries Devices DeviceStreams DeviceWrite DeviceWriteBuffer DGaussianWavelet DiacriticalPositioning Diagonal DiagonalizableMatrixQ DiagonalMatrix DiagonalMatrixQ Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DictionaryWordQ DifferenceDelta DifferenceOrder DifferenceQuotient DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitalSignature DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralAngle DihedralGroup Dilation DimensionalCombinations DimensionalMeshComponents DimensionReduce DimensionReducerFunction DimensionReduction Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletBeta DirichletCharacter DirichletCondition DirichletConvolve DirichletDistribution DirichletEta DirichletL DirichletLambda DirichletTransform DirichletWindow DisableConsolePrintPacket DisableFormatting DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLimit DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscreteMaxLimit DiscreteMinLimit DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform DiscretizeGraphics DiscretizeRegion Discriminant DisjointQ Disjunction Disk DiskBox DiskMatrix DiskSegment Dispatch DispatchQ DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceMatrix DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers DivideSides Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentGenerator DocumentGeneratorInformation DocumentGeneratorInformationData DocumentGenerators DocumentNotebook DocumentWeightingRules Dodecahedron DomainRegistrationInformation DominantColors DOSTextFormat Dot DotDashed DotEqual DotLayer DotPlusLayer Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DropoutLayer DSolve DSolveValue Dt DualLinearProgramming DualPolyhedron DualSystemsModel DumpGet DumpSave DuplicateFreeQ Duration Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicGeoGraphics DynamicImage DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptionsE EarthImpactData EarthquakeData EccentricityCentrality Echo EchoFunction EclipseType EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeContract EdgeCost EdgeCount EdgeCoverQ EdgeCycleMatrix EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight EdgeWeightedGraphQ Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData ElementwiseLayer ElidedForms Eliminate EliminationOrder Ellipsoid EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmbedCode EmbeddedHTML EmbeddedService EmbeddingLayer EmbeddingObject EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EmptyRegion EnableConsolePrintPacket Enabled Encode Encrypt EncryptedObject EncryptFile End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfBuffer EndOfFile EndOfLine EndOfString EndPackage EngineEnvironment EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entity EntityClass EntityClassList EntityCopies EntityFunction EntityGroup EntityInstance EntityList EntityPrefetch EntityProperties EntityProperty EntityPropertyClass EntityRegister EntityStore EntityStores EntityTypeName EntityUnregister EntityValue Entropy EntropyFilter Environment Epilog EpilogFunction Equal EqualColumns EqualRows EqualTilde EqualTo EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EscapeRadius EstimatedBackground EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerAngles EulerCharacteristic EulerE EulerGamma EulerianGraphQ EulerMatrix EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluateScheduledTask EvaluationBox EvaluationCell EvaluationCompletionAction EvaluationData EvaluationElements EvaluationEnvironment EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels EventSeries ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludedLines ExcludedPhysicalQuantities ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog ExoplanetData Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi ExpirationDate Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportByteArray ExportForm ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpressionUUID ExpToTrig ExtendedEntityClass ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalBundle ExternalCall ExternalDataCharacterEncoding ExternalEvaluate ExternalFunction ExternalFunctionName ExternalObject ExternalOptions ExternalSessionObject ExternalSessions ExternalTypeSignature ExternalValue Extract ExtractArchive ExtractLayer ExtremeValueDistributionFaceForm FaceGrids FaceGridsStyle FacialFeatures Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail Failure FailureAction FailureDistribution FailureQ False FareySequence FARIMAProcess FeatureDistance FeatureExtract FeatureExtraction FeatureExtractor FeatureExtractorFunction FeatureNames FeatureNearest FeatureSpacePlot FeatureSpacePlot3D FeatureTypes FEDisableConsolePrintPacket FeedbackLinearize FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket FetalGrowthData Fibonacci Fibonorial FieldCompletionFunction FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileConvert FileDate FileExistsQ FileExtension FileFormat FileHandler FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameForms FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileSize FileSystemMap FileSystemScan FileTemplate FileTemplateApply FileType FilledCurve FilledCurveBox FilledCurveBoxOptions Filling FillingStyle FillingTransform FilteredEntityClass FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindAnomalies FindArgMax FindArgMin FindChannels FindClique FindClusters FindCookies FindCurvePath FindCycle FindDevices FindDistribution FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEdgeIndependentPaths FindEquationalProof FindEulerianCycle FindExternalEvaluators FindFaces FindFile FindFit FindFormula FindFundamentalCycles FindGeneratingFunction FindGeoLocation FindGeometricConjectures FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindHamiltonianPath FindHiddenMarkovStates FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMatchingColor FindMaximum FindMaximumFlow FindMaxValue FindMeshDefects FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindMoleculeSubstructure FindPath FindPeaks FindPermutation FindPostmanTour FindProcessParameters FindRepeat FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindSpanningTree FindSystemModelEquilibrium FindTextualAnswer FindThreshold FindTransientRepeat FindVertexCover FindVertexCut FindVertexIndependentPaths Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstCase FirstPassageTimeDistribution FirstPosition FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FitRegularization FittedModel FixedOrder FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlattenLayer FlatTopWindow FlipView Floor FlowPolynomial FlushPrintOutputPacket Fold FoldList FoldPair FoldPairList FollowRedirects Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FormControl FormFunction FormLayoutFunction FormObject FormPage FormTheme FormulaData FormulaLookup FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalGaussianNoiseProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameRate FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrenetSerretSystem FrequencySamplingFilterKernel FresnelC FresnelF FresnelG FresnelS Friday FrobeniusNumber FrobeniusSolve FromAbsoluteTime FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS FromEntity FromJulianDate FromLetterNumber FromPolarCoordinates FromRomanNumeral FromSphericalCoordinates FromUnixTime Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullInformationOutputRegulator FullOptions FullRegion FullSimplify Function FunctionCompile FunctionCompileExport FunctionCompileExportByteArray FunctionCompileExportLibrary FunctionCompileExportString FunctionDomain FunctionExpand FunctionInterpolation FunctionPeriod FunctionRange FunctionSpace FussellVeselyImportanceGaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins GalaxyData GalleryView Gamma GammaDistribution GammaRegularized GapPenalty GARCHProcess GatedRecurrentLayer Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianOrthogonalMatrixDistribution GaussianSymplecticMatrixDistribution GaussianUnitaryMatrixDistribution GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateAsymmetricKeyPair GenerateConditions GeneratedCell GeneratedDocumentBinding GenerateDerivedKey GenerateDigitalSignature GenerateDocument GeneratedParameters GeneratedQuantityMagnitudes GenerateHTTPResponse GenerateSecuredAuthenticationKey GenerateSymmetricKey GeneratingFunction GeneratorDescription GeneratorHistoryLength GeneratorOutputType Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeoAntipode GeoArea GeoArraySize GeoBackground GeoBoundingBox GeoBounds GeoBoundsRegion GeoBubbleChart GeoCenter GeoCircle GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDisk GeoDisplacement GeoDistance GeoDistanceList GeoElevationData GeoEntities GeoGraphics GeogravityModelData GeoGridDirectionDifference GeoGridLines GeoGridLinesStyle GeoGridPosition GeoGridRange GeoGridRangePadding GeoGridUnitArea GeoGridUnitDistance GeoGridVector GeoGroup GeoHemisphere GeoHemisphereBoundary GeoHistogram GeoIdentify GeoImage GeoLabels GeoLength GeoListPlot GeoLocation GeologicalPeriodData GeomagneticModelData GeoMarker GeometricAssertion GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricScene GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoModel GeoNearest GeoPath GeoPosition GeoPositionENU GeoPositionXYZ GeoProjection GeoProjectionData GeoRange GeoRangePadding GeoRegionValuePlot GeoResolution GeoScaleBar GeoServer GeoSmoothHistogram GeoStreamPlot GeoStyling GeoStylingImageFunction GeoVariant GeoVector GeoVectorENU GeoVectorPlot GeoVectorXYZ GeoVisibleRegion GeoVisibleRegionBoundary GeoWithinQ GeoZoomLevel GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenAngle GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter GrammarApply GrammarRules GrammarToken Graph Graph3D GraphAssortativity GraphAutomorphismGroup GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel Greater GreaterEqual GreaterEqualLess GreaterEqualThan GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterThan GreaterTilde Green GreenFunction Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupBy GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators Groupings GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain GroupTogetherGrouping GroupTogetherNestedGrouping GrowCutComponents Gudermannian GuidedFilter GumbelDistributionHaarWavelet HadamardMatrix HalfLine HalfNormalDistribution HalfPlane HalfSpace HamiltonianGraphQ HammingDistance HammingWindow HandlerFunctions HandlerFunctionsKeys HankelH1 HankelH2 HankelMatrix HankelTransform HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash Haversine HazardFunction Head HeadCompose HeaderLines Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings Here HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenMarkovProcess HiddenSurface Highlighted HighlightGraph HighlightImage HighlightMesh HighpassFilter HigmanSimsGroupHS HilbertCurve HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HistoricalPeriodData HitMissTransform HITSCentrality HjorthDistribution HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HostLookup HotellingTSquareDistribution HoytDistribution HTMLSave HTTPErrorResponse HTTPRedirect HTTPRequest HTTPRequestData HTTPResponse Hue HumanGrowthData HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyperplane Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestDataI IconData Iconize IconizedObject IconRules Icosahedron Identity IdentityMatrix If IgnoreCase IgnoreDiacritics IgnorePunctuation IgnoreSpellCheck IgnoringInactive Im Image Image3D Image3DProjection Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageApplyIndexed ImageAspectRatio ImageAssemble ImageAugmentationLayer ImageBoundingBoxes ImageCache ImageCacheValid ImageCapture ImageCaptureFunction ImageCases ImageChannels ImageClip ImageCollage ImageColorSpace ImageCompose ImageContainsQ ImageContents ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDisplacements ImageDistance ImageEffect ImageExposureCombine ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageFocusCombine ImageForestingComponents ImageFormattingWidth ImageForwardTransformation ImageGraphics ImageHistogram ImageIdentify ImageInstanceQ ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarker ImageMarkers ImageMeasurements ImageMesh ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImagePosition ImagePreviewFunction ImagePyramid ImagePyramidApply ImageQ ImageRangeCache ImageRecolor ImageReflect ImageRegion ImageResize ImageResolution ImageRestyle ImageRotate ImageRotated ImageSaliencyFilter ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions ImagingDevice ImplicitRegion Implies Import ImportAutoReplacements ImportByteArray ImportOptions ImportString ImprovementImportance In Inactivate Inactive IncidenceGraph IncidenceList IncidenceMatrix IncludeAromaticBonds IncludeConstantBasis IncludeDefinitions IncludeDirectories IncludeFileExtension IncludeGeneratorTasks IncludeHydrogens IncludeInflections IncludeMetaInformation IncludePods IncludeQuantities IncludeRelatedTables IncludeSingularTerm IncludeWindowTimes Increment IndefiniteMatrixQ Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentPhysicalQuantity IndependentUnit IndependentUnitDimension IndependentVertexSetQ Indeterminate IndeterminateThreshold IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers InfiniteLine InfinitePlane Infinity Infix InflationAdjust InflationMethod Information InformationData InformationDataGrid Inherited InheritScope InhomogeneousPoissonProcess InitialEvaluationHistory Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InitializationObjects InitializationValue Initialize InitialSeeding InlineCounterAssignments InlineCounterIncrements InlineRules Inner InnerPolygon InnerPolyhedron Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionFunction InsertionPointObject InsertLinebreaks InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Insphere Install InstallService InstanceNormalizationLayer InString Integer IntegerDigits IntegerExponent IntegerLength IntegerName IntegerPart IntegerPartitions IntegerQ IntegerReverse Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction Interpreter InterpretTemplate InterquartileRange Interrupt InterruptSettings IntersectingQ Intersection Interval IntervalIntersection IntervalMarkers IntervalMarkersStyle IntervalMemberQ IntervalSlider IntervalUnion Into Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHankelTransform InverseHaversine InverseImagePyramid InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InverseMellinTransform InversePermutation InverseRadon InverseRadonTransform InverseSeries InverseShortTimeFourier InverseSpectrogram InverseSurvivalFunction InverseTransformedRegion InverseWaveletTransform InverseWeierstrassP InverseWishartMatrixDistribution InverseZTransform Invisible InvisibleApplication InvisibleTimes IPAddress IrreduciblePolynomialQ IslandData IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemAspectRatio ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcessJaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join JoinAcross Joined JoinedCurve JoinedCurveBox JoinedCurveBoxOptions JoinForm JordanDecomposition JordanModelDecomposition JulianDate JuliaSetBoettcher JuliaSetIterationCount JuliaSetPlot JuliaSetPointsK KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KEdgeConnectedComponents KEdgeConnectedGraphQ KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelFunction KernelMixtureDistribution Kernels Ket Key KeyCollisionFunction KeyComplement KeyDrop KeyDropFrom KeyExistsQ KeyFreeQ KeyIntersection KeyMap KeyMemberQ KeypointStrength Keys KeySelect KeySort KeySortBy KeyTake KeyUnion KeyValueMap KeyValuePattern Khinchin KillProcess KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnapsackSolve KnightTourGraph KnotData KnownUnitQ KochCurve KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter KVertexConnectedComponents KVertexConnectedGraphQLABColor Label Labeled LabeledSlider LabelingFunction LabelingSize LabelStyle LabelVisibility LaguerreL LakeData LambdaComponents LambertW LaminaData LanczosWindow LandauDistribution Language LanguageCategory LanguageData LanguageIdentify LanguageOptions LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCHColor LCM LeaderSize LeafCount LeapYearQ LearnDistribution LearnedDistribution LearningRate LearningRateMultipliers LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessEqualThan LessFullEqual LessGreater LessLess LessSlantEqual LessThan LessTilde LetterCharacter LetterCounts LetterNumber LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryDataType LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox Line3DBoxOptions LinearFilter LinearFractionalOptimization LinearFractionalTransform LinearGradientImage LinearizingTransformationData LinearLayer LinearModelFit LinearOffsetFunction LinearOptimization LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBoxOptions LineBreak LinebreakAdjustments LineBreakChart LinebreakSemicolonWeighting LineBreakWithin LineColor LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRankCentrality LinkRead LinkReadHeld LinkReadyQ Links LinkService LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot ListDensityPlot3D Listen ListFormat ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListSliceContourPlot3D ListSliceDensityPlot3D ListSliceVectorPlot3D ListStepPlot ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalAdaptiveBinarize LocalCache LocalClusteringCoefficient LocalizeDefinitions LocalizeVariables LocalObject LocalObjects LocalResponseNormalizationLayer LocalSubmit LocalSymbol LocalTime LocalTimeZone LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogisticSigmoid LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongestOrderedSequence LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow LongShortTermMemoryLayer Lookup Loopback LoopFreeGraphQ LossFunction LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowerTriangularMatrixQ LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LunarEclipse LUVColor LyapunovSolve LyonsGroupLyMachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MailAddressValidation MailExecute MailFolder MailItem MailReceiverFunction MailResponseFunction MailSearch MailServerConnect MailServerConnection MailSettings MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules ManagedLibraryExpressionID ManagedLibraryExpressionQ MandelbrotSetBoettcher MandelbrotSetDistance MandelbrotSetIterationCount MandelbrotSetMemberQ MandelbrotSetPlot MangoldtLambda ManhattanDistance Manipulate Manipulator MannedSpaceMissionData MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarchenkoPasturDistribution MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicalFunctionData MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixNormalDistribution MatrixPlot MatrixPower MatrixPropertyDistribution MatrixQ MatrixRank MatrixTDistribution Max MaxBend MaxCellMeasure MaxColorDistance MaxDetect MaxDuration MaxExtraBandwidths MaxExtraConditions MaxFeatureDisplacement MaxFeatures MaxFilter MaximalBy Maximize MaxItems MaxIterations MaxLimit MaxMemoryUsed MaxMixtureKernels MaxOverlapFraction MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxTrainingRounds MaxValue MaxwellDistribution MaxWordGap McLaughlinGroupMcL Mean MeanAbsoluteLossLayer MeanAround MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter MeanSquaredLossLayer Median MedianDeviation MedianFilter MedicalTestData Medium MeijerG MeijerGReduce MeixnerDistribution MellinConvolve MellinTransform MemberQ MemoryAvailable MemoryConstrained MemoryConstraint MemoryInUse MengerMesh Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuList MenuPacket MenuSortingValue MenuStyle MenuView Merge MergeDifferences MergingFunction MersennePrimeExponent MersennePrimeExponentQ Mesh MeshCellCentroid MeshCellCount MeshCellHighlight MeshCellIndex MeshCellLabel MeshCellMarker MeshCellMeasure MeshCellQuality MeshCells MeshCellShapeFunction MeshCellStyle MeshCoordinates MeshFunctions MeshPrimitives MeshQualityGoal MeshRange MeshRefinementFunction MeshRegion MeshRegionQ MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageObject MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation MeteorShowerData Method MethodOptions MexicanHatWavelet MeyerWavelet Midpoint Min MinColorDistance MinDetect MineralData MinFilter MinimalBy MinimalPolynomial MinimalStateSpaceModel Minimize MinimumTimeIncrement MinIntervalSize MinkowskiQuestionMark MinLimit MinMax MinorPlanetData Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingBehavior MissingDataMethod MissingDataRules MissingQ MissingString MissingStyle MissingValuePattern MittagLefflerE MixedFractionParts MixedGraphQ MixedMagnitude MixedRadix MixedRadixQuantity MixedUnit MixtureDistribution Mod Modal Mode Modular ModularInverse ModularLambda Module Modulus MoebiusMu Molecule MoleculeContainsQ MoleculeEquivalentQ MoleculeGraph MoleculeModify MoleculePattern MoleculePlot MoleculePlot3D MoleculeProperty MoleculeQ MoleculeValue Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction MomentOfInertia Monday Monitor MonomialList MonomialOrder MonsterGroupM MoonPhase MoonPosition MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform MortalityData Most MountainData MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovieData MovingAverage MovingMap MovingMedian MoyalDistribution Multicolumn MultiedgeStyle MultigraphQ MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity MultiplySides Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistributionN NakagamiDistribution NameQ Names NamespaceBox NamespaceBoxOptions Nand NArgMax NArgMin NBernoulliB NBodySimulation NBodySimulationData NCache NDEigensystem NDEigenvalues NDSolve NDSolveValue Nearest NearestFunction NearestNeighborGraph NearestTo NebulaData NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeDefiniteMatrixQ NegativeIntegers NegativeMultinomialDistribution NegativeRationals NegativeReals NegativeSemidefiniteMatrixQ NeighborhoodData NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestGraph NestList NestWhile NestWhileList NetAppend NetBidirectionalOperator NetChain NetDecoder NetDelete NetDrop NetEncoder NetEvaluationMode NetExtract NetFlatten NetFoldOperator NetGraph NetInformation NetInitialize NetInsert NetInsertSharedArrays NetJoin NetMapOperator NetMapThreadOperator NetMeasurements NetModel NetNestOperator NetPairEmbeddingOperator NetPort NetPortGradient NetPrepend NetRename NetReplace NetReplacePart NetSharedArray NetStateObject NetTake NetTrain NetTrainResultsObject NetworkPacketCapture NetworkPacketRecording NetworkPacketRecordingDuring NetworkPacketTrace NeumannValue NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextCell NextDate NextPrime NextScheduledTaskTime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NightHemisphere NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants NondimensionalizationTransform None NoneTrue NonlinearModelFit NonlinearStateSpaceModel NonlocalMeansFilter NonNegative NonNegativeIntegers NonNegativeRationals NonNegativeReals NonPositive NonPositiveIntegers NonPositiveRationals NonPositiveReals Nor NorlundB Norm Normal NormalDistribution NormalGrouping NormalizationLayer Normalize Normalized NormalizedSquaredEuclideanDistance NormalMatrixQ NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookImport NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookTemplate NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde Nothing NotHumpDownHump NotHumpEqual NotificationFunction NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar Now NoWhitespace NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms NuclearExplosionData NuclearReactorData Null NullRecords NullSpace NullWords Number NumberCompose NumberDecompose NumberExpand NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberLinePlot NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumeratorDenominator NumericalOrder NumericalSort NumericArray NumericArrayQ NumericArrayType NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlotO ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OceanData Octahedron OddQ Off Offset OLEData On ONanGroupON Once OneIdentity Opacity OpacityFunction OpacityFunctionScaling Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionalElement OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering OrderingBy OrderingLayer Orderless OrderlessPatternSequence OrnsteinUhlenbeckProcess Orthogonalize OrthogonalMatrixQ Out Outer OuterPolygon OuterPolyhedron OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OverwriteTarget OwenT OwnValuesPackage PackingMethod PaddedForm Padding PaddingLayer PaddingSize PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageTheme PageWidth Pagination PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath PalindromeQ Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo Parallelepiped ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds Parallelogram ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParametricRegion ParentBox ParentCell ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParentNotebook ParetoDistribution ParetoPickandsDistribution ParkData Part PartBehavior PartialCorrelationFunction PartialD ParticleAcceleratorData ParticleData Partition PartitionGranularity PartitionsP PartitionsQ PartLayer PartOfSpeech PartProtection ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteAutoQuoteCharacters PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PeakDetect PeanoCurve PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PercentForm PerfectNumber PerfectNumberQ PerformanceGoal Perimeter PeriodicBoundaryCondition PeriodicInterpolation Periodogram PeriodogramArray Permanent Permissions PermissionsGroup PermissionsGroupMemberQ PermissionsGroups PermissionsKey PermissionsKeys PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PerpendicularBisector PersistenceLocation PersistenceTime PersistentObject PersistentObjects PersistentValue PersonData PERTDistribution PetersenGraph PhaseMargins PhaseRange PhysicalSystemData Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest PingTime Pink PitchRecognize Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarAngle PlanarGraph PlanarGraphQ PlanckRadiationLaw PlaneCurveData PlanetaryMoonData PlanetData PlantData Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLabels PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangeClipPlanesStyle PlotRangePadding PlotRegion PlotStyle PlotTheme Pluralize Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox Point3DBoxOptions PointBox PointBoxOptions PointFigureChart PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonalNumber PolygonAngle PolygonBox PolygonBoxOptions PolygonCoordinates PolygonDecomposition PolygonHoleScale PolygonIntersections PolygonScale Polyhedron PolyhedronAngle PolyhedronCoordinates PolyhedronData PolyhedronDecomposition PolyhedronGenus PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PoolingLayer PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position PositionIndex Positive PositiveDefiniteMatrixQ PositiveIntegers PositiveRationals PositiveReals PositiveSemidefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerRange PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement Predict PredictionRoot PredictorFunction PredictorInformation PredictorMeasurements PredictorMeasurementsObject PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependLayer PrependTo PreprocessingRules PreserveColor PreserveImageOptions Previous PreviousCell PreviousDate PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitivePolynomialQ PrimitiveRoot PrimitiveRootList PrincipalComponents PrincipalValue Print PrintableASCIIQ PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment Printout3D Printout3DPreviewer PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateKey PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessConnection ProcessDirectory ProcessEnvironment Processes ProcessEstimator ProcessInformation ProcessObject ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessStatus ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm ProofObject Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse PsychrometricPropertyData PublicKey PublisherID PulsarData PunctuationCharacter Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptionsQBinomial QFactorial QGamma QHypergeometricPFQ QnDispersion QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ QuadraticOptimization Quantile QuantilePlot Quantity QuantityArray QuantityDistribution QuantityForm QuantityMagnitude QuantityQ QuantityUnit QuantityVariable QuantityVariableCanonicalUnit QuantityVariableDimensions QuantityVariableIdentifier QuantityVariablePhysicalQuantity Quartics QuartileDeviation Quartiles QuartileSkewness Query QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainderRadialGradientImage RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RadonTransform RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Ramp Random RandomChoice RandomColor RandomComplex RandomEntity RandomFunction RandomGeoPosition RandomGraph RandomImage RandomInstance RandomInteger RandomPermutation RandomPoint RandomPolygon RandomPolyhedron RandomPrime RandomReal RandomSample RandomSeed RandomSeeding RandomVariate RandomWalkProcess RandomWord Range RangeFilter RangeSpecification RankedMax RankedMin RarerProbability Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadByteArray ReadLine ReadList ReadProtected ReadString Real RealAbs RealBlockDiagonalForm RealDigits RealExponent Reals RealSign Reap RecognitionPrior RecognitionThreshold Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RectangularRepeatingElement RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate Region RegionBinarize RegionBoundary RegionBounds RegionCentroid RegionDifference RegionDimension RegionDisjoint RegionDistance RegionDistanceFunction RegionEmbeddingDimension RegionEqual RegionFunction RegionImage RegionIntersection RegionMeasure RegionMember RegionMemberFunction RegionMoment RegionNearest RegionNearestFunction RegionPlot RegionPlot3D RegionProduct RegionQ RegionResize RegionSize RegionSymmetricDifference RegionUnion RegionWithin RegisterExternalEvaluator RegularExpression Regularization RegularlySampledQ RegularPolygon ReIm ReImLabels ReImPlot ReImStyle Reinstall RelationalDatabase RelationGraph Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot RemoteAuthorizationCaching RemoteConnect RemoteConnectionObject RemoteFile RemoteRun RemoteRunProcess Remove RemoveAlphaChannel RemoveAsynchronousTask RemoveAudioStream RemoveBackground RemoveChannelListener RemoveChannelSubscribers Removed RemoveDiacritics RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RemoveUsers RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart RepairMesh Repeated RepeatedNull RepeatedString RepeatedTiming RepeatingElement Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated ReplicateLayer RequiredPhysicalQuantities Resampling ResamplingAlgorithmData ResamplingMethod Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask ReshapeLayer Residue ResizeLayer Resolve ResourceAcquire ResourceData ResourceFunction ResourceObject ResourceRegister ResourceRemove ResourceSearch ResourceSubmissionObject ResourceSubmit ResourceSystemBase ResourceUpdate ResponseForm Rest RestartInterval Restricted Resultant ResumePacket Return ReturnEntersInput ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnReceiptFunction ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseSort ReverseSortBy ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ RiemannXi Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightComposition RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity RollPitchYawAngles RollPitchYawMatrix RomanNumeral Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RSolveValue RudinShapiro RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulePlot RulerUnits Run RunProcess RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilaritySameQ SameTest SampledEntityClass SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SASTriangle SatelliteData SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveConnection SaveDefinitions SavitzkyGolayMatrix SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTask ScheduledTaskActiveQ ScheduledTaskInformation ScheduledTaskInformationData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScientificNotationThreshold ScorerGi ScorerGiPrime ScorerHi ScorerHiPrime ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptForm ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition SearchAdjustment SearchIndexObject SearchIndices SearchQueryString SearchResultObject Sec Sech SechDistribution SecondOrderConeOptimization SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SecuredAuthenticationKey SecuredAuthenticationKeys SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook SelectFirst Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemanticImport SemanticImportString SemanticInterpretation SemialgebraicComponentInstances SemidefiniteOptimization SendMail SendMessage Sequence SequenceAlignment SequenceAttentionLayer SequenceCases SequenceCount SequenceFold SequenceFoldList SequenceForm SequenceHold SequenceLastLayer SequenceMostLayer SequencePosition SequencePredict SequencePredictorFunction SequenceReplace SequenceRestLayer SequenceReverseLayer SequenceSplit Series SeriesCoefficient SeriesData ServiceConnect ServiceDisconnect ServiceExecute ServiceObject ServiceRequest ServiceResponse ServiceSubmit SessionSubmit SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetCloudDirectory SetCookies SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPermissions SetPrecision SetProperty SetSecuredAuthenticationKey SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemModel SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetUsers SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share SharingList Sharpen ShearingMatrix ShearingTransform ShellRegion ShenCastanMatrix ShiftedGompertzDistribution ShiftRegisterSequence Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortTimeFourier ShortTimeFourierData ShortUpArrow Show ShowAutoConvert ShowAutoSpellCheck ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowCodeAssist ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiderealTime SiegelTheta SiegelTukeyTest SierpinskiCurve SierpinskiMesh Sign Signature SignedRankTest SignedRegionDistance SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ SimplePolygonQ SimplePolyhedronQ Simplex Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution SkinStyle Skip SliceContourPlot3D SliceDensityPlot3D SliceDistribution SliceVectorPlot3D Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDecomposition SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SnDispersion Snippet SnubPolyhedron SocialMediaData Socket SocketConnect SocketListen SocketListener SocketObject SocketOpen SocketReadMessage SocketReadyQ Sockets SocketWaitAll SocketWaitNext SoftmaxLayer SokalSneathDissimilarity SolarEclipse SolarSystemFeatureData SolidAngle SolidData SolidRegionQ Solve SolveAlways SolveDelayed Sort SortBy SortedBy SortedEntityClass Sound SoundAndGraphics SoundNote SoundVolume SourceLink Sow Space SpaceCurveData SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution SpatialMedian SpatialTransformationLayer Speak SpeakTextPacket SpearmanRankTest SpearmanRho SpeciesData SpecificityGoal SpectralLineData Spectrogram SpectrogramArray Specularity SpeechRecognize SpeechSynthesize SpellingCorrection SpellingCorrectionList SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SpherePoints SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SphericalShell SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquareMatrixQ SquareRepeatingElement SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave SSSTriangle StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackedDateListPlot StackedListPlot StackInhibit StadiumShape StandardAtmosphereData StandardDeviation StandardDeviationFilter StandardForm Standardize Standardized StandardOceanData StandbyDistribution Star StarClusterData StarData StarGraph StartAsynchronousTask StartExternalSession StartingStepSize StartOfLine StartOfString StartProcess StartScheduledTask StartupSound StartWebSession StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StateTransformationLinearize StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StereochemistryElements StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StoppingPowerData StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamMarkers StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringContainsQ StringCount StringDelete StringDrop StringEndsQ StringExpression StringExtract StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPadLeft StringPadRight StringPart StringPartition StringPosition StringQ StringRepeat StringReplace StringReplaceList StringReplacePart StringReverse StringRiffle StringRotateLeft StringRotateRight StringSkeleton StringSplit StringStartsQ StringTake StringTemplate StringToByteArray StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleData StyleDefinitions StyleForm StyleHints StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subdivide Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subsequences Subset SubsetEqual SubsetMap SubsetQ Subsets SubStar SubstitutionSystem Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubtractSides SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde Success SuchThat Sum SumConvergence SummationLayer Sunday SunPosition Sunrise Sunset SuperDagger SuperMinus SupernovaData SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceArea SurfaceColor SurfaceData SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricKey SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Synonyms Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SynthesizeMissingValues SystemDialogInput SystemException SystemGet SystemHelpPath SystemInformation SystemInformationData SystemInstall SystemModel SystemModeler SystemModelExamples SystemModelLinearize SystemModelParametricSimulate SystemModelPlot SystemModelProgressReporting SystemModelReliability SystemModels SystemModelSimulate SystemModelSimulateSensitivity SystemModelSimulationData SystemOpen SystemOptions SystemProcessData SystemProcesses SystemsConnectionsModel SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelLinearity SystemsModelMerge SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemsModelVectorRelativeOrders SystemStub SystemTestTab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TableViewBoxBackground TableViewBoxOptions TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeDrop TakeLargest TakeLargestBy TakeList TakeSmallest TakeSmallestBy TakeWhile Tally Tan Tanh TargetDevice TargetFunctions TargetSystem TargetUnits TaskAbort TaskExecute TaskObject TaskRemove TaskResume Tasks TaskSuspend TaskWait TautologyQ TelegraphProcess TemplateApply TemplateArgBox TemplateBox TemplateBoxOptions TemplateEvaluate TemplateExpression TemplateIf TemplateObject TemplateSequence TemplateSlot TemplateSlotSequence TemplateUnevaluated TemplateVerbatim TemplateWith TemporalData TemporalRegularity Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge TestID TestReport TestReportObject TestResultObject Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCases TextCell TextClipboardType TextContents TextData TextElement TextForm TextGrid TextJustification TextLine TextPacket TextParagraph TextPosition TextRecognize TextSearch TextSearchReport TextSentences TextString TextStructure TextStyle TextTranslation Texture TextureCoordinateFunction TextureCoordinateScaling TextWords Therefore ThermodynamicData ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreadingLayer ThreeJSymbol Threshold Through Throw ThueMorse Thumbnail Thursday Ticks TicksStyle TideData Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint TimeDirection TimeFormat TimeGoal TimelinePlot TimeObject TimeObjectQ Times TimesBy TimeSeries TimeSeriesAggregate TimeSeriesForecast TimeSeriesInsert TimeSeriesInvertibility TimeSeriesMap TimeSeriesMapThread TimeSeriesModel TimeSeriesModelFit TimeSeriesResample TimeSeriesRescale TimeSeriesShift TimeSeriesThread TimeSeriesWindow TimeUsed TimeValue TimeWarpingCorrespondence TimeWarpingDistance TimeZone TimeZoneConvert TimeZoneOffset Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate Today ToDiscreteTimeModel ToEntity ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase Tomorrow ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform ToPolarCoordinates TopologicalSort ToRadicals ToRules ToSphericalCoordinates ToString Total TotalHeight TotalLayer TotalVariationFilter TotalWidth TouchPosition TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TrackingFunction TracyWidomDistribution TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TrainingProgressCheckpointing TrainingProgressFunction TrainingProgressMeasurements TrainingProgressReporting TrainingStoppingCriterion TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationClass TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField TransformedProcess TransformedRegion TransitionDirection TransitionDuration TransitionEffect TransitiveClosureGraph TransitiveReductionGraph Translate TranslationOptions TranslationTransform Transliterate Transparent TransparentColor Transpose TransposeLayer TrapSelection TravelDirections TravelDirectionsData TravelDistance TravelDistanceList TravelMethod TravelTime TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle Triangle TriangleCenter TriangleConstruct TriangleMeasurement TriangleWave TriangularDistribution TriangulateMesh Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean TrimmedVariance TropicalStormData True TrueQ TruncatedDistribution TruncatedPolyhedron TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBoxOptions TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow TunnelData Tuples TuranGraph TuringMachine TuttePolynomial TwoWayRule Typed TypeSpecifierUnateQ Uncompress UnconstrainedParameters Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UnderseaFeatureData UndirectedEdge UndirectedGraph UndirectedGraphQ UndoOptions UndoTrackedVariables Unequal UnequalTo Unevaluated UniformDistribution UniformGraphDistribution UniformPolyhedron UniformSumDistribution Uninstall Union UnionPlus Unique UnitaryMatrixQ UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitSystem UnitTriangle UnitVector UnitVectorLayer UnityDimensions UniverseModelData UniversityData UnixTime Unprotect UnregisterExternalEvaluator UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpdateSearchIndex UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize UpperTriangularMatrixQ Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpTo UpValues URL URLBuild URLDecode URLDispatcher URLDownload URLDownloadSubmit URLEncode URLExecute URLExpand URLFetch URLFetchAsynchronous URLParse URLQueryDecode URLQueryEncode URLRead URLResponseTime URLSave URLSaveAsynchronous URLShorten URLSubmit UseGraphicsRange UserDefinedWavelet Using UsingFrontEnd UtilityFunctionV2Get ValenceErrorHandling ValidationLength ValidationSet Value ValueBox ValueBoxOptions ValueDimensions ValueForm ValuePreprocessingFunction ValueQ Values ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorAround VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorGreater VectorGreaterEqual VectorLess VectorLessEqual VectorMarkers VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerificationTest VerifyConvergence VerifyDerivedKey VerifyDigitalSignature VerifyInterpretation VerifySecurityCertificates VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexContract VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight VertexWeightedGraphQ Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewProjection ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoiceStyleData VoigtDistribution VolcanoData Volume VonMisesDistribution VoronoiMeshWaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WarpingCorrespondence WarpingDistance WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeatherForecastData WebAudioSearch WebElementObject WeberE WebExecute WebImage WebImageSearch WebSearch WebSessionObject WebSessions WebWindowObject Wedge Wednesday WeibullDistribution WeierstrassE1 WeierstrassE2 WeierstrassE3 WeierstrassEta1 WeierstrassEta2 WeierstrassEta3 WeierstrassHalfPeriods WeierstrassHalfPeriodW1 WeierstrassHalfPeriodW2 WeierstrassHalfPeriodW3 WeierstrassInvariantG2 WeierstrassInvariantG3 WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White WhiteNoiseProcess WhitePoint Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WikipediaData WikipediaSearch WilksW WilksWTest WindDirectionData WindingCount WindingPolygon WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowPersistentStyles WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth WindSpeedData WindVectorData WinsorizedMean WinsorizedVariance WishartMatrixDistribution With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult WolframLanguageData Word WordBoundary WordCharacter WordCloud WordCount WordCounts WordData WordDefinition WordFrequency WordFrequencyData WordList WordOrientation WordSearch WordSelectionFunction WordSeparators WordSpacings WordStem WordTranslation WorkingPrecision WrapAround Write WriteLine WriteString WronskianXMLElement XMLObject XMLTemplate Xnor Xor XYZColorYellow Yesterday YuleDissimilarityZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZIPCodeData ZipfDistribution ZoomCenter ZoomFactor ZTest ZTransform$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AllowExternalChannelFunctions $AssertFunction $Assumptions $AsynchronousTask $AudioInputDevices $AudioOutputDevices $BaseDirectory $BatchInput $BatchOutput $BlockchainBase $BoxForms $ByteOrdering $CacheBaseDirectory $Canceled $ChannelBase $CharacterEncoding $CharacterEncodings $CloudBase $CloudConnected $CloudCreditsAvailable $CloudEvaluation $CloudExpressionBase $CloudObjectNameFormat $CloudObjectURLType $CloudRootDirectory $CloudSymbolBase $CloudUserID $CloudUserUUID $CloudVersion $CloudVersionNumber $CloudWolframEngineVersionNumber $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $Cookies $CookieStore $CreationDate $CurrentLink $CurrentTask $CurrentWebSession $DateStringFormat $DefaultAudioInputDevice $DefaultAudioOutputDevice $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultLocalBase $DefaultMailbox $DefaultNetworkInterface $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $EmbedCodeEnvironments $EmbeddableServices $EntityStores $Epilog $EvaluationCloudBase $EvaluationCloudObject $EvaluationEnvironment $ExportFormats $Failed $FinancialDataSource $FontFamilies $FormatType $FrontEnd $FrontEndSession $GeoEntityTypes $GeoLocation $GeoLocationCity $GeoLocationCountry $GeoLocationPrecision $GeoLocationSource $HistoryLength $HomeDirectory $HTMLExportRules $HTTPCookies $HTTPRequest $IgnoreEOF $ImageFormattingWidth $ImagingDevice $ImagingDevices $ImportFormats $IncomingMailSettings $InitialDirectory $Initialization $InitializationContexts $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $InterpreterTypes $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $LocalBase $LocalSymbolBase $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $MobilePhone $ModuleNumber $NetworkConnected $NetworkInterfaces $NetworkLicense $NewMessage $NewSymbol $Notebooks $NoValue $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $Permissions $PermissionsGroupBase $PersistenceBase $PersistencePath $PipeSupported $PlotTheme $Post $Pre $PreferencesDirectory $PreInitialization $PrePrint $PreRead $PrintForms $PrintLiteral $Printout3DPreviewer $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $PublisherID $RandomState $RecursionLimit $RegisteredDeviceClasses $RegisteredUserName $ReleaseNumber $RequesterAddress $RequesterWolframID $RequesterWolframUUID $ResourceSystemBase $RootDirectory $ScheduledTask $ScriptCommandLine $ScriptInputString $SecuredAuthenticationKeyTokens $ServiceCreditsAvailable $Services $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SourceLink $SSHAuthentication $SummaryBoxDataSizeLimit $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemMemory $SystemShell $SystemTimeZone $SystemWordLength $TemplatePath $TemporaryDirectory $TemporaryPrefix $TestFileName $TextStyle $TimedOut $TimeUnit $TimeZone $TimeZoneEntity $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $UnitSystem $Urgent $UserAddOnsDirectory $UserAgentLanguages $UserAgentMachine $UserAgentName $UserAgentOperatingSystem $UserAgentString $UserAgentVersion $UserBaseDirectory $UserDocumentsDirectory $Username $UserName $UserURLBase $Version $VersionNumber $VoiceStyles $WolframID $WolframUUID\",c:[e.C(\"\\\\(\\\\*\",\"\\\\*\\\\)\",{c:[\"self\"]}),e.QSM,e.CNM]}});hljs.registerLanguage(\"vim\",function(e){return{l:/[!#@\\w]+/,k:{keyword:\"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank\",built_in:\"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp\"},i:/;/,c:[e.NM,{cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\"},{cN:\"string\",b:/\"(\\\\\"|\\n\\\\|[^\"\\n])*\"/},e.C('\"',\"$\"),{cN:\"variable\",b:/[bwtglsav]:[\\w\\d_]*/},{cN:\"function\",bK:\"function function!\",e:\"$\",relevance:0,c:[e.TM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},{cN:\"symbol\",b:/<[\\w-]+>/}]}});hljs.registerLanguage(\"makefile\",function(e){var i={cN:\"variable\",v:[{b:\"\\\\$\\\\(\"+e.UIR+\"\\\\)\",c:[e.BE]},{b:/\\$[@%<?\\^\\+\\*]/}]},r={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,i]},a={cN:\"variable\",b:/\\$\\([\\w-]+\\s/,e:/\\)/,k:{built_in:\"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value\"},c:[i]},n={b:\"^\"+e.UIR+\"\\\\s*(?=[:+?]?=)\"},t={cN:\"section\",b:/^[^\\s]+:/,e:/$/,c:[i]};return{aliases:[\"mk\",\"mak\"],k:\"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath\",l:/[\\w-]+/,c:[e.HCM,i,r,a,n,{cN:\"meta\",b:/^\\.PHONY:/,e:/$/,k:{\"meta-keyword\":\".PHONY\"},l:/[\\.\\w]+/},t]}});hljs.registerLanguage(\"objectivec\",function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,i=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:{keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},l:t,i:\"</\",c:[{cN:\"built_in\",b:\"\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+\"},e.CLCM,e.CBCM,e.CNM,e.QSM,e.ASM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]}]},{cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(e.QSM,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},{cN:\"class\",b:\"(\"+i.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:i,l:t,c:[e.UTM]},{b:\"\\\\.\"+e.UIR,relevance:0}]}});hljs.registerLanguage(\"shell\",function(s){return{aliases:[\"console\"],c:[{cN:\"meta\",b:\"^\\\\s{0,3}[/\\\\w\\\\d\\\\[\\\\]()@-]*[>%$#]\",starts:{e:\"$\",sL:\"bash\"}}]}});hljs.registerLanguage(\"erlang\",function(e){var r=\"[a-z'][a-zA-Z0-9_']*\",c=\"(\"+r+\":\"+r+\"|\"+r+\")\",n={keyword:\"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor\",literal:\"false true\"},a=e.C(\"%\",\"$\"),b={cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},i={b:\"fun\\\\s+\"+r+\"/\\\\d+\"},l={b:c+\"\\\\(\",e:\"\\\\)\",rB:!0,relevance:0,c:[{b:c,relevance:0},{b:\"\\\\(\",e:\"\\\\)\",eW:!0,rE:!0,relevance:0}]},d={b:\"{\",e:\"}\",relevance:0},o={b:\"\\\\b_([A-Z][A-Za-z0-9_]*)?\",relevance:0},t={b:\"[A-Z][a-zA-Z0-9_]*\",relevance:0},v={b:\"#\"+e.UIR,relevance:0,rB:!0,c:[{b:\"#\"+e.UIR,relevance:0},{b:\"{\",e:\"}\",relevance:0}]},f={bK:\"fun receive if try case\",e:\"end\",k:n};f.c=[a,i,e.inherit(e.ASM,{cN:\"\"}),f,l,e.QSM,b,d,o,t,v];var s=[a,i,f,l,e.QSM,b,d,o,t,v];l.c[1].c=s,d.c=s;var u={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:v.c[1].c=s};return{aliases:[\"erl\"],k:n,i:\"(</|\\\\*=|\\\\+=|-=|/\\\\*|\\\\*/|\\\\(\\\\*|\\\\*\\\\))\",c:[{cN:\"function\",b:\"^\"+r+\"\\\\s*\\\\(\",e:\"->\",rB:!0,i:\"\\\\(|#|//|/\\\\*|\\\\\\\\|:|;\",c:[u,e.inherit(e.TM,{b:r})],starts:{e:\";|\\\\.\",k:n,c:s}},a,{b:\"^-\",e:\"\\\\.\",relevance:0,eE:!0,rB:!0,l:\"-\"+e.IR,k:\"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec\",c:[u]},b,e.QSM,v,o,t,d,{b:/\\.$/}]}});hljs.registerLanguage(\"powershell\",function(e){var t={keyword:\"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter\"},n={b:\"`[\\\\s\\\\S]\",relevance:0},c={cN:\"variable\",v:[{b:/\\$\\B/},{cN:\"keyword\",b:/\\$this/},{b:/\\$[\\w\\d][\\w\\d_:]*/}]},i={cN:\"string\",v:[{b:/\"/,e:/\"/},{b:/@\"/,e:/^\"@/}],c:[n,c,{cN:\"variable\",b:/\\$[A-z]/,e:/[^A-z]/}]},a={cN:\"string\",v:[{b:/'/,e:/'/},{b:/@'/,e:/^'@/}]},r=e.inherit(e.C(null,null),{v:[{b:/#/,e:/$/},{b:/<#/,e:/#>/}],c:[{cN:\"doctag\",v:[{b:/\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{b:/\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/}]}]}),o={cN:\"built_in\",v:[{b:\"(\".concat(\"Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|New|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Complete|Confirm|Deny|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where\",\")+(-)[\\\\w\\\\d]+\")}]},l={cN:\"class\",bK:\"class enum\",e:/\\s*[{]/,eE:!0,relevance:0,c:[e.TM]},s={cN:\"function\",b:/function\\s+/,e:/\\s*\\{|$/,eE:!0,rB:!0,relevance:0,c:[{b:\"function\",relevance:0,cN:\"keyword\"},{cN:\"title\",b:/\\w[\\w\\d]*((-)[\\w\\d]+)*/,relevance:0},{b:/\\(/,e:/\\)/,cN:\"params\",relevance:0,c:[c]}]},p={b:/using\\s/,e:/$/,rB:!0,c:[i,a,{cN:\"keyword\",b:/(using|assembly|command|module|namespace|type)/}]},b={v:[{cN:\"operator\",b:\"(\".concat(\"-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor\",\")\\\\b\")},{cN:\"literal\",b:/(-)[\\w\\d]+/,relevance:0}]},d={cN:\"function\",b:/\\[.*\\]\\s*[\\w]+[ ]??\\(/,e:/$/,rB:!0,relevance:0,c:[{cN:\"keyword\",b:\"(\".concat(t.keyword.toString().replace(/\\s/g,\"|\"),\")\\\\b\"),endsParent:!0,relevance:0},e.inherit(e.TM,{endsParent:!0})]},u=[d,r,n,e.NM,i,a,o,c,{cN:\"literal\",b:/\\$(null|true|false)\\b/},{cN:\"selector-tag\",b:/\\@\\B/,relevance:0}],m={b:/\\[/,e:/\\]/,eB:!0,eE:!0,relevance:0,c:[].concat(\"self\",u,{b:\"(\"+[\"string\",\"char\",\"byte\",\"int\",\"long\",\"bool\",\"decimal\",\"single\",\"double\",\"DateTime\",\"xml\",\"array\",\"hashtable\",\"void\"].join(\"|\")+\")\",cN:\"built_in\",relevance:0},{cN:\"type\",b:/[\\.\\w\\d]+/,relevance:0})};return d.c.unshift(m),{aliases:[\"ps\",\"ps1\"],l:/-?[A-z\\.\\-]+/,cI:!0,k:t,c:u.concat(l,s,p,b,m)}});hljs.registerLanguage(\"typescript\",function(e){var r=\"[A-Za-z$_][0-9A-Za-z$_]*\",t={keyword:\"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract as from extends async await\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void Promise\"},n={cN:\"meta\",b:\"@\"+r},a={b:\"\\\\(\",e:/\\)/,k:t,c:[\"self\",e.QSM,e.ASM,e.NM]},c={cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[e.CLCM,e.CBCM,n,a]},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:t,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},l={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},b={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};return o.c=[e.ASM,e.QSM,i,l,b,s,e.RM],{aliases:[\"ts\"],k:t,c:[{cN:\"meta\",b:/^\\s*['\"]use strict['\"]/},e.ASM,e.QSM,i,l,b,e.CLCM,e.CBCM,s,{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+e.IR+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:e.IR},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[\"self\",e.CLCM,e.CBCM]}]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/[\\{;]/,eE:!0,k:t,c:[\"self\",e.inherit(e.TM,{b:r}),c],i:/%/,relevance:0},{bK:\"constructor\",e:/[\\{;]/,eE:!0,c:[\"self\",c]},{b:/module\\./,k:{built_in:\"module\"},relevance:0},{bK:\"module\",e:/\\{/,eE:!0},{bK:\"interface\",e:/\\{/,eE:!0,k:\"interface extends\"},{b:/\\$[(.]/},{b:\"\\\\.\"+e.IR,relevance:0},n,a]}});hljs.registerLanguage(\"fortran\",function(e){return{cI:!0,aliases:[\"f90\",\"f95\"],k:{literal:\".False. .True.\",keyword:\"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data\",built_in:\"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image\"},i:/\\/\\*/,c:[e.inherit(e.ASM,{cN:\"string\",relevance:0}),e.inherit(e.QSM,{cN:\"string\",relevance:0}),{cN:\"function\",bK:\"subroutine function program\",i:\"[${=\\\\n]\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},e.C(\"!\",\"$\",{relevance:0}),{cN:\"number\",b:\"(?=\\\\b|\\\\+|\\\\-|\\\\.)(?=\\\\.\\\\d|\\\\d)(?:\\\\d+)?(?:\\\\.?\\\\d*)(?:[de][+-]?\\\\d+)?\\\\b\\\\.?\",relevance:0}]}});hljs.registerLanguage(\"php\",function(e){var c={b:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},i={cN:\"meta\",b:/<\\?(php)?|\\?>/},t={cN:\"string\",c:[e.BE,i],v:[{b:'b\"',e:'\"'},{b:\"b'\",e:\"'\"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:[\"php\",\"php3\",\"php4\",\"php5\",\"php6\",\"php7\"],cI:!0,k:\"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally\",c:[e.HCM,e.C(\"//\",\"$\",{c:[i]}),e.C(\"/\\\\*\",\"\\\\*/\",{c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.C(\"__halt_compiler.+?;\",!1,{eW:!0,k:\"__halt_compiler\",l:e.UIR}),{cN:\"string\",b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:\"subst\",v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},i,{cN:\"keyword\",b:/\\$this\\b/},c,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:\"function\",bK:\"function\",e:/[;{]/,eE:!0,i:\"\\\\$|\\\\[|%\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:[\"self\",c,e.CBCM,t,a]}]},{cN:\"class\",bK:\"class interface\",e:\"{\",eE:!0,i:/[:\\(\\$\"]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"namespace\",e:\";\",i:/[\\.']/,c:[e.UTM]},{bK:\"use\",e:\";\",c:[e.UTM]},{b:\"=>\"},t,a]}});hljs.registerLanguage(\"haskell\",function(e){var i={v:[e.C(\"--\",\"$\"),e.C(\"{-\",\"-}\",{c:[\"self\"]})]},a={cN:\"meta\",b:\"{-#\",e:\"#-}\"},l={cN:\"meta\",b:\"^#\",e:\"$\"},c={cN:\"type\",b:\"\\\\b[A-Z][\\\\w']*\",relevance:0},n={b:\"\\\\(\",e:\"\\\\)\",i:'\"',c:[a,l,{cN:\"type\",b:\"\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?\"},e.inherit(e.TM,{b:\"[_a-z][\\\\w']*\"}),i]};return{aliases:[\"hs\"],k:\"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec\",c:[{bK:\"module\",e:\"where\",k:\"module where\",c:[n,i],i:\"\\\\W\\\\.|;\"},{b:\"\\\\bimport\\\\b\",e:\"$\",k:\"import qualified as hiding\",c:[n,i],i:\"\\\\W\\\\.|;\"},{cN:\"class\",b:\"^(\\\\s*)?(class|instance)\\\\b\",e:\"where\",k:\"class family instance where\",c:[c,n,i]},{cN:\"class\",b:\"\\\\b(data|(new)?type)\\\\b\",e:\"$\",k:\"data family type newtype deriving\",c:[a,c,n,{b:\"{\",e:\"}\",c:n.c},i]},{bK:\"default\",e:\"$\",c:[c,n,i]},{bK:\"infix infixl infixr\",e:\"$\",c:[e.CNM,i]},{b:\"\\\\bforeign\\\\b\",e:\"$\",k:\"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe\",c:[c,e.QSM,i]},{cN:\"meta\",b:\"#!\\\\/usr\\\\/bin\\\\/env runhaskell\",e:\"$\"},a,l,e.QSM,e.CNM,c,e.inherit(e.TM,{b:\"^[_a-z][\\\\w']*\"}),i,{b:\"->|<-\"}]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},i=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",relevance:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]{0,3}(?=\\\\W)\",relevance:0},{b:/\\/(?![ *]).*?(?![\\\\]).\\/[gim]{0,3}(?=\\W)/}]},{b:\"@\"+n},{sL:\"javascript\",eB:!0,eE:!0,v:[{b:\"```\",e:\"```\"},{b:\"`\",e:\"`\"}]}];r.c=i;var s=e.inherit(e.TM,{b:n}),t=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",a={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(i)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:i.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+t,e:\"[-=]>\",rB:!0,c:[s,a]},{b:/[:\\(,=]\\s*/,relevance:0,c:[{cN:\"function\",b:t,e:\"[-=]>\",rB:!0,c:[a]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{b:n+\":\",e:\":\",rB:!0,rE:!0,relevance:0}])}});hljs.registerLanguage(\"r\",function(e){var r=\"([a-zA-Z]|\\\\.[a-zA-Z.])[a-zA-Z0-9._]*\";return{c:[e.HCM,{b:r,l:r,k:{keyword:\"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...\",literal:\"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10\"},relevance:0},{cN:\"number\",b:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:[eE][+\\\\-]?\\\\d*)?L\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+\\\\.(?!\\\\d)(?:i\\\\b)?\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{b:\"`\",e:\"`\",relevance:0},{cN:\"string\",c:[e.BE],v:[{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]}]}});hljs.registerLanguage(\"autohotkey\",function(e){var a={b:\"`[\\\\s\\\\S]\"};return{cI:!0,aliases:[\"ahk\"],k:{keyword:\"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group\",literal:\"true false NOT AND OR\",built_in:\"ComSpec Clipboard ClipboardAll ErrorLevel\"},c:[a,e.inherit(e.QSM,{c:[a]}),e.C(\";\",\"$\",{relevance:0}),e.CBCM,{cN:\"number\",b:e.NR,relevance:0},{cN:\"variable\",b:\"%[a-zA-Z0-9#_$@]+%\"},{cN:\"built_in\",b:\"^\\\\s*\\\\w+\\\\s*(,|%)\"},{cN:\"title\",v:[{b:'^[^\\\\n\";]+::(?!=)'},{b:'^[^\\\\n\";]+:(?!=)',relevance:0}]},{cN:\"meta\",b:\"^\\\\s*#\\\\w+\",e:\"$\",relevance:0},{cN:\"built_in\",b:\"A_[a-zA-Z0-9]+\"},{b:\",\\\\s*,\"}]}});hljs.registerLanguage(\"elixir\",function(e){var b=\"[a-zA-Z_][a-zA-Z0-9_.]*(\\\\!|\\\\?)?\",c=\"and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote require import with|0\",n={cN:\"subst\",b:\"#\\\\{\",e:\"}\",l:b,k:c},r=\"[/|([{<\\\"']\",a={cN:\"string\",b:\"~[a-z](?=\"+r+\")\",c:[{endsParent:!0,c:[{c:[e.BE,n],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/</,e:/>/}]}]}]},i={cN:\"string\",b:\"~[A-Z](?=\"+r+\")\",c:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/\\</,e:/\\>/}]},l={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/'''/,e:/'''/},{b:/~S\"\"\"/,e:/\"\"\"/,c:[]},{b:/~S\"/,e:/\"/,c:[]},{b:/~S'''/,e:/'''/,c:[]},{b:/~S'/,e:/'/,c:[]},{b:/'/,e:/'/},{b:/\"/,e:/\"/}]},s={cN:\"function\",bK:\"def defp defmacro\",e:/\\B\\b/,c:[e.inherit(e.TM,{b:b,endsParent:!0})]},t=e.inherit(s,{cN:\"class\",bK:\"defimpl defmodule defprotocol defrecord\",e:/\\bdo\\b|$|;/}),d=[l,i,a,e.HCM,t,s,{b:\"::\"},{cN:\"symbol\",b:\":(?![\\\\s:])\",c:[l,{b:\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\"}],relevance:0},{cN:\"symbol\",b:b+\":(?!:)\",relevance:0},{cN:\"number\",b:\"(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[1-9][0-9_]*(.[0-9_]+([eE][-+]?[0-9]+)?)?)\",relevance:0},{cN:\"variable\",b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{b:\"->\"},{b:\"(\"+e.RSR+\")\\\\s*\",c:[e.HCM,{cN:\"regexp\",i:\"\\\\n\",c:[e.BE,n],v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}],relevance:0}];return{l:b,k:c,c:n.c=d}});hljs.registerLanguage(\"gradle\",function(e){return{cI:!0,k:{keyword:\"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine\"},c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.NM,e.RM]}});hljs.registerLanguage(\"css\",function(e){var c={b:/(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_-]+)\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\\w-]+\\(/,rB:!0,c:[{cN:\"built_in\",b:/[\\w-]+/},{b:/\\(/,e:/\\)/,c:[e.ASM,e.QSM,e.CSSNM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"number\",b:\"#[0-9A-Fa-f]+\"},{cN:\"meta\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,{cN:\"selector-id\",b:/#[A-Za-z0-9_-]+/},{cN:\"selector-class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"selector-attr\",b:/\\[/,e:/\\]/,i:\"$\",c:[e.ASM,e.QSM]},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"@(page|font-face)\",l:\"@[a-z-]+\",k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",i:/:/,rB:!0,c:[{cN:\"keyword\",b:/@\\-?\\w[\\w]*(\\-\\w+)*/},{b:/\\s/,eW:!0,eE:!0,relevance:0,k:\"and or not only\",c:[{b:/[a-z-]+:/,cN:\"attribute\"},e.ASM,e.QSM,e.CSSNM]}]},{cN:\"selector-tag\",b:\"[a-zA-Z-][a-zA-Z0-9_-]*\",relevance:0},{b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,c]}]}});\n\nexports.hljs = hljs;\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/highlight/highlight.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/highlight/highlight.css": {
"text": "/*\n\nOriginal highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n background: #F0F0F0;\n}\n\n\n/* Base color: saturation 0; */\n\n.hljs,\n.hljs-subst {\n color: #444;\n}\n\n.hljs-comment {\n color: #888888;\n}\n\n.hljs-keyword,\n.hljs-attribute,\n.hljs-selector-tag,\n.hljs-meta-keyword,\n.hljs-doctag,\n.hljs-name {\n font-weight: bold;\n}\n\n\n/* User color: hue: 0 */\n\n.hljs-type,\n.hljs-string,\n.hljs-number,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-quote,\n.hljs-template-tag,\n.hljs-deletion {\n color: #880000;\n}\n\n.hljs-title,\n.hljs-section {\n color: #880000;\n font-weight: bold;\n}\n\n.hljs-regexp,\n.hljs-symbol,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-link,\n.hljs-selector-attr,\n.hljs-selector-pseudo {\n color: #BC6060;\n}\n\n\n/* Language color: hue: 90; */\n\n.hljs-literal {\n color: #78A960;\n}\n\n.hljs-built_in,\n.hljs-bullet,\n.hljs-code,\n.hljs-addition {\n color: #397300;\n}\n\n\n/* Meta color: hue: 200 */\n\n.hljs-meta {\n color: #1f7199;\n}\n\n.hljs-meta-string {\n color: #4d99bf;\n}\n\n\n/* Misc effects */\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/highlight/highlight.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/highlight/highlightblock.js": {
"title": "$:/plugins/tiddlywiki/highlight/highlightblock.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\ntype: application/javascript\nmodule-type: widget\n\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TYPE_MAPPINGS_BASE = \"$:/config/HighlightPlugin/TypeMappings/\";\n\nvar CodeBlockWidget = require(\"$:/core/modules/widgets/codeblock.js\").codeblock;\n\nvar hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n\nhljs.configure({tabReplace: \" \"});\t\n\nCodeBlockWidget.prototype.postRender = function() {\n\tvar domNode = this.domNodes[0],\n\t\tlanguage = this.language,\n\t\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\n\tif(tiddler) {\n\t\tlanguage = tiddler.fields.text || \"\";\n\t}\n\tif(language && hljs.getLanguage(language)) {\n\t\tdomNode.className = language.toLowerCase() + \" hljs\";\n\t\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\n\t\t\thljs.highlightBlock(domNode);\t\t\t\n\t\t} else {\n\t\t\tvar text = domNode.textContent;\n\t\t\tdomNode.children[0].innerHTML = hljs.fixMarkup(hljs.highlight(language,text).value);\n\t\t\t// If we're using the fakedom then specially save the original raw text\n\t\t\tif(domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tdomNode.children[0].textInnerHTML = text;\n\t\t\t}\n\t\t}\n\t}\t\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/highlight/howto": {
"title": "$:/plugins/tiddlywiki/highlight/howto",
"text": "! Supporting Additional Languages\n \nThe [[highlight.js|https://github.com/highlightjs/highlight.js]] project supports many languages. Only a subset of these languages are supported by the plugin. It is possible for users to change the set of languages supported by the plugin by following these steps:\n \n# Go to the highlight.js project [[download page|https://highlightjs.org/download/]], select the language definitions to include, and press the Download button to download a zip archive containing customised support files for a highlight.js syntax highlighting server.\n# Locate the `highlight.pack.js` file in the highlight plugin -- on a stock Debian 8 system running Tiddlywiki5 under node-js it is located at `/usr/local/lib/node_modules/tiddlywiki/plugins/tiddlywiki/highlight/files/highlight.pack.js`.\n# Replace the plugin `highlight.pack.js` file located in step 2 with the one from the downloaded archive obtained in step 1.\n# Restart the Tiddlywiki server.\n"
},
"$:/plugins/tiddlywiki/highlight/license": {
"title": "$:/plugins/tiddlywiki/highlight/license",
"type": "text/plain",
"text": "Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of highlight.js nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
},
"$:/plugins/tiddlywiki/highlight/readme": {
"title": "$:/plugins/tiddlywiki/highlight/readme",
"text": "This plugin provides syntax highlighting of code blocks using v9.18.1 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1 { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* apache\n* arduino\n* arm assembly\n* asciidoc\n* autohotkey\n* awk\n* bash\n* cmake\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* dockerfile\n* erlang\n* elixir\n* fortran\n* go\n* gradle\n* haskell\n* html\n* http\n* ini\n* intel x86 assembly\n* java\n* javascript\n* json\n* kotlin\n* less\n* lua\n* makefile\n* markdown\n* mathematica\n* matlab\n* nginx\n* objectivec\n* perl\n* php\n* plaintext\n* powershell\n* properties\n* python\n* R\n* ruby\n* rust\n* scss\n* shell session\n* sql\n* swift\n* toml\n* typescript\n* vala\n* vim script\n* xml\n* yaml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n"
},
"$:/plugins/tiddlywiki/highlight/styles": {
"title": "$:/plugins/tiddlywiki/highlight/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": ".hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:teal}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}"
},
"$:/plugins/tiddlywiki/highlight/usage": {
"title": "$:/plugins/tiddlywiki/highlight/usage",
"text": "! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold",
"list-after": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"**\"\n\tsuffix=\"**\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1",
"list-after": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"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"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2",
"list-after": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"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"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3",
"list-after": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"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"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4",
"list-after": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"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"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5",
"list-after": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"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"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6",
"list-after": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"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"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/italic": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic",
"list-after": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"*\"\n\tsuffix=\"*\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet",
"list-after": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"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"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number",
"list-after": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"1.\"\n\tcount=\"1\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line",
"list-after": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/quote": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote",
"list-after": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\">\"\n\tcount=\"1\"\n/>\n"
},
"$:/config/markdown/breaks": {
"title": "$:/config/markdown/breaks",
"text": "false"
},
"$:/config/markdown/linkNewWindow": {
"title": "$:/config/markdown/linkNewWindow",
"text": "true"
},
"$:/config/markdown/linkify": {
"title": "$:/config/markdown/linkify",
"text": "false"
},
"$:/config/markdown/quotes": {
"title": "$:/config/markdown/quotes",
"text": "“”‘’"
},
"$:/config/markdown/renderWikiText": {
"title": "$:/config/markdown/renderWikiText",
"text": "true"
},
"$:/config/markdown/renderWikiTextPragma": {
"title": "$:/config/markdown/renderWikiTextPragma",
"text": "\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock"
},
"$:/config/markdown/typographer": {
"title": "$:/config/markdown/typographer",
"text": "false"
},
"$:/language/Docs/Types/text/x-markdown": {
"title": "$:/language/Docs/Types/text/x-markdown",
"description": "Markdown",
"name": "text/x-markdown",
"group": "Text"
},
"$:/plugins/tiddlywiki/markdown/remarkable.js": {
"text": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).remarkable={})}(this,function(e){\"use strict\";var t={Aacute:\"Á\",aacute:\"á\",Abreve:\"Ă\",abreve:\"ă\",ac:\"∾\",acd:\"∿\",acE:\"∾̳\",Acirc:\"Â\",acirc:\"â\",acute:\"´\",Acy:\"А\",acy:\"а\",AElig:\"Æ\",aelig:\"æ\",af:\"\",Afr:\"𝔄\",afr:\"𝔞\",Agrave:\"À\",agrave:\"à\",alefsym:\"ℵ\",aleph:\"ℵ\",Alpha:\"Α\",alpha:\"α\",Amacr:\"Ā\",amacr:\"ā\",amalg:\"⨿\",AMP:\"&\",amp:\"&\",And:\"⩓\",and:\"∧\",andand:\"⩕\",andd:\"⩜\",andslope:\"⩘\",andv:\"⩚\",ang:\"∠\",ange:\"⦤\",angle:\"∠\",angmsd:\"∡\",angmsdaa:\"⦨\",angmsdab:\"⦩\",angmsdac:\"⦪\",angmsdad:\"⦫\",angmsdae:\"⦬\",angmsdaf:\"⦭\",angmsdag:\"⦮\",angmsdah:\"⦯\",angrt:\"∟\",angrtvb:\"⊾\",angrtvbd:\"⦝\",angsph:\"∢\",angst:\"Å\",angzarr:\"⍼\",Aogon:\"Ą\",aogon:\"ą\",Aopf:\"𝔸\",aopf:\"𝕒\",ap:\"≈\",apacir:\"⩯\",apE:\"⩰\",ape:\"≊\",apid:\"≋\",apos:\"'\",ApplyFunction:\"\",approx:\"≈\",approxeq:\"≊\",Aring:\"Å\",aring:\"å\",Ascr:\"𝒜\",ascr:\"𝒶\",Assign:\"≔\",ast:\"*\",asymp:\"≈\",asympeq:\"≍\",Atilde:\"Ã\",atilde:\"ã\",Auml:\"Ä\",auml:\"ä\",awconint:\"∳\",awint:\"⨑\",backcong:\"≌\",backepsilon:\"϶\",backprime:\"‵\",backsim:\"∽\",backsimeq:\"⋍\",Backslash:\"∖\",Barv:\"⫧\",barvee:\"⊽\",Barwed:\"⌆\",barwed:\"⌅\",barwedge:\"⌅\",bbrk:\"⎵\",bbrktbrk:\"⎶\",bcong:\"≌\",Bcy:\"Б\",bcy:\"б\",bdquo:\"„\",becaus:\"∵\",Because:\"∵\",because:\"∵\",bemptyv:\"⦰\",bepsi:\"϶\",bernou:\"ℬ\",Bernoullis:\"ℬ\",Beta:\"Β\",beta:\"β\",beth:\"ℶ\",between:\"≬\",Bfr:\"𝔅\",bfr:\"𝔟\",bigcap:\"⋂\",bigcirc:\"◯\",bigcup:\"⋃\",bigodot:\"⨀\",bigoplus:\"⨁\",bigotimes:\"⨂\",bigsqcup:\"⨆\",bigstar:\"★\",bigtriangledown:\"▽\",bigtriangleup:\"△\",biguplus:\"⨄\",bigvee:\"⋁\",bigwedge:\"⋀\",bkarow:\"⤍\",blacklozenge:\"⧫\",blacksquare:\"▪\",blacktriangle:\"▴\",blacktriangledown:\"▾\",blacktriangleleft:\"◂\",blacktriangleright:\"▸\",blank:\"␣\",blk12:\"▒\",blk14:\"░\",blk34:\"▓\",block:\"█\",bne:\"=⃥\",bnequiv:\"≡⃥\",bNot:\"⫭\",bnot:\"⌐\",Bopf:\"𝔹\",bopf:\"𝕓\",bot:\"⊥\",bottom:\"⊥\",bowtie:\"⋈\",boxbox:\"⧉\",boxDL:\"╗\",boxDl:\"╖\",boxdL:\"╕\",boxdl:\"┐\",boxDR:\"╔\",boxDr:\"╓\",boxdR:\"╒\",boxdr:\"┌\",boxH:\"═\",boxh:\"─\",boxHD:\"╦\",boxHd:\"╤\",boxhD:\"╥\",boxhd:\"┬\",boxHU:\"╩\",boxHu:\"╧\",boxhU:\"╨\",boxhu:\"┴\",boxminus:\"⊟\",boxplus:\"⊞\",boxtimes:\"⊠\",boxUL:\"╝\",boxUl:\"╜\",boxuL:\"╛\",boxul:\"┘\",boxUR:\"╚\",boxUr:\"╙\",boxuR:\"╘\",boxur:\"└\",boxV:\"║\",boxv:\"│\",boxVH:\"╬\",boxVh:\"╫\",boxvH:\"╪\",boxvh:\"┼\",boxVL:\"╣\",boxVl:\"╢\",boxvL:\"╡\",boxvl:\"┤\",boxVR:\"╠\",boxVr:\"╟\",boxvR:\"╞\",boxvr:\"├\",bprime:\"‵\",Breve:\"˘\",breve:\"˘\",brvbar:\"¦\",Bscr:\"ℬ\",bscr:\"𝒷\",bsemi:\"⁏\",bsim:\"∽\",bsime:\"⋍\",bsol:\"\\\\\",bsolb:\"⧅\",bsolhsub:\"⟈\",bull:\"•\",bullet:\"•\",bump:\"≎\",bumpE:\"⪮\",bumpe:\"≏\",Bumpeq:\"≎\",bumpeq:\"≏\",Cacute:\"Ć\",cacute:\"ć\",Cap:\"⋒\",cap:\"∩\",capand:\"⩄\",capbrcup:\"⩉\",capcap:\"⩋\",capcup:\"⩇\",capdot:\"⩀\",CapitalDifferentialD:\"ⅅ\",caps:\"∩︀\",caret:\"⁁\",caron:\"ˇ\",Cayleys:\"ℭ\",ccaps:\"⩍\",Ccaron:\"Č\",ccaron:\"č\",Ccedil:\"Ç\",ccedil:\"ç\",Ccirc:\"Ĉ\",ccirc:\"ĉ\",Cconint:\"∰\",ccups:\"⩌\",ccupssm:\"⩐\",Cdot:\"Ċ\",cdot:\"ċ\",cedil:\"¸\",Cedilla:\"¸\",cemptyv:\"⦲\",cent:\"¢\",CenterDot:\"·\",centerdot:\"·\",Cfr:\"ℭ\",cfr:\"𝔠\",CHcy:\"Ч\",chcy:\"ч\",check:\"✓\",checkmark:\"✓\",Chi:\"Χ\",chi:\"χ\",cir:\"○\",circ:\"ˆ\",circeq:\"≗\",circlearrowleft:\"↺\",circlearrowright:\"↻\",circledast:\"⊛\",circledcirc:\"⊚\",circleddash:\"⊝\",CircleDot:\"⊙\",circledR:\"®\",circledS:\"Ⓢ\",CircleMinus:\"⊖\",CirclePlus:\"⊕\",CircleTimes:\"⊗\",cirE:\"⧃\",cire:\"≗\",cirfnint:\"⨐\",cirmid:\"⫯\",cirscir:\"⧂\",ClockwiseContourIntegral:\"∲\",CloseCurlyDoubleQuote:\"”\",CloseCurlyQuote:\"’\",clubs:\"♣\",clubsuit:\"♣\",Colon:\"∷\",colon:\":\",Colone:\"⩴\",colone:\"≔\",coloneq:\"≔\",comma:\",\",commat:\"@\",comp:\"∁\",compfn:\"∘\",complement:\"∁\",complexes:\"ℂ\",cong:\"≅\",congdot:\"⩭\",Congruent:\"≡\",Conint:\"∯\",conint:\"∮\",ContourIntegral:\"∮\",Copf:\"ℂ\",copf:\"𝕔\",coprod:\"∐\",Coproduct:\"∐\",COPY:\"©\",copy:\"©\",copysr:\"℗\",CounterClockwiseContourIntegral:\"∳\",crarr:\"↵\",Cross:\"⨯\",cross:\"✗\",Cscr:\"𝒞\",cscr:\"𝒸\",csub:\"⫏\",csube:\"⫑\",csup:\"⫐\",csupe:\"⫒\",ctdot:\"⋯\",cudarrl:\"⤸\",cudarrr:\"⤵\",cuepr:\"⋞\",cuesc:\"⋟\",cularr:\"↶\",cularrp:\"⤽\",Cup:\"⋓\",cup:\"∪\",cupbrcap:\"⩈\",CupCap:\"≍\",cupcap:\"⩆\",cupcup:\"⩊\",cupdot:\"⊍\",cupor:\"⩅\",cups:\"∪︀\",curarr:\"↷\",curarrm:\"⤼\",curlyeqprec:\"⋞\",curlyeqsucc:\"⋟\",curlyvee:\"⋎\",curlywedge:\"⋏\",curren:\"¤\",curvearrowleft:\"↶\",curvearrowright:\"↷\",cuvee:\"⋎\",cuwed:\"⋏\",cwconint:\"∲\",cwint:\"∱\",cylcty:\"⌭\",Dagger:\"‡\",dagger:\"†\",daleth:\"ℸ\",Darr:\"↡\",dArr:\"⇓\",darr:\"↓\",dash:\"‐\",Dashv:\"⫤\",dashv:\"⊣\",dbkarow:\"⤏\",dblac:\"˝\",Dcaron:\"Ď\",dcaron:\"ď\",Dcy:\"Д\",dcy:\"д\",DD:\"ⅅ\",dd:\"ⅆ\",ddagger:\"‡\",ddarr:\"⇊\",DDotrahd:\"⤑\",ddotseq:\"⩷\",deg:\"°\",Del:\"∇\",Delta:\"Δ\",delta:\"δ\",demptyv:\"⦱\",dfisht:\"⥿\",Dfr:\"𝔇\",dfr:\"𝔡\",dHar:\"⥥\",dharl:\"⇃\",dharr:\"⇂\",DiacriticalAcute:\"´\",DiacriticalDot:\"˙\",DiacriticalDoubleAcute:\"˝\",DiacriticalGrave:\"`\",DiacriticalTilde:\"˜\",diam:\"⋄\",Diamond:\"⋄\",diamond:\"⋄\",diamondsuit:\"♦\",diams:\"♦\",die:\"¨\",DifferentialD:\"ⅆ\",digamma:\"ϝ\",disin:\"⋲\",div:\"÷\",divide:\"÷\",divideontimes:\"⋇\",divonx:\"⋇\",DJcy:\"Ђ\",djcy:\"ђ\",dlcorn:\"⌞\",dlcrop:\"⌍\",dollar:\"$\",Dopf:\"𝔻\",dopf:\"𝕕\",Dot:\"¨\",dot:\"˙\",DotDot:\"⃜\",doteq:\"≐\",doteqdot:\"≑\",DotEqual:\"≐\",dotminus:\"∸\",dotplus:\"∔\",dotsquare:\"⊡\",doublebarwedge:\"⌆\",DoubleContourIntegral:\"∯\",DoubleDot:\"¨\",DoubleDownArrow:\"⇓\",DoubleLeftArrow:\"⇐\",DoubleLeftRightArrow:\"⇔\",DoubleLeftTee:\"⫤\",DoubleLongLeftArrow:\"⟸\",DoubleLongLeftRightArrow:\"⟺\",DoubleLongRightArrow:\"⟹\",DoubleRightArrow:\"⇒\",DoubleRightTee:\"⊨\",DoubleUpArrow:\"⇑\",DoubleUpDownArrow:\"⇕\",DoubleVerticalBar:\"∥\",DownArrow:\"↓\",Downarrow:\"⇓\",downarrow:\"↓\",DownArrowBar:\"⤓\",DownArrowUpArrow:\"⇵\",DownBreve:\"̑\",downdownarrows:\"⇊\",downharpoonleft:\"⇃\",downharpoonright:\"⇂\",DownLeftRightVector:\"⥐\",DownLeftTeeVector:\"⥞\",DownLeftVector:\"↽\",DownLeftVectorBar:\"⥖\",DownRightTeeVector:\"⥟\",DownRightVector:\"⇁\",DownRightVectorBar:\"⥗\",DownTee:\"⊤\",DownTeeArrow:\"↧\",drbkarow:\"⤐\",drcorn:\"⌟\",drcrop:\"⌌\",Dscr:\"𝒟\",dscr:\"𝒹\",DScy:\"Ѕ\",dscy:\"ѕ\",dsol:\"⧶\",Dstrok:\"Đ\",dstrok:\"đ\",dtdot:\"⋱\",dtri:\"▿\",dtrif:\"▾\",duarr:\"⇵\",duhar:\"⥯\",dwangle:\"⦦\",DZcy:\"Џ\",dzcy:\"џ\",dzigrarr:\"⟿\",Eacute:\"É\",eacute:\"é\",easter:\"⩮\",Ecaron:\"Ě\",ecaron:\"ě\",ecir:\"≖\",Ecirc:\"Ê\",ecirc:\"ê\",ecolon:\"≕\",Ecy:\"Э\",ecy:\"э\",eDDot:\"⩷\",Edot:\"Ė\",eDot:\"≑\",edot:\"ė\",ee:\"ⅇ\",efDot:\"≒\",Efr:\"𝔈\",efr:\"𝔢\",eg:\"⪚\",Egrave:\"È\",egrave:\"è\",egs:\"⪖\",egsdot:\"⪘\",el:\"⪙\",Element:\"∈\",elinters:\"⏧\",ell:\"ℓ\",els:\"⪕\",elsdot:\"⪗\",Emacr:\"Ē\",emacr:\"ē\",empty:\"∅\",emptyset:\"∅\",EmptySmallSquare:\"◻\",emptyv:\"∅\",EmptyVerySmallSquare:\"▫\",emsp:\" \",emsp13:\" \",emsp14:\" \",ENG:\"Ŋ\",eng:\"ŋ\",ensp:\" \",Eogon:\"Ę\",eogon:\"ę\",Eopf:\"𝔼\",eopf:\"𝕖\",epar:\"⋕\",eparsl:\"⧣\",eplus:\"⩱\",epsi:\"ε\",Epsilon:\"Ε\",epsilon:\"ε\",epsiv:\"ϵ\",eqcirc:\"≖\",eqcolon:\"≕\",eqsim:\"≂\",eqslantgtr:\"⪖\",eqslantless:\"⪕\",Equal:\"⩵\",equals:\"=\",EqualTilde:\"≂\",equest:\"≟\",Equilibrium:\"⇌\",equiv:\"≡\",equivDD:\"⩸\",eqvparsl:\"⧥\",erarr:\"⥱\",erDot:\"≓\",Escr:\"ℰ\",escr:\"ℯ\",esdot:\"≐\",Esim:\"⩳\",esim:\"≂\",Eta:\"Η\",eta:\"η\",ETH:\"Ð\",eth:\"ð\",Euml:\"Ë\",euml:\"ë\",euro:\"€\",excl:\"!\",exist:\"∃\",Exists:\"∃\",expectation:\"ℰ\",ExponentialE:\"ⅇ\",exponentiale:\"ⅇ\",fallingdotseq:\"≒\",Fcy:\"Ф\",fcy:\"ф\",female:\"♀\",ffilig:\"ffi\",fflig:\"ff\",ffllig:\"ffl\",Ffr:\"𝔉\",ffr:\"𝔣\",filig:\"fi\",FilledSmallSquare:\"◼\",FilledVerySmallSquare:\"▪\",fjlig:\"fj\",flat:\"♭\",fllig:\"fl\",fltns:\"▱\",fnof:\"ƒ\",Fopf:\"𝔽\",fopf:\"𝕗\",ForAll:\"∀\",forall:\"∀\",fork:\"⋔\",forkv:\"⫙\",Fouriertrf:\"ℱ\",fpartint:\"⨍\",frac12:\"½\",frac13:\"⅓\",frac14:\"¼\",frac15:\"⅕\",frac16:\"⅙\",frac18:\"⅛\",frac23:\"⅔\",frac25:\"⅖\",frac34:\"¾\",frac35:\"⅗\",frac38:\"⅜\",frac45:\"⅘\",frac56:\"⅚\",frac58:\"⅝\",frac78:\"⅞\",frasl:\"⁄\",frown:\"⌢\",Fscr:\"ℱ\",fscr:\"𝒻\",gacute:\"ǵ\",Gamma:\"Γ\",gamma:\"γ\",Gammad:\"Ϝ\",gammad:\"ϝ\",gap:\"⪆\",Gbreve:\"Ğ\",gbreve:\"ğ\",Gcedil:\"Ģ\",Gcirc:\"Ĝ\",gcirc:\"ĝ\",Gcy:\"Г\",gcy:\"г\",Gdot:\"Ġ\",gdot:\"ġ\",gE:\"≧\",ge:\"≥\",gEl:\"⪌\",gel:\"⋛\",geq:\"≥\",geqq:\"≧\",geqslant:\"⩾\",ges:\"⩾\",gescc:\"⪩\",gesdot:\"⪀\",gesdoto:\"⪂\",gesdotol:\"⪄\",gesl:\"⋛︀\",gesles:\"⪔\",Gfr:\"𝔊\",gfr:\"𝔤\",Gg:\"⋙\",gg:\"≫\",ggg:\"⋙\",gimel:\"ℷ\",GJcy:\"Ѓ\",gjcy:\"ѓ\",gl:\"≷\",gla:\"⪥\",glE:\"⪒\",glj:\"⪤\",gnap:\"⪊\",gnapprox:\"⪊\",gnE:\"≩\",gne:\"⪈\",gneq:\"⪈\",gneqq:\"≩\",gnsim:\"⋧\",Gopf:\"𝔾\",gopf:\"𝕘\",grave:\"`\",GreaterEqual:\"≥\",GreaterEqualLess:\"⋛\",GreaterFullEqual:\"≧\",GreaterGreater:\"⪢\",GreaterLess:\"≷\",GreaterSlantEqual:\"⩾\",GreaterTilde:\"≳\",Gscr:\"𝒢\",gscr:\"ℊ\",gsim:\"≳\",gsime:\"⪎\",gsiml:\"⪐\",GT:\">\",Gt:\"≫\",gt:\">\",gtcc:\"⪧\",gtcir:\"⩺\",gtdot:\"⋗\",gtlPar:\"⦕\",gtquest:\"⩼\",gtrapprox:\"⪆\",gtrarr:\"⥸\",gtrdot:\"⋗\",gtreqless:\"⋛\",gtreqqless:\"⪌\",gtrless:\"≷\",gtrsim:\"≳\",gvertneqq:\"≩︀\",gvnE:\"≩︀\",Hacek:\"ˇ\",hairsp:\" \",half:\"½\",hamilt:\"ℋ\",HARDcy:\"Ъ\",hardcy:\"ъ\",hArr:\"⇔\",harr:\"↔\",harrcir:\"⥈\",harrw:\"↭\",Hat:\"^\",hbar:\"ℏ\",Hcirc:\"Ĥ\",hcirc:\"ĥ\",hearts:\"♥\",heartsuit:\"♥\",hellip:\"…\",hercon:\"⊹\",Hfr:\"ℌ\",hfr:\"𝔥\",HilbertSpace:\"ℋ\",hksearow:\"⤥\",hkswarow:\"⤦\",hoarr:\"⇿\",homtht:\"∻\",hookleftarrow:\"↩\",hookrightarrow:\"↪\",Hopf:\"ℍ\",hopf:\"𝕙\",horbar:\"―\",HorizontalLine:\"─\",Hscr:\"ℋ\",hscr:\"𝒽\",hslash:\"ℏ\",Hstrok:\"Ħ\",hstrok:\"ħ\",HumpDownHump:\"≎\",HumpEqual:\"≏\",hybull:\"⁃\",hyphen:\"‐\",Iacute:\"Í\",iacute:\"í\",ic:\"\",Icirc:\"Î\",icirc:\"î\",Icy:\"И\",icy:\"и\",Idot:\"İ\",IEcy:\"Е\",iecy:\"е\",iexcl:\"¡\",iff:\"⇔\",Ifr:\"ℑ\",ifr:\"𝔦\",Igrave:\"Ì\",igrave:\"ì\",ii:\"ⅈ\",iiiint:\"⨌\",iiint:\"∭\",iinfin:\"⧜\",iiota:\"℩\",IJlig:\"IJ\",ijlig:\"ij\",Im:\"ℑ\",Imacr:\"Ī\",imacr:\"ī\",image:\"ℑ\",ImaginaryI:\"ⅈ\",imagline:\"ℐ\",imagpart:\"ℑ\",imath:\"ı\",imof:\"⊷\",imped:\"Ƶ\",Implies:\"⇒\",in:\"∈\",incare:\"℅\",infin:\"∞\",infintie:\"⧝\",inodot:\"ı\",Int:\"∬\",int:\"∫\",intcal:\"⊺\",integers:\"ℤ\",Integral:\"∫\",intercal:\"⊺\",Intersection:\"⋂\",intlarhk:\"⨗\",intprod:\"⨼\",InvisibleComma:\"\",InvisibleTimes:\"\",IOcy:\"Ё\",iocy:\"ё\",Iogon:\"Į\",iogon:\"į\",Iopf:\"𝕀\",iopf:\"𝕚\",Iota:\"Ι\",iota:\"ι\",iprod:\"⨼\",iquest:\"¿\",Iscr:\"ℐ\",iscr:\"𝒾\",isin:\"∈\",isindot:\"⋵\",isinE:\"⋹\",isins:\"⋴\",isinsv:\"⋳\",isinv:\"∈\",it:\"\",Itilde:\"Ĩ\",itilde:\"ĩ\",Iukcy:\"І\",iukcy:\"і\",Iuml:\"Ï\",iuml:\"ï\",Jcirc:\"Ĵ\",jcirc:\"ĵ\",Jcy:\"Й\",jcy:\"й\",Jfr:\"𝔍\",jfr:\"𝔧\",jmath:\"ȷ\",Jopf:\"𝕁\",jopf:\"𝕛\",Jscr:\"𝒥\",jscr:\"𝒿\",Jsercy:\"Ј\",jsercy:\"ј\",Jukcy:\"Є\",jukcy:\"є\",Kappa:\"Κ\",kappa:\"κ\",kappav:\"ϰ\",Kcedil:\"Ķ\",kcedil:\"ķ\",Kcy:\"К\",kcy:\"к\",Kfr:\"𝔎\",kfr:\"𝔨\",kgreen:\"ĸ\",KHcy:\"Х\",khcy:\"х\",KJcy:\"Ќ\",kjcy:\"ќ\",Kopf:\"𝕂\",kopf:\"𝕜\",Kscr:\"𝒦\",kscr:\"𝓀\",lAarr:\"⇚\",Lacute:\"Ĺ\",lacute:\"ĺ\",laemptyv:\"⦴\",lagran:\"ℒ\",Lambda:\"Λ\",lambda:\"λ\",Lang:\"⟪\",lang:\"⟨\",langd:\"⦑\",langle:\"⟨\",lap:\"⪅\",Laplacetrf:\"ℒ\",laquo:\"«\",Larr:\"↞\",lArr:\"⇐\",larr:\"←\",larrb:\"⇤\",larrbfs:\"⤟\",larrfs:\"⤝\",larrhk:\"↩\",larrlp:\"↫\",larrpl:\"⤹\",larrsim:\"⥳\",larrtl:\"↢\",lat:\"⪫\",lAtail:\"⤛\",latail:\"⤙\",late:\"⪭\",lates:\"⪭︀\",lBarr:\"⤎\",lbarr:\"⤌\",lbbrk:\"❲\",lbrace:\"{\",lbrack:\"[\",lbrke:\"⦋\",lbrksld:\"⦏\",lbrkslu:\"⦍\",Lcaron:\"Ľ\",lcaron:\"ľ\",Lcedil:\"Ļ\",lcedil:\"ļ\",lceil:\"⌈\",lcub:\"{\",Lcy:\"Л\",lcy:\"л\",ldca:\"⤶\",ldquo:\"“\",ldquor:\"„\",ldrdhar:\"⥧\",ldrushar:\"⥋\",ldsh:\"↲\",lE:\"≦\",le:\"≤\",LeftAngleBracket:\"⟨\",LeftArrow:\"←\",Leftarrow:\"⇐\",leftarrow:\"←\",LeftArrowBar:\"⇤\",LeftArrowRightArrow:\"⇆\",leftarrowtail:\"↢\",LeftCeiling:\"⌈\",LeftDoubleBracket:\"⟦\",LeftDownTeeVector:\"⥡\",LeftDownVector:\"⇃\",LeftDownVectorBar:\"⥙\",LeftFloor:\"⌊\",leftharpoondown:\"↽\",leftharpoonup:\"↼\",leftleftarrows:\"⇇\",LeftRightArrow:\"↔\",Leftrightarrow:\"⇔\",leftrightarrow:\"↔\",leftrightarrows:\"⇆\",leftrightharpoons:\"⇋\",leftrightsquigarrow:\"↭\",LeftRightVector:\"⥎\",LeftTee:\"⊣\",LeftTeeArrow:\"↤\",LeftTeeVector:\"⥚\",leftthreetimes:\"⋋\",LeftTriangle:\"⊲\",LeftTriangleBar:\"⧏\",LeftTriangleEqual:\"⊴\",LeftUpDownVector:\"⥑\",LeftUpTeeVector:\"⥠\",LeftUpVector:\"↿\",LeftUpVectorBar:\"⥘\",LeftVector:\"↼\",LeftVectorBar:\"⥒\",lEg:\"⪋\",leg:\"⋚\",leq:\"≤\",leqq:\"≦\",leqslant:\"⩽\",les:\"⩽\",lescc:\"⪨\",lesdot:\"⩿\",lesdoto:\"⪁\",lesdotor:\"⪃\",lesg:\"⋚︀\",lesges:\"⪓\",lessapprox:\"⪅\",lessdot:\"⋖\",lesseqgtr:\"⋚\",lesseqqgtr:\"⪋\",LessEqualGreater:\"⋚\",LessFullEqual:\"≦\",LessGreater:\"≶\",lessgtr:\"≶\",LessLess:\"⪡\",lesssim:\"≲\",LessSlantEqual:\"⩽\",LessTilde:\"≲\",lfisht:\"⥼\",lfloor:\"⌊\",Lfr:\"𝔏\",lfr:\"𝔩\",lg:\"≶\",lgE:\"⪑\",lHar:\"⥢\",lhard:\"↽\",lharu:\"↼\",lharul:\"⥪\",lhblk:\"▄\",LJcy:\"Љ\",ljcy:\"љ\",Ll:\"⋘\",ll:\"≪\",llarr:\"⇇\",llcorner:\"⌞\",Lleftarrow:\"⇚\",llhard:\"⥫\",lltri:\"◺\",Lmidot:\"Ŀ\",lmidot:\"ŀ\",lmoust:\"⎰\",lmoustache:\"⎰\",lnap:\"⪉\",lnapprox:\"⪉\",lnE:\"≨\",lne:\"⪇\",lneq:\"⪇\",lneqq:\"≨\",lnsim:\"⋦\",loang:\"⟬\",loarr:\"⇽\",lobrk:\"⟦\",LongLeftArrow:\"⟵\",Longleftarrow:\"⟸\",longleftarrow:\"⟵\",LongLeftRightArrow:\"⟷\",Longleftrightarrow:\"⟺\",longleftrightarrow:\"⟷\",longmapsto:\"⟼\",LongRightArrow:\"⟶\",Longrightarrow:\"⟹\",longrightarrow:\"⟶\",looparrowleft:\"↫\",looparrowright:\"↬\",lopar:\"⦅\",Lopf:\"𝕃\",lopf:\"𝕝\",loplus:\"⨭\",lotimes:\"⨴\",lowast:\"∗\",lowbar:\"_\",LowerLeftArrow:\"↙\",LowerRightArrow:\"↘\",loz:\"◊\",lozenge:\"◊\",lozf:\"⧫\",lpar:\"(\",lparlt:\"⦓\",lrarr:\"⇆\",lrcorner:\"⌟\",lrhar:\"⇋\",lrhard:\"⥭\",lrm:\"\",lrtri:\"⊿\",lsaquo:\"‹\",Lscr:\"ℒ\",lscr:\"𝓁\",Lsh:\"↰\",lsh:\"↰\",lsim:\"≲\",lsime:\"⪍\",lsimg:\"⪏\",lsqb:\"[\",lsquo:\"‘\",lsquor:\"‚\",Lstrok:\"Ł\",lstrok:\"ł\",LT:\"<\",Lt:\"≪\",lt:\"<\",ltcc:\"⪦\",ltcir:\"⩹\",ltdot:\"⋖\",lthree:\"⋋\",ltimes:\"⋉\",ltlarr:\"⥶\",ltquest:\"⩻\",ltri:\"◃\",ltrie:\"⊴\",ltrif:\"◂\",ltrPar:\"⦖\",lurdshar:\"⥊\",luruhar:\"⥦\",lvertneqq:\"≨︀\",lvnE:\"≨︀\",macr:\"¯\",male:\"♂\",malt:\"✠\",maltese:\"✠\",Map:\"⤅\",map:\"↦\",mapsto:\"↦\",mapstodown:\"↧\",mapstoleft:\"↤\",mapstoup:\"↥\",marker:\"▮\",mcomma:\"⨩\",Mcy:\"М\",mcy:\"м\",mdash:\"—\",mDDot:\"∺\",measuredangle:\"∡\",MediumSpace:\" \",Mellintrf:\"ℳ\",Mfr:\"𝔐\",mfr:\"𝔪\",mho:\"℧\",micro:\"µ\",mid:\"∣\",midast:\"*\",midcir:\"⫰\",middot:\"·\",minus:\"−\",minusb:\"⊟\",minusd:\"∸\",minusdu:\"⨪\",MinusPlus:\"∓\",mlcp:\"⫛\",mldr:\"…\",mnplus:\"∓\",models:\"⊧\",Mopf:\"𝕄\",mopf:\"𝕞\",mp:\"∓\",Mscr:\"ℳ\",mscr:\"𝓂\",mstpos:\"∾\",Mu:\"Μ\",mu:\"μ\",multimap:\"⊸\",mumap:\"⊸\",nabla:\"∇\",Nacute:\"Ń\",nacute:\"ń\",nang:\"∠⃒\",nap:\"≉\",napE:\"⩰̸\",napid:\"≋̸\",napos:\"ʼn\",napprox:\"≉\",natur:\"♮\",natural:\"♮\",naturals:\"ℕ\",nbsp:\" \",nbump:\"≎̸\",nbumpe:\"≏̸\",ncap:\"⩃\",Ncaron:\"Ň\",ncaron:\"ň\",Ncedil:\"Ņ\",ncedil:\"ņ\",ncong:\"≇\",ncongdot:\"⩭̸\",ncup:\"⩂\",Ncy:\"Н\",ncy:\"н\",ndash:\"–\",ne:\"≠\",nearhk:\"⤤\",neArr:\"⇗\",nearr:\"↗\",nearrow:\"↗\",nedot:\"≐̸\",NegativeMediumSpace:\"\",NegativeThickSpace:\"\",NegativeThinSpace:\"\",NegativeVeryThinSpace:\"\",nequiv:\"≢\",nesear:\"⤨\",nesim:\"≂̸\",NestedGreaterGreater:\"≫\",NestedLessLess:\"≪\",NewLine:\"\\n\",nexist:\"∄\",nexists:\"∄\",Nfr:\"𝔑\",nfr:\"𝔫\",ngE:\"≧̸\",nge:\"≱\",ngeq:\"≱\",ngeqq:\"≧̸\",ngeqslant:\"⩾̸\",nges:\"⩾̸\",nGg:\"⋙̸\",ngsim:\"≵\",nGt:\"≫⃒\",ngt:\"≯\",ngtr:\"≯\",nGtv:\"≫̸\",nhArr:\"⇎\",nharr:\"↮\",nhpar:\"⫲\",ni:\"∋\",nis:\"⋼\",nisd:\"⋺\",niv:\"∋\",NJcy:\"Њ\",njcy:\"њ\",nlArr:\"⇍\",nlarr:\"↚\",nldr:\"‥\",nlE:\"≦̸\",nle:\"≰\",nLeftarrow:\"⇍\",nleftarrow:\"↚\",nLeftrightarrow:\"⇎\",nleftrightarrow:\"↮\",nleq:\"≰\",nleqq:\"≦̸\",nleqslant:\"⩽̸\",nles:\"⩽̸\",nless:\"≮\",nLl:\"⋘̸\",nlsim:\"≴\",nLt:\"≪⃒\",nlt:\"≮\",nltri:\"⋪\",nltrie:\"⋬\",nLtv:\"≪̸\",nmid:\"∤\",NoBreak:\"\",NonBreakingSpace:\" \",Nopf:\"ℕ\",nopf:\"𝕟\",Not:\"⫬\",not:\"¬\",NotCongruent:\"≢\",NotCupCap:\"≭\",NotDoubleVerticalBar:\"∦\",NotElement:\"∉\",NotEqual:\"≠\",NotEqualTilde:\"≂̸\",NotExists:\"∄\",NotGreater:\"≯\",NotGreaterEqual:\"≱\",NotGreaterFullEqual:\"≧̸\",NotGreaterGreater:\"≫̸\",NotGreaterLess:\"≹\",NotGreaterSlantEqual:\"⩾̸\",NotGreaterTilde:\"≵\",NotHumpDownHump:\"≎̸\",NotHumpEqual:\"≏̸\",notin:\"∉\",notindot:\"⋵̸\",notinE:\"⋹̸\",notinva:\"∉\",notinvb:\"⋷\",notinvc:\"⋶\",NotLeftTriangle:\"⋪\",NotLeftTriangleBar:\"⧏̸\",NotLeftTriangleEqual:\"⋬\",NotLess:\"≮\",NotLessEqual:\"≰\",NotLessGreater:\"≸\",NotLessLess:\"≪̸\",NotLessSlantEqual:\"⩽̸\",NotLessTilde:\"≴\",NotNestedGreaterGreater:\"⪢̸\",NotNestedLessLess:\"⪡̸\",notni:\"∌\",notniva:\"∌\",notnivb:\"⋾\",notnivc:\"⋽\",NotPrecedes:\"⊀\",NotPrecedesEqual:\"⪯̸\",NotPrecedesSlantEqual:\"⋠\",NotReverseElement:\"∌\",NotRightTriangle:\"⋫\",NotRightTriangleBar:\"⧐̸\",NotRightTriangleEqual:\"⋭\",NotSquareSubset:\"⊏̸\",NotSquareSubsetEqual:\"⋢\",NotSquareSuperset:\"⊐̸\",NotSquareSupersetEqual:\"⋣\",NotSubset:\"⊂⃒\",NotSubsetEqual:\"⊈\",NotSucceeds:\"⊁\",NotSucceedsEqual:\"⪰̸\",NotSucceedsSlantEqual:\"⋡\",NotSucceedsTilde:\"≿̸\",NotSuperset:\"⊃⃒\",NotSupersetEqual:\"⊉\",NotTilde:\"≁\",NotTildeEqual:\"≄\",NotTildeFullEqual:\"≇\",NotTildeTilde:\"≉\",NotVerticalBar:\"∤\",npar:\"∦\",nparallel:\"∦\",nparsl:\"⫽⃥\",npart:\"∂̸\",npolint:\"⨔\",npr:\"⊀\",nprcue:\"⋠\",npre:\"⪯̸\",nprec:\"⊀\",npreceq:\"⪯̸\",nrArr:\"⇏\",nrarr:\"↛\",nrarrc:\"⤳̸\",nrarrw:\"↝̸\",nRightarrow:\"⇏\",nrightarrow:\"↛\",nrtri:\"⋫\",nrtrie:\"⋭\",nsc:\"⊁\",nsccue:\"⋡\",nsce:\"⪰̸\",Nscr:\"𝒩\",nscr:\"𝓃\",nshortmid:\"∤\",nshortparallel:\"∦\",nsim:\"≁\",nsime:\"≄\",nsimeq:\"≄\",nsmid:\"∤\",nspar:\"∦\",nsqsube:\"⋢\",nsqsupe:\"⋣\",nsub:\"⊄\",nsubE:\"⫅̸\",nsube:\"⊈\",nsubset:\"⊂⃒\",nsubseteq:\"⊈\",nsubseteqq:\"⫅̸\",nsucc:\"⊁\",nsucceq:\"⪰̸\",nsup:\"⊅\",nsupE:\"⫆̸\",nsupe:\"⊉\",nsupset:\"⊃⃒\",nsupseteq:\"⊉\",nsupseteqq:\"⫆̸\",ntgl:\"≹\",Ntilde:\"Ñ\",ntilde:\"ñ\",ntlg:\"≸\",ntriangleleft:\"⋪\",ntrianglelefteq:\"⋬\",ntriangleright:\"⋫\",ntrianglerighteq:\"⋭\",Nu:\"Ν\",nu:\"ν\",num:\"#\",numero:\"№\",numsp:\" \",nvap:\"≍⃒\",nVDash:\"⊯\",nVdash:\"⊮\",nvDash:\"⊭\",nvdash:\"⊬\",nvge:\"≥⃒\",nvgt:\">⃒\",nvHarr:\"⤄\",nvinfin:\"⧞\",nvlArr:\"⤂\",nvle:\"≤⃒\",nvlt:\"<⃒\",nvltrie:\"⊴⃒\",nvrArr:\"⤃\",nvrtrie:\"⊵⃒\",nvsim:\"∼⃒\",nwarhk:\"⤣\",nwArr:\"⇖\",nwarr:\"↖\",nwarrow:\"↖\",nwnear:\"⤧\",Oacute:\"Ó\",oacute:\"ó\",oast:\"⊛\",ocir:\"⊚\",Ocirc:\"Ô\",ocirc:\"ô\",Ocy:\"О\",ocy:\"о\",odash:\"⊝\",Odblac:\"Ő\",odblac:\"ő\",odiv:\"⨸\",odot:\"⊙\",odsold:\"⦼\",OElig:\"Œ\",oelig:\"œ\",ofcir:\"⦿\",Ofr:\"𝔒\",ofr:\"𝔬\",ogon:\"˛\",Ograve:\"Ò\",ograve:\"ò\",ogt:\"⧁\",ohbar:\"⦵\",ohm:\"Ω\",oint:\"∮\",olarr:\"↺\",olcir:\"⦾\",olcross:\"⦻\",oline:\"‾\",olt:\"⧀\",Omacr:\"Ō\",omacr:\"ō\",Omega:\"Ω\",omega:\"ω\",Omicron:\"Ο\",omicron:\"ο\",omid:\"⦶\",ominus:\"⊖\",Oopf:\"𝕆\",oopf:\"𝕠\",opar:\"⦷\",OpenCurlyDoubleQuote:\"“\",OpenCurlyQuote:\"‘\",operp:\"⦹\",oplus:\"⊕\",Or:\"⩔\",or:\"∨\",orarr:\"↻\",ord:\"⩝\",order:\"ℴ\",orderof:\"ℴ\",ordf:\"ª\",ordm:\"º\",origof:\"⊶\",oror:\"⩖\",orslope:\"⩗\",orv:\"⩛\",oS:\"Ⓢ\",Oscr:\"𝒪\",oscr:\"ℴ\",Oslash:\"Ø\",oslash:\"ø\",osol:\"⊘\",Otilde:\"Õ\",otilde:\"õ\",Otimes:\"⨷\",otimes:\"⊗\",otimesas:\"⨶\",Ouml:\"Ö\",ouml:\"ö\",ovbar:\"⌽\",OverBar:\"‾\",OverBrace:\"⏞\",OverBracket:\"⎴\",OverParenthesis:\"⏜\",par:\"∥\",para:\"¶\",parallel:\"∥\",parsim:\"⫳\",parsl:\"⫽\",part:\"∂\",PartialD:\"∂\",Pcy:\"П\",pcy:\"п\",percnt:\"%\",period:\".\",permil:\"‰\",perp:\"⊥\",pertenk:\"‱\",Pfr:\"𝔓\",pfr:\"𝔭\",Phi:\"Φ\",phi:\"φ\",phiv:\"ϕ\",phmmat:\"ℳ\",phone:\"☎\",Pi:\"Π\",pi:\"π\",pitchfork:\"⋔\",piv:\"ϖ\",planck:\"ℏ\",planckh:\"ℎ\",plankv:\"ℏ\",plus:\"+\",plusacir:\"⨣\",plusb:\"⊞\",pluscir:\"⨢\",plusdo:\"∔\",plusdu:\"⨥\",pluse:\"⩲\",PlusMinus:\"±\",plusmn:\"±\",plussim:\"⨦\",plustwo:\"⨧\",pm:\"±\",Poincareplane:\"ℌ\",pointint:\"⨕\",Popf:\"ℙ\",popf:\"𝕡\",pound:\"£\",Pr:\"⪻\",pr:\"≺\",prap:\"⪷\",prcue:\"≼\",prE:\"⪳\",pre:\"⪯\",prec:\"≺\",precapprox:\"⪷\",preccurlyeq:\"≼\",Precedes:\"≺\",PrecedesEqual:\"⪯\",PrecedesSlantEqual:\"≼\",PrecedesTilde:\"≾\",preceq:\"⪯\",precnapprox:\"⪹\",precneqq:\"⪵\",precnsim:\"⋨\",precsim:\"≾\",Prime:\"″\",prime:\"′\",primes:\"ℙ\",prnap:\"⪹\",prnE:\"⪵\",prnsim:\"⋨\",prod:\"∏\",Product:\"∏\",profalar:\"⌮\",profline:\"⌒\",profsurf:\"⌓\",prop:\"∝\",Proportion:\"∷\",Proportional:\"∝\",propto:\"∝\",prsim:\"≾\",prurel:\"⊰\",Pscr:\"𝒫\",pscr:\"𝓅\",Psi:\"Ψ\",psi:\"ψ\",puncsp:\" \",Qfr:\"𝔔\",qfr:\"𝔮\",qint:\"⨌\",Qopf:\"ℚ\",qopf:\"𝕢\",qprime:\"⁗\",Qscr:\"𝒬\",qscr:\"𝓆\",quaternions:\"ℍ\",quatint:\"⨖\",quest:\"?\",questeq:\"≟\",QUOT:'\"',quot:'\"',rAarr:\"⇛\",race:\"∽̱\",Racute:\"Ŕ\",racute:\"ŕ\",radic:\"√\",raemptyv:\"⦳\",Rang:\"⟫\",rang:\"⟩\",rangd:\"⦒\",range:\"⦥\",rangle:\"⟩\",raquo:\"»\",Rarr:\"↠\",rArr:\"⇒\",rarr:\"→\",rarrap:\"⥵\",rarrb:\"⇥\",rarrbfs:\"⤠\",rarrc:\"⤳\",rarrfs:\"⤞\",rarrhk:\"↪\",rarrlp:\"↬\",rarrpl:\"⥅\",rarrsim:\"⥴\",Rarrtl:\"⤖\",rarrtl:\"↣\",rarrw:\"↝\",rAtail:\"⤜\",ratail:\"⤚\",ratio:\"∶\",rationals:\"ℚ\",RBarr:\"⤐\",rBarr:\"⤏\",rbarr:\"⤍\",rbbrk:\"❳\",rbrace:\"}\",rbrack:\"]\",rbrke:\"⦌\",rbrksld:\"⦎\",rbrkslu:\"⦐\",Rcaron:\"Ř\",rcaron:\"ř\",Rcedil:\"Ŗ\",rcedil:\"ŗ\",rceil:\"⌉\",rcub:\"}\",Rcy:\"Р\",rcy:\"р\",rdca:\"⤷\",rdldhar:\"⥩\",rdquo:\"”\",rdquor:\"”\",rdsh:\"↳\",Re:\"ℜ\",real:\"ℜ\",realine:\"ℛ\",realpart:\"ℜ\",reals:\"ℝ\",rect:\"▭\",REG:\"®\",reg:\"®\",ReverseElement:\"∋\",ReverseEquilibrium:\"⇋\",ReverseUpEquilibrium:\"⥯\",rfisht:\"⥽\",rfloor:\"⌋\",Rfr:\"ℜ\",rfr:\"𝔯\",rHar:\"⥤\",rhard:\"⇁\",rharu:\"⇀\",rharul:\"⥬\",Rho:\"Ρ\",rho:\"ρ\",rhov:\"ϱ\",RightAngleBracket:\"⟩\",RightArrow:\"→\",Rightarrow:\"⇒\",rightarrow:\"→\",RightArrowBar:\"⇥\",RightArrowLeftArrow:\"⇄\",rightarrowtail:\"↣\",RightCeiling:\"⌉\",RightDoubleBracket:\"⟧\",RightDownTeeVector:\"⥝\",RightDownVector:\"⇂\",RightDownVectorBar:\"⥕\",RightFloor:\"⌋\",rightharpoondown:\"⇁\",rightharpoonup:\"⇀\",rightleftarrows:\"⇄\",rightleftharpoons:\"⇌\",rightrightarrows:\"⇉\",rightsquigarrow:\"↝\",RightTee:\"⊢\",RightTeeArrow:\"↦\",RightTeeVector:\"⥛\",rightthreetimes:\"⋌\",RightTriangle:\"⊳\",RightTriangleBar:\"⧐\",RightTriangleEqual:\"⊵\",RightUpDownVector:\"⥏\",RightUpTeeVector:\"⥜\",RightUpVector:\"↾\",RightUpVectorBar:\"⥔\",RightVector:\"⇀\",RightVectorBar:\"⥓\",ring:\"˚\",risingdotseq:\"≓\",rlarr:\"⇄\",rlhar:\"⇌\",rlm:\"\",rmoust:\"⎱\",rmoustache:\"⎱\",rnmid:\"⫮\",roang:\"⟭\",roarr:\"⇾\",robrk:\"⟧\",ropar:\"⦆\",Ropf:\"ℝ\",ropf:\"𝕣\",roplus:\"⨮\",rotimes:\"⨵\",RoundImplies:\"⥰\",rpar:\")\",rpargt:\"⦔\",rppolint:\"⨒\",rrarr:\"⇉\",Rrightarrow:\"⇛\",rsaquo:\"›\",Rscr:\"ℛ\",rscr:\"𝓇\",Rsh:\"↱\",rsh:\"↱\",rsqb:\"]\",rsquo:\"’\",rsquor:\"’\",rthree:\"⋌\",rtimes:\"⋊\",rtri:\"▹\",rtrie:\"⊵\",rtrif:\"▸\",rtriltri:\"⧎\",RuleDelayed:\"⧴\",ruluhar:\"⥨\",rx:\"℞\",Sacute:\"Ś\",sacute:\"ś\",sbquo:\"‚\",Sc:\"⪼\",sc:\"≻\",scap:\"⪸\",Scaron:\"Š\",scaron:\"š\",sccue:\"≽\",scE:\"⪴\",sce:\"⪰\",Scedil:\"Ş\",scedil:\"ş\",Scirc:\"Ŝ\",scirc:\"ŝ\",scnap:\"⪺\",scnE:\"⪶\",scnsim:\"⋩\",scpolint:\"⨓\",scsim:\"≿\",Scy:\"С\",scy:\"с\",sdot:\"⋅\",sdotb:\"⊡\",sdote:\"⩦\",searhk:\"⤥\",seArr:\"⇘\",searr:\"↘\",searrow:\"↘\",sect:\"§\",semi:\";\",seswar:\"⤩\",setminus:\"∖\",setmn:\"∖\",sext:\"✶\",Sfr:\"𝔖\",sfr:\"𝔰\",sfrown:\"⌢\",sharp:\"♯\",SHCHcy:\"Щ\",shchcy:\"щ\",SHcy:\"Ш\",shcy:\"ш\",ShortDownArrow:\"↓\",ShortLeftArrow:\"←\",shortmid:\"∣\",shortparallel:\"∥\",ShortRightArrow:\"→\",ShortUpArrow:\"↑\",shy:\"\",Sigma:\"Σ\",sigma:\"σ\",sigmaf:\"ς\",sigmav:\"ς\",sim:\"∼\",simdot:\"⩪\",sime:\"≃\",simeq:\"≃\",simg:\"⪞\",simgE:\"⪠\",siml:\"⪝\",simlE:\"⪟\",simne:\"≆\",simplus:\"⨤\",simrarr:\"⥲\",slarr:\"←\",SmallCircle:\"∘\",smallsetminus:\"∖\",smashp:\"⨳\",smeparsl:\"⧤\",smid:\"∣\",smile:\"⌣\",smt:\"⪪\",smte:\"⪬\",smtes:\"⪬︀\",SOFTcy:\"Ь\",softcy:\"ь\",sol:\"/\",solb:\"⧄\",solbar:\"⌿\",Sopf:\"𝕊\",sopf:\"𝕤\",spades:\"♠\",spadesuit:\"♠\",spar:\"∥\",sqcap:\"⊓\",sqcaps:\"⊓︀\",sqcup:\"⊔\",sqcups:\"⊔︀\",Sqrt:\"√\",sqsub:\"⊏\",sqsube:\"⊑\",sqsubset:\"⊏\",sqsubseteq:\"⊑\",sqsup:\"⊐\",sqsupe:\"⊒\",sqsupset:\"⊐\",sqsupseteq:\"⊒\",squ:\"□\",Square:\"□\",square:\"□\",SquareIntersection:\"⊓\",SquareSubset:\"⊏\",SquareSubsetEqual:\"⊑\",SquareSuperset:\"⊐\",SquareSupersetEqual:\"⊒\",SquareUnion:\"⊔\",squarf:\"▪\",squf:\"▪\",srarr:\"→\",Sscr:\"𝒮\",sscr:\"𝓈\",ssetmn:\"∖\",ssmile:\"⌣\",sstarf:\"⋆\",Star:\"⋆\",star:\"☆\",starf:\"★\",straightepsilon:\"ϵ\",straightphi:\"ϕ\",strns:\"¯\",Sub:\"⋐\",sub:\"⊂\",subdot:\"⪽\",subE:\"⫅\",sube:\"⊆\",subedot:\"⫃\",submult:\"⫁\",subnE:\"⫋\",subne:\"⊊\",subplus:\"⪿\",subrarr:\"⥹\",Subset:\"⋐\",subset:\"⊂\",subseteq:\"⊆\",subseteqq:\"⫅\",SubsetEqual:\"⊆\",subsetneq:\"⊊\",subsetneqq:\"⫋\",subsim:\"⫇\",subsub:\"⫕\",subsup:\"⫓\",succ:\"≻\",succapprox:\"⪸\",succcurlyeq:\"≽\",Succeeds:\"≻\",SucceedsEqual:\"⪰\",SucceedsSlantEqual:\"≽\",SucceedsTilde:\"≿\",succeq:\"⪰\",succnapprox:\"⪺\",succneqq:\"⪶\",succnsim:\"⋩\",succsim:\"≿\",SuchThat:\"∋\",Sum:\"∑\",sum:\"∑\",sung:\"♪\",Sup:\"⋑\",sup:\"⊃\",sup1:\"¹\",sup2:\"²\",sup3:\"³\",supdot:\"⪾\",supdsub:\"⫘\",supE:\"⫆\",supe:\"⊇\",supedot:\"⫄\",Superset:\"⊃\",SupersetEqual:\"⊇\",suphsol:\"⟉\",suphsub:\"⫗\",suplarr:\"⥻\",supmult:\"⫂\",supnE:\"⫌\",supne:\"⊋\",supplus:\"⫀\",Supset:\"⋑\",supset:\"⊃\",supseteq:\"⊇\",supseteqq:\"⫆\",supsetneq:\"⊋\",supsetneqq:\"⫌\",supsim:\"⫈\",supsub:\"⫔\",supsup:\"⫖\",swarhk:\"⤦\",swArr:\"⇙\",swarr:\"↙\",swarrow:\"↙\",swnwar:\"⤪\",szlig:\"ß\",Tab:\"\\t\",target:\"⌖\",Tau:\"Τ\",tau:\"τ\",tbrk:\"⎴\",Tcaron:\"Ť\",tcaron:\"ť\",Tcedil:\"Ţ\",tcedil:\"ţ\",Tcy:\"Т\",tcy:\"т\",tdot:\"⃛\",telrec:\"⌕\",Tfr:\"𝔗\",tfr:\"𝔱\",there4:\"∴\",Therefore:\"∴\",therefore:\"∴\",Theta:\"Θ\",theta:\"θ\",thetasym:\"ϑ\",thetav:\"ϑ\",thickapprox:\"≈\",thicksim:\"∼\",ThickSpace:\" \",thinsp:\" \",ThinSpace:\" \",thkap:\"≈\",thksim:\"∼\",THORN:\"Þ\",thorn:\"þ\",Tilde:\"∼\",tilde:\"˜\",TildeEqual:\"≃\",TildeFullEqual:\"≅\",TildeTilde:\"≈\",times:\"×\",timesb:\"⊠\",timesbar:\"⨱\",timesd:\"⨰\",tint:\"∭\",toea:\"⤨\",top:\"⊤\",topbot:\"⌶\",topcir:\"⫱\",Topf:\"𝕋\",topf:\"𝕥\",topfork:\"⫚\",tosa:\"⤩\",tprime:\"‴\",TRADE:\"™\",trade:\"™\",triangle:\"▵\",triangledown:\"▿\",triangleleft:\"◃\",trianglelefteq:\"⊴\",triangleq:\"≜\",triangleright:\"▹\",trianglerighteq:\"⊵\",tridot:\"◬\",trie:\"≜\",triminus:\"⨺\",TripleDot:\"⃛\",triplus:\"⨹\",trisb:\"⧍\",tritime:\"⨻\",trpezium:\"⏢\",Tscr:\"𝒯\",tscr:\"𝓉\",TScy:\"Ц\",tscy:\"ц\",TSHcy:\"Ћ\",tshcy:\"ћ\",Tstrok:\"Ŧ\",tstrok:\"ŧ\",twixt:\"≬\",twoheadleftarrow:\"↞\",twoheadrightarrow:\"↠\",Uacute:\"Ú\",uacute:\"ú\",Uarr:\"↟\",uArr:\"⇑\",uarr:\"↑\",Uarrocir:\"⥉\",Ubrcy:\"Ў\",ubrcy:\"ў\",Ubreve:\"Ŭ\",ubreve:\"ŭ\",Ucirc:\"Û\",ucirc:\"û\",Ucy:\"У\",ucy:\"у\",udarr:\"⇅\",Udblac:\"Ű\",udblac:\"ű\",udhar:\"⥮\",ufisht:\"⥾\",Ufr:\"𝔘\",ufr:\"𝔲\",Ugrave:\"Ù\",ugrave:\"ù\",uHar:\"⥣\",uharl:\"↿\",uharr:\"↾\",uhblk:\"▀\",ulcorn:\"⌜\",ulcorner:\"⌜\",ulcrop:\"⌏\",ultri:\"◸\",Umacr:\"Ū\",umacr:\"ū\",uml:\"¨\",UnderBar:\"_\",UnderBrace:\"⏟\",UnderBracket:\"⎵\",UnderParenthesis:\"⏝\",Union:\"⋃\",UnionPlus:\"⊎\",Uogon:\"Ų\",uogon:\"ų\",Uopf:\"𝕌\",uopf:\"𝕦\",UpArrow:\"↑\",Uparrow:\"⇑\",uparrow:\"↑\",UpArrowBar:\"⤒\",UpArrowDownArrow:\"⇅\",UpDownArrow:\"↕\",Updownarrow:\"⇕\",updownarrow:\"↕\",UpEquilibrium:\"⥮\",upharpoonleft:\"↿\",upharpoonright:\"↾\",uplus:\"⊎\",UpperLeftArrow:\"↖\",UpperRightArrow:\"↗\",Upsi:\"ϒ\",upsi:\"υ\",upsih:\"ϒ\",Upsilon:\"Υ\",upsilon:\"υ\",UpTee:\"⊥\",UpTeeArrow:\"↥\",upuparrows:\"⇈\",urcorn:\"⌝\",urcorner:\"⌝\",urcrop:\"⌎\",Uring:\"Ů\",uring:\"ů\",urtri:\"◹\",Uscr:\"𝒰\",uscr:\"𝓊\",utdot:\"⋰\",Utilde:\"Ũ\",utilde:\"ũ\",utri:\"▵\",utrif:\"▴\",uuarr:\"⇈\",Uuml:\"Ü\",uuml:\"ü\",uwangle:\"⦧\",vangrt:\"⦜\",varepsilon:\"ϵ\",varkappa:\"ϰ\",varnothing:\"∅\",varphi:\"ϕ\",varpi:\"ϖ\",varpropto:\"∝\",vArr:\"⇕\",varr:\"↕\",varrho:\"ϱ\",varsigma:\"ς\",varsubsetneq:\"⊊︀\",varsubsetneqq:\"⫋︀\",varsupsetneq:\"⊋︀\",varsupsetneqq:\"⫌︀\",vartheta:\"ϑ\",vartriangleleft:\"⊲\",vartriangleright:\"⊳\",Vbar:\"⫫\",vBar:\"⫨\",vBarv:\"⫩\",Vcy:\"В\",vcy:\"в\",VDash:\"⊫\",Vdash:\"⊩\",vDash:\"⊨\",vdash:\"⊢\",Vdashl:\"⫦\",Vee:\"⋁\",vee:\"∨\",veebar:\"⊻\",veeeq:\"≚\",vellip:\"⋮\",Verbar:\"‖\",verbar:\"|\",Vert:\"‖\",vert:\"|\",VerticalBar:\"∣\",VerticalLine:\"|\",VerticalSeparator:\"❘\",VerticalTilde:\"≀\",VeryThinSpace:\" \",Vfr:\"𝔙\",vfr:\"𝔳\",vltri:\"⊲\",vnsub:\"⊂⃒\",vnsup:\"⊃⃒\",Vopf:\"𝕍\",vopf:\"𝕧\",vprop:\"∝\",vrtri:\"⊳\",Vscr:\"𝒱\",vscr:\"𝓋\",vsubnE:\"⫋︀\",vsubne:\"⊊︀\",vsupnE:\"⫌︀\",vsupne:\"⊋︀\",Vvdash:\"⊪\",vzigzag:\"⦚\",Wcirc:\"Ŵ\",wcirc:\"ŵ\",wedbar:\"⩟\",Wedge:\"⋀\",wedge:\"∧\",wedgeq:\"≙\",weierp:\"℘\",Wfr:\"𝔚\",wfr:\"𝔴\",Wopf:\"𝕎\",wopf:\"𝕨\",wp:\"℘\",wr:\"≀\",wreath:\"≀\",Wscr:\"𝒲\",wscr:\"𝓌\",xcap:\"⋂\",xcirc:\"◯\",xcup:\"⋃\",xdtri:\"▽\",Xfr:\"𝔛\",xfr:\"𝔵\",xhArr:\"⟺\",xharr:\"⟷\",Xi:\"Ξ\",xi:\"ξ\",xlArr:\"⟸\",xlarr:\"⟵\",xmap:\"⟼\",xnis:\"⋻\",xodot:\"⨀\",Xopf:\"𝕏\",xopf:\"𝕩\",xoplus:\"⨁\",xotime:\"⨂\",xrArr:\"⟹\",xrarr:\"⟶\",Xscr:\"𝒳\",xscr:\"𝓍\",xsqcup:\"⨆\",xuplus:\"⨄\",xutri:\"△\",xvee:\"⋁\",xwedge:\"⋀\",Yacute:\"Ý\",yacute:\"ý\",YAcy:\"Я\",yacy:\"я\",Ycirc:\"Ŷ\",ycirc:\"ŷ\",Ycy:\"Ы\",ycy:\"ы\",yen:\"¥\",Yfr:\"𝔜\",yfr:\"𝔶\",YIcy:\"Ї\",yicy:\"ї\",Yopf:\"𝕐\",yopf:\"𝕪\",Yscr:\"𝒴\",yscr:\"𝓎\",YUcy:\"Ю\",yucy:\"ю\",Yuml:\"Ÿ\",yuml:\"ÿ\",Zacute:\"Ź\",zacute:\"ź\",Zcaron:\"Ž\",zcaron:\"ž\",Zcy:\"З\",zcy:\"з\",Zdot:\"Ż\",zdot:\"ż\",zeetrf:\"ℨ\",ZeroWidthSpace:\"\",Zeta:\"Ζ\",zeta:\"ζ\",Zfr:\"ℨ\",zfr:\"𝔷\",ZHcy:\"Ж\",zhcy:\"ж\",zigrarr:\"⇝\",Zopf:\"ℤ\",zopf:\"𝕫\",Zscr:\"𝒵\",zscr:\"𝓏\",zwj:\"\",zwnj:\"\"},r=Object.prototype.hasOwnProperty;function n(e){return o=e,(n=t)&&r.call(n,o)?t[e]:e;var n,o}var o=Object.prototype.hasOwnProperty;function s(e,t){return!!e&&o.call(e,t)}function i(e){return[].slice.call(arguments,1).forEach(function(t){if(t){if(\"object\"!=typeof t)throw new TypeError(t+\"must be object\");Object.keys(t).forEach(function(r){e[r]=t[r]})}}),e}var a=/\\\\([\\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;function u(e){return e.indexOf(\"\\\\\")<0?e:e.replace(a,\"$1\")}function l(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var p=/&([a-z#][a-z0-9]{1,31});/gi,h=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function f(e,t){var r=0,o=n(t);return t!==o?o:35===t.charCodeAt(0)&&h.test(t)&&l(r=\"x\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?c(r):e}function g(e){return e.indexOf(\"&\")<0?e:e.replace(p,f)}var d=/[&<>\"]/,m=/[&<>\"]/g,b={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\"};function v(e){return b[e]}function k(e){return d.test(e)?e.replace(m,v):e}var A=Object.freeze({isString:function(e){return\"[object String]\"===function(e){return Object.prototype.toString.call(e)}(e)},has:s,assign:i,unescapeMd:u,isValidEntityCode:l,fromCodePoint:c,replaceEntities:g,escapeHtml:k}),y={};y.blockquote_open=function(){return\"<blockquote>\\n\"},y.blockquote_close=function(e,t){return\"</blockquote>\"+x(e,t)},y.code=function(e,t){return e[t].block?\"<pre><code>\"+k(e[t].content)+\"</code></pre>\"+x(e,t):\"<code>\"+k(e[t].content)+\"</code>\"},y.fence=function(e,t,r,n,o){var i,a,l=e[t],c=\"\",p=r.langPrefix;if(l.params){if(a=(i=l.params.split(/\\s+/g)).join(\" \"),s(o.rules.fence_custom,i[0]))return o.rules.fence_custom[i[0]](e,t,r,n,o);c=' class=\"'+p+k(g(u(a)))+'\"'}return\"<pre><code\"+c+\">\"+(r.highlight&&r.highlight.apply(r.highlight,[l.content].concat(i))||k(l.content))+\"</code></pre>\"+x(e,t)},y.fence_custom={},y.heading_open=function(e,t){return\"<h\"+e[t].hLevel+\">\"},y.heading_close=function(e,t){return\"</h\"+e[t].hLevel+\">\\n\"},y.hr=function(e,t,r){return(r.xhtmlOut?\"<hr />\":\"<hr>\")+x(e,t)},y.bullet_list_open=function(){return\"<ul>\\n\"},y.bullet_list_close=function(e,t){return\"</ul>\"+x(e,t)},y.list_item_open=function(){return\"<li>\"},y.list_item_close=function(){return\"</li>\\n\"},y.ordered_list_open=function(e,t){var r=e[t];return\"<ol\"+(r.order>1?' start=\"'+r.order+'\"':\"\")+\">\\n\"},y.ordered_list_close=function(e,t){return\"</ol>\"+x(e,t)},y.paragraph_open=function(e,t){return e[t].tight?\"\":\"<p>\"},y.paragraph_close=function(e,t){var r=!(e[t].tight&&t&&\"inline\"===e[t-1].type&&!e[t-1].content);return(e[t].tight?\"\":\"</p>\")+(r?x(e,t):\"\")},y.link_open=function(e,t,r){var n=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\",o=r.linkTarget?' target=\"'+r.linkTarget+'\"':\"\";return'<a href=\"'+k(e[t].href)+'\"'+n+o+\">\"},y.link_close=function(){return\"</a>\"},y.image=function(e,t,r){var n=' src=\"'+k(e[t].src)+'\"',o=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\";return\"<img\"+n+(' alt=\"'+(e[t].alt?k(g(u(e[t].alt))):\"\")+'\"')+o+(r.xhtmlOut?\" /\":\"\")+\">\"},y.table_open=function(){return\"<table>\\n\"},y.table_close=function(){return\"</table>\\n\"},y.thead_open=function(){return\"<thead>\\n\"},y.thead_close=function(){return\"</thead>\\n\"},y.tbody_open=function(){return\"<tbody>\\n\"},y.tbody_close=function(){return\"</tbody>\\n\"},y.tr_open=function(){return\"<tr>\"},y.tr_close=function(){return\"</tr>\\n\"},y.th_open=function(e,t){var r=e[t];return\"<th\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.th_close=function(){return\"</th>\"},y.td_open=function(e,t){var r=e[t];return\"<td\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.td_close=function(){return\"</td>\"},y.strong_open=function(){return\"<strong>\"},y.strong_close=function(){return\"</strong>\"},y.em_open=function(){return\"<em>\"},y.em_close=function(){return\"</em>\"},y.del_open=function(){return\"<del>\"},y.del_close=function(){return\"</del>\"},y.ins_open=function(){return\"<ins>\"},y.ins_close=function(){return\"</ins>\"},y.mark_open=function(){return\"<mark>\"},y.mark_close=function(){return\"</mark>\"},y.sub=function(e,t){return\"<sub>\"+k(e[t].content)+\"</sub>\"},y.sup=function(e,t){return\"<sup>\"+k(e[t].content)+\"</sup>\"},y.hardbreak=function(e,t,r){return r.xhtmlOut?\"<br />\\n\":\"<br>\\n\"},y.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?\"<br />\\n\":\"<br>\\n\":\"\\n\"},y.text=function(e,t){return k(e[t].content)},y.htmlblock=function(e,t){return e[t].content},y.htmltag=function(e,t){return e[t].content},y.abbr_open=function(e,t){return'<abbr title=\"'+k(g(e[t].title))+'\">'},y.abbr_close=function(){return\"</abbr>\"},y.footnote_ref=function(e,t){var r=Number(e[t].id+1).toString(),n=\"fnref\"+r;return e[t].subId>0&&(n+=\":\"+e[t].subId),'<sup class=\"footnote-ref\"><a href=\"#fn'+r+'\" id=\"'+n+'\">['+r+\"]</a></sup>\"},y.footnote_block_open=function(e,t,r){return(r.xhtmlOut?'<hr class=\"footnotes-sep\" />\\n':'<hr class=\"footnotes-sep\">\\n')+'<section class=\"footnotes\">\\n<ol class=\"footnotes-list\">\\n'},y.footnote_block_close=function(){return\"</ol>\\n</section>\\n\"},y.footnote_open=function(e,t){return'<li id=\"fn'+Number(e[t].id+1).toString()+'\" class=\"footnote-item\">'},y.footnote_close=function(){return\"</li>\\n\"},y.footnote_anchor=function(e,t){var r=\"fnref\"+Number(e[t].id+1).toString();return e[t].subId>0&&(r+=\":\"+e[t].subId),' <a href=\"#'+r+'\" class=\"footnote-backref\">↩</a>'},y.dl_open=function(){return\"<dl>\\n\"},y.dt_open=function(){return\"<dt>\"},y.dd_open=function(){return\"<dd>\"},y.dl_close=function(){return\"</dl>\\n\"},y.dt_close=function(){return\"</dt>\\n\"},y.dd_close=function(){return\"</dd>\\n\"};var x=y.getBreak=function(e,t){return(t=function e(t,r){return++r>=t.length-2?r:\"paragraph_open\"===t[r].type&&t[r].tight&&\"inline\"===t[r+1].type&&0===t[r+1].content.length&&\"paragraph_close\"===t[r+2].type&&t[r+2].tight?e(t,r+2):r}(e,t))<e.length&&\"list_item_close\"===e[t].type?\"\":\"\\n\"};function w(){this.rules=i({},y),this.getBreak=y.getBreak}function C(){this.__rules__=[],this.__cache__=null}function E(e,t,r,n,o){this.src=e,this.env=n,this.options=r,this.parser=t,this.tokens=o,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\"\",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent=\"\",this.labelUnmatchedScopes=0}function D(e,t){var r,n,o,s=-1,i=e.posMax,a=e.pos,u=e.isInLabel;if(e.isInLabel)return-1;if(e.labelUnmatchedScopes)return e.labelUnmatchedScopes--,-1;for(e.pos=t+1,e.isInLabel=!0,r=1;e.pos<i;){if(91===(o=e.src.charCodeAt(e.pos)))r++;else if(93===o&&0===--r){n=!0;break}e.parser.skipToken(e)}return n?(s=e.pos,e.labelUnmatchedScopes=0):e.labelUnmatchedScopes=r-1,e.pos=a,e.isInLabel=u,s}function _(e,t,r,n){var o,s,i,a,u,l;if(42!==e.charCodeAt(0))return-1;if(91!==e.charCodeAt(1))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),1))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&10!==o.src.charCodeAt(i);i++);return u=e.slice(2,s),0===(l=e.slice(s+2,i).trim()).length?-1:(n.abbreviations||(n.abbreviations={}),void 0===n.abbreviations[\":\"+u]&&(n.abbreviations[\":\"+u]=l),i)}function B(e){var t=g(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}function q(e,t){var r,n,o,s=t,i=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t<i;){if(10===(r=e.src.charCodeAt(t)))return!1;if(62===r)return o=B(u(e.src.slice(s+1,t))),!!e.parser.validateLink(o)&&(e.pos=t+1,e.linkContent=o,!0);92===r&&t+1<i?t+=2:t++}return!1}for(n=0;t<i&&32!==(r=e.src.charCodeAt(t))&&!(r<32||127===r);)if(92===r&&t+1<i)t+=2;else{if(40===r&&++n>1)break;if(41===r&&--n<0)break;t++}return s!==t&&(o=u(e.src.slice(s,t)),!!e.parser.validateLink(o)&&(e.linkContent=o,e.pos=t,!0))}function F(e,t){var r,n=t,o=e.posMax,s=e.src.charCodeAt(t);if(34!==s&&39!==s&&40!==s)return!1;for(t++,40===s&&(s=41);t<o;){if((r=e.src.charCodeAt(t))===s)return e.pos=t+1,e.linkContent=u(e.src.slice(n+1,t)),!0;92===r&&t+1<o?t+=2:t++}return!1}function M(e){return e.trim().replace(/\\s+/g,\" \").toUpperCase()}function S(e,t,r,n){var o,s,i,a,u,l,c,p,h;if(91!==e.charCodeAt(0))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),0))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);if(!q(o,i))return-1;for(c=o.linkContent,l=i=o.pos,i+=1;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);for(i<a&&l!==i&&F(o,i)?(p=o.linkContent,i=o.pos):(p=\"\",i=l);i<a&&32===o.src.charCodeAt(i);)i++;return i<a&&10!==o.src.charCodeAt(i)?-1:(h=M(e.slice(1,s)),void 0===n.references[h]&&(n.references[h]={title:p,href:c}),i)}w.prototype.renderInline=function(e,t,r){for(var n=this.rules,o=e.length,s=0,i=\"\";o--;)i+=n[e[s].type](e,s++,t,r,this);return i},w.prototype.render=function(e,t,r){for(var n=this.rules,o=e.length,s=-1,i=\"\";++s<o;)\"inline\"===e[s].type?i+=this.renderInline(e[s].children,t,r):i+=n[e[s].type](e,s,t,r,this);return i},C.prototype.__find__=function(e){for(var t=this.__rules__.length,r=-1;t--;)if(this.__rules__[++r].name===e)return r;return-1},C.prototype.__compile__=function(){var e=this,t=[\"\"];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(r){r.enabled&&(t&&r.alt.indexOf(t)<0||e.__cache__[t].push(r.fn))})})},C.prototype.at=function(e,t,r){var n=this.__find__(e),o=r||{};if(-1===n)throw new Error(\"Parser rule not found: \"+e);this.__rules__[n].fn=t,this.__rules__[n].alt=o.alt||[],this.__cache__=null},C.prototype.before=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.after=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o+1,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.push=function(e,t,r){var n=r||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null},C.prototype.enable=function(e,t){e=Array.isArray(e)?e:[e],t&&this.__rules__.forEach(function(e){e.enabled=!1}),e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!0},this),this.__cache__=null},C.prototype.disable=function(e){(e=Array.isArray(e)?e:[e]).forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!1},this),this.__cache__=null},C.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},E.prototype.pushPending=function(){this.tokens.push({type:\"text\",content:this.pending,level:this.pendingLevel}),this.pending=\"\"},E.prototype.push=function(e){this.pending&&this.pushPending(),this.tokens.push(e),this.pendingLevel=this.level},E.prototype.cacheSet=function(e,t){for(var r=this.cache.length;r<=e;r++)this.cache.push(0);this.cache[e]=t},E.prototype.cacheGet=function(e){return e<this.cache.length?this.cache[e]:0};var T=\" \\n()[]'\\\".,!?-\";function L(e){return e.replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,\"\\\\$1\")}var R=/\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/,N=/\\((c|tm|r|p)\\)/gi,z={c:\"©\",r:\"®\",p:\"§\",tm:\"™\"};var P=/['\"]/,j=/['\"]/g,I=/[-\\s()\\[\\]]/,O=\"’\";function U(e,t){return!(t<0||t>=e.length)&&!I.test(e[t])}function H(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}var V=[[\"block\",function(e){e.inlineMode?e.tokens.push({type:\"inline\",content:e.src.replace(/\\n/g,\" \").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}],[\"abbr\",function(e){var t,r,n,o,s=e.tokens;if(!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"paragraph_open\"===s[t-1].type&&\"inline\"===s[t].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=_(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"references\",function(e){var t,r,n,o,s=e.tokens;if(e.env.references=e.env.references||{},!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"inline\"===s[t].type&&\"paragraph_open\"===s[t-1].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=S(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"inline\",function(e){var t,r,n,o=e.tokens;for(r=0,n=o.length;r<n;r++)\"inline\"===(t=o[r]).type&&e.inline.parse(t.content,e.options,e.env,t.children)}],[\"footnote_tail\",function(e){var t,r,n,o,s,i,a,u,l,c=0,p=!1,h={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return\"footnote_reference_open\"===e.type?(p=!0,u=[],l=e.label,!1):\"footnote_reference_close\"===e.type?(p=!1,h[\":\"+l]=u,!1):(p&&u.push(e),!p)}),e.env.footnotes.list)){for(i=e.env.footnotes.list,e.tokens.push({type:\"footnote_block_open\",level:c++}),t=0,r=i.length;t<r;t++){for(e.tokens.push({type:\"footnote_open\",id:t,level:c++}),i[t].tokens?((a=[]).push({type:\"paragraph_open\",tight:!1,level:c++}),a.push({type:\"inline\",content:\"\",level:c,children:i[t].tokens}),a.push({type:\"paragraph_close\",tight:!1,level:--c})):i[t].label&&(a=h[\":\"+i[t].label]),e.tokens=e.tokens.concat(a),s=\"paragraph_close\"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,o=i[t].count>0?i[t].count:1,n=0;n<o;n++)e.tokens.push({type:\"footnote_anchor\",id:t,subId:n,level:c});s&&e.tokens.push(s),e.tokens.push({type:\"footnote_close\",level:--c})}e.tokens.push({type:\"footnote_block_close\",level:--c})}}],[\"abbr2\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f=e.tokens;if(e.env.abbreviations)for(e.env.abbrRegExp||(h=\"(^|[\"+T.split(\"\").map(L).join(\"\")+\"])(\"+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(L).join(\"|\")+\")($|[\"+T.split(\"\").map(L).join(\"\")+\"])\",e.env.abbrRegExp=new RegExp(h,\"g\")),c=e.env.abbrRegExp,r=0,n=f.length;r<n;r++)if(\"inline\"===f[r].type)for(t=(o=f[r].children).length-1;t>=0;t--)if(\"text\"===(s=o[t]).type){for(u=0,i=s.content,c.lastIndex=0,l=s.level,a=[];p=c.exec(i);)c.lastIndex>u&&a.push({type:\"text\",content:i.slice(u,p.index+p[1].length),level:l}),a.push({type:\"abbr_open\",title:e.env.abbreviations[\":\"+p[2]],level:l++}),a.push({type:\"text\",content:p[2],level:l}),a.push({type:\"abbr_close\",level:--l}),u=c.lastIndex-p[3].length;a.length&&(u<i.length&&a.push({type:\"text\",content:i.slice(u),level:l}),f[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1)))}}],[\"replacements\",function(e){var t,r,n,o,s,i;if(e.options.typographer)for(s=e.tokens.length-1;s>=0;s--)if(\"inline\"===e.tokens[s].type)for(t=(o=e.tokens[s].children).length-1;t>=0;t--)\"text\"===(r=o[t]).type&&(n=r.content,n=(i=n).indexOf(\"(\")<0?i:i.replace(N,function(e,t){return z[t.toLowerCase()]}),R.test(n)&&(n=n.replace(/\\+-/g,\"±\").replace(/\\.{2,}/g,\"…\").replace(/([?!])…/g,\"$1..\").replace(/([?!]){4,}/g,\"$1$1$1\").replace(/,{2,}/g,\",\").replace(/(^|[^-])---([^-]|$)/gm,\"$1—$2\").replace(/(^|\\s)--(\\s|$)/gm,\"$1–$2\").replace(/(^|[^-\\s])--([^-\\s]|$)/gm,\"$1–$2\")),r.content=n)}],[\"smartquotes\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(e.options.typographer)for(b=[],d=e.tokens.length-1;d>=0;d--)if(\"inline\"===e.tokens[d].type)for(m=e.tokens[d].children,b.length=0,t=0;t<m.length;t++)if(\"text\"===(r=m[t]).type&&!P.test(r.text)){for(a=m[t].level,f=b.length-1;f>=0&&!(b[f].level<=a);f--);b.length=f+1,s=0,i=(n=r.content).length;e:for(;s<i&&(j.lastIndex=s,o=j.exec(n));)if(u=!U(n,o.index-1),s=o.index+1,g=\"'\"===o[0],(l=!U(n,s))||u){if(p=!l,h=!u)for(f=b.length-1;f>=0&&(c=b[f],!(b[f].level<a));f--)if(c.single===g&&b[f].level===a){c=b[f],g?(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[2]),r.content=H(r.content,o.index,e.options.quotes[3])):(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[0]),r.content=H(r.content,o.index,e.options.quotes[1])),b.length=f;continue e}p?b.push({token:t,pos:o.index,single:g,level:a}):h&&g&&(r.content=H(r.content,o.index,O))}else g&&(r.content=H(r.content,o.index,O))}}]];function G(){this.options={},this.ruler=new C;for(var e=0;e<V.length;e++)this.ruler.push(V[e][0],V[e][1])}function $(e,t,r,n,o){var s,i,a,u,l,c,p;for(this.src=e,this.parser=t,this.options=r,this.env=n,this.tokens=o,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType=\"root\",this.ddIndent=-1,this.level=0,this.result=\"\",c=0,p=!1,a=u=c=0,l=(i=this.src).length;u<l;u++){if(s=i.charCodeAt(u),!p){if(32===s){c++;continue}p=!0}10!==s&&u!==l-1||(10!==s&&u++,this.bMarks.push(a),this.eMarks.push(u),this.tShift.push(c),p=!1,c=0,a=u+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}function Z(e,t){var r,n,o;return(n=e.bMarks[t]+e.tShift[t])>=(o=e.eMarks[t])?-1:42!==(r=e.src.charCodeAt(n++))&&45!==r&&43!==r?-1:n<o&&32!==e.src.charCodeAt(n)?-1:n}function W(e,t){var r,n=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(n+1>=o)return-1;if((r=e.src.charCodeAt(n++))<48||r>57)return-1;for(;;){if(n>=o)return-1;if(!((r=e.src.charCodeAt(n++))>=48&&r<=57)){if(41===r||46===r)break;return-1}}return n<o&&32!==e.src.charCodeAt(n)?-1:n}G.prototype.process=function(e){var t,r,n;for(t=0,r=(n=this.ruler.getRules(\"\")).length;t<r;t++)n[t](e)},$.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},$.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},$.prototype.skipSpaces=function(e){for(var t=this.src.length;e<t&&32===this.src.charCodeAt(e);e++);return e},$.prototype.skipChars=function(e,t){for(var r=this.src.length;e<r&&this.src.charCodeAt(e)===t;e++);return e},$.prototype.skipCharsBack=function(e,t,r){if(e<=r)return e;for(;e>r;)if(t!==this.src.charCodeAt(--e))return e+1;return e},$.prototype.getLines=function(e,t,r,n){var o,s,i,a,u,l=e;if(e>=t)return\"\";if(l+1===t)return s=this.bMarks[l]+Math.min(this.tShift[l],r),i=n?this.eMarks[l]+1:this.eMarks[l],this.src.slice(s,i);for(a=new Array(t-e),o=0;l<t;l++,o++)(u=this.tShift[l])>r&&(u=r),u<0&&(u=0),s=this.bMarks[l]+u,i=l+1<t||n?this.eMarks[l]+1:this.eMarks[l],a[o]=this.src.slice(s,i);return a.join(\"\")};var J={};[\"article\",\"aside\",\"button\",\"blockquote\",\"body\",\"canvas\",\"caption\",\"col\",\"colgroup\",\"dd\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"iframe\",\"li\",\"map\",\"object\",\"ol\",\"output\",\"p\",\"pre\",\"progress\",\"script\",\"section\",\"style\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"tr\",\"thead\",\"ul\",\"video\"].forEach(function(e){J[e]=!0});var Y=/^<([a-zA-Z]{1,15})[\\s\\/>]/,K=/^<\\/([a-zA-Z]{1,15})[\\s>]/;function Q(e,t){var r=e.bMarks[t]+e.blkIndent,n=e.eMarks[t];return e.src.substr(r,n-r)}function X(e,t){var r,n,o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];return o>=s?-1:126!==(n=e.src.charCodeAt(o++))&&58!==n?-1:o===(r=e.skipSpaces(o))?-1:r>=s?-1:r}var ee=[[\"code\",function(e,t,r){var n,o;if(e.tShift[t]-e.blkIndent<4)return!1;for(o=n=t+1;n<r;)if(e.isEmpty(n))n++;else{if(!(e.tShift[n]-e.blkIndent>=4))break;o=++n}return e.line=n,e.tokens.push({type:\"code\",content:e.getLines(t,o,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}],[\"fences\",function(e,t,r,n){var o,s,i,a,u,l=!1,c=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(c+3>p)return!1;if(126!==(o=e.src.charCodeAt(c))&&96!==o)return!1;if(u=c,(s=(c=e.skipChars(c,o))-u)<3)return!1;if((i=e.src.slice(c,p).trim()).indexOf(\"`\")>=0)return!1;if(n)return!0;for(a=t;!(++a>=r||(c=u=e.bMarks[a]+e.tShift[a])<(p=e.eMarks[a])&&e.tShift[a]<e.blkIndent);)if(e.src.charCodeAt(c)===o&&!(e.tShift[a]-e.blkIndent>=4||(c=e.skipChars(c,o))-u<s||(c=e.skipSpaces(c))<p)){l=!0;break}return s=e.tShift[t],e.line=a+(l?1:0),e.tokens.push({type:\"fence\",params:i,content:e.getLines(t+1,a,s,!0),lines:[t,e.line],level:e.level}),!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"blockquote\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(d>m)return!1;if(62!==e.src.charCodeAt(d++))return!1;if(e.level>=e.options.maxNesting)return!1;if(n)return!0;for(32===e.src.charCodeAt(d)&&d++,u=e.blkIndent,e.blkIndent=0,a=[e.bMarks[t]],e.bMarks[t]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i=[e.tShift[t]],e.tShift[t]=d-e.bMarks[t],p=e.parser.ruler.getRules(\"blockquote\"),o=t+1;o<r&&!((d=e.bMarks[o]+e.tShift[o])>=(m=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(d++)){if(s)break;for(g=!1,h=0,f=p.length;h<f;h++)if(p[h](e,o,r,!0)){g=!0;break}if(g)break;a.push(e.bMarks[o]),i.push(e.tShift[o]),e.tShift[o]=-1337}else 32===e.src.charCodeAt(d)&&d++,a.push(e.bMarks[o]),e.bMarks[o]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i.push(e.tShift[o]),e.tShift[o]=d-e.bMarks[o];for(l=e.parentType,e.parentType=\"blockquote\",e.tokens.push({type:\"blockquote_open\",lines:c=[t,0],level:e.level++}),e.parser.tokenize(e,t,o),e.tokens.push({type:\"blockquote_close\",level:--e.level}),e.parentType=l,c[1]=e.line,h=0;h<i.length;h++)e.bMarks[h+t]=a[h],e.tShift[h+t]=i[h];return e.blkIndent=u,!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"hr\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t];if((a+=e.tShift[t])>u)return!1;if(42!==(o=e.src.charCodeAt(a++))&&45!==o&&95!==o)return!1;for(s=1;a<u;){if((i=e.src.charCodeAt(a++))!==o&&32!==i)return!1;i===o&&s++}return!(s<3||!n&&(e.line=t+1,e.tokens.push({type:\"hr\",lines:[t,e.line],level:e.level}),0))},[\"paragraph\",\"blockquote\",\"list\"]],[\"list\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b,v,k,A,y,x,w,C,E=!0;if((p=W(e,t))>=0)d=!0;else{if(!((p=Z(e,t))>=0))return!1;d=!1}if(e.level>=e.options.maxNesting)return!1;if(g=e.src.charCodeAt(p-1),n)return!0;for(b=e.tokens.length,d?(c=e.bMarks[t]+e.tShift[t],f=Number(e.src.substr(c,p-c-1)),e.tokens.push({type:\"ordered_list_open\",order:f,lines:k=[t,0],level:e.level++})):e.tokens.push({type:\"bullet_list_open\",lines:k=[t,0],level:e.level++}),o=t,v=!1,y=e.parser.ruler.getRules(\"list\");!(!(o<r)||((h=(m=e.skipSpaces(p))>=e.eMarks[o]?1:m-p)>4&&(h=1),h<1&&(h=1),s=p-e.bMarks[o]+h,e.tokens.push({type:\"list_item_open\",lines:A=[t,0],level:e.level++}),a=e.blkIndent,u=e.tight,i=e.tShift[t],l=e.parentType,e.tShift[t]=m-e.bMarks[t],e.blkIndent=s,e.tight=!0,e.parentType=\"list\",e.parser.tokenize(e,t,r,!0),e.tight&&!v||(E=!1),v=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=a,e.tShift[t]=i,e.tight=u,e.parentType=l,e.tokens.push({type:\"list_item_close\",level:--e.level}),o=t=e.line,A[1]=o,m=e.bMarks[t],o>=r)||e.isEmpty(o)||e.tShift[o]<e.blkIndent);){for(C=!1,x=0,w=y.length;x<w;x++)if(y[x](e,o,r,!0)){C=!0;break}if(C)break;if(d){if((p=W(e,o))<0)break}else if((p=Z(e,o))<0)break;if(g!==e.src.charCodeAt(p-1))break}return e.tokens.push({type:d?\"ordered_list_close\":\"bullet_list_close\",level:--e.level}),k[1]=o,e.line=o,E&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,b),!0},[\"paragraph\",\"blockquote\"]],[\"footnote\",function(e,t,r,n){var o,s,i,a,u,l=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(l+4>c)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(a=l+2;a<c;a++){if(32===e.src.charCodeAt(a))return!1;if(93===e.src.charCodeAt(a))break}return!(a===l+2||a+1>=c||58!==e.src.charCodeAt(++a)||!n&&(a++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(l+2,a-2),e.env.footnotes.refs[\":\"+u]=-1,e.tokens.push({type:\"footnote_reference_open\",label:u,level:e.level++}),o=e.bMarks[t],s=e.tShift[t],i=e.parentType,e.tShift[t]=e.skipSpaces(a)-a,e.bMarks[t]=a,e.blkIndent+=4,e.parentType=\"footnote\",e.tShift[t]<e.blkIndent&&(e.tShift[t]+=e.blkIndent,e.bMarks[t]-=e.blkIndent),e.parser.tokenize(e,t,r,!0),e.parentType=i,e.blkIndent-=4,e.tShift[t]=s,e.bMarks[t]=o,e.tokens.push({type:\"footnote_reference_close\",level:--e.level}),0))},[\"paragraph\"]],[\"heading\",function(e,t,r,n){var o,s,i,a=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(a>=u)return!1;if(35!==(o=e.src.charCodeAt(a))||a>=u)return!1;for(s=1,o=e.src.charCodeAt(++a);35===o&&a<u&&s<=6;)s++,o=e.src.charCodeAt(++a);return!(s>6||a<u&&32!==o||!n&&(u=e.skipCharsBack(u,32,a),(i=e.skipCharsBack(u,35,a))>a&&32===e.src.charCodeAt(i-1)&&(u=i),e.line=t+1,e.tokens.push({type:\"heading_open\",hLevel:s,lines:[t,e.line],level:e.level}),a<u&&e.tokens.push({type:\"inline\",content:e.src.slice(a,u).trim(),level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:s,level:e.level}),0))},[\"paragraph\",\"blockquote\"]],[\"lheading\",function(e,t,r){var n,o,s,i=t+1;return!(i>=r||e.tShift[i]<e.blkIndent||e.tShift[i]-e.blkIndent>3||(o=e.bMarks[i]+e.tShift[i])>=(s=e.eMarks[i])||45!==(n=e.src.charCodeAt(o))&&61!==n||(o=e.skipChars(o,n),(o=e.skipSpaces(o))<s||(o=e.bMarks[t]+e.tShift[t],e.line=i+1,e.tokens.push({type:\"heading_open\",hLevel:61===n?1:2,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:e.src.slice(o,e.eMarks[t]).trim(),level:e.level+1,lines:[t,e.line-1],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:61===n?1:2,level:e.level}),0)))}],[\"htmlblock\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t],l=e.tShift[t];if(a+=l,!e.options.html)return!1;if(l>3||a+2>=u)return!1;if(60!==e.src.charCodeAt(a))return!1;if(33===(o=e.src.charCodeAt(a+1))||63===o){if(n)return!0}else{if(47!==o&&!function(e){var t=32|e;return t>=97&&t<=122}(o))return!1;if(47===o){if(!(s=e.src.slice(a,u).match(K)))return!1}else if(!(s=e.src.slice(a,u).match(Y)))return!1;if(!0!==J[s[1].toLowerCase()])return!1;if(n)return!0}for(i=t+1;i<e.lineMax&&!e.isEmpty(i);)i++;return e.line=i,e.tokens.push({type:\"htmlblock\",level:e.level,lines:[t,e.line],content:e.getLines(t,i,0,!0)}),!0},[\"paragraph\",\"blockquote\"]],[\"table\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g;if(t+2>r)return!1;if(u=t+1,e.tShift[u]<e.blkIndent)return!1;if((i=e.bMarks[u]+e.tShift[u])>=e.eMarks[u])return!1;if(124!==(o=e.src.charCodeAt(i))&&45!==o&&58!==o)return!1;if(s=Q(e,t+1),!/^[-:| ]+$/.test(s))return!1;if((l=s.split(\"|\"))<=2)return!1;for(p=[],a=0;a<l.length;a++){if(!(h=l[a].trim())){if(0===a||a===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(h))return!1;58===h.charCodeAt(h.length-1)?p.push(58===h.charCodeAt(0)?\"center\":\"right\"):58===h.charCodeAt(0)?p.push(\"left\"):p.push(\"\")}if(-1===(s=Q(e,t).trim()).indexOf(\"|\"))return!1;if(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),p.length!==l.length)return!1;if(n)return!0;for(e.tokens.push({type:\"table_open\",lines:f=[t,0],level:e.level++}),e.tokens.push({type:\"thead_open\",lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"tr_open\",lines:[t,t+1],level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"th_open\",align:p[a],lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"inline\",content:l[a].trim(),lines:[t,t+1],level:e.level,children:[]}),e.tokens.push({type:\"th_close\",level:--e.level});for(e.tokens.push({type:\"tr_close\",level:--e.level}),e.tokens.push({type:\"thead_close\",level:--e.level}),e.tokens.push({type:\"tbody_open\",lines:g=[t+2,0],level:e.level++}),u=t+2;u<r&&!(e.tShift[u]<e.blkIndent)&&-1!==(s=Q(e,u).trim()).indexOf(\"|\");u++){for(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),e.tokens.push({type:\"tr_open\",level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"td_open\",align:p[a],level:e.level++}),c=l[a].substring(124===l[a].charCodeAt(0)?1:0,124===l[a].charCodeAt(l[a].length-1)?l[a].length-1:l[a].length).trim(),e.tokens.push({type:\"inline\",content:c,level:e.level,children:[]}),e.tokens.push({type:\"td_close\",level:--e.level});e.tokens.push({type:\"tr_close\",level:--e.level})}return e.tokens.push({type:\"tbody_close\",level:--e.level}),e.tokens.push({type:\"table_close\",level:--e.level}),f[1]=g[1]=u,e.line=u,!0},[\"paragraph\"]],[\"deflist\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(n)return!(e.ddIndent<0)&&X(e,t)>=0;if(c=t+1,e.isEmpty(c)&&++c>r)return!1;if(e.tShift[c]<e.blkIndent)return!1;if((o=X(e,c))<0)return!1;if(e.level>=e.options.maxNesting)return!1;l=e.tokens.length,e.tokens.push({type:\"dl_open\",lines:u=[t,0],level:e.level++}),i=t,s=c;e:for(;;){for(b=!0,m=!1,e.tokens.push({type:\"dt_open\",lines:[i,i],level:e.level++}),e.tokens.push({type:\"inline\",content:e.getLines(i,i+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[i,i],children:[]}),e.tokens.push({type:\"dt_close\",level:--e.level});;){if(e.tokens.push({type:\"dd_open\",lines:a=[c,0],level:e.level++}),d=e.tight,h=e.ddIndent,p=e.blkIndent,g=e.tShift[s],f=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=o-e.bMarks[s],e.tight=!0,e.parentType=\"deflist\",e.parser.tokenize(e,s,r,!0),e.tight&&!m||(b=!1),m=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=g,e.tight=d,e.parentType=f,e.blkIndent=p,e.ddIndent=h,e.tokens.push({type:\"dd_close\",level:--e.level}),a[1]=c=e.line,c>=r)break e;if(e.tShift[c]<e.blkIndent)break e;if((o=X(e,c))<0)break;s=c}if(c>=r)break;if(i=c,e.isEmpty(i))break;if(e.tShift[i]<e.blkIndent)break;if((s=i+1)>=r)break;if(e.isEmpty(s)&&s++,s>=r)break;if(e.tShift[s]<e.blkIndent)break;if((o=X(e,s))<0)break}return e.tokens.push({type:\"dl_close\",level:--e.level}),u[1]=c,e.line=c,b&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,l),!0},[\"paragraph\"]],[\"paragraph\",function(e,t){var r,n,o,s,i,a,u=t+1;if(u<(r=e.lineMax)&&!e.isEmpty(u))for(a=e.parser.ruler.getRules(\"paragraph\");u<r&&!e.isEmpty(u);u++)if(!(e.tShift[u]-e.blkIndent>3)){for(o=!1,s=0,i=a.length;s<i;s++)if(a[s](e,u,r,!0)){o=!0;break}if(o)break}return n=e.getLines(t,u,e.blkIndent,!1).trim(),e.line=u,n.length&&(e.tokens.push({type:\"paragraph_open\",tight:!1,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:n,level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"paragraph_close\",tight:!1,level:e.level})),!0}]];function te(){this.ruler=new C;for(var e=0;e<ee.length;e++)this.ruler.push(ee[e][0],ee[e][1],{alt:(ee[e][2]||[]).slice()})}te.prototype.tokenize=function(e,t,r){for(var n,o=this.ruler.getRules(\"\"),s=o.length,i=t,a=!1;i<r&&(e.line=i=e.skipEmptyLines(i),!(i>=r))&&!(e.tShift[i]<e.blkIndent);){for(n=0;n<s&&!o[n](e,i,r,!1);n++);if(e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(i=e.line)<r&&e.isEmpty(i)){if(a=!0,++i<r&&\"list\"===e.parentType&&e.isEmpty(i))break;e.line=i}}};var re=/[\\n\\t]/g,ne=/\\r[\\n\\u0085]|[\\u2424\\u2028\\u0085]/g,oe=/\\u00a0/g;function se(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}te.prototype.parse=function(e,t,r,n){var o,s=0,i=0;if(!e)return[];(e=(e=e.replace(oe,\" \")).replace(ne,\"\\n\")).indexOf(\"\\t\")>=0&&(e=e.replace(re,function(t,r){var n;return 10===e.charCodeAt(r)?(s=r+1,i=0,t):(n=\" \".slice((r-s-i)%4),i=r-s+1,n)})),o=new $(e,this,t,r,n),this.tokenize(o,o.line,o.lineMax)};for(var ie=[],ae=0;ae<256;ae++)ie.push(0);function ue(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function le(e,t){var r,n,o,s=t,i=!0,a=!0,u=e.posMax,l=e.src.charCodeAt(t);for(r=t>0?e.src.charCodeAt(t-1):-1;s<u&&e.src.charCodeAt(s)===l;)s++;return s>=u&&(i=!1),(o=s-t)>=4?i=a=!1:(32!==(n=s<u?e.src.charCodeAt(s):-1)&&10!==n||(i=!1),32!==r&&10!==r||(a=!1),95===l&&(ue(r)&&(i=!1),ue(n)&&(a=!1))),{can_open:i,can_close:a,delims:o}}\"\\\\!\\\"#$%&'()*+,./:;<=>?@[]^_`{|}~-\".split(\"\").forEach(function(e){ie[e.charCodeAt(0)]=1});var ce=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var pe=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var he=[\"coap\",\"doi\",\"javascript\",\"aaa\",\"aaas\",\"about\",\"acap\",\"cap\",\"cid\",\"crid\",\"data\",\"dav\",\"dict\",\"dns\",\"file\",\"ftp\",\"geo\",\"go\",\"gopher\",\"h323\",\"http\",\"https\",\"iax\",\"icap\",\"im\",\"imap\",\"info\",\"ipp\",\"iris\",\"iris.beep\",\"iris.xpc\",\"iris.xpcs\",\"iris.lwz\",\"ldap\",\"mailto\",\"mid\",\"msrp\",\"msrps\",\"mtqp\",\"mupdate\",\"news\",\"nfs\",\"ni\",\"nih\",\"nntp\",\"opaquelocktoken\",\"pop\",\"pres\",\"rtsp\",\"service\",\"session\",\"shttp\",\"sieve\",\"sip\",\"sips\",\"sms\",\"snmp\",\"soap.beep\",\"soap.beeps\",\"tag\",\"tel\",\"telnet\",\"tftp\",\"thismessage\",\"tn3270\",\"tip\",\"tv\",\"urn\",\"vemmi\",\"ws\",\"wss\",\"xcon\",\"xcon-userid\",\"xmlrpc.beep\",\"xmlrpc.beeps\",\"xmpp\",\"z39.50r\",\"z39.50s\",\"adiumxtra\",\"afp\",\"afs\",\"aim\",\"apt\",\"attachment\",\"aw\",\"beshare\",\"bitcoin\",\"bolo\",\"callto\",\"chrome\",\"chrome-extension\",\"com-eventbrite-attendee\",\"content\",\"cvs\",\"dlna-playsingle\",\"dlna-playcontainer\",\"dtn\",\"dvb\",\"ed2k\",\"facetime\",\"feed\",\"finger\",\"fish\",\"gg\",\"git\",\"gizmoproject\",\"gtalk\",\"hcp\",\"icon\",\"ipn\",\"irc\",\"irc6\",\"ircs\",\"itms\",\"jar\",\"jms\",\"keyparc\",\"lastfm\",\"ldaps\",\"magnet\",\"maps\",\"market\",\"message\",\"mms\",\"ms-help\",\"msnim\",\"mumble\",\"mvn\",\"notes\",\"oid\",\"palm\",\"paparazzi\",\"platform\",\"proxy\",\"psyc\",\"query\",\"res\",\"resource\",\"rmi\",\"rsync\",\"rtmp\",\"secondlife\",\"sftp\",\"sgn\",\"skype\",\"smb\",\"soldat\",\"spotify\",\"ssh\",\"steam\",\"svn\",\"teamspeak\",\"things\",\"udp\",\"unreal\",\"ut2004\",\"ventrilo\",\"view-source\",\"webcal\",\"wtai\",\"wyciwyg\",\"xfire\",\"xri\",\"ymsgr\"],fe=/^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,ge=/^<([a-zA-Z.\\-]{1,25}):([^<>\\x00-\\x20]*)>/;function de(e,t){return e=e.source,t=t||\"\",function r(n,o){return n?(o=o.source||o,e=e.replace(n,o),r):new RegExp(e,t)}}var me=de(/(?:unquoted|single_quoted|double_quoted)/)(\"unquoted\",/[^\"'=<>`\\x00-\\x20]+/)(\"single_quoted\",/'[^']*'/)(\"double_quoted\",/\"[^\"]*\"/)(),be=de(/(?:\\s+attr_name(?:\\s*=\\s*attr_value)?)/)(\"attr_name\",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)(\"attr_value\",me)(),ve=de(/<[A-Za-z][A-Za-z0-9]*attribute*\\s*\\/?>/)(\"attribute\",be)(),ke=de(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)(\"open_tag\",ve)(\"close_tag\",/<\\/[A-Za-z][A-Za-z0-9]*\\s*>/)(\"comment\",/<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/)(\"processing\",/<[?].*?[?]>/)(\"declaration\",/<![A-Z]+\\s+[^>]*>/)(\"cdata\",/<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/)();var Ae=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,ye=/^&([a-z][a-z0-9]{1,31});/i;var xe=[[\"text\",function(e,t){for(var r=e.pos;r<e.posMax&&!se(e.src.charCodeAt(r));)r++;return r!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}],[\"newline\",function(e,t){var r,n,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(r=e.pending.length-1,n=e.posMax,!t)if(r>=0&&32===e.pending.charCodeAt(r))if(r>=1&&32===e.pending.charCodeAt(r-1)){for(var s=r-2;s>=0;s--)if(32!==e.pending.charCodeAt(s)){e.pending=e.pending.substring(0,s+1);break}e.push({type:\"hardbreak\",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:\"softbreak\",level:e.level});else e.push({type:\"softbreak\",level:e.level});for(o++;o<n&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}],[\"escape\",function(e,t){var r,n=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(n))return!1;if(++n<o){if((r=e.src.charCodeAt(n))<256&&0!==ie[r])return t||(e.pending+=e.src[n]),e.pos+=2,!0;if(10===r){for(t||e.push({type:\"hardbreak\",level:e.level}),n++;n<o&&32===e.src.charCodeAt(n);)n++;return e.pos=n,!0}}return t||(e.pending+=\"\\\\\"),e.pos++,!0}],[\"backticks\",function(e,t){var r,n,o,s,i,a=e.pos;if(96!==e.src.charCodeAt(a))return!1;for(r=a,a++,n=e.posMax;a<n&&96===e.src.charCodeAt(a);)a++;for(o=e.src.slice(r,a),s=i=a;-1!==(s=e.src.indexOf(\"`\",i));){for(i=s+1;i<n&&96===e.src.charCodeAt(i);)i++;if(i-s===o.length)return t||e.push({type:\"code\",content:e.src.slice(a,s).replace(/[ \\n]+/g,\" \").trim(),block:!1,level:e.level}),e.pos=i,!0}return t||(e.pending+=o),e.pos+=o.length,!0}],[\"del\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),126===s)return!1;if(126===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&126===e.src.charCodeAt(n);)n++;if(n>u+3)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(126===e.src.charCodeAt(e.pos)&&126===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),126!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&126!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"del_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"del_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"ins\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(43!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),43===s)return!1;if(43===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&43===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(43===e.src.charCodeAt(e.pos)&&43===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),43!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&43!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"ins_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"ins_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"mark\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(61!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),61===s)return!1;if(61===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&61===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(61===e.src.charCodeAt(e.pos)&&61===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),61!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&61!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"mark_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"mark_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"emphasis\",function(e,t){var r,n,o,s,i,a,u,l=e.posMax,c=e.pos,p=e.src.charCodeAt(c);if(95!==p&&42!==p)return!1;if(t)return!1;if(r=(u=le(e,c)).delims,!u.can_open)return e.pos+=r,t||(e.pending+=e.src.slice(c,e.pos)),!0;if(e.level>=e.options.maxNesting)return!1;for(e.pos=c+r,a=[r];e.pos<l;)if(e.src.charCodeAt(e.pos)!==p)e.parser.skipToken(e);else{if(n=(u=le(e,e.pos)).delims,u.can_close){for(s=a.pop(),i=n;s!==i;){if(i<s){a.push(s-i);break}if(i-=s,0===a.length)break;e.pos+=s,s=a.pop()}if(0===a.length){r=s,o=!0;break}e.pos+=n;continue}u.can_open&&a.push(n),e.pos+=n}return o?(e.posMax=e.pos,e.pos=c+r,t||(2!==r&&3!==r||e.push({type:\"strong_open\",level:e.level++}),1!==r&&3!==r||e.push({type:\"em_open\",level:e.level++}),e.parser.tokenize(e),1!==r&&3!==r||e.push({type:\"em_close\",level:--e.level}),2!==r&&3!==r||e.push({type:\"strong_close\",level:--e.level})),e.pos=e.posMax+r,e.posMax=l,!0):(e.pos=c,!1)}],[\"sub\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(126!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(126===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sub\",level:e.level,content:n.replace(ce,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"sup\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(94!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(94===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sup\",level:e.level,content:n.replace(pe,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"links\",function(e,t){var r,n,o,s,i,a,u,l,c=!1,p=e.pos,h=e.posMax,f=e.pos,g=e.src.charCodeAt(f);if(33===g&&(c=!0,g=e.src.charCodeAt(++f)),91!==g)return!1;if(e.level>=e.options.maxNesting)return!1;if(r=f+1,(n=D(e,f))<0)return!1;if((a=n+1)<h&&40===e.src.charCodeAt(a)){for(a++;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a>=h)return!1;for(f=a,q(e,a)?(s=e.linkContent,a=e.pos):s=\"\",f=a;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&f!==a&&F(e,a))for(i=e.linkContent,a=e.pos;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);else i=\"\";if(a>=h||41!==e.src.charCodeAt(a))return e.pos=p,!1;a++}else{if(e.linkLevel>0)return!1;for(;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&91===e.src.charCodeAt(a)&&(f=a+1,(a=D(e,a))>=0?o=e.src.slice(f,a++):a=f-1),o||(void 0===o&&(a=n+1),o=e.src.slice(r,n)),!(u=e.env.references[M(o)]))return e.pos=p,!1;s=u.href,i=u.title}return t||(e.pos=r,e.posMax=n,c?e.push({type:\"image\",src:s,title:i,alt:e.src.substr(r,n-r),level:e.level}):(e.push({type:\"link_open\",href:s,title:i,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:\"link_close\",level:--e.level}))),e.pos=a,e.posMax=h,!0}],[\"footnote_inline\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;return!(a+2>=i||94!==e.src.charCodeAt(a)||91!==e.src.charCodeAt(a+1)||e.level>=e.options.maxNesting||(r=a+2,(n=D(e,a+1))<0||(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=r,e.posMax=n,e.push({type:\"footnote_ref\",id:o,level:e.level}),e.linkLevel++,s=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(s)},e.linkLevel--),e.pos=n+1,e.posMax=i,0)))}],[\"footnote_ref\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;if(a+3>i)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(a))return!1;if(94!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(n=a+2;n<i;n++){if(32===e.src.charCodeAt(n))return!1;if(10===e.src.charCodeAt(n))return!1;if(93===e.src.charCodeAt(n))break}return!(n===a+2||n>=i||(n++,r=e.src.slice(a+2,n-1),void 0===e.env.footnotes.refs[\":\"+r]||(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[\":\"+r]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:r,count:0},e.env.footnotes.refs[\":\"+r]=o):o=e.env.footnotes.refs[\":\"+r],s=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:\"footnote_ref\",id:o,subId:s,level:e.level})),e.pos=n,e.posMax=i,0)))}],[\"autolink\",function(e,t){var r,n,o,s,i,a=e.pos;return!(60!==e.src.charCodeAt(a)||(r=e.src.slice(a)).indexOf(\">\")<0||((n=r.match(ge))?he.indexOf(n[1].toLowerCase())<0||(i=B(s=n[0].slice(1,-1)),!e.parser.validateLink(s)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=n[0].length,0)):!(o=r.match(fe))||(i=B(\"mailto:\"+(s=o[0].slice(1,-1))),!e.parser.validateLink(i)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=o[0].length,0))))}],[\"htmltag\",function(e,t){var r,n,o,s=e.pos;return!(!e.options.html||(o=e.posMax,60!==e.src.charCodeAt(s)||s+2>=o||33!==(r=e.src.charCodeAt(s+1))&&63!==r&&47!==r&&!function(e){var t=32|e;return t>=97&&t<=122}(r)||!(n=e.src.slice(s).match(ke))||(t||e.push({type:\"htmltag\",content:e.src.slice(s,s+n[0].length),level:e.level}),e.pos+=n[0].length,0)))}],[\"entity\",function(e,t){var r,o,s=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(s))return!1;if(s+1<i)if(35===e.src.charCodeAt(s+1)){if(o=e.src.slice(s).match(Ae))return t||(r=\"x\"===o[1][0].toLowerCase()?parseInt(o[1].slice(1),16):parseInt(o[1],10),e.pending+=l(r)?c(r):c(65533)),e.pos+=o[0].length,!0}else if(o=e.src.slice(s).match(ye)){var a=n(o[1]);if(o[1]!==a)return t||(e.pending+=a),e.pos+=o[0].length,!0}return t||(e.pending+=\"&\"),e.pos++,!0}]];function we(){this.ruler=new C;for(var e=0;e<xe.length;e++)this.ruler.push(xe[e][0],xe[e][1]);this.validateLink=Ce}function Ce(e){var t=e.trim().toLowerCase();return-1===(t=g(t)).indexOf(\":\")||-1===[\"vbscript\",\"javascript\",\"file\",\"data\"].indexOf(t.split(\":\")[0])}we.prototype.skipToken=function(e){var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.pos;if((r=e.cacheGet(s))>0)e.pos=r;else{for(t=0;t<o;t++)if(n[t](e,!0))return void e.cacheSet(s,e.pos);e.pos++,e.cacheSet(s,e.pos)}},we.prototype.tokenize=function(e){for(var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.posMax;e.pos<s;){for(r=0;r<o&&!(t=n[r](e,!1));r++);if(t){if(e.pos>=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},we.prototype.parse=function(e,t,r,n){var o=new E(e,this,t,r,n);this.tokenize(o)};var Ee={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"replacements\",\"smartquotes\",\"references\",\"abbr2\",\"footnote_tail\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"footnote\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\",\"table\"]},inline:{rules:[\"autolink\",\"backticks\",\"del\",\"emphasis\",\"entity\",\"escape\",\"footnote_ref\",\"htmltag\",\"links\",\"newline\",\"text\"]}}},full:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"abbr2\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\"]},inline:{rules:[\"autolink\",\"backticks\",\"emphasis\",\"entity\",\"escape\",\"htmltag\",\"links\",\"newline\",\"text\"]}}}};function De(e,t,r){this.src=t,this.env=r,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function _e(e,t){\"string\"!=typeof e&&(t=e,e=\"default\"),t&&null!=t.linkify&&console.warn(\"linkify option is removed. Use linkify plugin instead:\\n\\nimport Remarkable from 'remarkable';\\nimport linkify from 'remarkable/linkify';\\nnew Remarkable().use(linkify)\\n\"),this.inline=new we,this.block=new te,this.core=new G,this.renderer=new w,this.ruler=new C,this.options={},this.configure(Ee[e]),this.set(t||{})}function Be(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}function qe(e,t){for(var r=e.length-1;r>=0;r--)!0===t(e[r])&&e.splice(r,1)}function Fe(e){throw new Error(\"Unhandled case for value: '\"+e+\"'\")}_e.prototype.set=function(e){i(this.options,e)},_e.prototype.configure=function(e){var t=this;if(!e)throw new Error(\"Wrong `remarkable` preset, check name/content\");e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(r){e.components[r].rules&&t[r].ruler.enable(e.components[r].rules,!0)})},_e.prototype.use=function(e,t){return e(this,t),this},_e.prototype.parse=function(e,t){var r=new De(this,e,t);return this.core.process(r),r.tokens},_e.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},_e.prototype.parseInline=function(e,t){var r=new De(this,e,t);return r.inlineMode=!0,this.core.process(r),r.tokens},_e.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var Me=function(){function e(e){void 0===e&&(e={}),this.tagName=\"\",this.attrs={},this.innerHTML=\"\",this.whitespaceRegex=/\\s+/,this.tagName=e.tagName||\"\",this.attrs=e.attrs||{},this.innerHTML=e.innerHtml||e.innerHTML||\"\"}return e.prototype.setTagName=function(e){return this.tagName=e,this},e.prototype.getTagName=function(){return this.tagName||\"\"},e.prototype.setAttr=function(e,t){return this.getAttrs()[e]=t,this},e.prototype.getAttr=function(e){return this.getAttrs()[e]},e.prototype.setAttrs=function(e){return Object.assign(this.getAttrs(),e),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(e){return this.setAttr(\"class\",e)},e.prototype.addClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);t=s.shift();)-1===Be(o,t)&&o.push(t);return this.getAttrs().class=o.join(\" \"),this},e.prototype.removeClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);o.length&&(t=s.shift());){var i=Be(o,t);-1!==i&&o.splice(i,1)}return this.getAttrs().class=o.join(\" \"),this},e.prototype.getClass=function(){return this.getAttrs().class||\"\"},e.prototype.hasClass=function(e){return-1!==(\" \"+this.getClass()+\" \").indexOf(\" \"+e+\" \")},e.prototype.setInnerHTML=function(e){return this.innerHTML=e,this},e.prototype.setInnerHtml=function(e){return this.setInnerHTML(e)},e.prototype.getInnerHTML=function(){return this.innerHTML||\"\"},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var e=this.getTagName(),t=this.buildAttrsStr();return[\"<\",e,t=t?\" \"+t:\"\",\">\",this.getInnerHtml(),\"</\",e,\">\"].join(\"\")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return\"\";var e=this.getAttrs(),t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r+'=\"'+e[r]+'\"');return t.join(\" \")},e}();var Se=function(){function e(e){void 0===e&&(e={}),this.newWindow=!1,this.truncate={},this.className=\"\",this.newWindow=e.newWindow||!1,this.truncate=e.truncate||{},this.className=e.className||\"\"}return e.prototype.build=function(e){return new Me({tagName:\"a\",attrs:this.createAttrs(e),innerHtml:this.processAnchorText(e.getAnchorText())})},e.prototype.createAttrs=function(e){var t={href:e.getAnchorHref()},r=this.createCssClass(e);return r&&(t.class=r),this.newWindow&&(t.target=\"_blank\",t.rel=\"noopener noreferrer\"),this.truncate&&this.truncate.length&&this.truncate.length<e.getAnchorText().length&&(t.title=e.getAnchorHref()),t},e.prototype.createCssClass=function(e){var t=this.className;if(t){for(var r=[t],n=e.getCssClassSuffixes(),o=0,s=n.length;o<s;o++)r.push(t+\"-\"+n[o]);return r.join(\" \")}return\"\"},e.prototype.processAnchorText=function(e){return e=this.doTruncate(e)},e.prototype.doTruncate=function(e){var t=this.truncate;if(!t||!t.length)return e;var r=t.length,n=t.location;return\"smart\"===n?function(e,t,r){var n,o;null==r?(r=\"…\",o=3,n=8):(o=r.length,n=r.length);var s=function(e){var t=\"\";return e.scheme&&e.host&&(t+=e.scheme+\"://\"),e.host&&(t+=e.host),e.path&&(t+=\"/\"+e.path),e.query&&(t+=\"?\"+e.query),e.fragment&&(t+=\"#\"+e.fragment),t},i=function(e,t){var n=t/2,o=Math.ceil(n),s=-1*Math.floor(n),i=\"\";return s<0&&(i=e.substr(s)),e.substr(0,o)+r+i};if(e.length<=t)return e;var a=t-o,u=function(e){var t={},r=e,n=r.match(/^([a-z]+):\\/\\//i);return n&&(t.scheme=n[1],r=r.substr(n[0].length)),(n=r.match(/^(.*?)(?=(\\?|#|\\/|$))/i))&&(t.host=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\/(.*?)(?=(\\?|#|$))/i))&&(t.path=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\?(.*?)(?=(#|$))/i))&&(t.query=n[1],r=r.substr(n[0].length)),(n=r.match(/^#(.*?)$/i))&&(t.fragment=n[1]),t}(e);if(u.query){var l=u.query.match(/^(.*?)(?=(\\?|\\#))(.*?)$/i);l&&(u.query=u.query.substr(0,l[1].length),e=s(u))}if(e.length<=t)return e;if(u.host&&(u.host=u.host.replace(/^www\\./,\"\"),e=s(u)),e.length<=t)return e;var c=\"\";if(u.host&&(c+=u.host),c.length>=a)return u.host.length==t?(u.host.substr(0,t-o)+r).substr(0,a+n):i(c,a).substr(0,a+n);var p=\"\";if(u.path&&(p+=\"/\"+u.path),u.query&&(p+=\"?\"+u.query),p){if((c+p).length>=a)return(c+p).length==t?(c+p).substr(0,t):(c+i(p,a-c.length)).substr(0,a+n);c+=p}if(u.fragment){var h=\"#\"+u.fragment;if((c+h).length>=a)return(c+h).length==t?(c+h).substr(0,t):(c+i(h,a-c.length)).substr(0,a+n);c+=h}if(u.scheme&&u.host){var f=u.scheme+\"://\";if((c+f).length<a)return(f+c).substr(0,t)}if(c.length<=t)return c;var g=\"\";return a>0&&(g=c.substr(-1*Math.floor(a/2))),(c.substr(0,Math.ceil(a/2))+r+g).substr(0,a+n)}(e,r):\"middle\"===n?function(e,t,r){if(e.length<=t)return e;var n,o;null==r?(r=\"…\",n=8,o=3):(n=r.length,o=r.length);var s=t-o,i=\"\";return s>0&&(i=e.substr(-1*Math.floor(s/2))),(e.substr(0,Math.ceil(s/2))+r+i).substr(0,s+n)}(e,r):function(e,t,r){return function(e,t,r){var n;return e.length>t&&(null==r?(r=\"…\",n=3):n=r.length,e=e.substring(0,t-n)+r),e}(e,t,r)}(e,r)},e}(),Te=function(){function e(e){this.__jsduckDummyDocProp=null,this.matchedText=\"\",this.offset=0,this.tagBuilder=e.tagBuilder,this.matchedText=e.matchedText,this.offset=e.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(e){this.offset=e},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.getType()]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}(),Le=function(e,t){return(Le=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function Re(e,t){function r(){this.constructor=e}Le(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var Ne=function(){return(Ne=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},ze=function(e){function t(t){var r=e.call(this,t)||this;return r.email=\"\",r.email=t.email,r}return Re(t,e),t.prototype.getType=function(){return\"email\"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return\"mailto:\"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(Te),Pe=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"\",r.hashtag=\"\",r.serviceName=t.serviceName,r.hashtag=t.hashtag,r}return Re(t,e),t.prototype.getType=function(){return\"hashtag\"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var e=this.serviceName,t=this.hashtag;switch(e){case\"twitter\":return\"https://twitter.com/hashtag/\"+t;case\"facebook\":return\"https://www.facebook.com/hashtag/\"+t;case\"instagram\":return\"https://instagram.com/explore/tags/\"+t;default:throw new Error(\"Unknown service name to point hashtag to: \"+e)}},t.prototype.getAnchorText=function(){return\"#\"+this.hashtag},t}(Te),je=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.mention=\"\",r.mention=t.mention,r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.getType=function(){return\"mention\"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case\"twitter\":return\"https://twitter.com/\"+this.mention;case\"instagram\":return\"https://instagram.com/\"+this.mention;case\"soundcloud\":return\"https://soundcloud.com/\"+this.mention;default:throw new Error(\"Unknown service name to point mention to: \"+this.serviceName)}},t.prototype.getAnchorText=function(){return\"@\"+this.mention},t.prototype.getCssClassSuffixes=function(){var t=e.prototype.getCssClassSuffixes.call(this),r=this.getServiceName();return r&&t.push(r),t},t}(Te),Ie=function(e){function t(t){var r=e.call(this,t)||this;return r.number=\"\",r.plusSign=!1,r.number=t.number,r.plusSign=t.plusSign,r}return Re(t,e),t.prototype.getType=function(){return\"phone\"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return\"tel:\"+(this.plusSign?\"+\":\"\")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(Te),Oe=function(e){function t(t){var r=e.call(this,t)||this;return r.url=\"\",r.urlMatchType=\"scheme\",r.protocolUrlMatch=!1,r.protocolRelativeMatch=!1,r.stripPrefix={scheme:!0,www:!0},r.stripTrailingSlash=!0,r.decodePercentEncoding=!0,r.schemePrefixRegex=/^(https?:\\/\\/)?/i,r.wwwPrefixRegex=/^(https?:\\/\\/)?(www\\.)?/i,r.protocolRelativeRegex=/^\\/\\//,r.protocolPrepended=!1,r.urlMatchType=t.urlMatchType,r.url=t.url,r.protocolUrlMatch=t.protocolUrlMatch,r.protocolRelativeMatch=t.protocolRelativeMatch,r.stripPrefix=t.stripPrefix,r.stripTrailingSlash=t.stripTrailingSlash,r.decodePercentEncoding=t.decodePercentEncoding,r}return Re(t,e),t.prototype.getType=function(){return\"url\"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url=\"http://\"+e,this.protocolPrepended=!0),e},t.prototype.getAnchorHref=function(){return this.getUrl().replace(/&/g,\"&\")},t.prototype.getAnchorText=function(){var e=this.getMatchedText();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix.scheme&&(e=this.stripSchemePrefix(e)),this.stripPrefix.www&&(e=this.stripWwwPrefix(e)),this.stripTrailingSlash&&(e=this.removeTrailingSlash(e)),this.decodePercentEncoding&&(e=this.removePercentEncoding(e)),e},t.prototype.stripSchemePrefix=function(e){return e.replace(this.schemePrefixRegex,\"\")},t.prototype.stripWwwPrefix=function(e){return e.replace(this.wwwPrefixRegex,\"$1\")},t.prototype.stripProtocolRelativePrefix=function(e){return e.replace(this.protocolRelativeRegex,\"\")},t.prototype.removeTrailingSlash=function(e){return\"/\"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e},t.prototype.removePercentEncoding=function(e){var t=e.replace(/%22/gi,\""\").replace(/%26/gi,\"&\").replace(/%27/gi,\"'\").replace(/%3C/gi,\"<\").replace(/%3E/gi,\">\");try{return decodeURIComponent(t)}catch(e){return t}},t}(Te),Ue=function(e){this.__jsduckDummyDocProp=null,this.tagBuilder=e.tagBuilder},He=/[A-Za-z]/,Ve=/[0-9]/,Ge=/\\s/,$e=/['\"]/,Ze=/[\\x00-\\x1F\\x7F]/,We=/A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC/.source,Je=We+/\\u00a9\\u00ae\\u2000-\\u3300\\ud83c\\ud000-\\udfff\\ud83d\\ud000-\\udfff\\ud83e\\ud000-\\udfff/.source+/\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F/.source,Ye=/0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19/.source,Ke=Je+Ye,Qe=Je+Ye,Xe=\"(?:[\"+Ye+\"]{1,3}\\\\.){3}[\"+Ye+\"]{1,3}\",et=\"[\"+Qe+\"](?:[\"+Qe+\"\\\\-]{0,61}[\"+Qe+\"])?\",tt=function(e){return\"(?=(\"+et+\"))\\\\\"+e},rt=function(e){return\"(?:\"+tt(e)+\"(?:\\\\.\"+tt(e+1)+\"){0,126}|\"+Xe+\")\"},nt=new RegExp(\"[\"+Qe+\"]\"),ot=/(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|etisalat|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|staples|starhub|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jcp|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/,st=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.localPartCharRegex=new RegExp(\"[\"+Qe+\"!#$%&'*+/=?^_`{|}~-]\"),t.strictTldRegex=new RegExp(\"^\"+ot.source+\"$\"),t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t=this.tagBuilder,r=this.localPartCharRegex,n=this.strictTldRegex,o=[],s=e.length,i=new it,a={m:\"a\",a:\"i\",i:\"l\",l:\"t\",t:\"o\",o:\":\"},u=0,l=0,c=i;u<s;){var p=e.charAt(u);switch(l){case 0:h(p);break;case 1:f(e.charAt(u-1),p);break;case 2:g(p);break;case 3:d(p);break;case 4:m(p);break;case 5:b(p);break;case 6:v(p);break;case 7:k(p);break;default:Fe(l)}u++}return x(),o;function h(e){\"m\"===e?A(1):r.test(e)&&A()}function f(e,t){\":\"===e?r.test(t)?(l=2,c=new it(Ne({},c,{hasMailtoPrefix:!0}))):y():a[e]===t||(r.test(t)?l=2:\".\"===t?l=3:\"@\"===t?l=4:y())}function g(e){\".\"===e?l=3:\"@\"===e?l=4:r.test(e)||y()}function d(e){\".\"===e?y():\"@\"===e?y():r.test(e)?l=2:y()}function m(e){nt.test(e)?l=5:y()}function b(e){\".\"===e?l=7:\"-\"===e?l=6:nt.test(e)||x()}function v(e){\"-\"===e||\".\"===e?x():nt.test(e)?l=5:x()}function k(e){\".\"===e||\"-\"===e?x():nt.test(e)?(l=5,c=new it(Ne({},c,{hasDomainDot:!0}))):x()}function A(e){void 0===e&&(e=2),l=e,c=new it({idx:u})}function y(){l=0,c=i}function x(){if(c.hasDomainDot){var r=e.slice(c.idx,u);/[-.]$/.test(r)&&(r=r.slice(0,-1));var s=c.hasMailtoPrefix?r.slice(\"mailto:\".length):r;(function(e){var t=(e.split(\".\").pop()||\"\").toLowerCase();return n.test(t)})(s)&&o.push(new ze({tagBuilder:t,matchedText:r,offset:c.idx,email:s}))}y()}},t}(Ue),it=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.hasMailtoPrefix=!!e.hasMailtoPrefix,this.hasDomainDot=!!e.hasDomainDot},at=function(){function e(){}return e.isValid=function(e,t){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)&&!this.isValidIpAddress(e)||this.containsMultipleDots(e))},e.isValidIpAddress=function(e){var t=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source);return null!==e.match(t)},e.containsMultipleDots=function(e){var t=e;return this.hasFullProtocolRegex.test(e)&&(t=e.split(\"://\")[1]),t.split(\"/\")[0].indexOf(\"..\")>-1},e.isValidUriScheme=function(e){var t=e.match(this.uriSchemeRegex),r=t&&t[0].toLowerCase();return\"javascript:\"!==r&&\"vbscript:\"!==r},e.urlMatchDoesNotHaveProtocolOrDot=function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||-1!==e.indexOf(\".\"))},e.urlMatchDoesNotHaveAtLeastOneWordChar=function(e,t){return!(!e||!t)&&!this.hasWordCharAfterProtocolRegex.test(e)},e.hasFullProtocolRegex=/^[A-Za-z][-.+A-Za-z0-9]*:\\/\\//,e.uriSchemeRegex=/^[A-Za-z][-.+A-Za-z0-9]*:/,e.hasWordCharAfterProtocolRegex=new RegExp(\":[^\\\\s]*?[\"+We+\"]\"),e.ipRegex=/[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?(:[0-9]*)?\\/?$/,e}(),ut=function(e){function t(t){var r,n=e.call(this,t)||this;return n.stripPrefix={scheme:!0,www:!0},n.stripTrailingSlash=!0,n.decodePercentEncoding=!0,n.matcherRegex=(r=new RegExp(\"[/?#](?:[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]?!:,.;✓]*[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]✓])?\"),new RegExp([\"(?:\",\"(\",/(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\\/\\/)(?!\\d+\\/?)(?:\\/\\/)?)/.source,rt(2),\")\",\"|\",\"(\",\"(//)?\",/(?:www\\.)/.source,rt(6),\")\",\"|\",\"(\",\"(//)?\",rt(10)+\"\\\\.\",ot.source,\"(?![-\"+Ke+\"])\",\")\",\")\",\"(?::[0-9]+)?\",\"(?:\"+r.source+\")?\"].join(\"\"),\"gi\")),n.wordCharRegExp=new RegExp(\"[\"+Qe+\"]\"),n.stripPrefix=t.stripPrefix,n.stripTrailingSlash=t.stripTrailingSlash,n.decodePercentEncoding=t.decodePercentEncoding,n}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.stripPrefix,o=this.stripTrailingSlash,s=this.decodePercentEncoding,i=this.tagBuilder,a=[],u=function(){var r=t[0],u=t[1],c=t[4],p=t[5],h=t[9],f=t.index,g=p||h,d=e.charAt(f-1);if(!at.isValid(r,u))return\"continue\";if(f>0&&\"@\"===d)return\"continue\";if(f>0&&g&&l.wordCharRegExp.test(d))return\"continue\";if(/\\?$/.test(r)&&(r=r.substr(0,r.length-1)),l.matchHasUnbalancedClosingParen(r))r=r.substr(0,r.length-1);else{var m=l.matchHasInvalidCharAfterTld(r,u);m>-1&&(r=r.substr(0,m))}var b=[\"http://\",\"https://\"].find(function(e){return!!u&&-1!==u.indexOf(e)});if(b){var v=r.indexOf(b);r=r.substr(v),u=u.substr(v),f+=v}var k=u?\"scheme\":c?\"www\":\"tld\",A=!!u;a.push(new Oe({tagBuilder:i,matchedText:r,offset:f,urlMatchType:k,url:r,protocolUrlMatch:A,protocolRelativeMatch:!!g,stripPrefix:n,stripTrailingSlash:o,decodePercentEncoding:s}))},l=this;null!==(t=r.exec(e));)u();return a},t.prototype.matchHasUnbalancedClosingParen=function(e){var t,r=e.charAt(e.length-1);if(\")\"===r)t=\"(\";else{if(\"]\"!==r)return!1;t=\"[\"}for(var n=0,o=0,s=e.length-1;o<s;o++){var i=e.charAt(o);i===t?n++:i===r&&(n=Math.max(n-1,0))}return 0===n},t.prototype.matchHasInvalidCharAfterTld=function(e,t){if(!e)return-1;var r=0;t&&(r=e.indexOf(\":\"),e=e.slice(r));var n=new RegExp(\"^((.?//)?[-.\"+Qe+\"]*[-\"+Qe+\"]\\\\.[-\"+Qe+\"]+)\").exec(e);return null===n?-1:(r+=n[1].length,e=e.slice(n[1].length),/^[^-.A-Za-z0-9:\\/?#]/.test(e)?r:-1)},t}(Ue),lt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegex=new RegExp(\"#[_\"+Qe+\"]{1,139}(?![_\"+Qe+\"])\",\"g\"),r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.nonWordCharRegex,o=this.serviceName,s=this.tagBuilder,i=[];null!==(t=r.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||n.test(u)){var l=t[0],c=t[0].slice(1);i.push(new Pe({tagBuilder:s,matchedText:l,offset:a,serviceName:o,hashtag:c}))}}return i},t}(Ue),ct=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.matcherRegex=/(?:(?:(?:(\\+)?\\d{1,3}[-\\040.]?)?\\(?\\d{3}\\)?[-\\040.]?\\d{3}[-\\040.]?\\d{4})|(?:(\\+)(?:9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\\040.]?(?:\\d[-\\040.]?){6,12}\\d+))([,;]+[0-9]+#?)*/g,t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.tagBuilder,o=[];null!==(t=r.exec(e));){var s=t[0],i=s.replace(/[^0-9,;#]/g,\"\"),a=!(!t[1]&&!t[2]),u=0==t.index?\"\":e.substr(t.index-1,1),l=e.substr(t.index+s.length,1),c=!u.match(/\\d/)&&!l.match(/\\d/);this.testMatch(t[3])&&this.testMatch(s)&&c&&o.push(new Ie({tagBuilder:n,matchedText:s,offset:t.index,number:i,plusSign:a}))}return o},t.prototype.testMatch=function(e){return/\\D/.test(e)},t}(Ue),pt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegexes={twitter:new RegExp(\"@[_\"+Qe+\"]{1,50}(?![_\"+Qe+\"])\",\"g\"),instagram:new RegExp(\"@[_.\"+Qe+\"]{1,30}(?![_\"+Qe+\"])\",\"g\"),soundcloud:new RegExp(\"@[-_.\"+Qe+\"]{1,50}(?![-_\"+Qe+\"])\",\"g\")},r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){var t,r=this.serviceName,n=this.matcherRegexes[this.serviceName],o=this.nonWordCharRegex,s=this.tagBuilder,i=[];if(!n)return i;for(;null!==(t=n.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||o.test(u)){var l=t[0].replace(/\\.+$/g,\"\"),c=l.slice(1);i.push(new je({tagBuilder:s,matchedText:l,offset:a,serviceName:r,mention:c}))}}return i},t}(Ue);function ht(e,t){for(var r=t.onOpenTag,n=t.onCloseTag,o=t.onText,s=t.onComment,i=t.onDoctype,a=new ft,u=0,l=e.length,c=0,p=0,h=a;u<l;){var f=e.charAt(u);switch(c){case 0:g(f);break;case 1:d(f);break;case 2:b(f);break;case 3:m(f);break;case 4:v(f);break;case 5:k(f);break;case 6:A(f);break;case 7:y(f);break;case 8:x(f);break;case 9:w(f);break;case 10:C(f);break;case 11:E(f);break;case 12:D(f);break;case 13:_();break;case 14:B(f);break;case 15:q(f);break;case 16:F(f);break;case 17:M(f);break;case 18:S(f);break;case 19:T(f);break;case 20:L(f);break;default:Fe(c)}u++}function g(e){\"<\"===e&&N()}function d(e){\"!\"===e?c=13:\"/\"===e?(c=2,h=new ft(Ne({},h,{isClosing:!0}))):\"<\"===e?N():He.test(e)?(c=3,h=new ft(Ne({},h,{isOpening:!0}))):(c=0,h=a)}function m(e){Ge.test(e)?(h=new ft(Ne({},h,{name:P()})),c=4):\"<\"===e?N():\"/\"===e?(h=new ft(Ne({},h,{name:P()})),c=12):\">\"===e?(h=new ft(Ne({},h,{name:P()})),z()):He.test(e)||Ve.test(e)||\":\"===e||R()}function b(e){\">\"===e?R():He.test(e)?c=3:R()}function v(e){Ge.test(e)||(\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():\"=\"===e||$e.test(e)||Ze.test(e)?R():c=5)}function k(e){Ge.test(e)?c=6:\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)&&R()}function A(e){Ge.test(e)||(\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)?R():c=5)}function y(e){Ge.test(e)||('\"'===e?c=8:\"'\"===e?c=9:/[>=`]/.test(e)?R():\"<\"===e?N():c=10)}function x(e){'\"'===e&&(c=11)}function w(e){\"'\"===e&&(c=11)}function C(e){Ge.test(e)?c=4:\">\"===e?z():\"<\"===e&&N()}function E(e){Ge.test(e)?c=4:\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():(c=4,u--)}function D(e){\">\"===e?(h=new ft(Ne({},h,{isClosing:!0})),z()):c=4}function _(t){\"--\"===e.substr(u,2)?(u+=2,h=new ft(Ne({},h,{type:\"comment\"})),c=14):\"DOCTYPE\"===e.substr(u,7).toUpperCase()?(u+=7,h=new ft(Ne({},h,{type:\"doctype\"})),c=20):R()}function B(e){\"-\"===e?c=15:\">\"===e?R():c=16}function q(e){\"-\"===e?c=18:\">\"===e?R():c=16}function F(e){\"-\"===e&&(c=17)}function M(e){c=\"-\"===e?18:16}function S(e){\">\"===e?z():\"!\"===e?c=19:\"-\"===e||(c=16)}function T(e){\"-\"===e?c=17:\">\"===e?z():c=16}function L(e){\">\"===e?z():\"<\"===e&&N()}function R(){c=0,h=a}function N(){c=1,h=new ft({idx:u})}function z(){var t=e.slice(p,h.idx);t&&o(t,p),\"comment\"===h.type?s(h.idx):\"doctype\"===h.type?i(h.idx):(h.isOpening&&r(h.name,h.idx),h.isClosing&&n(h.name,h.idx)),R(),p=u+1}function P(){var t=h.idx+(h.isClosing?2:1);return e.slice(t,u).toLowerCase()}p<u&&function(){var t=e.slice(p,u);o(t,p),p=u+1}()}var ft=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.type=e.type||\"tag\",this.name=e.name||\"\",this.isOpening=!!e.isOpening,this.isClosing=!!e.isClosing},gt=function(){function e(t){void 0===t&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:\"end\"},this.className=\"\",this.replaceFn=null,this.context=void 0,this.matchers=null,this.tagBuilder=null,this.urls=this.normalizeUrlsCfg(t.urls),this.email=\"boolean\"==typeof t.email?t.email:this.email,this.phone=\"boolean\"==typeof t.phone?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=\"boolean\"==typeof t.newWindow?t.newWindow:this.newWindow,this.stripPrefix=this.normalizeStripPrefixCfg(t.stripPrefix),this.stripTrailingSlash=\"boolean\"==typeof t.stripTrailingSlash?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=\"boolean\"==typeof t.decodePercentEncoding?t.decodePercentEncoding:this.decodePercentEncoding;var r=this.mention;if(!1!==r&&\"twitter\"!==r&&\"instagram\"!==r&&\"soundcloud\"!==r)throw new Error(\"invalid `mention` cfg - see docs\");var n=this.hashtag;if(!1!==n&&\"twitter\"!==n&&\"facebook\"!==n&&\"instagram\"!==n)throw new Error(\"invalid `hashtag` cfg - see docs\");this.truncate=this.normalizeTruncateCfg(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,r){return new e(r).link(t)},e.parse=function(t,r){return new e(r).parse(t)},e.prototype.normalizeUrlsCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{schemeMatches:e,wwwMatches:e,tldMatches:e}:{schemeMatches:\"boolean\"!=typeof e.schemeMatches||e.schemeMatches,wwwMatches:\"boolean\"!=typeof e.wwwMatches||e.wwwMatches,tldMatches:\"boolean\"!=typeof e.tldMatches||e.tldMatches}},e.prototype.normalizeStripPrefixCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{scheme:e,www:e}:{scheme:\"boolean\"!=typeof e.scheme||e.scheme,www:\"boolean\"!=typeof e.www||e.www}},e.prototype.normalizeTruncateCfg=function(e){return\"number\"==typeof e?{length:e,location:\"end\"}:function(e,t){for(var r in t)t.hasOwnProperty(r)&&void 0===e[r]&&(e[r]=t[r]);return e}(e||{},{length:Number.POSITIVE_INFINITY,location:\"end\"})},e.prototype.parse=function(e){var t=this,r=[\"a\",\"style\",\"script\"],n=0,o=[];return ht(e,{onOpenTag:function(e){r.indexOf(e)>=0&&n++},onText:function(e,r){if(0===n){var s=function(e,t){if(!t.global)throw new Error(\"`splitRegex` must have the 'g' flag set\");for(var r,n=[],o=0;r=t.exec(e);)n.push(e.substring(o,r.index)),n.push(r[0]),o=r.index+r[0].length;return n.push(e.substring(o)),n}(e,/( | |<|<|>|>|"|"|')/gi),i=r;s.forEach(function(e,r){if(r%2==0){var n=t.parseText(e,i);o.push.apply(o,n)}i+=e.length})}},onCloseTag:function(e){r.indexOf(e)>=0&&(n=Math.max(n-1,0))},onComment:function(e){},onDoctype:function(e){}}),o=this.compactMatches(o),o=this.removeUnwantedMatches(o)},e.prototype.compactMatches=function(e){e.sort(function(e,t){return e.getOffset()-t.getOffset()});for(var t=0;t<e.length-1;t++){var r=e[t],n=r.getOffset(),o=r.getMatchedText().length,s=n+o;if(t+1<e.length){if(e[t+1].getOffset()===n){var i=e[t+1].getMatchedText().length>o?t:t+1;e.splice(i,1);continue}e[t+1].getOffset()<s&&e.splice(t+1,1)}}return e},e.prototype.removeUnwantedMatches=function(e){return this.hashtag||qe(e,function(e){return\"hashtag\"===e.getType()}),this.email||qe(e,function(e){return\"email\"===e.getType()}),this.phone||qe(e,function(e){return\"phone\"===e.getType()}),this.mention||qe(e,function(e){return\"mention\"===e.getType()}),this.urls.schemeMatches||qe(e,function(e){return\"url\"===e.getType()&&\"scheme\"===e.getUrlMatchType()}),this.urls.wwwMatches||qe(e,function(e){return\"url\"===e.getType()&&\"www\"===e.getUrlMatchType()}),this.urls.tldMatches||qe(e,function(e){return\"url\"===e.getType()&&\"tld\"===e.getUrlMatchType()}),e},e.prototype.parseText=function(e,t){void 0===t&&(t=0),t=t||0;for(var r=this.getMatchers(),n=[],o=0,s=r.length;o<s;o++){for(var i=r[o].parseMatches(e),a=0,u=i.length;a<u;a++)i[a].setOffset(t+i[a].getOffset());n.push.apply(n,i)}return n},e.prototype.link=function(e){if(!e)return\"\";for(var t=this.parse(e),r=[],n=0,o=0,s=t.length;o<s;o++){var i=t[o];r.push(e.substring(n,i.getOffset())),r.push(this.createMatchReturnVal(i)),n=i.getOffset()+i.getMatchedText().length}return r.push(e.substring(n)),r.join(\"\")},e.prototype.createMatchReturnVal=function(e){var t;return this.replaceFn&&(t=this.replaceFn.call(this.context,e)),\"string\"==typeof t?t:!1===t?e.getMatchedText():t instanceof Me?t.toAnchorString():e.buildTag().toAnchorString()},e.prototype.getMatchers=function(){if(this.matchers)return this.matchers;var e=this.getTagBuilder(),t=[new lt({tagBuilder:e,serviceName:this.hashtag}),new st({tagBuilder:e}),new ct({tagBuilder:e}),new pt({tagBuilder:e,serviceName:this.mention}),new ut({tagBuilder:e,stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding})];return this.matchers=t},e.prototype.getTagBuilder=function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new Se({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e},e.version=\"3.11.0\",e.AnchorTagBuilder=Se,e.HtmlTag=Me,e.matcher={Email:st,Hashtag:lt,Matcher:Ue,Mention:pt,Phone:ct,Url:ut},e.match={Email:ze,Hashtag:Pe,Match:Te,Mention:je,Phone:Ie,Url:Oe},e}(),dt=/www|@|\\:\\/\\//;function mt(e){return/^<\\/a\\s*>/i.test(e)}function bt(){var e=[],t=new gt({stripPrefix:!1,url:!0,email:!0,replaceFn:function(t){switch(t.getType()){case\"url\":e.push({text:t.matchedText,url:t.getUrl()});break;case\"email\":e.push({text:t.matchedText,url:\"mailto:\"+t.getEmail().replace(/^mailto:/i,\"\")})}return!1}});return{links:e,autolinker:t}}function vt(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d=e.tokens,m=null;for(r=0,n=d.length;r<n;r++)if(\"inline\"===d[r].type)for(p=0,t=(o=d[r].children).length-1;t>=0;t--)if(\"link_close\"!==(s=o[t]).type){if(\"htmltag\"===s.type&&(g=s.content,/^<a[>\\s]/i.test(g)&&p>0&&p--,mt(s.content)&&p++),!(p>0)&&\"text\"===s.type&&dt.test(s.content)){if(m||(h=(m=bt()).links,f=m.autolinker),i=s.content,h.length=0,f.link(i),!h.length)continue;for(a=[],c=s.level,u=0;u<h.length;u++)e.inline.validateLink(h[u].url)&&((l=i.indexOf(h[u].text))&&a.push({type:\"text\",content:i.slice(0,l),level:c}),a.push({type:\"link_open\",href:h[u].url,title:\"\",level:c++}),a.push({type:\"text\",content:h[u].text,level:c}),a.push({type:\"link_close\",level:--c}),i=i.slice(l+h[u].text.length));i.length&&a.push({type:\"text\",content:i,level:c}),d[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1))}}else for(t--;o[t].level!==s.level&&\"link_open\"!==o[t].type;)t--}e.Remarkable=_e,e.linkify=function(e){e.core.ruler.push(\"linkify\",vt)},e.utils=A,Object.defineProperty(e,\"__esModule\",{value:!0})});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/markdown/remarkable.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/markdown/images/new-markdown-button": {
"title": "$:/plugins/tiddlywiki/markdown/images/new-markdown-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-new-markdown-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n <path d=\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\"transform=\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \"></path>\n </g>\n</svg>"
},
"$:/plugins/tiddlywiki/markdown/new-markdown-button": {
"title": "$:/plugins/tiddlywiki/markdown/new-markdown-button",
"tags": "$:/tags/PageControls",
"caption": "{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}",
"description": "{{$:/language/Buttons/NewMarkdown/Hint}}",
"list-after": "$:/core/ui/Buttons/new-tiddler",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/x-markdown\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/plugins/tiddlywiki/markdown/readme": {
"title": "$:/plugins/tiddlywiki/markdown/readme",
"text": "This is a TiddlyWiki plugin for parsing Markdown text, using the [[Remarkable|https://github.com/jonschlinkert/remarkable]] library.\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown]]\n"
},
"$:/plugins/tiddlywiki/markdown/usage": {
"title": "$:/plugins/tiddlywiki/markdown/usage",
"text": "! Plugin Configuration\n\n|!Config |!Default |!Description |\n| <code>[[breaks|$:/config/markdown/breaks]]</code>| ``false``|Remarkable library config: Convert '\\n' in paragraphs into ``<br>`` |\n| <code>[[linkify|$:/config/markdown/linkify]]</code>| ``false``|Remarkable library config: Autoconvert URL-like text to links |\n| <code>[[linkNewWindow|$:/config/markdown/linkNewWindow]]</code>| ``true``|For external links, should clicking on them open a new window/tab automatically? |\n| <code>[[quotes|$:/config/markdown/quotes]]</code>| ``“”‘’``|Remarkable library config: Double + single quotes replacement pairs, when ``typographer`` enabled |\n| <code>[[renderWikiText|$:/config/markdown/renderWikiText]]</code>| ``true``|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? |\n| <code>[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]</code>| ``\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock``|When handing off to the ~WikiText parser, what pragma rules should it follow? |\n| <code>[[typographer|$:/config/markdown/typographer]]</code>| ``false``|Remarkable library config: Enable some language-neutral replacement + quotes beautification |\n\n! Creating ~WikiLinks\n\nCreate wiki links with the usual Markdown link syntax targeting `#` and the target tiddler title:\n\n```\n[link text](#TiddlerTitle)\n```\n\nIf the target tiddler has a space in its name, that name must be URL-escaped to be detected as a URL:\n\n```\n[link text](#Test%20Tiddler)\n```\n\n! Images\n\nMarkdown image syntax can be used to reference images by tiddler title or an external URI. For example:\n\n```\n\n\n\n```\n"
},
"$:/plugins/tiddlywiki/markdown/wrapper.js": {
"title": "$:/plugins/tiddlywiki/markdown/wrapper.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\ntype: application/javascript\nmodule-type: parser\n\nWraps up the remarkable parser for use as a Parser in TiddlyWiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar r = require(\"$:/plugins/tiddlywiki/markdown/remarkable.js\");\n\nvar Remarkable = r.Remarkable,\n\tlinkify = r.linkify,\n\tutils = r.utils;\n\n///// Set up configuration options /////\nfunction parseAsBoolean(tiddlerName) {\n\treturn $tw.wiki.getTiddlerText(tiddlerName).toLowerCase() === \"true\";\n}\nvar pluginOpts = {\n\tlinkNewWindow: parseAsBoolean(\"$:/config/markdown/linkNewWindow\"),\n\trenderWikiText: parseAsBoolean(\"$:/config/markdown/renderWikiText\"),\n\trenderWikiTextPragma: $tw.wiki.getTiddlerText(\"$:/config/markdown/renderWikiTextPragma\").trim()\n};\nvar remarkableOpts = {\n\tbreaks: parseAsBoolean(\"$:/config/markdown/breaks\"),\n\tquotes: $tw.wiki.getTiddlerText(\"$:/config/markdown/quotes\"),\n\ttypographer: parseAsBoolean(\"$:/config/markdown/typographer\")\n};\n\nvar md = new Remarkable(remarkableOpts);\n\nif (parseAsBoolean(\"$:/config/markdown/linkify\")) {\n\tmd = md.use(linkify);\n}\n\nfunction findTagWithType(nodes, startPoint, type, level) {\n\tfor (var i = startPoint; i < nodes.length; i++) {\n\t\tif (nodes[i].type === type && nodes[i].level === level) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn false;\n}\n\n/**\n * Remarkable creates nodes that look like:\n * [\n * { type: 'paragraph_open'},\n * { type: 'inline', content: 'Hello World', children:[{type: 'text', content: 'Hello World'}]},\n * { type: 'paragraph_close'}\n * ]\n *\n * But TiddlyWiki wants the Parser (https://tiddlywiki.com/dev/static/Parser.html) to emit nodes like:\n *\n * [\n * { type: 'element', tag: 'p', children: [{type: 'text', text: 'Hello World'}]}\n * ]\n */\nfunction convertNodes(remarkableTree, isStartOfInline) {\n\tlet out = [];\n\n\tfunction wrappedElement(elementTag, currentIndex, currentLevel, closingType, nodes) {\n\t\tvar j = findTagWithType(nodes, currentIndex + 1, closingType, currentLevel);\n\t\tif (j === false) {\n\t\t\tconsole.error(\"Failed to find a \" + closingType + \" node after position \" + currentIndex);\n\t\t\tconsole.log(nodes);\n\t\t\treturn currentIndex + 1;\n\t\t}\n\t\tlet children = convertNodes(nodes.slice(currentIndex + 1, j));\n\n\t\tout.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: elementTag,\n\t\t\tchildren: children\n\t\t});\n\t\treturn j;\n\t}\n\n\tfor (var i = 0; i < remarkableTree.length; i++) {\n\t\tvar currentNode = remarkableTree[i];\n\t\tif (currentNode.type === \"paragraph_open\") {\n\t\t\ti = wrappedElement(\"p\", i, currentNode.level, \"paragraph_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"heading_open\") {\n\t\t\ti = wrappedElement(\"h\" + currentNode.hLevel, i, currentNode.level, \"heading_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"bullet_list_open\") {\n\t\t\ti = wrappedElement(\"ul\", i, currentNode.level, \"bullet_list_close\", remarkableTree);\n\t\t} else if (currentNode.type == 'ordered_list_open') {\n\t\t\ti = wrappedElement('ol', i, currentNode.level,'ordered_list_close', remarkableTree);\n\t\t} else if (currentNode.type === \"list_item_open\") {\n\t\t\ti = wrappedElement(\"li\", i, currentNode.level, \"list_item_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"link_open\") {\n\t\t\tvar j = findTagWithType(remarkableTree, i + 1, \"link_close\", currentNode.level);\n\n\t\t\tif (currentNode.href[0] !== \"#\") {\n\t\t\t\t// External link\n\t\t\t\tvar attributes = {\n\t\t\t\t\thref: { type: \"string\", value: currentNode.href }\n\t\t\t\t};\n\t\t\t\tif (pluginOpts.linkNewWindow) {\n\t\t\t\t\tattributes.target = { type: \"string\", value: \"_blank\" };\n\t\t\t\t}\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"element\",\n\t\t\t\t\ttag: \"a\",\n\t\t\t\t\tattributes: attributes,\n\t\t\t\t\tchildren: convertNodes(remarkableTree.slice(i + 1, j))\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Internal link\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"link\",\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tto: { type: \"string\", value: decodeURI(currentNode.href.substr(1)) }\n\t\t\t\t\t},\n\t\t\t\t\tchildren: convertNodes(remarkableTree.slice(i + 1, j))\n\t\t\t\t});\n\t\t\t}\n\t\t\ti = j;\n\t\t} else if (currentNode.type.substr(currentNode.type.length - 5) === \"_open\") {\n\t\t\tvar tagName = currentNode.type.substr(0, currentNode.type.length - 5);\n\t\t\ti = wrappedElement(tagName, i, currentNode.level, tagName + \"_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"code\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: currentNode.block ? \"pre\" : \"code\",\n\t\t\t\tchildren: [{ type: \"text\", text: currentNode.content }]\n\t\t\t});\n\t\t} else if (currentNode.type === \"fence\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"codeblock\",\n\t\t\t\tattributes: {\n\t\t\t\t\tlanguage: { type: \"string\", value: currentNode.params },\n\t\t\t\t\tcode: { type: \"string\", value: currentNode.content }\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (currentNode.type === \"image\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"image\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttooltip: { type: \"string\", value: currentNode.alt },\n\t\t\t\t\tsource: { type: \"string\", value: currentNode.src }\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (currentNode.type === \"softbreak\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: \"br\",\n\t\t\t});\n\t\t} else if (currentNode.type == 'hr') {\n\t\t\tout.push({\n\t\t\t\ttype: 'element',\n\t\t\t\ttag: 'hr',\n\t\t\t});\n\t\t} else if (currentNode.type === \"inline\") {\n\t\t\tout = out.concat(convertNodes(currentNode.children, true));\n\t\t} else if (currentNode.type === \"text\") {\n\t\t\tif (!pluginOpts.renderWikiText) {\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: currentNode.content\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// The Markdown compiler thinks this is just text.\n\t\t\t\t// Hand off to the WikiText parser to see if there's more to render\n\n\t\t\t\t// If we're inside a block element (div, p, td, h1), and this is the first child in the tree,\n\t\t\t\t// handle as a block-level parse. Otherwise not.\n\t\t\t\tvar parseAsInline = !(isStartOfInline && i === 0);\n\t\t\t\tvar textToParse = currentNode.content;\n\t\t\t\tif (pluginOpts.renderWikiTextPragma !== \"\") {\n\t\t\t\t\ttextToParse = pluginOpts.renderWikiTextPragma + \"\\n\" + textToParse;\n\t\t\t\t}\n\t\t\t\tvar wikiParser = $tw.wiki.parseText(\"text/vnd.tiddlywiki\", textToParse, {\n\t\t\t\t\tparseAsInline: parseAsInline\n\t\t\t\t});\n\t\t\t\tvar rs = wikiParser.tree;\n\n\t\t\t\t// If we parsed as a block, but the root element the WikiText parser gave is a paragraph,\n\t\t\t\t// we should discard the paragraph, since the way Remarkable nests its nodes, this \"inline\"\n\t\t\t\t// node is always inside something else that's a block-level element\n\t\t\t\tif (!parseAsInline\n\t\t\t\t\t&& rs.length === 1\n\t\t\t\t\t&& rs[0].type === \"element\"\n\t\t\t\t\t&& rs[0].tag === \"p\"\n\t\t\t\t) {\n\t\t\t\t\trs = rs[0].children;\n\t\t\t\t}\n\n\t\t\t\t// If the original text element started with a space, add it back in\n\t\t\t\tif (rs.length > 0\n\t\t\t\t\t&& rs[0].type === \"text\"\n\t\t\t\t\t&& currentNode.content[0] === \" \"\n\t\t\t\t) {\n\t\t\t\t\trs[0].text = \" \" + rs[0].text;\n\t\t\t\t}\n\t\t\t\tout = out.concat(rs);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(\"Unknown node type: \" + currentNode.type, currentNode);\n\t\t\tout.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: currentNode.content\n\t\t\t});\n\t\t}\n\t}\n\treturn out;\n}\n\nvar MarkdownParser = function(type, text, options) {\n\tvar tree = md.parse(text, {});\n\t//console.debug(tree);\n\ttree = convertNodes(tree);\n\t//console.debug(tree);\n\n\tthis.tree = tree;\n};\n\nexports[\"text/x-markdown\"] = MarkdownParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
}
}
}
<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>
<$action-sendmessage $message="tm-new-tiddler" type="text/x-markdown"/>
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>
</$list>
</$button>
(function(){
exports.name = "randomPrompt";
exports.params = [
{title: "Generic Prompts"}
];
exports.run = function(title) {
var tiddler = this.wiki.getTiddler(title);
if (!tiddler) {
return "tiddler not found";
}
var lines = tiddler.getFieldString("text").match(/^.*([\n\r]+|$)/gm),
options = [],
i;
for (i = 0; i < lines.length; i++) {
if (lines[i].startsWith("# ")) {
options.push(lines[i].slice(2));
}
}
if (options.length==0) {
return "No option.";
}
return options[Math.floor(Math.random()*options.length)];
};
})();
or, things chameleon knows
$:/core/ui/AdvancedSearch/Standard
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/EditorTypes
$:/core/ui/ControlPanel/Appearance
$:/core/ui/MoreSideBar/Recent
$:/core/ui/ControlPanel/Toolbars/PageControls
/* Base16 Atelier Dune Dark - Theme */
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
/* Atelier-Dune Comment */
.hljs-comment,
.hljs-quote {
color: #999580;
}
/* Atelier-Dune Red */
.hljs-variable,
.hljs-template-variable,
.hljs-attribute,
.hljs-tag,
.hljs-name,
.hljs-regexp,
.hljs-link,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class {
color: #d73737;
}
/* Atelier-Dune Orange */
.hljs-number,
.hljs-meta,
.hljs-built_in,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params {
color: #b65611;
}
/* Atelier-Dune Green */
.hljs-string,
.hljs-symbol,
.hljs-bullet {
color: #60ac39;
}
/* Atelier-Dune Blue */
.hljs-title,
.hljs-section {
color: #6684e1;
}
/* Atelier-Dune Purple */
.hljs-keyword,
.hljs-selector-tag {
color: #b854d4;
}
.hljs {
display: block;
overflow-x: auto;
background: #20201d;
color: #a6a28c;
padding: 0.5em;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
.tc-tiddler-view-frame {
background: rgba(0,0,0, 0.85) !important;
}
.tc-body {
/* Delicious base64 */
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAFnCAYAAAF2m3rXAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAqddJREFUeNrsnQdYFEn2wNdNt+F27/Y23O3uf8NtcnO83TUrKhnJIAKSTSgGQFTMgpIVBBMmFANiAkTFgEpWEHPOOeuuaw5Q/6qGHrp7OlSnCdr1fe9jmOnpef36N29evap69cwzWuNuP7ZYbG+SinXxBjegAA4pNqpyNh43K6ASH5MKXaxqySocyh80pBXb9hna9OFciuIorraiwD2o6cN69j2BrSwp4ZE71Lc2OmlMhr51SCXmpE9ltZ5IREqVUPQkn7I8Xy6G1OMoDGRblVSWFPK5Xv2OiVBW3+IYd6JekrLj0ukKMxWXKkyl+ZjHVpZp3aHxALj40T/Y2feQ7nEnp1OyLgBJ0dzvwKbs7yUp+2roMOEPamuzHXiH3NE9lqIsMkbc1Ds6hZFgKdx4gitMK5PS3m6P3nO9e2aAY1vnYiscNYEdMSSicGB+Q9ksyfbcgbKZNIXZjpuROk/QwmwKi/7C8SlLPo+UFVJYLMeilaaexMHrMacSeVmjdQrHxB7RKdzORv+XjLwoHIXLlvcUhcYyphWtXK/ondyhW71OWaqV0V+2Cxw//pCg0swfFvj3HhbLVGXJD7f3esSJA1XhPv1KQQe7faxKo2O8gu/VcSncDr6HqjDSBz7uj6UwsiBVYaYChytm6ylMWpf8a+/1UE9hPitTFcb1wZPp1q3VKc1UOH/eGJ0CUxPCwPTE/jQs2NBg3g02halKY3/Z0Aeh//kUhi/rCVKktDCPplhpXjK2wm0ZCnfxrivGUpj8v53tziQLh0N6Ctu5nwctfvkKoPax8391woYIEmffx/ViFEbi7n+HP3qDL25jO4D8AlEVJjklFY5aOxj82v83ToW3rU3DtjCptGC42XjAl8zn2ZBAj/eXzAZk81/iRwiXwmz4sClcvX4psHY5jqcwVyOV/fDTYFeqFUgr19XVEcq6z3DjVJhN2BSekrYDdO5SrYzC5F2wcDjcpHDVXHCycoEoRZGER51nVXhczBFC2bZKKAzf/DqTtXPlS8G5iuXgeNU8LEVPVGYT72FTFn252eIRSQpz/QLuLVlAKMCnZG1WCu1/NoWZP1CqKYwkNWkzu2eYkkDIUZZfRByFOzmeIF8vktUhZSrcJLXAzreC19o2EWnAwnMN4DoX2/+Se9LUD+nsfLbBX9ruIv72tXYA3SauAtaDJtEEhZ9UQc+5Dt7FqbCNx03lFUZegvwgpCT6G9RrOE1hpqJUoSqL3uMRs4nTypIVhm96Cb2xcB0Al64AmsJBFjbAaUAN8ZhUOnVqKoicOI8QqrIpqbF6CpMiW2H4A7YecDSqwggH8jGSHlPW6pSlCokEm7LoHOR5OIItKyFleRsRCtruBN7xucQHoS4R+eFk2759u06Qwk5D0onXmQp7xy/VfQd4FAaSlSUVRh8QHDxY92FMhf+4dY/2HvJ1LuuyKWzj/oeyCvtHpOgpPLmgWk+or1MVpiqLpIP9fk4ry1L45Gn6h5KPwzI38CrLZVnyzli7XnwgWWHEHl9bv+uknsJC1uVTllDY7dh1Ho7vCVqYqbSVSy0RpCAHT3JJ/XAhZclj2ZRF7WjED/VQ0F/8Lx6fVcmToBiYVDiw71iawkyFmMr29O7NqixqawKaA1UUZn7zkSK9PAJ0SvWzc+K1KlXZvJxcQkhFmQpbuV5VTmFS6e7DpxEKUVHgUvTqqYM6pXaMdaEp+dtH74BDg76nKYztj3nap1wvQGV/FnozVOZvpIIVKf1AouuPNIWRNCp8tVXnkn0tOm7YAhWdBmUUlNCna+y4nc3ufmalcEfHk3PMSuGWncr8WELR4WydTFvP2+TjZ01h9J536GpxZqLhx5iZLXwcWCB2YNzgg+NsQ7hiB8YNojR5Up8+/Cl+phzfYilmYBwoqixTsqdNAucq2kgeITL44LjcoS3a4GTYMbY78YpsZdkU7+h4XPbA+P71TtIHxvmUDYnQ//CAsIbgpLPTGclWJ0dBD63/lTbOLGqcA7otwQ9y6FYH5k0eKmtgnKowOTh+tqwF+f8DQWWFvmzMNNOh8lmihm0VGRhvVPBvYpSljnXIGWfuEdmg8HnocVQdHEcjo0jZv7/yEvHX1uMvznFmH7fO6g2Osylr7XaddyQfx8qZU6pFuTyG4s1EjzUzJTikgFNhrnFmsT4ae6IHm8Lt7fZyDsOyjTOzKSyktIvnerbBcfHKosSfrcctQYX5xpkXzSkjnl+7dC0QM5qPxS+y5t9f/6ot10h+flYMTdH0CaG6x/tKswUHxxUZzYdvaKY/OI6+cNdYP5g5shkW7EQ8z5z4IXY0v71NtagZVTpluYZtyQ9mDoyTg+MZqTs5R43EjOYLIsEW3rEpjPysq88RsDArg1Dyv66fCI7mM/kWUhhnYPxjtgOQcmwD49TRfNRahLcg/sodHNfNZOn6QHgkn+35DvYHeBX+48I+wrJocFzIwkLWJRVGFrZwOEI+9zubsie4LqS97W5CudaWZceYCju6bwFnynNED4yfrMwGXD/97eSO0ZFIML+UtMFxgbFm5jgz11izIgq3sarcL1Xh7XNTWBUuXLiFU2HZo6BtbWqvMr0IGtlhTvLgGxyXMjAuWWErl4u/4w6Oo3Hnw1Vz6zknKg1OuWvhu5xTYSTktElFB8aZH2JlvZw2bMs1OE4+x3fhiowz8yls16+INmwrNDjOVJg5mMgR0t6VpHDkKPo4c3unLXrjzLaDM8CQCXG68eWkjAxOhdkGxml3zvWy6MFxzlFQJF7J+YTCHS0LaB/ONjAeNTEL2IRP5B0cJxVFYawoLKBO9XwDM87dQT35geiDfMdk6Y0OUQfG42bmEkpLGWvGVRh7rJn8IM+Ehi9exYGzxOs7j19kHRgXGmuWMmzbDGA28gMDBkwAzmPncw7dMhXmUnbPqSvipx8AEY380FA7F8ljzVScqOOAkhTmGhxHb2YbZ8YZa6a+xycmW29UlKmwpcsFcQozle7Y5RgxOK67zcl5nAp78yjrPSGHa3CccxRUNBKxiXtpQ7djl1Rs1I0zu/npFBoZHa9nXaHxZrKt9P1c3LAtn8KjYhtma6N8MJXjoN4j9aYfNM3nydUpGhwcxalo3cN7rAPjshQmGbt//z7raD45OB6UsQYEhsVyWpWqGBrFz1+0iHhcHPI1dZxZsYHx73gGxp/DOQFT4bQunxKPNwQ3KNzp8/+ADvb77rW2LD/ZstOmaqhoNpREKJFQfnhGayKahcPRRLXObePxV+xTb2Ar1yu5Kg3Y1mv48hvoNWYfZ0JMISFFiyJB8ZL+YEbqLBDBvpxbSP75tBnzH7hLzeVOF+CQr58EI97nWiqPJDUhRxGjcsn4sWuwjG1OBiUUHpYAA7xJ3Bfk5ndXVcPKoPqUqRn0debQt5gB2vOVrWRPGdlW4C9o4LULB4s9b0uTIFXsHBuRNEmSgN7n5VJsPNeBO1lDyUlNcsS1+32dgfOyRoma9iAkqhrWqyeecdmEOs+J2cdEo75qGXvV/OGcrw0eL8nIe9WYE7iJaiy/ftIvuKETX8N4rlbW3Cw5c7rOV7amGZAsfMIsgKIIwQwFfBqf+0ipCyIzJHlZMaC0cKXe82j4VYxxkIxNAyB4UMO3C+fGB4fzz0M7vvk3PnpfkmVYlud741ws2/QvtpmEpHGZA43M8TqlSY0Yx+++MF1DX7FG/Vng9SAcItEcJr5j2lhVNY2WtfweVBdN1hl4+YJNxGvUmQ64rsLRpw706NuU827+3TjwxlsNUQMq6/LD73OwzjMkDoDpc3Yb/weOXlNpryhjsA2lF8wfy0kxznnR0OPYMVtAUU68IpSL/KGLVs24YknjqrHDNQ+yvd1uUefHmXIoxcCO3nXK1FbDNS61uAvz4jt2OQr43rdlRRKvgRfPLaXdCDT3TeeTMUI48jxHqqQbevG0gWB+eiRnJ4WcB8qQd8Uat1CI2rbELK3DtNdQMQQuxfv0WY41fyl90k492nG/LbizzPh/qLfrTf2kGplpK/jaQEXoZZt6gTMdGomly0XdRVMLnXFJv/DLrO7EEEbmMjCSLUtD0THNFPe7xIVZVz8kZtzZ7hScr8XSp8cSpmE8fLax3oD2ttvq7brewzIwkvzFG0T9TvAZWVYUwfwwdBHUOcQN42mHOAq5sBt41OjjulmtxMyAg9v15hpTZe+W6ZzTdplSVbQMy8BiSKbWyGIaOWpItbwkEL24zDnAPatxO/G6kIHRehTqV51sfAYWO0GWb6a6HANTjaxIlo1xAt6xeGr8y2dg5jTS+OFBhIEj0iJ1xvac7UkYtl10O8kGRvLvd3/TcznNmjUDRypng/TUndgG3rNloc7fK2ZgsW+kTobnMjDb60jx49XZOoq/D/leV02u3XBpBqb67pSkvbTXhvTz5JxgzyXI7aD3Zk7O1xkYVfyQbGApd4SsTUUV/TnFtXrHLJ09UXfx9fV1NNcwPjVEMr1SFwXofms87+oex8Ud1C0W4Pl2LlM18c4kGD71PtPANu5/slJMTpMXO79fjJwtz+VcD8Dld6nJpXYY7k9VA7e1rrlGMe7XjcadiRM7Mw0spSQin5yuWKw79/WDVRjGreWM641m4JadNq1vNO5PYjsnQvkINtm1JE23poIqQhT7NFYe5xLmt4xPb5b06YvqEQzvOvzTDCd3wWVkqkxJLcEy9O5l6WBfwRSsYzvYHxQVkrWlLNBipk2NQjHDuHFSDNyzkw3oY2UPQgIH6eaN2kROpq1TSZ4xldeQezZPJ1Ke1HUsSGwj00UZ1+TcBG5ak6ksMiL1R5I5MZe5EEioACVVklNjWRcL0cTnseA3CtfAUN40moHRMi8uA4cERQAyp8E2g1+KcfkWN5HSNW6j3mdxLVHDTf6rYlDYT3gJd+UMuR8HsWo2Mpc21VzIyGzrl5iSM3uc4HI3YqpBCntRxd5OXqzFQIl0gNMZvcK5ihsY2ukekNiYboK4qMQVOgMH9YrmNPC01dvB/YePaOutSBk7bTGrsUnjUguVNixAW8271qVhCcliViOjHz4BiuvlGFdWu3CJUlwkqWHdl394UtOiiJQCYOGsb2D/yav1zsVm6KtXrxKvsS0WYludx7nkJTmf12Wo4iaAQo0YzYhsulD/iGS9hUce8ctoF7/j2EXW5WGknL7yp+78iHI2A3IZl2pYtiKcOGEli5GtxBp3o5IGZi70Iy8uJDBc7wK9Odbe4a7HI8W573lRhiXXQXV0PP5YdYrZDCVUEJetPXrU9Lhv5oYbQivSkCSvqBI0bHT2Fl7j8hkWFTplMyzZOjufuC3FwFC6yDLwyZMnWdcpil0pyrxovyFpgjWgcaklJbDfOD3DotV7fIbVrYuM/PERWmo4y6uDehTzGYk08r59+3hL5JKypfwv1gXMXBQjI05aVqYrVpy6ooJ4nJq/jdeoaNUr06h8roCr5UHjrmwUtiWSAhS/hmvgm1IIdfPVV4SLYi4jT0hfpDMu+dc/jT3M6tk1BNuo9x480luij1ZE7qyuYV3Zy7UGFWOAV70I4tq1azQlttbc0Tumvr6e18iJs/MJwybMXKnnEshOAa5RuWg9sHsvOJ3sAY6wGJNam9nh63c5Dcxj5FxVw7PqmlpOenFIpvpbLmOG8hiUNOrDGxdYDUeWEGcrI57h9Blh2I6f/1u3IFmCgc1n1ZLWtGay6+kmq3juPU+9gV997df/U+vc//nA/yMN4WZvPa8SvWM14zYY+A01Tvv2ux6/acYlRqXLh2ESWSBjtnrQU2tge6+H1zkMmsNWKwLV6t+UGwaWz44BE8atlmLsP57miOIefSfqUWqupkfy8tNi2IfUC69d3U122YL05AWmu9Bb7dZ/FJgXNgL8gbtviByZm5GBa+jvzJlQog50dCIAI1KUW+Wugut4YG6GDUCKh43kL2dgatVOzMGw56gLtD2CjG9c5kJCszQymmVIKhgZK1yEY996Zz0jnC1vA1y638cyQtig/apGGaZmXEAthDQunV/5Xv3o2y+F9j8ka9mrh/9tNcI4YHLGxS0fQ16wb48ripcqKF3WWzEDG9XI8MO/pK2Dm9RkYK5oAUnZip5g0Yxk1auXXKjUN/DBDV2knMvKGMa1xand4xFs3GJIwaGnRVF8trwtjquJV9u4WWKrTvUZalxD4xg4M3WmlOjkttLGXSWlpBcp3XrhGQRNc1XayD36nhQk2KhlvaACl+QYlypjJ1MnaO/U211NzYpTfGGg0QxM9spwjYvCtP4j9fcxZZNuPbYDj4CtBjMwn0zMvMhZ0mvrsp/UMTD84AimIp4h4BgbjWLF0vk8YcyVc8fpGRgtIDekcdHvBLPiFLNmGkvdtM/lGncMQ5Fb6HmlSiVS66bh7nOohlDLfFENWJH7o6pF6f7HFnCPSMZTGodAZMT0uCjdxqZSDdx3eJOB+kY3bbPs5Itf0I6rZtq+tf9TpSCHB0WJ5pTnQ3AumLq7D3dxpMO0wnRsBqbu/SFF/MLE/wAvXLhB3R84qNg7jQru5OsWc0kH+/3Y7sHGeTM4COlFBo4eeUpWqTBcgb8fgkbGMG4QlF5SjNsDlQPneG2akPK2nrex600i42VnDGMtN6CmgdlkaAI9AsIw8LNSjDsUN6nD6nO7PhA0yFc/JenK1LS22gqee+5ZQQPj3jDqDyUqpfjOu7bgs6+HEY/ReuU2VttE76otIJ+oljXjjghqsemNGpRKGDUrLYJi4Pp6KWUVCQqjd4uuaqJAh2OfAY0rrrRiZeEknWGZFab05+DWCvxgHqFsPV1vSAMr1tlQrHYl6hbz1YqgdkDs3WoFz412VCcfH61Sp24l117gDLko1bh1nBGD3T6dAazdb2DTu3D6eMG6Oui4jOQsSmktnF1f6hUpDnqq1ILTwE4+j/iM/HfF6EVFOqVWXt29aRpW9VW/wHXAxu2ypOqrfQdJHy3JzxoulEc+r1Tl1dZ4hSxqsZVH25bjVIciV+aLKQqKs7E3jgwfkgN8/Ar4jPwn/P8F1UrbMkt1icmE4RQFTUrcR6u8inwrW6VX1mhi+BnZRu4IP4Ov8io1daCSgdnDKLKuAl/3WEyNM+qP4bpl+ZIojok5ItrAqC4nV1FQnvK2ncUa9xWly9uKqTS1ZmkRdBOnwbBh5brnXLpuMUhpWwv7A4SBa1Z56Rm4a+BNZUab2UOiW3rGRfUrccO1qtUNnYtXX3mJyKCJpRiJo0e5rgoJroHFGtmisdpUe9udnBSrYmDSgL91WL2UfEzWc8T6IbJqAQ6Wz9S7+HU5E8C4KD+QMCJY0MBEdeyUAt7PYTOwZ+B9bAOjm8dXOxhNCZBr3JZcxoUvv/hruwJbqjGZJRbZf3xOYxVnXr1gnJ6RWct4bcrk/Cy5pW2pFbAtu1RwxbzNFKf3xb+9TQbSr/KVvuK66GckVsDmcyOdHE9iG3jnpsWiDcxFsaLuARnt218m+1KPkWJg5ApwijMfqFmlM8qqnPVEwXwxVVW3b1zCXjFw8yJJJcZtnUuU88HwzYHMuo5f/jA+mHkcGQuTeQM+AyPKyIu8duWioIHnFmbRDOPm/1CR6tcVa1ZIMjCS02VtecM0yfS26lyyg+04trrAXAZGPrqz4wlaDffrN6/rDIoKM1MN/I3Xt6LcBJK1S9cq6oOZJcbbM7YQUsTAqDgm13HQwLW4BqZWW91VPFXPTTAN/Inrp6Irs5bmJatqYJYS422kDhlh3aU2VlU9cAxMjnQQI8gp62lF8snmt7i7zriu01yBxzBPSTWDl84awfqjGRrgINrA6PiJSdV8Bt4ki16hY9/6d6c32YzbxmrrDb6eH2GMbVk0AwctDiQobhHeAnjP6kY8J6WGu5CImcxC3RRF6SL5d3CPZzMw/FHsK2hgxlYPyLjNvb8E3eZ5Ad+FPqCwfJUo437+yftg+eyRgsYXSzC1hrtsA8M3XIVSI+Y9HO7hn3wGbmdTQzMy1Q+TvvjcvtUGL5BPujMuA8uqGwwPbgfFSSzxTOP91GphGjzP9zjbPJDy+PFjnZE79m5ntB0IyC4y1cAO7lXyDQwPHCY14mDZ4uE5tKs2joHPli8BpysWqWZQUk5UzgenKhZiRw7k46S4LTrfa7TK1/Qft6rLXL1ANgPTtnioylLFuNTPEJ70fZpmRKZxkTA3plLdwGhSCMs2D4IGPlo1h7jo81UrVdtHg2rcoiXFQOzUg7YsBu4EO0uM97kY0sCsPcH2dnv0DLy3ZJbqG5WIoRfXwCxu4pqqBkY1zhuN+z2Xgbl2gjlTnqMzANrrAtdwewumgP1rpwkehzY+EeseqFtaduxyzPg7EJD5CNxEPVXcfA6IplLsJiXHqho2KhHTLUbpAXIio0kYGP75P4pxx4rZqwK5D1UNjBGisRnSVPbQeBV2i69LGYVmE0QOjrEOl8wE26YmgKOVcwSPXTJ3jehdYEx2kxI+A1u5XsUyMjlFCk03nT43W9KP29YNmdfQDgSdQ+aBjoELVDcwlH8Y3cBCFPextKOVpnUdt4C2SYnz4BRQWzyd17Bor2bmNju8O8Hw6ETOg2PLebOcZ57JG5hZ+9crOZ91qx2cXWGUMDBpSHIvUqqgb6NR3AT8oPexL8Zx7ZkOjjU0A3snNG3x4JVSoGeoZbPFbbEjZOC2tluxarNzzQMxhoGD9Wdg1rEqajdwCW2vCkeb+bz7GEnZy8gufCKwjWKvOuXc6yrWfhkm9UMnlDxBE6VJBT3iljYUtO/gTts8isvAy+aI3ygqPiUWuI4qZF++y/gs97FFnIZk2xjWqAZGi/8mZwKw9wD7PkY6Y0I3QGwU1XgBfLtxzc+MZd2zaOVcfjfhGKI/R9graQ3rZwVZeuu7g8YFOBg/dImqGBXa77ZQLXf3QHYD+w2bQhjYp4MHp4HR1jv+Y6YL7sQ1bvJ0mnGj4+Ma/K/vI0F6qfXj3TuGY7kJ1UrPQHs9K7ZY/oYt7AamFrtH4ZDj0JWsFx63YD3WdmdIhLY64zJuL88gii5sO3EdVtfAUgzLtt0ZUs42pIrFwPAinHeyXnzB1sPgwIEDejtwVW7dymrkQclZhHGRnxdDLzVUZIuLaT/SlP2XlTIwUMLAaA0z20W5T1hGXATzwnccv9i05wWLkUmhGtgzcYXeVmeE701cK2zcpJWckQVaIkx9rJiBldqJi+wyc1NTK7i5yL179/SMu2PHDt1ect6T2PeS46K3l3sA6yYnnvGS9pNbZnQDbyoFvF9LPgOjveOOXbiBvemJ0GZ9/lGpsvaTU8QPQ53/UNLAXDtxNexQq0+w0I5cfMblNXDictrnB/UeYTQDA0MZ2CNmA+0CE5dXYW3WV7L3NOePV8MOtPTzoi650HY9bLuJmbyBHzzgN7BYekkZl1PGa2Dac8l5gptLcW3XxhQ0bZfFyC8ZzcB8m/XJMTDfZlFUA5MdG77PPXf9FraBVdty8vTp06INPCNL38Chts5NF0oJrcQYGHe7yV7u/oLG7Ze5oY5vw0GD7ul56tQp2dtNkrkIJL2du4k2MK5xQ226CBo3KGNtndCOjmpsN/kG31aTdXV18gws4Cb4jDtiQYmkjVLZPidkShGrnqv8viC2m+zjlFgnch+553EN/DHbB6PAnjQymrjH1Tp2OUqszUC9HlRChmyD5my6LGTg0OnrZNHrNywDy7h+aas59Wdu4oeTtmyUR7J/5Pbv38+7M23mnFOce3pSt5oM7Du2KVyyc6HRmzi7oGGT1OXltB0SpVDbw7u3fhJp+Vbeb9pKxqapQ1wGP9CLJFwuqrcrLV/TG8dyOSTKTbBtMxk/LRdEzCnmNCx1K3ehCOWoQI+QNPD6wOY6glM8utbhlroxuIGZ/pp6scEhUU2k+YbSDIz+DvToDmKTZoOhoVGiqA3qFY21eerRgw03/+7du7RvGdNFjHMPFeOHbQxqYKSwmB+75PlrwcTFxSBxVh7xeFz8dI4IwRGb2qj5W/R0uPVXw17P+3btJv6en9Gbc3faSJeRprPtr9CeykwD9+zWS2ecXh4BtN1o0d9Rs9YIEoskYGA8q3HZbjBh4DOHOA2KZGiHj3W70vZxTlPWwPDzz0k18LIVwgb+6+4DrC1/qT9sXIYNCYrgdB9cxkPb/VYl9gT7h7Vl3UsZid1X7+qe6+60UJSBUb0NPuM+J7d7LGRgvQwYpeNBNa7f0HROw6KUI5dh79x/yLnDN3Vf5Q0z4jgNjKTzF/8hnnPpsoE9J8FTwFTtgeZvoHwJ5WOxb4SG/UEpJYQM7PXj+7wGbvvJv4nnrJyOgna2u262sao636pz2eFWnbbsbNlxY0ULi3UboDFnQ0mFEovWvEAZgBZ1PqM1rWlNa1rjWF+yZ/QvbQpamaPu0L9XanfwKW8WDkemPtPsrdfNEF4A9X5Vu4NPeevsfH4BBOF5MwK3mUO3+gfandMa0axcr0x+7oWPvjYwhB2gTGqURCio9kMJGgLh24sYSi0q5mHlcjka/nWD0kq7g097a/bWW3aed09JBBHtBllhzA0IeQTB/rZ2g5+C1tpy64cd7A9P4wG1DaokzrtDWv/D4HxFa9l7ates8gXjx65RE2w/7Y4/wa2xmG89FwCDIncadJN4UtCXY8TwUjWAztbuunkDa8G7GXOfM+DYZiujQCsk86ZMVhrmqxoRpgPmi1BmEV5zTMO2ZUPi8G4k2lnAFIHl9dCVrYCjd52SMO/VKDIcrG9DeUgaf+TEBmDRX48g/JsWGVVjduCyyYENjkp75tc0ypQFdibVwK4BTTtw9ogUf4OMFdeqKWfK2qsRL1/X6JMGrBPTmB7BTdCGDjPcXpLUrV9KlvUBWRnpID6mAIQN3A8mxBSC1IQcMCVlHshMnQlmpM4i/k+asALExawiXq/MCzIYxOsXD1ItRadRKQztYjbjhVP2nHf0kX4TEGRCAMyYNNtgeVsUdy+YNlFxiH1CrqmptzbXjgHtHC5jjU1rgHZEijpbJJ+raKPbFs6UJCT0FOt+rWLEAHq+/bSDy5l3HTu5yeMiURLefgMPABMdReMUZ99H4Ogma1EAx4wpMoRuy542aDvxGaT/KDq4bILgFguvKXpZOTI7farBvfDS2eOFPu80lPlQusrawdBEwc3kM46LnzC4bDIsoaG64JMEp1hZnJnICRUakBF7vsPFdmp2Ms9CCTAncOcLGUwKuHwSOEAdUKhbG5mqoEKHVGD2r3cyaJZGipgquEWCAwixysPLlHHpAPiG8uuBdsrA2cAd5xhTEnIoXMp7DTm4Y2rgbhAyDvrJVxtcHBmTBsDwpHoQ2H87IWirAy6dye1r7L0eml2IISX+R1/8I1tcBeE7uO5XcHzTb3IA/thUwO2JYxhmdoHNYwaHA+DV0zA3l7qIe/L44ZzHIbgxVtM/MULeDz74iuZ+xysnNguCfcAUwB2OYZB/o1IJVFBHTaRXGjeG0Lbt6D0Zxo8xWMdaOBx6YsH1D6M7lDUrpnMCWLr4R16Atyz6wXRDB3ixXjyGeAzlX+SxHkGgCHlWU7pRqIKbbrc4l3UEvPnzYkFqym6s/WHsut43OzjRCKZbgPj0Jfe8i99pwFav+ElM6DDGWOB25zDQSY7jFb0JqFYLKvou5xwIPiqMK+eOI+Dl22hOZGEeZWPYEHmxfkgEAD0iGsIyJBHjxL1/5/re5t9xg4bswmLctgLvURRccrsxJUOHBVOiafCKAdjU4mH3IAAGjFanw2u2AEPDPEedVgflZcz3KXJTUKFWru3aJIUOjsd18E0YMYgIHZh7/O3ctBgbYLRJrVLXOj6mwqCxbnQifirS7LwuvMgtUPKhPCvhvbINTOZmkVi7yZtZhfa4/eebvyMDEvLmOx2Af/fxYFX2eM6NKt38Ht7D3SORujueXFkxNwUkxK7CPt7K9QpoY7VN2XkX3RtGOKlD90VL400fYmrHS8Y55IHr9Zi2ExPamlvprEMH220gN3MkOFo1B/zwzScgxNtGcNNlVKqbD2K0yadyo2kxoGB+bOMv0Anw8isfgW9+TjVqeBI/9bbSYUS0KY6+7VAqNlUybGjI4zbtmJWVFqkH644NUwjvfKBspu656Rnb68Rssq1UZuKZZ5qBnBkjiV+IgZGmk7JTaSTuT1OBt1yqYdDPIM4Oukp8OYYOFrepOP0ctYIQS/XEX/2UpD8U3KjDkaq5ZgdwROQOYuWKSJjvGWUWG7y4UUp5XTV69x3sDxDn7Oq7HtSsSxcF8IHy+Zz6zkybyR4TwzBICb3TU3fSdOkWfNekAUbLrfTfVy/HOw8yBLzPSvK6LpcMlpoiz7sqe6woeEmZMaWGls4jzzc3YwbInrGE9Ro6O59VRPfDlVk0XaqKlhkN4K35foLQbc0P4Hz/2fK2dSaXtVDS66oBL8pgoPMunz1GErykOEJPwqY/eu0o/IlHu4Tr71R7UJlZZQKhjaFkZuoULPDQQleOc9xFzGACPNMQ8N6WmmFgE2u36xwzwf6QDDd636hhWbLgZY+HG3TeuHKF7nWbxi+L0l/KwiXrWPVZMm+LYYffHQ6DdkR2aDuIGDibF8CM5PmCO1vA4x4ZzftCZV4X5Qndb0jaP7BpwOCo+CFjz7vEe7eLjHtxIKZ2PKmv796ykKNz91BxL2xob0wFGImQF91T5Ia9NQs8voby3g0mFTqgXKYQvLYetzgHMqSm1ND7Vi+IUwxeJjCkbpVrc/SOyUhZqneNFg5HVAHYUBCjWXhiAEaSOzPOoHsLyardwA5RrejdW5mTbaT07NHx8WNmKA4vFRg0AkeEPs67OI+zca5SJKTo0e+GoE6hg67UqQlwB7t9BLhtGwGOGrweuxiMqQEsvrNmXVPf2rJsD2uP3emMYHZCrLG7B27mziok9Qf/++EL8E3zj8D89MFgZ/FUsG+LONhRqNCQlbioF0awyYCBxbJTbTh6ZVIyJorPBHQ+T/PASBZkRGBnFdz87qHzvGvy8DI7a7+1X50H3/rKr+3yRqNvsf5cgnrdokmlshOhAQ66uQ9MadasGWjxy1dgYA8XsHj6UMleODFhvy5ESkvegPWe7Jn5umvq5HRKcYDVHPhAqcG2DICR7F9ngw3xuYo2fxgT3oc40x6p4MG3UWevvcUWUiidXlu/YjUI7+3KCbBY+fqLDzlhcfKt0/28iv0CjBo2X9S1iT2/u/9DVXLq7WRAvHedyy2TK/9EnfVFAvfBJ0HNWU7zfDvbXaxwCsXKUjyVq31rAkCyzZs3D1jYWYC/vfkSePaFZ0WDvC5nAm8HqmRVniRPfqRyNtaMtgNl80Wdt2bDEoMBjANx/0HE9IATJhk6oJlj6OK+/ikpmO88Fg6HT5PHEnMebHcL5ofFAFy+hp4ReIZlW+2Pnf8rSTZtW8vbqRs87KysjmHEkPOKemA1QgnqPWGDODNluB64/r0uGDcT0bjVE+9F/fD7rNE453r3Q48XqUZA8SObV5YCMHme2uImiCtWTQT21u1pADtGOrEC2jmmMy/AXiO6CWYmlB4wkQPw/JkVBge4HeGUdoKM5GwYwtw2yjbdTHh/4L0g6+q7Ys8JL/6qLr/LMydCDMDkyg1Stq5bqruR77/7JpYX9l/iB4asi+IE+L8un/ACkzZplyIAHyqfBd79wAG06lxKDJhIBVjtldx8MAuc51mjhw4oZoPe9Dkp52xjvW0dGfO2g99WJQBmew/1Zrb69WsawF94NAe/Bf6u+39S/iQC4F9Cf6FB2zKyJfix14/E4zY926qWVyblcMVs3eP8xRske2C1Jv2Q5+8VWiEH4JHGjntfkXne73HBxQGYuwNYQ7upt66dAHytV25PAuJPPT7TAWybYAN8F/oAz2hPkFWYpTrAYcFOsrMmL77wPHD2vaUKwNs3LqHpKxHgOkPAO4vlg5XaW/h5akdOSNpYbZvHl1zne6+nTxnN4I8e3KZBe/P2TbD/xH7gOcUD+OV0JwBmkys3rhDHqw0wE8bX/v4ykbP+pHkYGB3pS2RWurl0IEDv2OZHTojfec9BFYDRzDuqvv3CNumgpYLMnBpg0DgYfsA7am/wgeuBW1isL27cMVP01ExSEmJX0Ix+5USlDmCbAbY6b9sty0sHrMtUF9BtXsP/dkkNx5w+c0BVeL1dLWSfI6CrJQGwMgtr9VN7KxcW0z4vYfwaVoCpsTuHNFML3p8bPyBOzS8JtTIOn8BD/4MWm8oBGMn+kky9m/340X0CYqv+1oy4txXwyYa9154/6p6LivNR3fsqPdlIrrB50eQk+oANNWwQ2W+JVBrc4MYTv2CI+JpaLI8H3q8adesntFxISPqH5ZoNgHIkd74yc4RRVgf9SuoV/Ys9QnzOiOj1vPBiAHxDSXh/NHRumW1OBFWefe7lX3EGUdBEIByA0VJ6ZPhz5UtZ5ViV+cF6umKx3nUonS5jH7TS77RJyRw9Y86Nb+j4/Y99nXFHAW0972AB3LlLpR7A1w9WgSt7NtNBNgNwz5bnsn4J0fNK53rZ5mG3FQBXxBzuF80Y4O330dJ55kX/2CIrkQGvl5w1dlRBNR+4PDApJyrnKwJZycokg3ldJJd3FYOh0Wdkw8tW4kAqwBilEeaYLcDtbHacohYbQfJ7h7VrWMKbx4LxmtNpLIC9As6BUxULeQE2eQ9cxR4GXdiar9pIG9eQvRIDUGYLcKvOZVupYUTLTpt3wKeflTT/mLH8iE9Q/hmBcLxqHg0ABLaSoB0pmw22TUlglerpibT/pXniRTT9R40+rtowMVpUi1sS4akBuEXHjfkkwL+2y1vIAe/nYouX4AqqKrlr0yLVPOWBoumcANNkaoLRU2e2nrdFg4hrZ66V5hRxNEd+n29nu/MR+in69KtIX57syC2l6k3wx2p7YCevFuQt2qgsxOv5IT5CmfcgRwqXyNuRE+fLjyCXYmt0j59IL4xyjPDPp0oWTRETm4mRoUOKwcHyLJOIgVOTVkHgdtNCIjn716GV0lLCAVQl/6kPIwTgbal01R+sfDH0Rqj37Gg1A1j3nwcchy0BngnLCXEdtwDYRmUAq4EpwHJAMrDsnwRsI9NBSPwccFjhPDKaUrln83RQmD0OWIenAutBk9glfJKMNW7nRNkGxb5SbI2hi/uTCPAeKTdFqhf2t3ACfa0ddOITkw26TVylJ5wgsYh9xEQQFZ8ECnMSiRQeqkdMhRNJZeEkUJqfTOywySV8n+E4ar7EfULuSbKTlEEk9FkC+vzxJAKsyo1xHb4ZcM2EI+Ht4duXFV73CUtEAUxK5Ph4XkCFJGRUIue5nYL+ktBpuyO9v2C7W7QXRsPST1UYAS/oWzXSQfZ9Nz4mYWQbCQy06U8AzAYvrgceGCsPVj5ZNgd544m0zxNrG6/k1cR1OI9dANo7baqTAjEqE8YsnqhAGDHhSQL4CG6pIzSngm8jF5r3jVmkA9Fn/GLQzpoBsXU16JaSzwuww7AZnPB2G5asGrxsYYXjyDki4K3nvS7L7mV3xEBM7TgqBDB4qsIHVH8Cpb9s3Q5he2HqDSPDhfZWJfTRuuRC3huNxCN+GSvAhoLXptELO4fvxoS3TvCadNcWt1J0PMysBSIxDkbyhtnBCgB4DcpaIKPhLDOy8F3e5H1jF9I6bB0si5oGOJwOY99sKrxDJ80BkRPniZaoiVkwNBgjyvM2hQ/1wjsOhV7Avh7ql7unlTcWxGR+WOg4zMKGdaYM6qtQjgAVWlyq8OiSV3JTaNDb1ZcGMBIuTy0kqGMnBVw+ScrI0AN3xVz9bITg1rIBdyTBS5VOnRdipB73Yw3nY4Y7L5gCrF8BA7Ybfwp15qp5bxKSIOf+Oq/d0Xcl9g1PXlEFJhdUg9h5a3UAJsxeBiZn54FZuYUgM6cQTFmQBxasLAJp81eKhhnBi7IYYvO/TkE3xcGbnMdqlz4O7sApohg7pFAA4PnGBNdojauTRyzsjCsUBLh79DTQ0XuNbvgT56aHTl+np8e+ffvA9u3bsWVhXpEgxCS0nokraJ/PCYHPY1Hw9uwawmoTakamS/8KvHnXPIMjqJKnSXbm4H2bAYzcZmSx5zu7Diyj3azuIzNZb5R33BLi9YYccS3wShG+8XztyJEjokBGsnZjSUNcnJoNxs8vAql5W3k/n+3mu4SdFgVvKAe4fbp46B3b0XWH7JFOTC9sZUh4o4CJNL0Y0AcQMSr1JgSFjub1NDYhZQTAOKEDbrt48aIOUuShr1y5Aurq6jiPr6+vBwNnbxTUQa/D1vsyNrhBPaM5vS7XQE5D/twgAANDwdsLmFBjGgE15g3wj0jmBZi8SV2TVgp6XwTapt0nwax1O4k4WEh2nbiEdR1HL9zAgpB6ra7hR7He4zsmixNcYgh9/CLe98sFGHdz9Cc+5hUCGHXsxADcffi0pqS+3xbgPGY+503sl7keC1gcuXHrnk7/uvp6UT//ug5byJ/Cx8P4mQ9clJkROsed+w+B2IpKMrzwMrXh9TFVgMdPbHpO70akFLBnIXqPoB2HZp9x3Uil4KVKct420Skv8np5j4O/JHzgCg2dE1/6yWsek/aEHeN6uQBjDmqAp8r7UgGmNpxcJ5G479YTC5ruqYWKgpuaLx5cKsBdE9axvuYdv1QY3OQ8wc9AvwrUZul85pFcgEXsg53x1AHMbN4TV9XhAIzjiZCMWliiGLyB6Wskw0tMyAm9qPdcYOgYQXCD+owSPPei0gOP2Gxs5XL2nhKLBIzemcOFiux9nz59WlV4PYMBePxY//mJBTV/6sfBKaw3NrDvGMEbqwS4aTK8Lpf0sXcVBNd3zFzB84RMLarjs7OVy/GbSgCMtlLDhPiwSQBMyr1791QB+PhJ7tdwwwgcLywX3oDJq5UDNyWfM48rJrOAZNCcTVh2dvX764wSAKPhZ6N5YXgd74uBiy1p/5jNXWK0im3i38N2w4J7DGG92aHWXVQBWDGvCzuhONDigustMCCjl+KL+KEeCmDK/oHfgerQb4C1w7Y7SocRUMYYPQbmGn0S25oMUEuRJqM4+VzVe0/pgbP1YrxwYFgM680es6hUEryD526SDW4vjwAsaENtHPE6o2mrJTmQNQHNwUrfz2myu/+3NJjd7XNuY4URnneN6oVlt2vXrhHy8OFDwWOvXruHtd6Ny7Pjzr7ShRLQ03F5X+pxg4PD9N5LhVcWtG7dsaBtGArPxTpn3jZ5EwJX+X2hB/ChQd/TAJ7c1fmxkoMajZJu1lkIrwBhg2zYfJc7Rr70h3iIeQAmwoK8rcTjfrZOxP/DIxoyAMMjx0qC1zthGeFBsaGdkIN13sSV2wR70PV19SAvJxdUbCnhPW5LyFf1a/ybA7YwgpR4j8DHKoQRQGmAHxoS4O49hI0h1EFMzq++LccTk/AOcPehwRzVYwDxOG7KYuL/IZEx2ND6R6ViAxtK6JOPe+56HLteuXSZABcJahsK1+gdc2tvMS+wTBnhFondmcPZ4JEiZ5QEuN6QAK9ac5jXEBkz72KdZ9Kq7ZI9cfy0XFqIMKRPJO3/kcPiQPdJApNoeo/ABlbnaaFnxv1CXPrjNrZNSWgbPHAdOFS8AmzPHCEKViRdf3wfduCa4uCBLvHYAFs4HBa7MPVfSsD7uTEGKtrbchvi0aNH2OfpMbWoXizEaIYWs3MWkzhTMN71G5ImGtjgHkNFhR5j566iAXUy1hacmxYCLi+LAbf2bQY3q/MIubIiriFjMKwtAS/1PQeGtsaCdbrLZ6Dlx++A3z6iy/6BTXFwsNNMVQY1FAkl4P3vbKyRNjQtsYMduxFwOoLUNmJR2V3OQYEu7qxgcWUZEpdXNc47WAGCgyNFAxvi1190vBy9oJS4jnun9ojylmS4QMraOel6MLPJoLYf6WB1//493fMu375HPEc91tMxT61BDVIWG3vJ0bNQnofyIpSXoLzcuGYOLfD8B5Q3oKDtNd/OnAd+7T8MxISPBNFbKsA3K1as+Oqdd95pAU/zCynvfejZZdEysDltBrg/dQ64dPwUMUc5EEoIlJ5QekMJhRIGZQCUCChDHjx6PIpviQ2zQ8UGLxrdEgNrUK/hkrMSa3ecQN/SmyiBA+UClNP3Tu0+IwdgHHiJ93X/Us/rUoV6rI1DuWqDGhT52zNa05pK7VXNBFrTmta0pjWtaU1rptfMuRYX1H2jdgc1eM1R77Xa3dPgrTdHvR261d3R7t7T3Jq99aZd1/vnzU1te6+HAzt2Od5eu4FPN7yvmyO8Jl2tUWsGg/dVc4MXhgu1H30W3km7eRq8r8Kf4Ovmom5n5wsODl6P/4J6v6TdPA3eN4zRYUN7PUCZ1ChjoKxA81gFxvXRjkx3rNyuJcO/AVA6aDdQyzYABc/VAUoalFIlNtTm2u6V5fkHUGKg/K7d0aeo2XnePQ498PMSYU1HnlstUGUI0qm/dnef8Pb1z1NftnS5VCgCWBc+cEYMLwETYgppsmbBELAhZyDYsjQUFGYPA9nTJoGUuKVgeHQZcPJ5ZAiYx2l3+gltjZ2g53mAXSwEyIo5Y8HFqpayZdnsWNC9xxW1ID4O5f+0O/6EZR1aWVb9wgA2jw+E/oP2gTNl7RUBlktOlnQCfQccUgvkHtqNf/I6cIV8N33doghVgeWSpbPGA0efx2pA/JZ2180f2li+m9x3wEGjQMuU09DbO/s+VBrg7RoB5gntZb4bOyd9qklAy5RTpR2Ad/B1pSFupRFheoC+DGVY+DhwaEgcqAkaKHwjB0bsNklomYLi7m5BfygJ8CmNGOMD6wnlinsQAOPSARg7uWGnIZwbuDm3n1mAS5XM1JlKe+EPNYoMC+xy0vjd+wEQk9Eg3Xrh78B+tryt2YFLjYcVBthRo0p9aKeSBu8R2QQteizmZp2vaG224FJlQPgeJQFeCuVZjTJlgX0JSq1uSyjfhvAAQdtnqPibdKKk0xMBLikqpNS0wQ0FoP0Myj2qYaMmNEA7ahJ+XEvzuJWtnihwkXj431YD4J81AqVB+zHTmF17NIUIYSOk3ZDqgu5PHLhIdhe5qzUy9y+NRnHgHmcacUhck7f17SvtRqQm5EiGY986F1CYHQ2mTswiJuP0DjsGJsYvBRnJ2WDGpNlE739Kyjz4XC5IGJ9HTNBZMG2iQcMTFSf6aABjQDtDb5d0vyZvG50oLUxA4u5/BxuCTblhYOSILYpDsHx2jKrwTps4VzWANTq5oX2bzWAIVBLcgP7yjC904/evdwK+6s3u0pO0xEWKp+lQLK+mzhqp+uCuZjMU1eOizIIco6OhVa4bXjBvhNEnk89InWUOoQMSrXZEI7QvchmJOuDg6i/P4DmZCaw3eeH0ZGCCKyLA4sxEWfBGDK5VW8c/n3Zwv+MyTs/ByoHLFi7kzppgktAyJTq6TBK8W/MDDKGfy9MKbiSXUbx6NoGLBKXG5Bh52qQ5uptavKS/WUDLFJS9MLHQ4emMf+FFH+Myhos/HVyq4M9VoM9bIG+mCvNhDS7580aaFLxQbj5N4N7mMwYXuFQRM3ehdHkvkJ81yuyhpWdfHmPBq2TWxNn3EU5WpApKIpS2TyK4j/gMNCYND14kIyfiGd2QaS9DS3WBn+CiTqnnjo8tUCrzsQGKnTlD20yozkF0Ej64VAkOB08snHgdunLFQweVRwAnQ3nBnMDlNVb4WGngUgV5bbl5YHOWJTPjzQVeqtibMrjPCRmqV5R8cKmC5jyoAYe91yOTB5ht6FvKeVbNH25IgEeaJbjMlJiSgibwiLlh1u43eF+3cr1qNl5491p3HRyRUTWyMjQGkDFmBy5uZkGuDBgtrEcHu32gne0u3mM6djkKva/5pNqihlQTcORJzLQYEN7BpgTuf3CMQ65+MKQgkJG3p+rh0K0Oa3Pntja1oJPTaTOLheslT9IpLRxrEHjNqnOGZFiC4cFlCvryjEwBIHjQbhAQth14BgnBK233cnOVmAzh0OHgul/BkY2/gjNlvz8R8ArXRRgjHbgRKQ2ZCbRWzb8/AJ4h8m4Q8sKufttByKDtwK/vduDofVeDF2V/xjXYmw+6ornfscruwl/AqRJsmONNBdw6IaOgVJYQoGhdml+/hqmQat+kTo4ndFA6uBZheV5bj7+eeHiHxjfci+L8JO6J+tnfcwKMBL1uFl4Xs+jxLK44t98I6Ssj5AgJJJLxw4eA8MEnsI598kOGBkmY9hcneMc3/8YLL5Iti34wbXgxjLELHRcSDs5RgZWyTF3RMvnQg1KBXJI5CmROXs56rIPX46cGXqZjkRI6kHICAs7z/rGmDm5s43F2yBDDkwBw9jONm9TOZocORm/fxSAvKwasyh7PMUDxkAavlculJw5arpDufGVr0fDWrPwZJ9592VTBnUE9FtULQyNppnSzqDDOmzyUgPdg+SzWY+0879KON1fvi/oRLiwT+z2Cufsgm1dN4ASwmBL3rhP2tKYRMjCLf/DN7fQMBnfcA5W9CUKjYUJi5XpZB2F7m20EuPnzYsGxrXM5QoxbevA6dKtXHCyUTdEbKYxv+OJ7BDUcB8MvYnkU+b/SYQJTpsw+wgthRe6P4HxFC/NIkfFkFWxZjrVX2ntYOBxW1OuOHDyOgPcQ9LoI3u49b/3JPN7G/Q89eNGIm2Hm7gIQESM9vRgxDoDeQwDw7t2QGvQPE38OFQYnZhsDXLZpje5y8r5iBA3jcuxHJhneJTNG6rwukkkp+sXqOjud0YPX2KED8tR9ow0zUqkCvJ8ZGtyHDANeEzjeW6kbhYZw29vtISBSIuQg4fPyztXFuiS8RcvW6sPrfI4VXhuPmyYV0wYMAGDUROXhPVuh+AYybxsSXGYJ/B+VGG3DBRdlBjo6Hlc8yzAtYRABLwkuKXoxssslVnjRfAdT76ARcXJEQ5FtqfBWrhmmBLBDoPSEMtCQ4G6mGCQC8z2jlcwKIOCUzjJ0dign9lA7UDaTBV56Z8za7RoHvMqGDl2D7hkMbBRy4MK7cOF6JeANMFZWIVrpOQ5iQEPwKJWlIM85anA0q9dFkpG6k95hg+EBF7xyMx+0AoCJK4CTOttW8YpPn4ZBI874Of2REvBuNRS0HzRemJOE9y5UwqAduxxrSGXZyav2jXK03/5vCkrNEPK3l98FH37WE0xPHAQOV8xmhfdI1Vy9VRRc8Cr5q+AR8ID4Qhk73EDrApkz8BSKdaeoDe56KG+qObNMMKtgv18XU6KcrJRztLGuBt/8nErLx+q8pf008Na//gHcHNqwwssW93LB25DzrVMMnPlTM0DBfPZVv22stsFrmgRefvW/4OPPQ4n/rVyv6OSzr4eB5t/HEo+V0MU3VHF4kZjmfsjwgr+R3aGy3aWKV6PmauNGDCAAzZ05nPDGbB64R78bR3HhbWe7UzE9B0ScJrzv2NElxP+ffBkOXnzp38T8CmN5YpRnVjjbUA+lmanBe01WqOB4XLU5BMiLk+edmxpJA/Xdd/4FCrPH0Z6rLc7B9rxIlFwihIar//Haq+D3DstMJnNxZHMXNfK9r5nVKgqcIVs10lDkeZ09NoKdG6foeVp3h7bA29WCM3RA3pUfYGX0/eK7MeC9934AO4unmUT8S0rxkjC1lgL5mAK8NXJyuUwYlPS6nZ3P6s47PXkCZ5z7yw+f0/737/2Xbijc0uWCsPft+kCWnh98Eqh7vHZxPKFD1pQZT0TJVQG5b/JLgHCGa9XIn1Lj6HU53PAyZcOKQt4vmJKZh8++iab9P3XSUp0evfpfMzq8YvbxQPt2SFyB3McY4G6UapT2trtVh5c8Z7fuRboJOLjC9yWjjtbpMg8iO1YoDcf2K+MVfI83+2GspfSCxf1CmupbpCcvkOqJw0ze61IHDdScM0CeNy9rtChwiVg44AFlRtsRmp4W9jtUzftS9dhfmm1UeLv3uCIInV/PS4pW3zEEuB9Ji3PrDTLkSo6OtbepBptXJIqGd+PKptABxbRUPYty57J/+dz/VET37RuW0HSZmLzXqAALwXZgg6OSnb3HhoD3nFJxLtFRU7isEioUQiywHD0THK2aIxpevtABvYbmF6v1BewWfFdPFyffOpOFl682GtqzTiS8U00yZGhvt9cgXpc6i0xKyEDKwMEXKbrvocGLplCyXYdSs+CYuhytmmvS8CI787z/MxHwfqQ2uJFyRroMsTqBSGG5loLygomS4d1BGbCgLglaMncF8XqfARdV+yKuzi3S02fezEqThVegMuVz8PU4U4l3FQsXhHrqdl3vSYZ38fRYyeDyhQ7+wdt0r7OttkC/MHKBCexzk1WfiCHnDT9QkeMLUsfHwl+z7bzgjRheyrv5Cjym0KjwQmVeE59v5R+l4gNQyoJHst7CmoUxsuGNiT3CGvZQc8Js12TpclHx0MFY6bN2RDZluyC8PN73OQrAw3nev9aQk9SFpyZCz8kHLlfIQOaBpZVzOgncvDayTjiX432pUySpr0cNO6VK+MClz67Ni0wWXpQiYznHu0yO4LG3WN7fRm147ysVLjTUALulnwd2uy4LAGI4eGKKIuAyU1WkXlvy6emsrv4nFJ91VsNImVFl5OgT9caA9/hmCwzvq/dr+T82luCx35psvGvpfF4QXjXqg6H3leYnKwYv1ft2sD9InH9QeKneMZ0cahUdeEErO3DjcUPBW7QgUBDeokWRzHPwLm6A7/kUSpHa4PZU0uuywclMp4muReZ5B1g5VigKLpLsWRWMKjq1rMcpGT6gtW18Os2cWm1wePuGLpCSefAzizq8ODld3TAro5AIszaYlBuP4t2sjETF4aV6Ora4l5R9W2awhA+7FI97uRaNqg1vB7s9WPCeLOlEPYeF2cDLHE7ljnf/4pw4LhVe9J5dxVNVgTd90k7aAAgaOGA7rnL1XMWGjoV0OmKAwQsSXHIOB27et09/XaYm09jgWioZLjDBZJusgzIOYg09cEAOvWcOQe7q1A5sX5eumPclO5S5Was5j9ucv1CR8GHd8tWCOo2LOWIwz4skaVya2IGLu8aG9zzWBHBG0v6zr4cE4Ex/xAkrcGTj0njWG1xWkAL8u1qC9999E7jYtQY1EOadEjy0o0+dTt+B4VW8xx6qmM0YvBC/Ijonq0T0YIra8KL7iQvvkU226ByXTT5kYM4Ya2O19Tp869tcgxRCxT3E7sLj1v0KGDu4Oxgd6QsOluPlePeXZIIFU4aACdGBYGpCGEgd15sQtEiT7fhl2Zt0X1IEI85n8IVKQjI9fTvWZ+xTcepkWwa8SNCoGy7AQ4ZuvWdMcHuJXbmABL71ayhvsMWy1LVf7K+LH6VaNneqrk4Dm3z68bvAx60jSJ8QCqqLJivSccN9T0f7aknhQ1zcQezP6DPgmsHgbW9bLXa22L9N1usyY9YPP+vp3Pj2V9lWHpAja3yFPcTWIfD3tOSFV4x8+P7bnJD0DLuhK7sqBvphQ5aIXrQ5JPqM5LkYasKL5GSJqEJ8e4wB7ptiO2m/d1iTTjnF822tqyuZAJNgcsXDDeWerosy8t4t00GzZs0UAxidjw2Qmg25us9ck7tSFFzb1qbBcGNbHW4pq5B+f4g6/65NiwwGbwfbbWLgbWYMeI+K2Rrqd4uiNcxztLYsT2aGBmS9Xb5shJj0EppthW4eyiooBS8Sofxq2MBdosMONDl+0MAc7FJQcmbCKVX7oh0HwHuL7ATB3V3kDkwyZKDumNPaqvIC2zmg53VlwotywXwhg9jODZrdRd48BF1xcTFArbq6GkyYMAG88t6r4IXXXxQN7/vvvsUKyPoVq7FzsVwyIrpIkVyv2vCSHW42eC3stvKCe6q0A21apCHB/T/scMG6+iF8C+tPw0+tFnzEDBtQZgLFvXzwiqnESL15CLpRI4cDavvY+b+SxD7cAaxeMI4XEjl5Y2ffB/WmDy+1FJe+HNxgxQru+YrW1PO8ZGh4N/BPd7xPgvsAHv4i37mY6TKcwQzcYnvW7tfpSfsoP9Cqxa80eCPSIiQDzAVJ0bI1suEVWt4T3PcPo8NLXa/HFT4wwa1Z5cM8z68mFTJQPO6LQudC+0qIhRfNSsOrLnkAbN+4RM/7UlvV3q2S4b14uJgXFLmjdmWrV3JeW5+BV40OL7NqEBu8AYErKOD6sp0nyJDgvsFfY+wqmct9Bed8Hez3/yUWXpxBCjTZHZVGtXQ6zAsvV+jwqcdngvD+dfUYJygoG1CyKk82wKPGsC/cDIu4bHR4mYNIXN7X0bsOVOYFcZ0nzZDwThHyum+81fId3PO1tiyfRO204dQAw1mJS021VRUt091AVDxv6ZJFgvC2imoNvgv+nhfeB/ducoJSWrgSzJ1RpeisNdpcjcEXRJ0D6aI0vFwV4pnwCpxni0mEDAiq736d1lrM+f7zf07/ZI6wCU+ZPIIx7t7UEewMPbVutlXlbPDZJx/S4O0xoYcemF1Su4DQvD5gSFEUJ7yo8QGTlLhPEXhTYweDz74eSpvTIRbelKS9qnteLngFCg4+MAl4W3XeEiPhlG/iAEsLGxxPip7BRp2m+OILz9PgXVVWqAemX053MGBVf9A7pxft+U/cP9U9rq+v5wVmUvIe2eC+9a/XG0bhRtBDpTFjj4k6DwpjlI95L2LBKxTmGQrc4VwKtLBYL7U8+6tNhTvwIEb7oPHvX6GfahsYXq27kUtnjQD379zQwfvo8SMCxvLd5brn/Jf4EcKEmvpcXd0jXmAOV2bJAreGMV3T3b+pYPXkSbuMPjyMFgk0TP6Zxwuv0CxAo3pdh251qXLOy8w4yE2Vcb2PejP3VubSvG/ZrjLa/8VHiwXhffzwniqT21knl8NwJzLUHXsQ5dcfvwBjIn1VnxpJnyVXywqwUL0KQ4Brx/Hh2+SeW7jKuLhBCq73lRYsoBlbqKHQoeucrqzwOg92BreunVQV2B0bpoDX/v6y7KHsEB87g8A7YuQeVngxZsw9bwyve12Jc1PrfeEIWuwoJmTQZTK60Hv/1NCB2W7eu0nAi2B1znAG3wR8q/ufbFdOVKoKb7sW3yo2F+O9j7xUhxf1KyTC287Q8E5X6tzw4rbhgtuqc+kBOUuNmIAw29nLZ8Gm7ZuA3+LuuriXKRGZ4Q3H7i1QFd4Wv3ylB+GXn30AfvnZGoQFO4GArpbA07Ed8RctaUKrQbjg/aWN8puxOHrrd1jp69qw4R2pJrj2jA+zUvL8rTqXJODC+8Pvs2I5l7d7/CX4fv+QcpqxUcaAbP1TBtDCAyQuU12Iv1bjLUG74e0awgYXcng4SzVwaxpnwfHNH+bsKFbMBq++8pIO3Jde+cAgYYMMeNerCe8Dygd9qvT5Ozmd9sPNNMDDPxQa3ZPjfXUpMbdPCVA7x3Qm/n7t/41eBkJNrxs3PBDsL82U3clD8P7YYp6pw3tPLXD/RvkQVfbJsnA4ZMO2qoID3ufwt79il7U5UzgBbhXSmjbKxgwZvujWnHgtPmuCwTINckSp+mVcc6j54G2LDy9QC95TjR+g2ox36DF/wYH32/+lD+NL2aGqODjwBgQX6hn9xPZFrMPFqKNmm2ADrOOssWaUmZpkTqlRaAbZEUF4/YJK9eDF3VhGDXDRLu93DJCG+xgHXhQy8Oeb67EzFmw3+vrZHQS8/wv4VS+/29yjOeg50gUcqphlNuAiQfV8lVrywwfvjuJsvQwDfenWNcPBC0/4GMocAw1+/EMo1/tb+8KVOEPUuPCiNWNCN/6gmYGq5siaELztWNJj9BXfFwwDb+MJfzbgFOGXhOBt1uyFX5SEl9yy9WTlAnC2PBecrlgMTlUsBMeq5po9sCcrs4nrOqZQySeyVhzagoH5GtpSq51NjSC8HbscE/qcn5SC19ArOl9CE8e5QGttWXkeHvN6o25OSsCLyj2dqJwPzpUv1ZMz5TnmBy0ElXkdtUUrFYGXLI7IBiBayS0ELmZRwchnzLS9RNa3ZZOXXn6vJeWLla8EvJWr5xCelnqzL2zN1z1G3thcwD0BPS3blzBj0m7FQgauwigowyMELmZRlbVmCy9n6VPrmjr4+qcUeKuVgBeVc0Ielgru1X1ltJtP/PSaOLjHq+axgovEt8dt2eCiUgR8AKJ5JjjgYsD72FzhfZ5ZEoqUL3+ICxOzfg6n/i+SstVLoOddRPe821bpAWDq8HKBe7FmteKLLNkAJLfyUgBeYK7wvss1wgZf+1YMvDjLiJDMnbGR8KxcN19JeBNHhRgc3su7ihUPGdqyrIogV4orEDaYLbzvsMH7a7u8hcyaD3L2MKaKo+c+3p9cc/a8F2vWgJKCcsWyDHxzqR261WHDK7T9mLnC+zqH1/2OAe7LShaxRnVy+cBF6TNTh5cat1NlQMRlBUKGQ1hbjOHaG42ACnzm/8wy5mVeaIuOG8tZvG5fJeG1d9sLjlVlcXtdlXK+O7IngZrZ7LsS7V87TRHvq0bIwPXzj2tvjNK0w8wU3lqm1/2BJf88FLcAHK5Bs2duavRgS1QFFwG7bUqCoNTMTJIdPqBrkQuulcslxeFFnlzgczeZZdxAndvQqnPZYQQ0C7zb5W7GzTpUvG4pLdmvhrfFARcJglzqZ5B5ayVG1sR0vMTY+klMl73Ol2HA7axJNSiS/hGXVI1NceE9XCJ/PgUqsiJv+iP/l5+5ASLudNYnNePwBnlx3/+WOU7s6mUl4EU3wNrlINhflq0KvDsXpQrDOy1RoWmQ8jYRFIKRuZQdDRs/zfB+QMSp1jX18PGrHOA+J+YGoDplYgGmbpU1avg6cLhC2WU+CE4ucBHcpjCTjDmihgMh7jxqzH03PjYrct9+17o5mlX2zru2rXm8bpgSpYjESy3oEXqIKNmvBFgHiqYTGYXa+ROJ+PZwiTI70KMvWo++h4ndiOTAi/ull/pLx7fyu1HGmxW8LTttSmpjtXWJwEy3YiU7HVKli3s1yJ273CRyvJWFk0HYwJrGn/layXu6SbEZc1mQ1PexyFmzghfGUMfgn78JwHvJ+PDWEqXskSAPZdFlP+g1dC3YWjy37qgB5wEnpMaftx40CdhEpAHLsAzQ0S+3QQIWgU7OByWDS91DRDC0YnxJ8HO9F57YYeJnlOisiZ2k05ZnDioBqe1WYB+cCWwHZQGPCQXAM2E5cI/LBQ7RM4B1eCqwGpACOoclAASUQ3QmKCycpziwh8pngfKCiSA9PQZCO5n4LDax71OputdlCx1QwW+c97CN0Gnwssa91yVBa+2aDPpY2oHeUEKt7EFfawfgnbAMdJu4iiYIVC6IkPSNnQRW5KYDOV4ZAYu2ns3LGk1IwIgk3s906iltw0Dcldf0uQp1rBvoCDkEDV41QwfrrQSwpPTp4qEHLhLbyHRekJjiE50MMmclg+qidFpNBuRVkezZPB1UrU4FxcsSdLAypc+YBN7PkLMtlVg7oTBD7sboTzy88II+UQNey257bnC9RoU3YFA8K7zW4ZNEwUuV4fFxnIDyyYj4CYrDizIAkjuwKsALxeJJgnemGvC6T8iDPXV2j+PtkK6Dlw1cAl4J0NqFTwQzp46VBC6SZXNGc587aorhfp1YQERFpBWCd/ZTHzI05C2518Z5Jq4AXkmrWX8yre1KeEMGXHjTJsdIBpVPbOGXQC/ejVor2j7Og3bKgpe6MxPb/F+J8IKnDl5qB6KpI3KF04heyfkNEAaWsgKM4PUdO48T3i7DZwrCqwa4pISMSqR9lnP/Y6LAdfS7r7sWy5Bcg4UOCHINXpbtRHFXVqBjqSBywcsFLhK38Tm84PYYnagqvEimZoxrgrfXVVHweqXoX1Nnt0Oi4SX3i8YdocPc+Py5pwperp8k1iS7c8kD6k3zswrTA7i3rTsvvEKhg9rgkoK+JERnrfsDbHA9Y0o5r8kzoUCy98Wp1Imzjx6UkCcB3ECcm4E2WREDr2XQStoNQ162vXUV7Rhn75WC8DqPnc/e649MMRi84jMN9YLXhaS9w/YH+DnfeuzQQWiPikbZ+CTAW4wbMlg4HGDvtLFs2OI8umnQwT8imYA30MKRdkwHh71YN5ktZTYyYYJBwJ0zfaxoeLvGb8C6LiQdnMvrxa6SUKjTVv8kwPuYeWEhAwEYPxGABUsBKK0CgFLcHHv0qGtSnu4GhVJyuh2simnH4dxg1PFjCxnmZsaD4amzQOTEebwSNTELzMmMl+V1ceF19LuHDS6S7iNmwF+kLaJG3HB2d3oiMw6Qv+5Q7gGJbfZC9iyEXqYhpYAWMpDi09aSNhnbK3k11k22jcrQQTQwLkMQWC5Jm5qKDW7UhLgmeAemYwEhBlwkIYHhhF0sMAHGnROM+Svxd3OBdgRQoCEvjBP3MuNdUoItrNCkeN1xTuFbsW80muWFQJIKLl2yQOrUNGyvaz90mrDXDbgjDt6klTTbUO0itMFjW5k1HBol1lRh7QlUakLwtnMo5/S8SFwtkwFZfsrCrUrUDfcaMVUheJtk5Vx9cJkTdByjc4RTY8mFoq6lZ9dgml1COtlgd96oG5ezz+vF2k72nikB6wClDqjchDpt1iHrmlJkQ9P14CW8jMi4l5TJBdWKw4ska2ZTTDxjyji9GNs1ehP/SFqvq6JDBja7uDvPxJr3LOR9MdNlwBSgXQsM2IRqmHkm5Dd5l269FIeXCvCwtAUgJWs5yMwpBFnL1oDpiwvAvBVrwazcQjBmyiJRAE+dnqIXLpDiNmSv6AEJPunlEcBqFxRK4M3bPUbsY4E7md3k4IUc9QNGaAOiWWZONRaEY3bWQm0cWW+SY1SBaHiHzNsMFmzeC/acvAzq6urA9u3bsSSnYL0oiO0iUnXQojnF6LNdI3g2p+7+QBS4ZOqQKchWxMjiyFK8YeCuD5TotL1uDHCnAyO1FYXccW8HR/qwcKidC7uHoQwZO0asw7rpf929T9Pj0aNH2AAjqa6pAUNS5/OCGxKbSYOWFD54vRKLZIcLxDyPUbN5h9PZ879H5MI7zNDgtgRGbPcfcMNrF56DdaOIBH2XnY3zfrdh3XS29vjxY1EAI9lcWsEOb0oWcBw5h/WzOeH1fSgK3D72rqz26NOFPlRuE1CNvXJCJrzXDA2v0RvXmjY0DRIXXteR6xq8dZedgjd9+IISTl3EhBBUGZqWTUA7OnMlmLBgPQiYzJ1z5oJXTKzbffg0bnsk5+kdL3dBK0bVSMPGvfBejTRVeHsOOEeLd4XgJW9Qe8dywRtfdfCsoE7Hjh3DgvbkyZPg/v2GEKRs32miA5iwrJL3810HntC7Xpd+ZyXndKnS28Wb9T3tupTVy4HX5DIOwEQamxE2l+3Dju+osV17p1LhePfOfWzdduzYQQP15s2bvMcXbD0s+PkIVDmjaVx24JsWate7VObq7J24ocNbhgB3kKnA6+Knb4Qte0+Jhre9QxVo77yF98aHzljPqcfjx3Vg26FzYP+Zq+Ds1ZugjjoRAxf245eEZ7f1uUS7VhRGKAFuQHgit7cfVSS/iIupdNqACbVuPegGyJgFQOqq7aLhte6xBrR32cx785NXbiM+c+fxi2B5xUFdrpdPCquPgDv3H2Jdi88k4ZEx5kR0XHBDbZ04bUCmxjjn/cL+g4HgPak2uM+aEryxKXQDoDa5sFY0vGiNW3vnYt6buAqCmLGqBgtaNllSup/zOgbOLsaCkAovrtft7eorKVwgZfC8zY/lwiu0obZB4l5T6aiRLXV604U7+TQ8t7jsoGh4idDBZSPWqJpcmbVuJ+0aJizFn1dBhRdv3kIIP7hJ/BPxRy0uu4t0lAsvc4MWY8H70FThXbep4bkNu09JgreDq2HgJaUexsVHL9wQ1eFqgld4lQTKHvCBi+bw4ua05cKLtu01eqcNmFijwku2XScv68d8GPBahXDnVwfP3aQ4vBmrqkVPoiHhdY/mz0n3cvfjBTeo9wjBz7pJyawoUnkTD96opwbevDWNS16Cm547evEGtheir5Tghjc1f5vi8IoFlwovb6jQrScvuIH9xgp+Tul+ej7bgPDeVgvcV00NXhQqoIvee6DpuUt/3Ma+oWJnkSklQRlrZMBbLzlU6OUeIPgZoxeX6yWzDQgvUAteB1ODt2AtPWRA7fY9/XH+oD6jWG+md/xSg8M7YkGJJHBJeD3HVrCnwzhmzulSYrZOwkPHaatZR2GUgJe5JSyPfKkGvEmmBu/M+Q2LM/XyvywLDNluaHBIlEHhnZS3VTK4JLx6z6cU8EJLgIv5K8PVlIAX7fmGCe96NeAtwQEKDYWiIVFDNFd/jsELzBuMe1ONGefSBgzG0udfeE/IEQZXYBCCFL7BFCXgRfXkjBY6wGvYhwPU2bNndWP6ajdqR40XXsx0GZsEZ6xVBNyQKWtlw0v7NRk5UxBcNPUR51wXbtzitbNie30YEd5LOEBdunSJNntKrXb6bIPgwhtq5ywJ3og5xbLBjVtaoSi4/pEpguD2duqqCLjGgBfKS0rD+xgHqnv37tHgra2tVQXeU2e4XwtMX3NLz4P2GMoe98Ln+W5udPYWWeBOXLlVUXAD+47BANcL61w37z7AsrWUiuoy4R1ptBwvc+7q/v37DdqRm1a08y/mjfKJWSApdBi7uMyocS41bg8VgFYMuJf/vINtz+LgL8FK388JWe7THEzydAMOtoX3xcKLsT8bKXeNBu+BAwf0AEbPSW0XL4s7nm2UjS/uRR0frpucAj2nsePcwLAYQWiFimRTZd+Zq6LseTTiB1bZ0e9bkB9iK6lItUHjXjEXy7UoUYoHRudCxS1QkTfUY0XLrdFSH/KxtfsNsGufvLgXLQFXOtOgVJzLtXhU7xrc/LDOt/vkFdH3gAteUmrCWuFlHOz2iQkdXlES3pNiLvjw4cOsAP/555+iDNcv8iCt0AVb/IXbaZMSOvABmraySrVwwSd2ARa0DZvBJGCd89C56+IXul44qgsZSCno/gUN3s0hX/FurSAx7o0zGrxsnTdS6kWsNMDpLKDVu/qdtrX3RKXMGIs2mfCOn5hFg3NY/2jifeE+IXrgovSaHHDRMC4uuN2SVmCd8+6DR5JCtr92FunBi2Rrn6918Jb1/JqYOaYwvI+NCi+zPXjwAFy7do0QrGU+PsIGWZBzg/XLUFB9lPUmBvWKxl6AGJi+pmFIN4oecw5w96H9Hz8ttwny3AoZudtMbGh7+PbFPq+c9vD6OT1wUQeO6nkRvLg7kYrZkkBJeBMMPfyL43Xv3+cuiyZ2PZfeRJdp6wggh/QZrHdsPzv60hpZ4UJKAejj4I4NLttOnazXmbmhXu49YMJ7aND3ejHv7v7fYsOLWTmSlA+VgtfDkOAib4pjDL4QhOumovmsrN7MuzftuIGzNhJADuoWBCWQeNzP3oUGKxXeXtOKRIMb3HMYNrSooiPueXHWzu2u3QHyliwFd+9wp80e3bxKQLtvwHecHTYEL7XesQIbrZCSrxS8bxoSXhQvCxnCt8cR3nOMX1Yly/sOztqkA5SMeUePnsgKr9hJN95xudjQEnMwkvOxzjs0u+QY1lzonFxw9fJlIpuDHnOOZKZ4CmYbkPBVzWEW5zNW6GCwdvu2cOXt/DXCiXaumxwwMJ5jzqs/bWg4aW4hDdYBbt6s8Ioqt+ToiQ1uYL9x2Oct2XcGaxQUeVsE7JmTpwiAS9Zv1PvVOxlriwUtkurQb7DhNUrcC6/pbcPHvPxGOHVG+Kcxc/2uR1K9LyrvxIxp2f7vk7hI8RAhlCcDImfEbM3KfF2lHgQpgvjalau6zMLRyJ+woaUOVuCmysTCC2WIEvC+bmrwsqXIxHjfnt69OAYtAhtG11Y07Awfl7GYBuuo4QlNNXqD+/OHB/G5nIMjXBLiPwDfi/MUQ9Eb+dyzF5w70zSb6f65gwS8YmFdH/Q16PzFf2ieFzdVJgHeR2aZbbBx5Z8fitsisjbXc/XyuYvO5YO0/G0gIXNFUxosdT7N6/JlF7oPny4KWN0UxpR8bHBnrNslyp6VJaXg5tYVOugOD/6fKGj3wk7bbx+9oxPyedSZExM24GztqmjoYIyVEpu3cBvE1fcIfn750WPuzEPoaE6Y0hgLLxHIqSsrdf+jbARr2ktETEtOGPeJyRYVN9eMcaSBdW56T3A+sw+4vn4G4VFvVucRcmK0BfH6quy54EjEj6K9bFWfb8Ggth/RoEUSDp+jwYuZbRC5qoIUDzngvmIMeO/cucNpgG5BO0Wdy2/y6nrO+QPWXVihSlnKPaMMgU07T3KeqFxtA7RdgM/4RaKgHbekQjSA+YsWEeHBxunjwcGoFo3PLQSHon7jfR8TWCRLujUnXtsKoSaPOzjoe1HTJkXUcZC/qtiY69SK1rMbYGzcTtHn4oxLE5axwpW4rJITXp9JjVmLQYmcxZr5OmM+4+aLzglf/OM21kQZWiYgrjsBLlVqYz3Bxmmxgu+lQrvSt2FUrbL3N8T/qV0+pcErJmyQEPcCqeBuNya8t27dAs7d9C8+MnqH6HOtqjkmanORcYtKWMGNh1CLjWeJjlhgOGsBZyGZs3GPqFleVCmZPEQPXtxOGhXeyHYfsca7pAhtayUXXijOxtp0pRmU56C8AOVvUF5uDEX+3pjF+CeUf0F56+x58N6QsaBH2BCQGJsCusLnPnBzc3OAp/mFlOdfeP03v5C8pGlzwbnU6aBuaQEohMcFQEGr2npA6QWlD2jY7KU/lIFQBkOJDpu58Szn8prwJBpsqSsq9MAds6iUt+oiW6l8KV6W0GfyalQuFbnbP6CgWc0oVXBClOedoO9512RNFw0vUxZ7NWcMUuxUG94/zXV74mZQfoTyNZQvoHwC5UW1PxTC+jGU/0H5wJSMITbmpcE7Zwbo1eIDYPfVu7Lg9fj+PbCga9PUSAu7XXXt7fbehh23G22tqy+1tqw409qy7FirzqUHWnXesrtlp821LTsWV7XouKG0hcX6YlvP20sgkFlQMqFkQElB0yChjIEyHJV+gjIISj8ovaAEPaM1ranUXtVMoDWtaU1rWtOa1rSmNa1pTWta05rWtKY1E29trLdHo0S/pctlLVdqoAbt3bxxcOU7zRpa09pT2jrYH45BjuDrn6Z8qVnDII73x0bHq/3YaU1rT21r9tarFl2Opdp7PboJH7+hGUR1x/uaQ7e6Wzbuf2ZDe7+jWURrWnt6ne/rHbucmGHX9f55+PglzSCqOt5n4Y/cOTvPu1u1HzqtaU1zvq92cjw1n3C+WlPT8baEUm/pcnmNFvFqTWtaQ873eUvni4uh870AH/9dM4ji9n3TyvVKMsrxwh7GXPj/e5pRtKY1rSHn8Ia12/Vch251d+DjDzSD6EWsb0H5HkoHKO2hfIwh71Devwk53g72h3ygfd/VLKo1rWlNl3bo4HBkGHIQH38R1cmMnGKzRmfYt3F5MVpqPAnKLCg5UNZCqYCyC8pZKLckrLFXTKzd/wD2Xo/YXrsMZTEqgQnlMw1IrWntKWq/ti/6FTmCTk6nc43oTF9Ac16hhEBJglIM5aExHaZSgpwucr4yzoHssAPKKCh/04jVmtaenOj3+VadK0egL3pry21OKjvZv0MJg3LySXCsJiA7GosO2Wkga01rZto62B+e5tCt/sFPLXM/k+lgUUrg98ZIrRxKnRTH4hnwF5iUsATUrPIBF6taqirnK1uBw8V2ID9rFIiPLQCDIneC6Ohy4OZ3zxwd8gMoC1FaRqNaa1ozkwYj4GGwm3zjv82Hvo7hZJ+D4golDUqlVGfRO+woSIjNB0tnjQe71nqo7mjlysENXUDurAnQOZeZk3NGP4CzoXTSKNea1ky0wS/ov3hSBmhw7i8pDqBH35OgMDsa7F3nYvIOVorUFnqDxPErgUv3++bikNF99NeI15rWTM8Jd4JyXeqXGzmhypVBT6SjxZUjm2xB9rRJwN3/tqk74rtQBqOUkUa+1rRmeGeL8rSr5XyJI6NqQMXK4Kfa4fLJyZKOICsjHXgHXzd1Z7wOijYvWWtaU9DBvg+lLZRwKNOgHEDLXqV8QZ18HhF5WjRYpTlWaXK2vA3ITMs09dwxmvr3gvbt0ZrW6M4UrcDya1xcsNstENRHxAAwJg2AESkAhI8DwDMEAEdfKD6NTtNX3pdxYvxScL6iteY81RjM2+gABkXsMlUnfL/xR1tLTWjtqXGwaOrWz1DGQ9lIjVQDBwCAnG1MRpOEDgPAxV/ZL17YoP1P7ECZqUpVXiDw7XHFVB3xBW1FntaeRGf7QuOy2T+owKPINWggAMOT6M4WSUD/pshWSUmJW6Y5QhOQNQuGAFfTnEWBAoFw7VurNXN1thZQVrItRnALBGBIHN3RjpoEQL8RALj6q/el6j9oHzhT3k5zfCYm+2Dvo4t3vSkv7tgM5Z/at1prpuho34EyurGgCivE/jCKHTmR7mxRtNutl/pfIJRvPFHSSXN0Jiwr5o41hznEZ7X96bRmClHtcj5QUbqg91AAxk6mR7i9hwDg3ccwXxY09enIJhvNuZmJpCcvMJeFHKegvKp5Aq0ZyuF2hXJRcMVXJADj0ukOt1cUAH2jG2YnGOoLUpg9THNoZijDhlWaU72JvVC0rZO0priz/Q3KEaw6BkP0HS4R5Q5VN4fLtdz3bHlbVR3EniI3sGr+cJCWuJgoVuPs+8hoDiA49DQYOrSK0AV13dGCB3N2vhcqW4KAXhfMrejPbi0nrDW5DtceJ7olhTkdDEn/kQC4+BnnS7BxyQDFqoGtWxRBVAJz9K4zy7KMSO+IwbUgM3Um2LXG06wcMFq+baalMGM0L6I1MQ7XG8pV7BVgvgBExtIdLsrr+vUzHvSjRxbL+rIXLwkjiseY8Ii74o55xPASULaip8k6YFQRzkzti2b3WGmeRWtcDjcQyh0xUKH0wYhk/UjXydd4oKMBNbR6SsyX+kxZe7A4M9Ecu7YGSWGMGbURlCzrY3Tne6rUwpwqqbEJKt7UXPM2WkMO97XG/b9EQYQGypgOF83RNabTReIV9Cc4DR0pTgohJzMeeAbc0hysBHHzuwtSE3KMUpN4Zlrmk2DDRZr3eXqdrpOUjRbR6jK2QTQkxgYaRbxnOBwvGrBBg2Ehoac056mSDI8uM4gzRj+cZlApDUfQ/PfXNG/0dDjcV6AskQKKRzAAo1PZnS5VBowGwLm74UEO6H1ebzbDoY32ICJyh+YYjSBoW6SsKemqrRw0k8UXuOKteacne3rYbUmDMD4ARE0QdrpcEj62qdKYWvCOG7OOtu0NmualOUDTyxvXrPJVzPmiHo6rGeR+fUKugeQJy4n98tBMmUUzkoiC83PSp4JZaTOIWSdI4P9/HNtsHQSv7Wcoz2ley/ydbgso96SC4x8m3elyScQ4ZfPC/r0ugONbLMHIEVs0J2cmEjWkGpxUYFl37Ni1RrsGtFvH2oWDwYo5Y4nc95ChVQSLqCIe2pxUxbTLQyiboYyFYgnlRc3TmZbT9YHySPJgSmBDjVylHS9VUN44YIDmiJ5mQbMWUCQoZ3NPQ+navccVsHx2DDF2YOLzoR9DqYGSCMVWc86GcbjPNu7YKn2ep49+VTFDCZoTPHA07Kb10ZzS0ypoCbHYiDhpwkqD6FZd4PckLNNGjnkLlAlQ/qt5TflOF21pniUXrgGjjON0+QRF36gmhBq1ezUxbek74BBRUlLIoaC5x4bK3f5/e+cBFsW59fEkN9+9yTW93dzc5KbcRE1iYhLTbViQKkVp0psiWBFUQBQUlCIKqGABLIiKiAoK2KVIL2LvJdbEbgwWUDjf+86yuAuzu1Pe2Z1ddp7n/yQqzM7Ozvz2zHnP+R8dnWiyDOl5PUnZQzeL70WFDcvFBl1FwlaTOA8t5E1m5tAE5iP4tQ6b2P4FRsNv6SFKSLNnFigsIcTClRXqyVVX6apxUbieqMyg+zxSHu98m6vEO1dbwEsn3yCyUTGGZl/jWhhocZbXfgZbXQID0yN6cArQ/rw0IbVD3nXB3DVqO4bUBUv08O2E0P0KqYbEBYTdxrQZugrTFAkA40IBnP3Yn5Mhw65R4JXK1J77hF0MXrwPffQrbCcjXgDD8Nif76C21/UY9xAulfbXNfh+ricsPXRfRbpAZHUZRbshc3UTvKqEp2XgvDYewtm+5niI9R9y4MUabHmR0zk2tX/Utg999KsOtVA1tDhHrBazJvQFn7Jyvy6BN1RPWXrwxpO6aCbPFi8YcdkZhmNQtGT8u/9MYYT3HRyDbiCZdEtI7G0YPaW2TT6BteA1sRZGjNwP5iNaeEfQ+uhXd4Tr06XXTc6GDM7AO7X7Byha2xO2r/iKVrvTv4aazd/B2cIfhQbvAT1lO0K3b+uAPtGmGHBpGIalf7hkfLuXv8Q+0sZTe24mE7v7HSJeKmI1q4VxY5ZxWngbOPS03L76mx7Wg0sX8s1OAKHz5O+BE4Xs/ZAxUBVBl4kObO0FV8t/JgXfb/S0fQpdj9bx1EQuGAxFrpEo9ub1mKg5A3ShZebwGMGxjha+o0cmw9rF08DRu4H1fvubHuqwvwHmp/QA00H4pmcUcYJeXe53vAAs1cG8XnzAO0NPXAl0fQhcIHjSxI+t+xuoyo8BAxanInCXGZcFKm1Xf5ODtOC1tMmDtPjJkLMyAqIi2c0Nw2kKun1i4XSEHmLaKVxVo+g+OrjbixP8CjN6EgHwlTJOUXCdHrqOMInAxZGD1NZCiB77M9q3BmPQ4tE+LmP0NxLWIIvz9OkGk0qYN3MKBV6sDcsXcIimaxXKzL5Rf/61KL/rPaljtNteqatqOcG3ZN03nGC7a9XXcHT793zTDYZ66HITzgXPRHqx3T7fGRkI19sMbCI0b2wuRuEFMEVwDA+aTRmlSOG7J3suTA6+xKnSgT6XfFz/GYggfcAn0qXTkT3s3dqqNn7LCLbVm76Dig3fwvmin0jleYs7K3SHtM5yYnvR7EL6SMl+XbCPLi6D0XsjKEkLODxRmOcd65sIG2XAu29LPJypXAHrVxXxXsCTlaHVFdGcDxsPibD/srUbgK2n5PrB5Xg434+N813GStJSjqMBHEZJ7EHxoqrY1gL4NNvgUVjjebTXZ2XmcAIhBiqOZGWj2votveDivp+ErHAw6GzQ7c/BTzcF6RUG+96Fbw4x+x8Y2dzm3TVGQjjypAOis/MaWJM8rQ28pVsSKPBinSxbCRaOLU+Y7N/Y9k+V8MUytrmjVV9aGM7SR3AsXOWi6nGcqb2od4CkIgfXYGPh9nH8RYC/FDDsMfTtvckZ9OP9jPCRjMEi8R6wIhc9houlA7ShpvdsZ4LuMBaRbhNSNFIXFi5mx8V80w62ukyVXhlaa34oJT4GOhCaWO2G1PmBHSJeWQWHXmhiVuN7nRF8dTn/KxsE4OgYBwajJgOMnYaiy+nkgCc27chZoA3wde8M0DVHUhUttbTmbv+Pw/5fQLok3rzqTehncgD6Ge+nokGNpxtGNFPH0h6A/YyrYf6sKUrBi7VkUS2zLxvLi4zhi0vS9Kmgp8DGUS6OgjGkmYyrEpvil10RO3gf6jp0e6iYHIGBm8gFuO2MdU6IMZ86wPxkG3QHWV4QzbHhlAcdAIP8I9sW2BSBF+tE2SoY7tbEObpWJPxUoIcvc4N/nIvG0TPuUsQVPFOjJeWSuOFHDAA+ttdRzPD9C+lZXYTui0jHFFw4OEIdiaFJ4HVeaq3nFdWNgZsIJECpE11Eh/PNdODz8V4MGUkhFHhLchWDV6o1y/cRTTuIuf3Yxr0R7DweaTWs7bwAPP0lHZi49BJDWtHUbVLK37RMLKDt1xnSC68jbWn3weOFtQnYb5fwa73LZdS7OvOoOPLFta6iicYVpBu8vVfB4lh/CrzFm+erBK9UvhNvKJ2HhxfS2MIXf2Hx9Q8WZGzOqNuwMikNrF10tzYZVzlgP2vs+cEXzDMR4BemnhELfGfpKnBx9Llb5kO8jRSG/17A1+zGZyabsNGuBCADh54RVQoEA20AOqb2sLOy3Q3zwn2psjJlqQY67diYr6LUrIEDfGtFUQlCO90k8AL1BTUvaiPlHtbpZsy5SvLQuGZeFZzxv+P0x5Hdokk9rNMV4OI86xSkG0jLMAzVDPt7YoGagdkx+UUrk3rq7zQR8fYxqoZ33jNDMkXHcLSt1hanGoyG30b/XoNUBT1/Xgl/f+FfgE4npb4/fQU5K2ayAq9UM8LPPlB2THSRNrP0w01RAmjG9Oq2Bck5kTWc9oHTMdJSP6yfDLbDZz2mw/+6B8IHn3hQ6vZ1ZNv/Y33cbQJ8+kUw9PxpOfQZUiWqc4JL1YJiOsIX/zdteZHYcr1R2gjcV5BGINmQyNfyOI5yTV9s2FiczjAGgwZ71qoLvLg864d+W1DUfUKlxwKdd0PAhIWQFDUeijbNBZOBP1AgfvONVyB94WTG8D1SshosnZqfsF3cYyIxlOTRKXxGYRuA0xenoff/hBawfYZUQm/DUujaI4yC65ffJcDn30TDIItz1HQPrq8v2XcVfNc7E3r0Wii684ObUULjJACOX3ZJtNUOSJZ6Jx3m4I3XbM60pUOkK5tqwJUNYsrxPrV17JhucHbNhbjw0VC3c5F8JUNpKoz3tqRA/PUXH8OBPckqAZy2uOq6YlDc4AxfysSdB6SENCxfuSiZgm/BmijYtDwSDE1XQ5eXu8Lrb/0CPw/YCaZ2D/RVGY6SaSqXSvuJvexsk35opnLwWmm2QeKScp8CkU5poJtKgRUzYyLszY5RCtX1y0Lg3++8AS/98wVYuzhI6c96j71zW9EATj7wxRJTmd5Tq8xKePmlLtAFnZvhZn0pEM+ds00PXBrVFWjNmPmdSK/paSsPXktNphgU+R+0NQigR3ptMkefOD4dwSIMTlcsZ5RawD9nPOB7KhrOSplG+zNlBZsYLkZyBLDFedB8uukRvPrG99Dtq1nUU5AFioDXLp3fViFSsBZFwSuiwHXUTT10ZbRlVag2jhPCIH6rs4PXWHNWi+cYgYHLeB31VGCc6FjdYLeHAu/RkmWcFtiUKT7ukNIpyNoaAePFr+4959DXz7o3QP5a+SeIup1JEBtVqgevmiYc714/QWgQFyO939nAO0BzEWMdw4jsnDgnU9g30hxvDaQnRUNVQSJx8GKdqlgBI7weMP4iEHsO+LMvpzGqugifeYb2fFRuzwYr5yedHr4R4TuIwvByWR+YH71BrtzPZeR1uLhPLVOULyEN1HXw/qiR3C4LPwJpOZcoTXxo3sfCmETYnRUlCHjb8sQKLCdNbO8pPZeBAQXUfDdmAL4suvO9J2erwnMSGHS5U8PXd/wpIuDbn+8AFk7Kv8w2pM1Wd3riGpIv0nO6BN9tas3n2T1gVZOKqx5E69NLje+Rj9zDQlZA7qpwOFWeJih8sebMOcG63Th1QQr4+29j/BmIrQrCd+INFQ0pBZ2yMYNqznB5RAR0kmiXgTGRYzPsWBugbggP0BXwztR0KZZyBy5xT+A1tP5d7nhd3POpPG/97iTBwSuV15g7LfQewvSlegkxq+Fo8TLwGlXCOOWDS/two4tYzvuihHoVC5crwGd851yMO7LDmgjkZoXtZO4OhyCcnpyoDvDW6wp4TdSW26UehetYgveQaBfY6EzSB5hWwvqUWVCSE6c28FKLTnsy0SNicwvdEwbdeZ01Y0MboDx9/2DxFFJHVSGI5dznZ21XeW6SF9R1OvjuzhxDDHYTJ7GvLhoz4cQx9LsXBYKviy6A9y11eTbglXMupi9ibKJQBre4yMWQnzFLreCVKjW5inHN9ACzSjhc9DQlsiyphtUTCa6oEMP5d/B8CCfLV6o8NzW71sMw18edBr5rl84lBruLpf04zXrEjEG/b08YvKd1Jeo9JngVAIInflxVl98AjpLVOaVBdqEtckaqpKyseJlG4IsVMJV+RhvdZxA2vVDud8u3bQRz+7vMPx+b26IATVTUccbnJzH+QKeAb/ycjvaSx3YaweHtppygV7TBj+0x3JJyBi+OIeUSgq+zLoB3ueDdXsOucS5x4uJShlflqRE5aoyWsbEPfk0n120UeJm0BwspRcbrdPPdBpnXd4gaT6E/e/rdantfqoRtPDWfFmqBg0VrWKVosGewLsMXG+X3o/xP5BU7M4Yz+A5uswFrZ8bn7VF75mAzdaQlPMB7ThfA6y18muE3HvWldawWdrCVojRniSM8TYyBx/W85XnxGgWvVNU7s2jrXel8HxJiC2j3kTD/INXlxmghDp173JmoSdjgvC7b8xQy/TfdhS+e6kIDXw/Pjbwiz/PFA8HJm/ETqcIBvGhfHyOVs3z96boA353q7vRiI+yPwNx452i7krTj6vMbaHUumxKwRvB6Xraq37uOFsDtW4+NrGqoRTe6fRwvTQe/8ecZL8ZhuGsKNo7e9zmdp62ZOzsVfAeaVRDJvYZOK2ZyHF2Z8Ajt729IcUgtSl7zAdL/aTt4nYWc3EBn/chG+EZn8hhLvRaNbaO6PAmk5WXGVqWwJX2mWup52epg4VoY5vK4Qw6+/TlLTtimdD8H0H7MbY+JvgNxU8YeTuepcscGnasJVgRfrLo8CyIAnjJVpc/xYC6MQvsej3Sw3evN0HbwvtE6Il6Q9lquRt5sPWWVeRdgKKrj4paWzEXPXApHipaKDrxt/r/FGWDr/kjp+CULu1pG+8pcvpVZeSD6UtTEaPqgaRd5lerZuDW16Ap88dOnIvguiJpFBL5Xy38B99FXlB2Hvd6m7Cl8S4XxZmgg4iPAJOpVNaEXzzETfiFR0jk2cUImVG1LFC14ZRUceqGdRaP8E0pa8jZG+8EGQVMCNoh2Ogau2OB6jk6WrcTNKroBX7PjCuE7xKIUrpT/Sqz8a+HcDEXH4a6nrgS8DoI8fltdIQJeKmq1usK7VlgdDQDYS3iEy3Yo3BSrFeCVNlO4jGqQGbYpX1Lm6lXDan+1O5eD2bAy0c2Hw63WfM/VwoR6rYcvXguhA6/0M8lKnUO08WFjWgTdcYzRg9cRnkO6K+wQS/5SNkWX2SKe8J1MGFpDLMpgS/ps5XnE/ATRAbhie7ZcbhOXick+dVTtWM96n8W5q9H5qBRNlyL2/D1cnMH7XGHjHnSutDYNgQOE9tCV/TO+nw5uG0YUwFVb3MDSSW6NoUIPX0dYSNpIRpkjVm/Dsgt9jKrusmmuwHWJCsevM9yPOlzPBlmehxUL58Lx0hTFC117F0PIBAfo+1MPavLCM62DM31cTTWepli+pLLd5/g0/RAXs5fzfg8XrQDPUYUquuLuqQU8OWt3ETlX+7U4D4wXnhWlHSSqQ1+atfBbCfmRQ7NnFsgeywedGbyfqjO/+2P/rRvRy379y6DCvWwqH6QTZrmCVx2PuLj2ODp8Kezfxc8wBxvuJEb6gpXxL/DTd92gR/eP4JMP34UP338HvvnyE/TnD8HatDckx4yjGjc2pIZSFRU1OxZCLdLW1TMhI2lq299h2LN5/SnBl+Tek3Sh1Mapngi0wqbvUGLQLnxt7cpl5eQ8k8tXKuwaFLOkLeWqAOziliOI+Q1Oa6DjONGZwfsSyXSDbFMBnb76PmkaetnPkLr82D8vWTrkkgk46XK1TIv81eU7i6fo7sqKgtdffaktmsV67rlnqf9+9MG/YFDfbyDQ1wbWJE+lIIknFfOFNfEuuNJVYO/5sJ0RvKR6oyArj9jrzIvZQ2ukhKshhHRHS5h3kPg5S08p0y74yrS991Ohyf6pggAYL+pV5rqbd1b4HlDHiJ/eQ8qvvvRK917oJaUGx69/33ejD77xcO5JZbqAZhgmG5N1ts0ZXIRhlZ0WCi/84+9y4CWlf774D+jV8zOwHdoXxnlZQmSQO6TMm0gBfE92DDVc083ekEpnzAsfRc1227dlHmeYFG7JpZ0/5z+phDi4inJXg6XdPrV9XmHhZwX50ipC58zCqVkr4CvxmGYGX6y5s6KFtIAs0/oGCZbgTVeHMU7Pn5bPRC/3QruX7/LZl6GfoX+/I4l86lgZdasqJ9NEh9WSRbWQHD1WEPCSUHigM2uYJCXu77CY2N+kjpFLGBfhPPnmVYlgO2Jn01NviBPEP6vxAX8I+uSA4a4NAGYDX6yY8Fih4OvQmcAbKDR4f+iXuwS91N+VHMbrvQ1L11OpBxXNF9j0RTbPy7VaQiiXrWEuj1uwYU0btKLGiBLABr9+zRokeB5ae/+H+Ni9wjd/FC2FjStiwc8vmzLxIWmG5DyyQfDjT0mu1gL41rGCL9asaQlEwRs3Z+ORzgTe/uSMzzsC7tfBRQe7vNyVyYjnLgZmx/wk4K1Tke99KOfGxBW+shAX2rQF53el0Bs5ciQEBQWBu7s79OvXT+MQxotwbEAyNeRiuy+bP6nhnGrzodidBJP8s4hVQ+DUwOkKoc2LNogevrJBj7oBfK54EIybSFUf1XYm+B4Wwvi8j1HV/e495xizOZafDAr6MKkFli6+0LlusYIvemwmfQHbujfSgmh2sHsb7FatWgmKtojlkfCR1ccd9IHpf+G9Qf+Bd/u8C//q/S688/O/4O0f34G3er0Nb377FrzR8014vccb8NoXr8Nr3V+DV7u9Bq/87xV4+aOX4aX/vgT/fO+f8OK7/4QX3nqhTf94/R/w91f/Di+9/E9qEXBOiAdjmEwIlM+/riJYMcC8w2wFeI4mMyvuwN61gh4rLkMTPXzb2YKyAXBUWBwn6F4q7Qv+AXLOgvc6C3j9+JeoXJaHmlFN85e9Er1lFtPYbF0GWpxtVOYNi7+dn7a8HubnhiZAznfzGsVmLR+89zYFX2dHe4XwbWlpgW9dvqMFsJA6cXwfa6DgoZQkO8VI1CJzkavPX4If49F9q0UPXzrjKTYQHjlyPeXfwKiyoaw3evqrUHQsH+o6eN/gOxJIboyMUXXjl70SRqNd81qlRPDdJ7kI6pRWOtCZfbM35SFnqoNzkNieMlrJlAT8eI8jzLfffA2UbTnFOWqH75aSLXCuln305z1W4m0wcuxtjZbDYaMbZ5l2aDbyGX9L8OPDkbU2lZtxBXB/k2qozBmueMJFti8Tg3UzXYdvPq9vSWnUaVTd9MV38/zQLl8kcVwocv4RL9opWnSTdrbxyfUKMd4cnw9pS/OsmYqNunGVAY5+UxbPVwjfKzeusIbn/2w/5QXf2NVz4fZl9vWu+/I3t52DQyymQwglnP5gPbzR/7rgx7VzU77o4atskkw/lhrhvA3q8ke0Qbdssxc1op7hsQTrMngt+HRtSR9Pfuy/NRPt7iXSx4f2vU9R5Ivzy6Rc0Uh5+eJOufapkrCwQwpvxHfffh1eeOHv8PDhQ4UAXrJpKWNwfuPzDYxY6cALvr3cvocHd6/yMpYh1abL+xG/ZDW4+jBfjMP5ayGPB3e9cY3K1Sns8KfcRZBNBMzLbChLl+F7kdPkXftHVETa27DsMq7LFer4fui/xV5R3henCvhOvlDlD8G2fZq+QqMOpoXSpyBWLQikol9HBxul6Ye+Pv0YgXNwxGBwW+8Klgss4Fvf7+DHMT+xhm9X227Q3PyYM2A8/e7Cwvh6Udpi4oVVM4cmhZ/hxMlXRZ2TVh9877K0dFWm/XyO5bSugjeUs0eDUU3z9303qqMA+pW+RtUn6aJfZZ1z6hi6SZ9+qVO4OLhgfjXtDSmtfvj96mWF8I1bE8cInHZpduCR5Q6TtwVC0I6pMHX7FPjK/WvWAMYbV8AUb82FyMiTooDu3o0x8Pabr8L0SU6QkbpX5WeIvSvU6Y2sjWkHLpGwKstXFXpf18D7HlIL+w/lBvw6uDhdjYf6DoLvPrrVVxLTL2RTGLwiBWrRT3lNMo7gc9fRD520Me8LY7yGK4Tv6YunOwDSaoo1BCQGUgpKCoIvXL+gol4s72wv+GHcj0oB23PUNzBkzpCOqQuXb6GluZkXZHZszNcodNPiJ8Ev33/eYVIInk/XfjqHrGKijwnqi2zl8kQr4IufKsvy10B8bB6M8i1C124NL/jyNK5y0SXwvoB0m4PJ8nj0639T9/EamB1JxfBl41ImxAgipkXpSselm+2Hg4X0nrHfff0p3P39qEIAm/qbwWc2XWH/yXp6QN843QZfLIPpBkrh2yeoD/VzFolD5f7eZKIpND9p0hqzd06LcSnlbZDp+lU4dO0RBh93mwC//mwGRgN6QfdPP4D//PtN+PSj96g/j/W0gGFmvSnZW/aDEdYG4G5vCL5u5hDgOxwylwQjuC5X+pq563ZplcEOHoLaPl8dFVnOCcAGZsf4HEuaroD3WaSTLN88roZ4TlPHbGxz1xBHjUyMdjRR54u/1dm8lptXidLoqPlxIy1cHz56CKq2Px/+CWM2+rUB+Ev3Hgrh2z+0P/Uz9svt5P4+cMFkeNzYoBOQxc5w2F4TCzeO4BSEuroFX37pRcqlDo9PwseibfaS+CmBtr27ZDUMsT7NLvrlt+h2Tlfgu43Fm76Aa4A1fcw/9Mv9lIp8CaYZSHW4sV2YkCo0ZLtCYPx+qhD4bKMzR4PLWuc2AA9NGNoBvD9P+rnt3x3TR0BIcojcPm5drtdq6DoPHyg6/4w33xmgdOKK2FS9M0vh+d2+MR/oFsIVwVe2G5WjPtR28FoxfKNHkfqJ6NC7GJgd/UtVTpWTjKobfxm0dye3ZoomXq+dHL9J4cX9x+ki1tBtbm4Gvw2+4LLOWS79oEouGc7Q3NIst6+rJ3ZrNXw//+wDcbrIPfs3okZAQsnGvVHlObZ3qWkDqyoAUz4sdg/4HJOrNoP3byryvE+Qxor08J/vbViaKkTki6dnDDA/GcVpHJKCFkw2yl2jOLq4eaGGFrJNj5ugu93nHaJZ42gjWrj+EvgLFf3K/p1R1BBK0j93HdENvnL8GpblLIPGpkY4X5epteDFi2z/9/zf5KD3wzddwdVuMERP84TcVeFwqjxNfnxT4VqqHpjN6xzbl0IZ5CdEjIZ33npNJXi1AbqyUjXPLiJ8Oy1k+yqAL0/zqlRthm+mgjd1B6mn2I8fRb1TlPk8cIx6H3702Rhz9P6tWU/msLlN6DhqoLwgXeEFfv1cGS2AKw5X0uZxjdoBuN+0flS9r/TPnzt/DiNWOVAwNphhIIl81zrDx8M+adtHxcESrQWvi80gCnT/evs1WBI7nrVJPO+mjuJlMG3iCPjvf96WA+9rb/ygdeOEdm1SPplk/YqN6oTvSW0FbzjNm6lD+pe2vIeBQ89Y47luJKPfb35eEY12/Ro6D125lOKQOo4RLjuVDtWkIHy+ogOAN+zJpu9yG/UNuGa6dIiArZOt2yocZPO9X3v3bPvdLx16QMOtC1oL38NFS0R1PCsSA6DvoAzRABWnyphG4Krc6Ub6FLGCL/aL4Hn872obeH3avQE8pULrxnKgSLMPnjBMKvrFnXlot91kUjJE2y/ZKmI6k5t5JTxquCEH4NziXIXVDKZxpgrzvLgD7pPh/+vwO5WFKTpdYqZu5WdtF1f9rtUVxrnXhPmK/T02pWcrzO0qEk7T8Tx+W22BrgHSn60HjZspfLV8sbC7xECH/6JbnyGVt5599v++e6bVAAjt+yN1L7Z1GI1uvQ8q8xMY3dBXT+6WA/DGwk3MOtesaXwcXL6BuUl+cKh4iR6WAmiGyMYG4eCFaVllbMxR2veUty6LNXjbrnM7Xr4WcdpQ0SC1h6xA+l5HSuTexV1ovNMORtUPX3vzxwHPyDiv4coOkp6nXBU9c4nK9ANdVcT9u1cgZWMSDJ86DCwDLcBkgjF0tekKP7h+B/ZTzCEsfiRsyJwB1bsX6oGoRoltYoV04ADT2XftfZmP7lsFjm6lSsvJBG5mqhMrnDxbI9yHSG7P6Nj27S/pXbB3At+0Q9ceM0ai3b3NcDFSqQaYnyQKXwfnHVC9fQH9zVyhh5m2aX7cIXEZpMsMHDCzV+mjC7MiTrW9l9RFuQiwNUobKdTRxo/0mpig26U1vVCC9Pozuru9gBfc+Eys+Or7pGloPx+3O39vczeQP00UvkaWpdRMMilsL5Wuh8ulG5TqUmkWnCtfrYedOoU+m/PlGXChbB11/uk+l3Pl6WDv8Uh0US+bCBSb4uNRWAbUQrdq/wYm1zjPNmOs4c/oNw3AFz3mc7WQ7PlTaiTax1c0X14R6nJ+YqLanRIjGHxzqwIvPYjT9XAUSGcrVjH6QsTKzSgUDXhNbP/quPiFghimVT18gdth7iK/Lr8kPQo10GiBF9vweB62H3avPlnL0O/3eoZmXD36MHeQvKj5qL9xNZTmpVI3+m9la+hv7LJs+L2mAK4f3AtXKnJof+ZiaaY+TUFQ+MlCUYSrSEEhF0W0yHaA8+KX0fCbSrvWNDAp/IwehRqIfPFiGzVWiEXe95eBu8tawfuSgrTNdc6TPNA3ONnItwbq90jgix9pFcH3xpESuH2qGgF4j9Io+EzFSj08eaYXLjKMdGV1bNcmEaUbrvPKv0rnI5ICr2Rk12W+7+tLPQ7Vu73Vz7iuGQOYad63t2HZpWeffR5Xe7yuALzf8R4bJDs4lIBy1+bCidJUxZEvC4kpBVGwNpKSNsFX4RegAl2tzIVrB3ZD2uKDImmoeKy0NJOJ0xiuCVbWOMFFTKstlChIj0P1bv9GH9w9fDExgq9RdePLr37Vr31lQzv4TuOfT7tHFL4xURWUBSGXnG974X3oI1j1wffmsTK4XJMPNm5NooAvk2ocVW5+EoDTd65xvcZ5jhXCKtPjUL3bKwi8VyXwPaQCvDUt733oYKEo4pWB7yEyF/kpYvDFaZWUpBLKmPsSh0de+bSDHqB8xObp42p1Htw8WgrJCYdEn26QSwEwaPkVwsKVp70k6Hhllwjha1RzmipXUWGq/tFnY/BsubdUgPcXTc27YjJJecva3NbV9SyOKQfdLz87WZwCp0rTBM77rmT8GZwrygZLZ8379eLhtowXeRlUPeDyMNLwxcZUPN+nnR6Jaqx26G1YdkCSw1Kcx/qkewCe96TSMAh9eFHkLvaHgkQHEwMOytWVMoGANlQ6HMlPhsM5i+DQpoVQu3weVCXFdFDdqvlwYs8yOF2+vBW0qXBqXyr155MlqVC/LpH6uQPrE9UUBa9Vee4T52k+6sURJdsuUAxrZfvE0THpa3uQ5W9832uKHolq3H4ZVFikDL7de0aNQz/2HsPmlJVk82unBAHwIIsTcGDv2nb1piupR2KclsCwxf+vDfW9B7MX0oKWj6qXxIqi7Ax/OY6ddE1UXWzMqw8uqck+lajJzm96IqoTvgP3FNDC16jmyQefeOLOl/cZgvc5pAekIw5BJm1IH9OGXYD0lDKtThMcyEwkDt9DGzXoV9H6JYiBfKJ0FboOWjRW1YAByb3jsk5p40P7RTdiZlJ29/m+9656Kqpne/3ngbtypReLrEPZK69/i6saujDdEbamE+ImwBGEUPB9mqM7BHZuZ6Fuj/ZNmjhZlEIWvJvEYxRUsGGbBse8X2U9xLWD4Y3VFVWTy0U3MRx3p+qxqKZSs34m+xsweKU5rV8HFx/92/NdcMswq8nKLIeIsox+a9UmXBkxCN10EybVQ0LMZjiwV/y2kKf2pUHV4ljeqYbju5eK5j0d3bcafCfc0Bh8cdMC72sJ3VN4NBbf6gk2wt2qPN/7DT0W1VDpgPQfCXQl8P3JYFs+0/wu6cYKZcILCeoEcPvHR6mGWB2jFuzWLt/XIWcsBp0uWw77V8czA+7iGKhZNpdagBPTe6jcsQHWrSiBgKmXNGqOTur6wVU7ymYWCpFWI1BypjfaEXr79tcMF2mNb7evI7Ax/Itc9oM+rNWClvnIdASJU3Vg51QJEeG7oCArT1/Py2RQZmk6JCfuA+/R1ej6k7S44wVWfC3iskCeBuHcG3zQ6xJ9kqKiX8W5X/xeied9be/xPQ8FejoKvPUZUrnN0PrKubfeHfw5+uOzXPeDPqxyoW+KQRbnRA5gRWmMGhjuWNscEFj+V1Huqj9PVaxoPt2JGjWO70uFpYnrHvv7r2kYYL39j/7DdtzrP7QMnZtqyndD6r8h+XM11Z7LpEVX07W87ErALqitm5NaSB5+k++5wFPXn9UTUqANz5xDCiawn9e0+cbgG/FKjInq24TLfSQeyQfBwKIWBtiUwqARe8DQYxuYjN4OxmOzYFhYAQyLWAeW01LAMWwxhCStgMUZK2HHttVQXbQKjpZpL2yxh8a29bFgPCkejPwlMg5IBCOZPyvVpAQwHZsvOs8GvlI2401VgxNJ2LPQt3pKih/i3uq6QdSd++1vWQjGA6PBzGA62BlOAyfDCWDX3wUc+g0H2wGjwbnvAHAcaALW4elgE5UFNnPWg13sJrCPy5ForkQO87ZQ/2YyeREl8+ClzECENGL6IliUlgzVhQhs5StALFEzhmzdzkWUqgoSoWjTXMhdFQ45K8Ngeswcxu+vI3zjwWrcb+ptohjRTHSCN51wyZoqlzNyi27HSJyXED3dxA/fDeqNTtQH38GDV8LIQUYwxshcodwC5sGI+VtVyjZqAwxFkS7jCFCFhgbOA68Zc2HG/PmQkbEQKnYuhZOtnWuk4HqoUDL/rmpbIuzOiqIc1DBcVck9dC7n92UesgwsXB+q2SznhFquJ2Xtv6TbjXmaq2NV6ukmbvA+1zrfTlSuUiQ1fPB0heAd6eQLI1CEywS+WCaBC4mAl4nMAuaDU0gcTIyIhuh5kZCVFk5FpvkZs2BH5hwoyYmjVLx5LuxCYN22LhK2rp7JCK6qNCkymvNxDwvdo2bwnlJf/l9J6ZmxzR2ir8XTXF2qd/WUEy98bdSdmzMafos7SGcU3DOwrGY3MNSoBnyMnDuAd7SlPTjNSmcMXhz5qgu8shqP4EsCqGwUPnc255SD9Tj1TasgPS+Qbz6WZNOFqgYPhhqjp5x44XtWIyNcuOTnjKqb7GI2UiA08igDVWZCsrI2y+6YbpiSwBi8FHyjswWA63wYPjUORgTHoUf9WBgdHgOh0XMge3mY2oHbXptWhEFQVBS7VErwCrW1E5M27GfXAtxAPLDoaK5+ksR5OqGnnDjBa6ipIngcPbBehLDPvo4Xv6QwtA4qgqedfXUqDEv2g5+RdRt4PX1CWIG3Le0wZRGRXC8Gm6bhykZLFs0C6ylxKt+blX+d4NfOsIBT1AKoVdgaGOy5CfqZl6odvrgaRlH6gVzlA7FzaaGnXSeAL/ZxYFIgzqUQ3iJgJ3XTycLQJnIzGAytYxQF2xvHUuD1sXHlBF4sq/BVvOG7aFGEVoG3veISIsEYRey0VQ5jLgsKXpugg0qeTDaA8eitLf1ND7aoA8CK2oBJttMTalTZq6ed+OC7UIhcLtMyGZWTN9rN1bIMzaS96RzmbQUj82LVOTTj7RR8XUKXcoYvjrz5gBdHkNoMXlmlLp4J5iiKb6tyCF4KFp73BIGuJdqvQ1we48/JIS4fzH2OoKi4ulHQ8jOLs4KWVOIR9YTOYU898cQD3veFMs/BUGXmOvU78/zXiDxqwYvuRnMNXkRB1Whwmsro19FuDmfwSoXrgHEjAVvwxsyP1BnwYmWmhstFwFbhqwXJ91qPvcz7M7OYtLeln3FtsyDljDRTh7EtJJm87ylS5zFZTz3xwHc50SkBMtUHTAcBsnk8Mx63nv7GQiD0M7Vqy+WaDohWuphnZFfJ+0aWRNtbwHRqMmPweoTG6hR4sfDioFyJWXAZefCOu0Dk83qamtgMA2wKH5NvB75FU/lwnEjeV5mrGgud1FNPPPA9QuRx0AlgSjhATj7AkeMAjx8D5O0g7PdgVN2Cu8/obqZRDiM7VDGYD5ip9GK2DS8mdjNbzlihuukAPZrjKLFD5Jg2E+IXzYd5SYmQmJwASUvmwdIlcTB30SKIWpgMsxcuhkikiAVL2oT/bcHiBOrnVqZEwWYNLdzhyoz279PS7wzZhbVJp4mCVw7CkTlgYLJX0AYMUmO0VE1SZiFzPfnUuAHAc0h9kYKRjiCtO34K7o5HfwqLAUhcCpC+HmDLNoDSSoCjJwCu/A7w6BHw2kYHMB0x/5fqhQ3bbVSrb/vFNseYbPrGiUFGYGEwrS0K73Axux4heiPjtmNF4MWP5WtSZkL0wkUQOH+VoJoyfyUkIIhvXBEuGHSz08JgmIKqh6HEutqawT56l2DgxfIcLWm88RriBgOG7BFsBhsJT2FCPg/6jjeBQfs3pElId0DDG4Y404tCVWH6IM8M2hvIOSxNYeeau8FgMG8FcPs8MLY+tJ1ZQvRmxnlg48AF7SLeBAict1Jw6CoTjpaXL4smUtq2HkXvuOuODrwmAYtgqEsjEUjYhpcLCl6X6cs61nwbjoZ+RuWEytAOy7UGs1lY5jpJmYWG6EnJHbCfIo1D2tsK2Scg0m1cENMR88qmAdTAsAj6lIOn7wyF8PU1NAWvgUNgkOFm2kU4Y49KQW5snB7Bi3HYEWxSnGbBq0zzkhawAm8WinhlKxs6RL0hqUQW24ZPPSwoeF2nLlB8zQwxA9MBc4nV6Epd0EhYTuIUBiH4lugpqhqy/4fkhbQF6TFo4bYqk7kjlaIqhYF2heAQl9vhJnKMzlJqliOVj4mHgvRDFbX4ItRNHrZyB0yOTxctfKWKRJGxqjQF7rhTlde2nraVNxjsZu0TNuKdtpjRNePU3xJFwaVEW4T5up4Nsf6DZPTbS0/Yp6D9ACkS6Tbo0MYm9aBo0KHl1O208PX0nc7oRsKyMpxLm34w8s0R5CYPTi+CBVuqKUWt2SV6AEu0EpYsieuQ37UNimNmphNcxS/VEFYpbMQbtIjx9YLl6h8HBpY15NIQDk94Tdgg1GoslX9nhu2rSIlILaDjm50XswuCzhHKwLq0wyKbVL7mwxnfSCOd/WCg4/YOAMYLeaRv8pFJ29vAK6tFG3bBiux8WJOzHbbsKISyikqora1lrcqqasjcugti0rIFA3F8ciKsWBYN42LSqLy1Uue1qclU/fXwwBPcu9aCDwgKXi+vyazAixfjpM07g+zITqfgA2ACFpNSHetswH0WKQ862RadyMJsR86prA5Mxm5VDN+hdoxvJnf/GLCN3gj9zMvl4Wt2FGznFBC90TeVH1d4Lp48eQJHjx7lBF1VKq+shNWbt0NwYgYxCNuEdPSxsAhNA6m5kayGBZzk7NMgFHSdw5aDn7EFK/B6u03osJ+Bw/cTbUlmUuFDX3J2h2T0O6izgDcEOunGJvUgNdvB+Vkjj2KF4B0Rl8vqhnKZniLxZQjaLZf7xbA3HllE7GbPKDrC6Jw8fvwYjh07JgiEpdpXVglJa3I5QXf0nFQwxh18k+JhaGgqLWxJwFdI8LoFzmd1jSgzW7KJyIGBFmQ9qA2tr7IvObM4RxK+uboO3X8gnYdOvvmHMk89YDga21aB1cx0hfB1iljN6qZyinxaqjbEcxc1o00K+YFWh4jd8H/eZ1ccjSPh48ePCwphrJqaGkjbkKe6TjhhNUxctBFkneOYih18WwStavD2DGANXvcJUUr3aR2yhypRJG3Mzr7brZkkgN/SVfB27Qw5XSZbYSnTAZsPKXNsx6idlHeu4sWThaxuLNyC3FaPG71VJr1RB/0tK4jc8KsLD3M+Py0tLXD27FnBIXzw4EE4ffoMZOyohHnZ+zrkpfFCIdf3P8z/DIsGip2CQBc33fha2LMGr9ukuYz2b+q3R2P+wW1VD8NukIRvsC6C9yWke3rsPt2Yzndbv7kBbCOUT5dwHz+bHXzb/f5gxwoZ+PIvb5q+phjO/k6uUKWhoYF1bvjQoUNw6tQpuHz5Mty8eRMePnyo8nW21Z6hoJuQWwUeC/nlvq3HM+vCsp+9lzx40RPSSCc/1tDlYqg/yLFQo/DFs+oIwve8LqYarutxK79ZOKm+GEIiAUrrj6levR4VzAu+NjOK2xbeDKz2Ud1pXG989wUFsDi/VrDzhqPiW7duUXrw4AHx/T9sfEwEgFZ+V5V/vs6PwT5qN3HweoyL4ARdX7Nh4Dgnk707WmChxqNfU/tH+o43GvC+iHRVj9qOm62HigJ7T4BHjQAbyk+ovuH8wnjBl4pgHCSmKv2tihgtKCnSqKRtcE9Jrre5uQUu37wHxy/egMoTl2Ezen9pO+tpy9HaK6PwMOyuPwdXbwn3ELWm+CgZ+PooeRx2agaH2O3E63b9jIdyAu8oe2/uhjyzczUOX0Kz3aTK1hX4btBjln5zG6P8Ijh5RvJzURtVF9u7BcSxgy/NdGJJ9Ivhu5dX5Lt0+37quPFiW2bxEUZQ5astVafg0PlrcOUmdyhfu3sf3BbkE4OhQvg6PwGHGHLgxYunshairBfWJsXyen1s8KRp+DL1y+40C2/oev5Jj1jFW8ISxR8+tqOUbmm7DxGHr/PMlbT7GWBVAf2t91CuZJzaVRPzIDm/Vi3AVaX1JUfht2t3oemxcquPhoeN4L98D/HHf0XwtZ9DKMeLoDfSeQxn6I4aMYrKDfM5hpCMkpbHT5oZD20VdICn7T39wpsMfEv0iGUP32mz5X8ut/o0cfi6TY6nB0ZgGYLvbqqWlVsbcaEowNuhm25rDe0CYF6NcP64dPAdPoVASmPuZvCx8+QMXdwJ6RiVya9meEFB458PGtvOI1+XMiGsKzvtwhv6PL7Q45U9fK1dAf5qkP+58hNXVJcUoZuJzQ2Ic8SKZr8Z2O2khmKyblldtE2U4G2vvQfPw/1HTTBmmbD+uO3haznqFr99xm6C0dZOnKFLfemiL2m+72v+lpqG9teygdmxFk3Dl+m0GJ1feEOfR5wer+zhW1ZF0xF36Sajm4KNt4PXyCDFPryzSjndlHOyyrQCvoEr9goKXVr4ujShL7Y8zukFPpEu1ak2KoR3isE5Ie/J+Wt3aa/lgUNPN2savnSTM3hqs7bC96Yer8q3XUXyH/aCZfQ/d+HGn4xuDh9bD+bGOi5jicMmPqdS1NCNyS4Hp/g8tYC3PXxtQg5winTZfKa0vgwe/mTaxIuPKm2OGmz122MxwHfg0DOko18TbQNvDz1aVW/5u+TreVsUXN63/3rIrIXU3Z/xTelj40bYuUzcKYfxKbvUBt328MXNFuzMb9J4VS9QeV0LO3CMWs/7PYxN2XW/4WGTymvZ0Ppykxjgi0UYvme1Db5j9WhVvW3IlXzAQbOU/xxeTWa0CDJpLpFFNy6ajB7lxQjd6A3l4Khm6MrB1/kxOMQxi7ZxPtaPB3BJ5nWRWurPXWNsBWBsc+2RWOCLTdoJA9hfm+BLtLYXt4Xeu3cP/vrrL52C7+QwAAdvyXRjVZv7woIGlfWes9exukl9hrsSA83s9aWiA+/oxTs0Al1Z+NqGVahMLeCSL77AxTaRpL5MwzPLnjS3sLNgMbQ690As8B1kcZ40fB8hddEW+FaThNSFCxfkevYvXbqkM4ttlQy7cEPX7LvJLPUwkZ21ZEgy/yL/+K2QmFslstzuVo2CV2VqYdYqKjXAG7qm1uASupTIMY1esrP5jzsNnK7nwZYnG8QCXwGqHrAWagt8z5EE1ZUrV2iNUzCUtXG7f1/5Ahtty2vJ0SeMQDgrndXNi4v0+d60Y5bu7HSVDJxbgIOTwM/Ekjd0fYfaglNEBhmf3wX5LZdu8GvXHmJ16o5Y4CuAyTpWC9IL2gBfoo33d+7cUepedffuXa2Cb91BAN9Adr/z18NG5t4KDiPZdbuFLed1805dpfnGitiNFeCamC9a6OLolKvvQnvzG6fINUSOadTiHS0Xrv9J5Jo2tbt4TUzwJWyyLlU/sYP3BdKwwi5W+/fvV2kfiI24dXkLWl18g5GrmH8M646nETQDOZlqxppijYLXd8kOcaYWwtI4eenSabSlAzjNXkvkuMal7IZ7Mt1pJLaM4OVlwcOnPB5vGdHsbZHYbGOW2WhovOtOX6MKDeWCscl6C2n47hY7fN8RAjzYz5WJhyuegtDc3KyT8C2oO9vCOH9n7cgu/eDkx/lmjtTQYpu663YZRbjTU4gBlzR0XdCTAalIt/12OqBnCxL+L5yc9DUcmfAV7B/bA6p8v4SSUZ/Dbq/uUODeDXKcP4PNSFlOPSDSxhO8h85/1M+ookkLGi7EH/2iz+FDoeBz7do1xkbaeB6YuiCMvxjGBzVQH87kGTcgJ68Bdhf+CVV1ALUHAA4dldf+g4+hsqahTdK//1NFsubu/Ue4bKqZaW6R7Y3uMS6Sfb4Q3dCaAO/kleLJ7WI44soRUsCVQtdxzjoyeWb0GR04f03Qe0AWvlxUP9EArC1LGkTecIFVLGb4Po85KQYAq6sy4tCRW23DJyXuThLhVVf8d9L5aMrd+E/BH9dVf1ks3l5/k+lN5+k3g/VNzzbKUnd9L66q8FxUoHnoxuWAl/cUosBtmxQcl0MMuicu3xL8+m9uegQVo7+Avd7dYadHNyj0/hzKfL6ASt8vqL+vH9eDioZPISkDcCn6nQHGpffwBG1SABYg9YBlKGYAnxf0w0YR7R9//AF1dXWMAFxfXw+PHj0S5Fiu33wMBqYHOOWkZL1IJ0w5T+W2VW2/32lgdQOyjchGOfqw2v/cjRWcIBoxNxUmDBsBM6bFQvyGEka/g70jNArcebnUlAgS1Qry3Wj2VJUKqeOckLYHLt9SX018w4ky2OralUonqNIWl65wbCI9hItGfg4+lvMb8VggkaceqjotfNtvN27cgPPnz8PJkyfh8OHDcODAAVoInz59mujrnjp9DcztDvO+QBw8zkJjYxPjNMmc7Ir7jB+JIzJYd025T4xilkNMyJOH44IMGCOzoh/oMQZmTJ8L89bupv4dQ3aiHf2XwWSvcSpKyPZoLML1GBNONTEQBa7ZMArkJI81Ma+W6oZU99Z440JbLleVdnt2Vxj57hv1BUTZuD0hGfkOtrokBHyxLMUK3z263hq8ZMXN1rHZ/E2kDxxuYlWpcfPeA1yb+QcbgPia27CCg+uURNUNHe38HIInhvICUoCrTwfoJuRUEZ0uwWjib3QWNWrdj3BKAQPXNXgR2brhxHw49JtmxyM23boMBW7dFAI3F0W7OPWgKu+LF+gS7IY19zc9TAy+BqZHhILvCbHCd4Iug/fx48cQHL6fyMURMus6p4XBXQd+u8bOIWsjdfOz6n6btkS56coy+eYKHL1KfzcmZTNEL86CsBnzOuw3ImaZJFJOXA1j2z3CTw+OkqtmUFtZ2MxV1Bwz0jlcnKJw948me6wJeQ/rz11rfEJgQfnu7TvQzDNaxvDFud72ES4T4Mrq4PgeEGvr3CxZOyE4XNPugVAAHilG+PbWZfg2NTWBlQOJNshauHP3CaNcb4cuuUdNHGZ9rWEdzeFaVUX7w6kAWfiONbOmfmda4Ey5v58y8mnL83hLO7l/C5+ZIPd6wROmUX8/Y02JwPnbLZQBje9QG+LAHW01Au17HtkStoT8S0cu3vidxPV79dJl2J67FXblFUB9dQ0l/P+1FZXcOjZPVkD56C+oRTZVi2rKdNz/a5htO6pF8kQp2uGasnooyq439Jnc0lX4YoMfezf+F0Vs4m1e5XCtPr8trG7kuZtZma5TKYighSorHSY5P+2qm58pXwExxWdS279NcvKW+7eoRfJmQBjUk5YLlN9F0T82kfczGkoeuMOcidXjymp18dGLXL6c6bZLv12AnMysNsluGMD475oamTVfNF7/DW7vSYOLiU7Ap8SsfeQbZjMBSMMXpzEEgi/WIp3vchNb5Dt6Iv+LorruPjQ28us0wtUPTGt/ZaM+HJ3xBbAUvlN9A9t+LixsvnzONnuf3H7CZy2Q+/fZ81e2/dtEezdwS9hCNn8bk00ZipOGrTTCdQ5fQRy43snbm49dIjeLAKcWtm7YSEW2N6/fgPsNDXDu9Bkq+pWF8bGDh+mrixofwM1ti+DM1B+IgZZO1X5fQvDwIOLwpYZr2jUICeAvxQTfLvhpRJcBvDSN36KAy+g7VO6YxIYX4PCIF6FTELhxo31nG87rKqtYiIhNafv3CTZOHf5dmnYInDafSCoBf0l4eQUSXyyTtW5U9CTAR15J21oqT16BJwQbg/Ai7o4teRRk7/1J39l249p1Crw47dD86D7cq98Ov6dPhtOTewkG2doxPRT8/ZcQMCwCDMyOE4fvYMuLQsK3REzwNdX1aodDhy5wz/Wib/aS8odA6nESbwfPX2e/Uj51AWv4uExb3Pb7CblVEJuWK4Gnm2/HhojNFTDWTDKRYaKtMyRsKu/wM6FTZ8OYhE2cQOs+YQ7v2WZMp344z0gVJBUyc30ZPGoi70mCPbC3ZGVTEa90Qa0Fgb3x9zPw18FdcD7SBI5P+RkqY0fCsaDegka0e7y+APtv/gM/fvhOm3x+/qDDz+GW5LFWcVSFAnGbSXTPCQhfLEexwPeorsMXX9zhcziWv6Bv9hs3G4kf0+6Dv7F/LJ+TybqGFbum4fI1VR6+oZMjqJ8PnRJJ++/zN1eyciLD7bbYg0Jo2OKo2ctrMlVyJkg7cnwerFm9GgHQGO5WboRHl49TFQMtj5s4f/YtzU/gwfkDcLcsC37bkgy56zLhxLT+CoF4YvIPAqUOesCyYZ/BhD7/hV8/fkcOuLIy/+LftPAdZbWY6gzVkgkXsmrQuOE6ug7CoZNsuHV5XCD7i8DP/5BgHXdZZSc4NRJwMfaO38R9WvHsrFJmFQmT46nFLOFhOwXBdoNg1RXuCwpa8pYnChphHgkxgK2rV7TlcI9P+Yn25w6ED4W9yeFwaPoQXq+X69Id3L5/XyFgZdXnk3cgbPDHsMf7C8XHj+DrbpVOpHZeTRMu2itLk+BNg0624Y46n/HsLoKxgcK1O+Ntz6EL3PKOo4JZQStuE7fWYuz/q6gawdMnBPxMrASG7VBq2CgpM3IlJuWwvf4clV66f6pKMOgeDh0MOevWyy2eySovPRWOT/2F+tnCpDDq76rnOPN6zXG9/6sUthZf/puKgE/KlJ6tse8Kw79+D2JMPlFYajbCIksw+OKIWiCvB1kNVzd0XwEBzXTE3nCBPSYioplfBOFz9hPN99JteBwMerxtYQ2MgDjGEAvj4OPrs3g7VYGAXwdP0SBhMK56kWwojHQdB06RGcI7nMXnQXbFSWg/A63xj7OCwbds3liF4JXTukzqvxjWfF8zYsjHtNAd3PXdNhOdDY7dKEj/1O5n8tw+V7jf4RYFjIyoRDThor3uIb2oLvB6Iv2Gy06RLuKncaTLSFdwPTeuhmrVH62Axr2QN/AifWst8G2kO7giBgkvyWJjRewK0tBaMfEAp1hbhcNFnCzFyTFcKoBXKvBqQoumIXz27FnI3lT156+Di4/2Niw933tI+dU+Qypv9TGq+quvUXVjX6OaFukFEBC8Xy3HhAEQuYF9lxieL4Zng6lMO2xk7uMbvrYE3EKXCA5bH1t3cJ8YTdUzq6s7bvSSnSpbfHFdrGAlWlGuzOCLdCDcgshrZqAolkm6ob2GdHtXLhpuL3PzQkFKzQSecNFeGc/oN7Vv/0XqxUDvqPOgECD+jZSGtLxV+P9TkVJatQxpKdKSVi1GSkZKcopcs9zbw78aPaZXyahytHdgfVx26Z8q7B+bIzJL69F+Ir28Jm9Hv7fH2zNgB/r/Ai/vqVs9R4Vs8vSZlu3pOz3Twy88w2PsrFUe42enuU+MWuLuH5uEouNEt8nx81ynLoh1CUme4xK6dJZzWNoM55mrgtFxTXaMWu+PIDsW7d8XaTSSD9JIJG8kLyRPJA8kdyRXJBckJyRHJAckeyRbJBukYUjWSJZIFkjmSGZIJkjGSEOQDJEGIQ1EMkBi/DkisHwgFHxxtcKWNRlKoZuL/p1vjldWW10/5wRfHAXv9FSc9zU0qxJswU3qJqgG+GKZ6XGo3/SbSDYElySkJ0iNSA+RGpDuId1Buol0Hel3pMtIF5HOI51BOoV0HOko0iGkeqQ6pGqkiq2u3Q+M6fPxtZSYyMYFM6Y+mj1pTGO4n+ejyc7WD/yGGtxz+PHT28O+eu8m0nWs4V+9d83x2/9cRBHoCvT7aUgpSEtaj28hUgLSfKS5SNFIc5AikMKRZiBNqx/71fQky0+XJAz939I40/8tjTb5ZFmk0cdLwwd/nDJ90EcpwQM+Spnc/8NU/74fpo3v/d/lfr/8d4XPzx+s9P7xg3SPH95f7drr/YwYk08mo32ZIA1B+hXpFYNPXv5PgtmHPzM4nc8hPY/0d6R/IOFH/X8ivYT0MtKrSK8hvYH0FtLbSP9C+nfr7+g3/abf9Jt+02/6Tb/pN/2m3/SbftNv+k2/6Tf9pt/0m37Tb/pNv+k3/abf9Jt+02/6Tb/pN9rt/wEIeM92ZawvXQAAAABJRU5ErkJggg==") no-repeat fixed left bottom;
}
.chame-footnote {
color: #8394ff;
}
strong {
color: red;
}
em {
color: hotpink;
}
strike {
color: #666;
}
u {
color: lawngreen;
}
blockquote {
background-color: #050505;
}
a:hover {
background-color: black;
}
.tc-icon-sidebar {
margin-right: .1em;
margin-left: .25em;
display: inline;
}
.tc-icon-sidebar .tc-image-button {
display: inline;
height: 1em !important;
width: 1em !important;
}
[class*=DailyTasks],[class*=WikiReview] {
color: #b23174;
}
span[class*=DarkColor] {
background-color: #bbb;
}
span[class*=Shitposting] {
color: #794900;
}
span[class*=Links] {
color: #FF4949;
}
[class*=\@] {
color: #9B7A00;
}
[class*=CarpeDiem] {
color: #87CEEB;
}
[class*=Magic\:TheGathering] {
color: #e4a74c;
}
{
"tiddlers": {
"$:/info/browser": {
"title": "$:/info/browser",
"text": "no"
},
"$:/info/node": {
"title": "$:/info/node",
"text": "yes"
}
}
}
$:/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\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\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\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\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\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n \tcursor: pointer;\n\tcolor: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\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: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: text-bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n/*\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 .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-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\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\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\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/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-type-selector .tc-edit-typeeditor {\n\twidth: 20%;\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-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\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-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/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 .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a: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\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/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** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}"
},
"$:/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 v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
"Go Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace
"Go",-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"
<$vars journalTitleTemplate={{$:/config/NewReview/Title}} journalTags={{$:/config/NewReview/Tags}} journalText={{$:/config/NewReview/Text}}>
<$wikify name="journalTitle" text="""<$macrocall $name="now" format=<<journalTitleTemplate>>/>""">
<$wikify name="dailyTasks" text="""<<journalText>>""">
<$reveal type="nomatch" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>
</$reveal>
<$reveal type="match" state=<<journalTitle>> text="">
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<journalTags>> text=<<dailyTasks>>/>
</$reveal>
</$wikify>
</$wikify>
</$vars>
\define dtButton()
<$button tooltip="New Daily Task" aria-label="New Daily Task" class=<<tv-config-toolbar-class>> actions={{$:/ui/Actions/new-daily-tasks}}>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/picture}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text"><$text text="New Daily Task"/></span>
</$list>
</$button>
\end
<<dtButton>>
\whitespace trim
<$link to=<<currentTiddler>>>
<span class="tc-tag-list-item">
<$set name="transclusion" value=<<currentTiddler>>>
<$macrocall $name="tag-pill-body" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""tag='span'"""/>
<$link/>
A couple that lives on a boat. Their website is very interesting to WikiWalk through.
* https://100r.co/site/home.html
* https://wiki.xxiivv.com/site/home.html
* https://github.com/hundredrabbits/
* https://git.sr.ht/~rabbits/
They have a self-reliant philosophy I find fascinating to think about. I too love writing my own tools (emsys and gomacs speak to that!) that I fully understand.
AKA The Ashtottara Shatanamavali of Lord Shiva
https://www.drikpanchang.com/hindu-names/gods/lord-shiva/108-shiva-names.html
|!Number|!Name|!Nm. Translit.|!Mantra|!Mt. Translit|!Meaning|
|1|शिव|Shiva|ॐ शिवाय नमः।|Om Shivaya Namah।|Always Pure|
|2|महेश्वर|Maheshwara|ॐ महेश्वराय नमः।|Om Maheshwaraya Namah।|Lord Of Gods|
|3|शंभवे|Shambhu|ॐ शंभवे नमः।|Om Shambhave Namah।|One Who Bestows Prosperity|
|4|पिनाकिने|Pinakin|ॐ पिनाकिने नमः।|Om Pinakine Namah।|One Who Has A Bow In His Hand|
|5|शशिशेखर|Shashi Shekhara|ॐ शशिशेखराय नमः।|Om Shashishekharaya Namah।|The God Who Wears The Crescent Moon In His Hair|
|6|वामदेवाय|Vamadeva|ॐ वामदेवाय नमः।|Om Vamadevaya Namah।|The God Who Is Pleasing And Auspicious In Every Way|
|7|विरूपाक्ष|Virupaksha|ॐ विरूपाक्षाय नमः।|Om Virupakshaya Namah।|Lord Shiva With Oblique Eyes|
|8|कपर्दी|Kapardi|ॐ कपर्दिने नमः।|Om Kapardine Namah।|The Lord With Thickly Matted Hair|
|9|नीललोहित|Nilalohita|ॐ नीललोहिताय नमः।|Om Nilalohitaya Namah।|The One With Red And Blue Colour|
|10|शंकर|Shankara|ॐ शंकराय नमः।|Om Shankaraya Namah।|One Who Gives Happiness And prosperity|
|11|शूलपाणी|Shulapani|ॐ शूलपाणये नमः।|Om Shulapanaye Namah।|The One Who Carries A Trident|
|12|खटवांगी|Khatvangi|ॐ खट्वांगिने नमः।|Om Khatvangine Namah।|The God Who Carries A Knurled Club (Khatvanga)|
|13|विष्णुवल्लभ|Vishnuvallabha|ॐ विष्णुवल्लभाय नमः।|Om Vishnuvallabhaya Namah।|The One Who Is Dear To Lord Vishnu|
|14|शिपिविष्ट|Shipivishta|ॐ शिपिविष्टाय नमः।|Om Shipivishtaya Namah।|The Lord Whose Form Emits Great Rays Of Light|
|15|अंबिकानाथ|Ambikanatha|ॐ अंबिकानाथाय नमः।|Om Ambikanathaya Namah।|Consort of Ambika (Parvati)|
|16|श्रीकण्ठ|Shrikantha|ॐ श्रीकण्ठाय नमः।|Om Shrikanthaya Namah।|Of Glorious Neck|
|17|भक्तवत्सल|Bhaktavatsala|ॐ भक्तवत्सलाय नमः।|Om Bhaktavatsalaya Namah।|The One Who Is Favourably Inclined Towards His Devotees|
|18|भव|Bhava|ॐ भवाय नमः।|Om Bhavaya Namah।|The God Who Is Existence Itself|
|19|शर्व|Sharva|ॐ शर्वाय नमः।|Om Sharvaya Namah।|Remover Of All Troubles|
|20|त्रिलोकेश|Trilokesha|ॐ त्रिलोकेशाय नमः।|Om Trilokeshaya Namah।|The Lord Of All The Three Worlds|
|21|शितिकण्ठ|Shitikantha|ॐ शितिकण्ठाय नमः।|Om Shitikanthaya Namah।|The Lord Who Has White Neck|
|22|शिवाप्रिय|Shivapriya|ॐ शिवा प्रियाय नमः।|Om Shiva Priyaya Namah।|Beloved Of Parvati|
|23|उग्र|Ugra|ॐ उग्राय नमः।|Om Ugraya Namah।|The One Who Has Extremely Fierce Nature|
|24|कपाली|Kapali|ॐ कपालिने नमः।|Om Kapaline Namah।|One Who Wears A Necklace Of Skulls|
|25|कामारी|Kamari|ॐ कामारये नमः।|Om Kamaraye Namah।|Enemy of Kamadeva|
|26|अंधकारसुर सूदन|Andhakasura Sudana|ॐ अन्धकासुरसूदनाय नमः।|Om Andhakasurasudanaya Namah।|The Lord Who Killed The Asura Andhaka|
|27|गंगाधर|Gangadhara|ॐ गंगाधराय नमः।|Om Gangadharaya Namah।|The God Who Holds The Ganges River In His Hair|
|28|ललाटाक्ष|Lalataksha|ॐ ललाटाक्षाय नमः।|Om Lalatakshaya Namah।|One Who Has An Eye In The Forehead|
|29|कालकाल|Kalakala|ॐ कालकालाय नमः।|Om Kalakalaya Namah।|He Is The Death Of Death|
|30|कृपानिधि|Kripanidhi|ॐ कृपानिधये नमः।|Om Kripanidhaye Namah।|The God Who Is The Treasure Of Compassion|
|31|भीम|Bheema|ॐ भीमाय नमः।|Om Bhimaya Namah।|The One Who Has Fearful Form|
|32|परशुहस्त|Parshuhasta|ॐ परशुहस्ताय नमः।|Om Parashuhastaya Namah।|The God Who Holds Axe In Hands|
|33|मृगपाणी|Mrigpaani|ॐ मृगपाणये नमः।|Om Mrigapanaye Namah।|The God Who Possess Deer In Hands|
|34|जटाधर|Jattadhar|ॐ जटाधराय नमः।|Om Jatadharaya Namah।|The God Who Keeps Tress (Jata)|
|35|कैलाशवासी|Kailashavasi|ॐ कैलाशवासिने नमः।|Om Kailashavasine Namah।|Native Of Kailasha|
|36|कवची|Kawachi|ॐ कवचिने नमः।|Om Kawachine Namah।|The God Who Possess Armour|
|37|कठोर|Kathor|ॐ कठोराय नमः।|Om Kathoraya Namah।|The God Who Has A Strong Body|
|38|त्रिपुरान्तक|Tripurantak|ॐ त्रिपुरान्तकाय नमः।|Om Tripurantakaya Namah।|The God Who Killed Tripurasura|
|39|वृषांक|Vrishanka|ॐ वृषांकाय नमः।|Om Vrishankaya Namah।|The God Who Has A Flag With A Symbol Of Bull|
|40|वृषभारूढ़|Vrishbharudh|ॐ वृषभारूढाय नमः।|Om Vrishabharudhaya Namah।|The One Who Rides Bull|
|41|भस्मोद्धूलितविग्रह|Bhasmodhulitavigrah|ॐ भस्मोद्धूलितविग्रहाय नमः।|Om Bhasmodhulitavigrahaya Namah।|The One Who Applies Ashes All Over The Body|
|42|सामप्रिय|Samapriya|ॐ सामप्रियाय नमः।|Om Samapriyaya Namah।|The One Who Loves With Equality|
|43|स्वरमयी|Swaramayi|ॐ स्वरमयाय नमः।|Om Swaramayaya Namah।|The God Who Lives In All Seven Notes|
|44|त्रयीमूर्ति|Trayimurti|ॐ त्रयीमूर्तये नमः।|Om Trayimurtaye Namah।|The One Who Possess Veda Form|
|45|अनीश्वर|Anishvara|ॐ अनीश्वराय नमः।|Om Anishwaraya Namah।|The One Who Does Not Have Any Lord|
|46|सर्वज्ञ|Sarvagya|ॐ सर्वज्ञाय नमः।|Om Sarvajnaya Namah।|The One Who Knows Everything|
|47|परमात्मा|Paramatma|ॐ परमात्मने नमः।|Om Paramatmane Namah।|Everyone's Own Soul|
|48|सोमसूर्याग्निलोचन|Somasuryaagnilochana|ॐ सोमसूर्याग्निलोचनाय नमः।|Om Somasuryagnilochanaya Namah।|The One Who Has Eyes In The Form Of Sun, Moon And Fire|
|49|हवि|Havi|ॐ हविषे नमः।|Om Havishe Namah।|He Who Is Wealthy In The Form Of Ahuti|
|50|यज्ञमय|Yagyamaya|ॐ यज्ञमयाय नमः।|Om Yajnamayaya Namah।|The Architect Of All Sacrificial Rites|
|51|सोम|Soma|ॐ सोमाय नमः।|Om Somaya Namah।|The One Who Includes The Form Of Uma|
|52|पंचवक्त्र|Panchavaktra|ॐ पंचवक्त्राय नमः।|Om Panchavaktraya Namah।|God Of The Five Activities|
|53|सदाशिव|Sadashiva|ॐ सदाशिवाय नमः।|Om Sadashivaya Namah।|The One Who Is Eternally Auspicious|
|54|विश्वेश्वर|Vishveshwara|ॐ विश्वेश्वराय नमः।|Om Vishveshwaraya Namah।|Lord Of The Universe|
|55|वीरभद्र|Veerabhadra|ॐ वीरभद्राय नमः।|Om Virabhadraya Namah।|Who Is Violent , Yet Peaceful|
|56|गणनाथ|Gananatha|ॐ गणनाथाय नमः।|Om Gananathaya Namah।|God Of The Ganas|
|57|प्रजापति|Prajapati|ॐ प्रजापतये नमः।|Om Prajapataye Namah।|The One Who Is The Creator Of Dynasty|
|58|हिरण्यरेता|Hiranyareta|ॐ हिरण्यरेतसे नमः।|Om Hiranyaretase Namah।|The One Who Emanates Golden Souls|
|59|दुर्धर्ष|Durdharsha|ॐ दुर्धर्षाय नमः।|Om Durdharshaya Namah।|The One who Is Unconquerable|
|60|गिरीश|Girisha|ॐ गिरीशाय नमः।|Om Girishaya Namah।|Lord Of Mountains|
|61|गिरिश|Girisha|ॐ गिरिशाय नमः।|Om Girishaya Namah।|The God Who Sleeps On Kailash Mountain|
|62|अनघ|Anagha|ॐ अनघाय नमः।|Om Anaghaya Namah।|He Who Is Pure|
|63|भुजंगभूषण|Bujangabhushana|ॐ भुजंगभूषणाय नमः।|Om Bujangabhushanaya Namah।|Lord Adorned With Golden Snakes|
|64|भर्ग|Bharga|ॐ भर्गाय नमः।|Om Bhargaya Namah।|Lord Who Ends All Sins|
|65|गिरिधन्वा|Giridhanva|ॐ गिरिधन्वने नमः।|Om Giridhanvane Namah।|God Whose Weapon Is A Mountain|
|66|गिरिप्रिय|Giripriya|ॐ गिरिप्रियाय नमः।|Om Giripriyaya Namah।|Lord Who Is Fond Of Mountains|
|67|कृत्तिवासा|krittivasaa|ॐ कृत्तिवाससे नमः।|Om krittivasase Namah।|God Who Wears Clothes Of Elephant Skin|
|68|पुराराति|Purarati|ॐ पुरारातये नमः।|Om Purarataye Namah।|Destroyer OF Town Or "Pur" Named Enemy|
|69|भगवान्|Bhagwaan|ॐ भगवते नमः।|Om Bhagawate Namah।|God Of Prosperity|
|70|प्रमथाधिप|Pramathadhipa|ॐ प्रमथाधिपाय नमः।|Om Pramathadhipaya Namah।|God Who Is Served By Goblins|
|71|मृत्युंजय|Mrityunjaya|ॐ मृत्युंजयाय नमः।|Om Mrityunjayaya Namah।|Victor Of Death|
|72|सूक्ष्मतनु|Sukshamatanu|ॐ सूक्ष्मतनवे नमः।|Om Sukshmatanave Namah।|God Who Has A Subtle Body|
|73|जगद्व्यापी|Jagadvyapi|ॐ जगद्व्यापिने नमः।|Om Jagadvyapine Namah।|God Who Lives In The World|
|74|जगद्गुरू|Jagadguru|ॐ जगद्गुरुवे नमः।|Om Jagadguruve Namah।|Guru Of All The Worlds|
|75|व्योमकेश|Vyomakesha|ॐ व्योमकेशाय नमः।|Om Vyomakeshaya Namah।|Whose Hair Spreads In The Sky|
|76|महासेनजनक|Mahasenajanaka|ॐ महासेनजनकाय नमः।|Om Mahasenajanakaya Namah।|Father Of Kartikya|
|77|चारुविक्रम|Charuvikrama|ॐ चारुविक्रमाय नमः।|Om Charuvikramaya Namah।|The Guardian Of Wandering Pilgrims|
|78|रुद्र|Rudra|ॐ रुद्राय नमः।|Om Rudraya Namah।|The One Who Gets Sad By The Pain Of Devotees|
|79|भूतपति|Bhootapati|ॐ भूतपतये नमः।|Om Bhutapataye Namah।|Lord Of Panchabhoota Or Bhootapreta|
|80|स्थाणु|Sthanu|ॐ स्थाणवे नमः।|Om Sthanave Namah।|Firm And Immovable Deity|
|81|अहिर्बुध्न्य|Ahirbhudhanya|ॐ अहिर्बुध्न्याय नमः।|Om Ahirbudhnyaya Namah।|The One Who Possess Kundalini|
|82|दिगम्बर|Digambara|ॐ दिगंबराय नमः।|Om Digambaraya Namah।|The God Whose Robes Is The Cosmos|
|83|अष्टमूर्ति|Ashtamurti|ॐ अष्टमूर्तये नमः।|Om Ashtamurtaye Namah।|Lord Who Has Eight Forms|
|84|अनेकात्मा|Anekatma|ॐ अनेकात्मने नमः।|Om Anekatmane Namah।|The God Who Possess Many Forms|
|85|सात्विक|Satvika|ॐ सात्विकाय नमः।|Om Satvikaya Namah।|Lord Of Boundless Energy|
|86|शुद्धविग्रह|Shuddhavigraha|ॐ शुद्धविग्रहाय नमः।|Om Shuddhavigrahaya Namah।|Lord Of Pure Soul|
|87|शाश्वत|Shashvata|ॐ शाश्वताय नमः।|Om Shashvataya Namah।|Lord Who Is Eternal And Endless|
|88|खण्डपरशु|Khandaparshu|ॐ खण्डपरशवे नमः।|Om Khandaparashave Namah।|Lord Who Wears Broken Axe|
|89|अज|Aja|ॐ अजाय नमः।|Om Ajaya Namah।|The One Who Is Boundless|
|90|पाशविमोचन|Pashvimochana|ॐ पाशविमोचकाय नमः।|Om Pashavimochakaya Namah।|Lord Who Releases All Fetters|
|91|मृड|Mrida|ॐ मृडाय नमः।|Om Mridaya Namah।|The Lord Who Shows Only Mercy|
|92|पशुपति|Pashupati|ॐ पशुपतये नमः।|Om Pashupataye Namah।|Lord Of Animals|
|93|देव|Deva|ॐ देवाय नमः।|Om Devaya Namah।|Lord Of Devas|
|94|महादेव|Mahadeva|ॐ महादेवाय नमः।|Om Mahadevaya Namah।|Greatest Of The Gods|
|95|अव्यय|Avayaya|ॐ अव्ययाय नमः।|Om Avyayaya Namah।|The One Who Never Subject To Change|
|96|हरि|Hari|ॐ हरये नमः।|Om Haraye Namah।|Same As Lord Vishnu|
|97|भगनेत्रभिद्|Bhagnetrabhid|ॐ भगनेत्रभिदे नमः।|Om Bhaganetrabhide Namah।|The Lord Who Damaged Bhaga's Eye|
|98|अव्यक्त|Avayayat|ॐ अव्यक्ताय नमः।|Om Avyaktaya Namah।|Shiva Who Is Unseen|
|99|दक्षाध्वरहर|Dakshadhwarahara|ॐ दक्षाध्वरहराय नमः।|Om Dakshadhwaraharaya Namah।|Destroyer Of Daksha's Conceited Sacrifice (Yagya)|
|100|हर|Har|ॐ हराय नमः।|Om Haraya Namah।|The Lord Who Dissolves All Bondage And Sins|
|101|पूषदन्तभित्|Pushadantabhit|ॐ पूषदन्तभिदे नमः।|Om Pushadantabhide Namah।|One Who Punished Pushan|
|102|अव्यग्र|Avyagra|ॐ अव्यग्राय नमः।|Om Avyagraya Namah।|Lord Who Is Steady And Unwavering|
|103|सहस्राक्ष|Sahsraksha|ॐ सहस्राक्षाय नमः।|Om Sahasrakshaya Namah।|One Who Has Limitless Forms|
|104|सहस्रपाद|Sahasrapada|ॐ सहस्रपदे नमः।|Om Sahasrapade Namah।|The Lord Who Is Standing And Walking Everywhere|
|105|अपवर्गप्रद|Apavargaprada|ॐ अपवर्गप्रदाय नमः।|Om Apavargapradaya Namah।|Lord Who Gives And Takes All Things|
|106|अनन्त|Ananta|ॐ अनन्ताय नमः।|Om Anantaya Namah।|The One Who Is unending|
|107|तारक|Taraka|ॐ तारकाय नमः।|Om Tarakaya Namah।|The Lord Who Is Great Liberator Of Mankind|
|108|परमेश्वर|Parameshwara|ॐ परमेश्वराय नमः।|Om Parameshwaraya Namah।|The Great God|
iVBORw0KGgoAAAANSUhEUgAAAV8AAAFnCAYAAAF2m3rXAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAqddJREFUeNrsnQdYFEn2wNdNt+F27/Y23O3uf8NtcnO83TUrKhnJIAKSTSgGQFTMgpIVBBMmFANiAkTFgEpWEHPOOeuuaw5Q/6qGHrp7OlSnCdr1fe9jmOnpef36N29evap69cwzWuNuP7ZYbG+SinXxBjegAA4pNqpyNh43K6ASH5MKXaxqySocyh80pBXb9hna9OFciuIorraiwD2o6cN69j2BrSwp4ZE71Lc2OmlMhr51SCXmpE9ltZ5IREqVUPQkn7I8Xy6G1OMoDGRblVSWFPK5Xv2OiVBW3+IYd6JekrLj0ukKMxWXKkyl+ZjHVpZp3aHxALj40T/Y2feQ7nEnp1OyLgBJ0dzvwKbs7yUp+2roMOEPamuzHXiH3NE9lqIsMkbc1Ds6hZFgKdx4gitMK5PS3m6P3nO9e2aAY1vnYiscNYEdMSSicGB+Q9ksyfbcgbKZNIXZjpuROk/QwmwKi/7C8SlLPo+UFVJYLMeilaaexMHrMacSeVmjdQrHxB7RKdzORv+XjLwoHIXLlvcUhcYyphWtXK/ondyhW71OWaqV0V+2Cxw//pCg0swfFvj3HhbLVGXJD7f3esSJA1XhPv1KQQe7faxKo2O8gu/VcSncDr6HqjDSBz7uj6UwsiBVYaYChytm6ylMWpf8a+/1UE9hPitTFcb1wZPp1q3VKc1UOH/eGJ0CUxPCwPTE/jQs2NBg3g02halKY3/Z0Aeh//kUhi/rCVKktDCPplhpXjK2wm0ZCnfxrivGUpj8v53tziQLh0N6Ctu5nwctfvkKoPax8391woYIEmffx/ViFEbi7n+HP3qDL25jO4D8AlEVJjklFY5aOxj82v83ToW3rU3DtjCptGC42XjAl8zn2ZBAj/eXzAZk81/iRwiXwmz4sClcvX4psHY5jqcwVyOV/fDTYFeqFUgr19XVEcq6z3DjVJhN2BSekrYDdO5SrYzC5F2wcDjcpHDVXHCycoEoRZGER51nVXhczBFC2bZKKAzf/DqTtXPlS8G5iuXgeNU8LEVPVGYT72FTFn252eIRSQpz/QLuLVlAKMCnZG1WCu1/NoWZP1CqKYwkNWkzu2eYkkDIUZZfRByFOzmeIF8vktUhZSrcJLXAzreC19o2EWnAwnMN4DoX2/+Se9LUD+nsfLbBX9ruIv72tXYA3SauAtaDJtEEhZ9UQc+5Dt7FqbCNx03lFUZegvwgpCT6G9RrOE1hpqJUoSqL3uMRs4nTypIVhm96Cb2xcB0Al64AmsJBFjbAaUAN8ZhUOnVqKoicOI8QqrIpqbF6CpMiW2H4A7YecDSqwggH8jGSHlPW6pSlCokEm7LoHOR5OIItKyFleRsRCtruBN7xucQHoS4R+eFk2759u06Qwk5D0onXmQp7xy/VfQd4FAaSlSUVRh8QHDxY92FMhf+4dY/2HvJ1LuuyKWzj/oeyCvtHpOgpPLmgWk+or1MVpiqLpIP9fk4ry1L45Gn6h5KPwzI38CrLZVnyzli7XnwgWWHEHl9bv+uknsJC1uVTllDY7dh1Ho7vCVqYqbSVSy0RpCAHT3JJ/XAhZclj2ZRF7WjED/VQ0F/8Lx6fVcmToBiYVDiw71iawkyFmMr29O7NqixqawKaA1UUZn7zkSK9PAJ0SvWzc+K1KlXZvJxcQkhFmQpbuV5VTmFS6e7DpxEKUVHgUvTqqYM6pXaMdaEp+dtH74BDg76nKYztj3nap1wvQGV/FnozVOZvpIIVKf1AouuPNIWRNCp8tVXnkn0tOm7YAhWdBmUUlNCna+y4nc3ufmalcEfHk3PMSuGWncr8WELR4WydTFvP2+TjZ01h9J536GpxZqLhx5iZLXwcWCB2YNzgg+NsQ7hiB8YNojR5Up8+/Cl+phzfYilmYBwoqixTsqdNAucq2kgeITL44LjcoS3a4GTYMbY78YpsZdkU7+h4XPbA+P71TtIHxvmUDYnQ//CAsIbgpLPTGclWJ0dBD63/lTbOLGqcA7otwQ9y6FYH5k0eKmtgnKowOTh+tqwF+f8DQWWFvmzMNNOh8lmihm0VGRhvVPBvYpSljnXIGWfuEdmg8HnocVQdHEcjo0jZv7/yEvHX1uMvznFmH7fO6g2Osylr7XaddyQfx8qZU6pFuTyG4s1EjzUzJTikgFNhrnFmsT4ae6IHm8Lt7fZyDsOyjTOzKSyktIvnerbBcfHKosSfrcctQYX5xpkXzSkjnl+7dC0QM5qPxS+y5t9f/6ot10h+flYMTdH0CaG6x/tKswUHxxUZzYdvaKY/OI6+cNdYP5g5shkW7EQ8z5z4IXY0v71NtagZVTpluYZtyQ9mDoyTg+MZqTs5R43EjOYLIsEW3rEpjPysq88RsDArg1Dyv66fCI7mM/kWUhhnYPxjtgOQcmwD49TRfNRahLcg/sodHNfNZOn6QHgkn+35DvYHeBX+48I+wrJocFzIwkLWJRVGFrZwOEI+9zubsie4LqS97W5CudaWZceYCju6bwFnynNED4yfrMwGXD/97eSO0ZFIML+UtMFxgbFm5jgz11izIgq3sarcL1Xh7XNTWBUuXLiFU2HZo6BtbWqvMr0IGtlhTvLgGxyXMjAuWWErl4u/4w6Oo3Hnw1Vz6zknKg1OuWvhu5xTYSTktElFB8aZH2JlvZw2bMs1OE4+x3fhiowz8yls16+INmwrNDjOVJg5mMgR0t6VpHDkKPo4c3unLXrjzLaDM8CQCXG68eWkjAxOhdkGxml3zvWy6MFxzlFQJF7J+YTCHS0LaB/ONjAeNTEL2IRP5B0cJxVFYawoLKBO9XwDM87dQT35geiDfMdk6Y0OUQfG42bmEkpLGWvGVRh7rJn8IM+Ehi9exYGzxOs7j19kHRgXGmuWMmzbDGA28gMDBkwAzmPncw7dMhXmUnbPqSvipx8AEY380FA7F8ljzVScqOOAkhTmGhxHb2YbZ8YZa6a+xycmW29UlKmwpcsFcQozle7Y5RgxOK67zcl5nAp78yjrPSGHa3CccxRUNBKxiXtpQ7djl1Rs1I0zu/npFBoZHa9nXaHxZrKt9P1c3LAtn8KjYhtma6N8MJXjoN4j9aYfNM3nydUpGhwcxalo3cN7rAPjshQmGbt//z7raD45OB6UsQYEhsVyWpWqGBrFz1+0iHhcHPI1dZxZsYHx73gGxp/DOQFT4bQunxKPNwQ3KNzp8/+ADvb77rW2LD/ZstOmaqhoNpREKJFQfnhGayKahcPRRLXObePxV+xTb2Ar1yu5Kg3Y1mv48hvoNWYfZ0JMISFFiyJB8ZL+YEbqLBDBvpxbSP75tBnzH7hLzeVOF+CQr58EI97nWiqPJDUhRxGjcsn4sWuwjG1OBiUUHpYAA7xJ3Bfk5ndXVcPKoPqUqRn0debQt5gB2vOVrWRPGdlW4C9o4LULB4s9b0uTIFXsHBuRNEmSgN7n5VJsPNeBO1lDyUlNcsS1+32dgfOyRoma9iAkqhrWqyeecdmEOs+J2cdEo75qGXvV/OGcrw0eL8nIe9WYE7iJaiy/ftIvuKETX8N4rlbW3Cw5c7rOV7amGZAsfMIsgKIIwQwFfBqf+0ipCyIzJHlZMaC0cKXe82j4VYxxkIxNAyB4UMO3C+fGB4fzz0M7vvk3PnpfkmVYlud741ws2/QvtpmEpHGZA43M8TqlSY0Yx+++MF1DX7FG/Vng9SAcItEcJr5j2lhVNY2WtfweVBdN1hl4+YJNxGvUmQ64rsLRpw706NuU827+3TjwxlsNUQMq6/LD73OwzjMkDoDpc3Yb/weOXlNpryhjsA2lF8wfy0kxznnR0OPYMVtAUU68IpSL/KGLVs24YknjqrHDNQ+yvd1uUefHmXIoxcCO3nXK1FbDNS61uAvz4jt2OQr43rdlRRKvgRfPLaXdCDT3TeeTMUI48jxHqqQbevG0gWB+eiRnJ4WcB8qQd8Uat1CI2rbELK3DtNdQMQQuxfv0WY41fyl90k492nG/LbizzPh/qLfrTf2kGplpK/jaQEXoZZt6gTMdGomly0XdRVMLnXFJv/DLrO7EEEbmMjCSLUtD0THNFPe7xIVZVz8kZtzZ7hScr8XSp8cSpmE8fLax3oD2ttvq7brewzIwkvzFG0T9TvAZWVYUwfwwdBHUOcQN42mHOAq5sBt41OjjulmtxMyAg9v15hpTZe+W6ZzTdplSVbQMy8BiSKbWyGIaOWpItbwkEL24zDnAPatxO/G6kIHRehTqV51sfAYWO0GWb6a6HANTjaxIlo1xAt6xeGr8y2dg5jTS+OFBhIEj0iJ1xvac7UkYtl10O8kGRvLvd3/TcznNmjUDRypng/TUndgG3rNloc7fK2ZgsW+kTobnMjDb60jx49XZOoq/D/leV02u3XBpBqb67pSkvbTXhvTz5JxgzyXI7aD3Zk7O1xkYVfyQbGApd4SsTUUV/TnFtXrHLJ09UXfx9fV1NNcwPjVEMr1SFwXofms87+oex8Ud1C0W4Pl2LlM18c4kGD71PtPANu5/slJMTpMXO79fjJwtz+VcD8Dld6nJpXYY7k9VA7e1rrlGMe7XjcadiRM7Mw0spSQin5yuWKw79/WDVRjGreWM641m4JadNq1vNO5PYjsnQvkINtm1JE23poIqQhT7NFYe5xLmt4xPb5b06YvqEQzvOvzTDCd3wWVkqkxJLcEy9O5l6WBfwRSsYzvYHxQVkrWlLNBipk2NQjHDuHFSDNyzkw3oY2UPQgIH6eaN2kROpq1TSZ4xldeQezZPJ1Ke1HUsSGwj00UZ1+TcBG5ak6ksMiL1R5I5MZe5EEioACVVklNjWRcL0cTnseA3CtfAUN40moHRMi8uA4cERQAyp8E2g1+KcfkWN5HSNW6j3mdxLVHDTf6rYlDYT3gJd+UMuR8HsWo2Mpc21VzIyGzrl5iSM3uc4HI3YqpBCntRxd5OXqzFQIl0gNMZvcK5ihsY2ukekNiYboK4qMQVOgMH9YrmNPC01dvB/YePaOutSBk7bTGrsUnjUguVNixAW8271qVhCcliViOjHz4BiuvlGFdWu3CJUlwkqWHdl394UtOiiJQCYOGsb2D/yav1zsVm6KtXrxKvsS0WYludx7nkJTmf12Wo4iaAQo0YzYhsulD/iGS9hUce8ctoF7/j2EXW5WGknL7yp+78iHI2A3IZl2pYtiKcOGEli5GtxBp3o5IGZi70Iy8uJDBc7wK9Odbe4a7HI8W573lRhiXXQXV0PP5YdYrZDCVUEJetPXrU9Lhv5oYbQivSkCSvqBI0bHT2Fl7j8hkWFTplMyzZOjufuC3FwFC6yDLwyZMnWdcpil0pyrxovyFpgjWgcaklJbDfOD3DotV7fIbVrYuM/PERWmo4y6uDehTzGYk08r59+3hL5JKypfwv1gXMXBQjI05aVqYrVpy6ooJ4nJq/jdeoaNUr06h8roCr5UHjrmwUtiWSAhS/hmvgm1IIdfPVV4SLYi4jT0hfpDMu+dc/jT3M6tk1BNuo9x480luij1ZE7qyuYV3Zy7UGFWOAV70I4tq1azQlttbc0Tumvr6e18iJs/MJwybMXKnnEshOAa5RuWg9sHsvOJ3sAY6wGJNam9nh63c5Dcxj5FxVw7PqmlpOenFIpvpbLmOG8hiUNOrDGxdYDUeWEGcrI57h9Blh2I6f/1u3IFmCgc1n1ZLWtGay6+kmq3juPU+9gV997df/U+vc//nA/yMN4WZvPa8SvWM14zYY+A01Tvv2ux6/acYlRqXLh2ESWSBjtnrQU2tge6+H1zkMmsNWKwLV6t+UGwaWz44BE8atlmLsP57miOIefSfqUWqupkfy8tNi2IfUC69d3U122YL05AWmu9Bb7dZ/FJgXNgL8gbtviByZm5GBa+jvzJlQog50dCIAI1KUW+Wugut4YG6GDUCKh43kL2dgatVOzMGw56gLtD2CjG9c5kJCszQymmVIKhgZK1yEY996Zz0jnC1vA1y638cyQtig/apGGaZmXEAthDQunV/5Xv3o2y+F9j8ka9mrh/9tNcI4YHLGxS0fQ16wb48ripcqKF3WWzEDG9XI8MO/pK2Dm9RkYK5oAUnZip5g0Yxk1auXXKjUN/DBDV2knMvKGMa1xand4xFs3GJIwaGnRVF8trwtjquJV9u4WWKrTvUZalxD4xg4M3WmlOjkttLGXSWlpBcp3XrhGQRNc1XayD36nhQk2KhlvaACl+QYlypjJ1MnaO/U211NzYpTfGGg0QxM9spwjYvCtP4j9fcxZZNuPbYDj4CtBjMwn0zMvMhZ0mvrsp/UMTD84AimIp4h4BgbjWLF0vk8YcyVc8fpGRgtIDekcdHvBLPiFLNmGkvdtM/lGncMQ5Fb6HmlSiVS66bh7nOohlDLfFENWJH7o6pF6f7HFnCPSMZTGodAZMT0uCjdxqZSDdx3eJOB+kY3bbPs5Itf0I6rZtq+tf9TpSCHB0WJ5pTnQ3AumLq7D3dxpMO0wnRsBqbu/SFF/MLE/wAvXLhB3R84qNg7jQru5OsWc0kH+/3Y7sHGeTM4COlFBo4eeUpWqTBcgb8fgkbGMG4QlF5SjNsDlQPneG2akPK2nrex600i42VnDGMtN6CmgdlkaAI9AsIw8LNSjDsUN6nD6nO7PhA0yFc/JenK1LS22gqee+5ZQQPj3jDqDyUqpfjOu7bgs6+HEY/ReuU2VttE76otIJ+oljXjjghqsemNGpRKGDUrLYJi4Pp6KWUVCQqjd4uuaqJAh2OfAY0rrrRiZeEknWGZFab05+DWCvxgHqFsPV1vSAMr1tlQrHYl6hbz1YqgdkDs3WoFz412VCcfH61Sp24l117gDLko1bh1nBGD3T6dAazdb2DTu3D6eMG6Oui4jOQsSmktnF1f6hUpDnqq1ILTwE4+j/iM/HfF6EVFOqVWXt29aRpW9VW/wHXAxu2ypOqrfQdJHy3JzxoulEc+r1Tl1dZ4hSxqsZVH25bjVIciV+aLKQqKs7E3jgwfkgN8/Ar4jPwn/P8F1UrbMkt1icmE4RQFTUrcR6u8inwrW6VX1mhi+BnZRu4IP4Ov8io1daCSgdnDKLKuAl/3WEyNM+qP4bpl+ZIojok5ItrAqC4nV1FQnvK2ncUa9xWly9uKqTS1ZmkRdBOnwbBh5brnXLpuMUhpWwv7A4SBa1Z56Rm4a+BNZUab2UOiW3rGRfUrccO1qtUNnYtXX3mJyKCJpRiJo0e5rgoJroHFGtmisdpUe9udnBSrYmDSgL91WL2UfEzWc8T6IbJqAQ6Wz9S7+HU5E8C4KD+QMCJY0MBEdeyUAt7PYTOwZ+B9bAOjm8dXOxhNCZBr3JZcxoUvv/hruwJbqjGZJRbZf3xOYxVnXr1gnJ6RWct4bcrk/Cy5pW2pFbAtu1RwxbzNFKf3xb+9TQbSr/KVvuK66GckVsDmcyOdHE9iG3jnpsWiDcxFsaLuARnt218m+1KPkWJg5ApwijMfqFmlM8qqnPVEwXwxVVW3b1zCXjFw8yJJJcZtnUuU88HwzYHMuo5f/jA+mHkcGQuTeQM+AyPKyIu8duWioIHnFmbRDOPm/1CR6tcVa1ZIMjCS02VtecM0yfS26lyyg+04trrAXAZGPrqz4wlaDffrN6/rDIoKM1MN/I3Xt6LcBJK1S9cq6oOZJcbbM7YQUsTAqDgm13HQwLW4BqZWW91VPFXPTTAN/Inrp6Irs5bmJatqYJYS422kDhlh3aU2VlU9cAxMjnQQI8gp62lF8snmt7i7zriu01yBxzBPSTWDl84awfqjGRrgINrA6PiJSdV8Bt4ki16hY9/6d6c32YzbxmrrDb6eH2GMbVk0AwctDiQobhHeAnjP6kY8J6WGu5CImcxC3RRF6SL5d3CPZzMw/FHsK2hgxlYPyLjNvb8E3eZ5Ad+FPqCwfJUo437+yftg+eyRgsYXSzC1hrtsA8M3XIVSI+Y9HO7hn3wGbmdTQzMy1Q+TvvjcvtUGL5BPujMuA8uqGwwPbgfFSSzxTOP91GphGjzP9zjbPJDy+PFjnZE79m5ntB0IyC4y1cAO7lXyDQwPHCY14mDZ4uE5tKs2joHPli8BpysWqWZQUk5UzgenKhZiRw7k46S4LTrfa7TK1/Qft6rLXL1ANgPTtnioylLFuNTPEJ70fZpmRKZxkTA3plLdwGhSCMs2D4IGPlo1h7jo81UrVdtHg2rcoiXFQOzUg7YsBu4EO0uM97kY0sCsPcH2dnv0DLy3ZJbqG5WIoRfXwCxu4pqqBkY1zhuN+z2Xgbl2gjlTnqMzANrrAtdwewumgP1rpwkehzY+EeseqFtaduxyzPg7EJD5CNxEPVXcfA6IplLsJiXHqho2KhHTLUbpAXIio0kYGP75P4pxx4rZqwK5D1UNjBGisRnSVPbQeBV2i69LGYVmE0QOjrEOl8wE26YmgKOVcwSPXTJ3jehdYEx2kxI+A1u5XsUyMjlFCk03nT43W9KP29YNmdfQDgSdQ+aBjoELVDcwlH8Y3cBCFPextKOVpnUdt4C2SYnz4BRQWzyd17Bor2bmNju8O8Hw6ETOg2PLebOcZ57JG5hZ+9crOZ91qx2cXWGUMDBpSHIvUqqgb6NR3AT8oPexL8Zx7ZkOjjU0A3snNG3x4JVSoGeoZbPFbbEjZOC2tluxarNzzQMxhoGD9Wdg1rEqajdwCW2vCkeb+bz7GEnZy8gufCKwjWKvOuXc6yrWfhkm9UMnlDxBE6VJBT3iljYUtO/gTts8isvAy+aI3ygqPiUWuI4qZF++y/gs97FFnIZk2xjWqAZGi/8mZwKw9wD7PkY6Y0I3QGwU1XgBfLtxzc+MZd2zaOVcfjfhGKI/R9graQ3rZwVZeuu7g8YFOBg/dImqGBXa77ZQLXf3QHYD+w2bQhjYp4MHp4HR1jv+Y6YL7sQ1bvJ0mnGj4+Ma/K/vI0F6qfXj3TuGY7kJ1UrPQHs9K7ZY/oYt7AamFrtH4ZDj0JWsFx63YD3WdmdIhLY64zJuL88gii5sO3EdVtfAUgzLtt0ZUs42pIrFwPAinHeyXnzB1sPgwIEDejtwVW7dymrkQclZhHGRnxdDLzVUZIuLaT/SlP2XlTIwUMLAaA0z20W5T1hGXATzwnccv9i05wWLkUmhGtgzcYXeVmeE701cK2zcpJWckQVaIkx9rJiBldqJi+wyc1NTK7i5yL179/SMu2PHDt1ect6T2PeS46K3l3sA6yYnnvGS9pNbZnQDbyoFvF9LPgOjveOOXbiBvemJ0GZ9/lGpsvaTU8QPQ53/UNLAXDtxNexQq0+w0I5cfMblNXDictrnB/UeYTQDA0MZ2CNmA+0CE5dXYW3WV7L3NOePV8MOtPTzoi650HY9bLuJmbyBHzzgN7BYekkZl1PGa2Dac8l5gptLcW3XxhQ0bZfFyC8ZzcB8m/XJMTDfZlFUA5MdG77PPXf9FraBVdty8vTp06INPCNL38Chts5NF0oJrcQYGHe7yV7u/oLG7Ze5oY5vw0GD7ul56tQp2dtNkrkIJL2du4k2MK5xQ226CBo3KGNtndCOjmpsN/kG31aTdXV18gws4Cb4jDtiQYmkjVLZPidkShGrnqv8viC2m+zjlFgnch+553EN/DHbB6PAnjQymrjH1Tp2OUqszUC9HlRChmyD5my6LGTg0OnrZNHrNywDy7h+aas59Wdu4oeTtmyUR7J/5Pbv38+7M23mnFOce3pSt5oM7Du2KVyyc6HRmzi7oGGT1OXltB0SpVDbw7u3fhJp+Vbeb9pKxqapQ1wGP9CLJFwuqrcrLV/TG8dyOSTKTbBtMxk/LRdEzCnmNCx1K3ehCOWoQI+QNPD6wOY6glM8utbhlroxuIGZ/pp6scEhUU2k+YbSDIz+DvToDmKTZoOhoVGiqA3qFY21eerRgw03/+7du7RvGdNFjHMPFeOHbQxqYKSwmB+75PlrwcTFxSBxVh7xeFz8dI4IwRGb2qj5W/R0uPVXw17P+3btJv6en9Gbc3faSJeRprPtr9CeykwD9+zWS2ecXh4BtN1o0d9Rs9YIEoskYGA8q3HZbjBh4DOHOA2KZGiHj3W70vZxTlPWwPDzz0k18LIVwgb+6+4DrC1/qT9sXIYNCYrgdB9cxkPb/VYl9gT7h7Vl3UsZid1X7+qe6+60UJSBUb0NPuM+J7d7LGRgvQwYpeNBNa7f0HROw6KUI5dh79x/yLnDN3Vf5Q0z4jgNjKTzF/8hnnPpsoE9J8FTwFTtgeZvoHwJ5WOxb4SG/UEpJYQM7PXj+7wGbvvJv4nnrJyOgna2u262sao636pz2eFWnbbsbNlxY0ULi3UboDFnQ0mFEovWvEAZgBZ1PqM1rWlNa1rjWF+yZ/QvbQpamaPu0L9XanfwKW8WDkemPtPsrdfNEF4A9X5Vu4NPeevsfH4BBOF5MwK3mUO3+gfandMa0axcr0x+7oWPvjYwhB2gTGqURCio9kMJGgLh24sYSi0q5mHlcjka/nWD0kq7g097a/bWW3aed09JBBHtBllhzA0IeQTB/rZ2g5+C1tpy64cd7A9P4wG1DaokzrtDWv/D4HxFa9l7ates8gXjx65RE2w/7Y4/wa2xmG89FwCDIncadJN4UtCXY8TwUjWAztbuunkDa8G7GXOfM+DYZiujQCsk86ZMVhrmqxoRpgPmi1BmEV5zTMO2ZUPi8G4k2lnAFIHl9dCVrYCjd52SMO/VKDIcrG9DeUgaf+TEBmDRX48g/JsWGVVjduCyyYENjkp75tc0ypQFdibVwK4BTTtw9ogUf4OMFdeqKWfK2qsRL1/X6JMGrBPTmB7BTdCGDjPcXpLUrV9KlvUBWRnpID6mAIQN3A8mxBSC1IQcMCVlHshMnQlmpM4i/k+asALExawiXq/MCzIYxOsXD1ItRadRKQztYjbjhVP2nHf0kX4TEGRCAMyYNNtgeVsUdy+YNlFxiH1CrqmptzbXjgHtHC5jjU1rgHZEijpbJJ+raKPbFs6UJCT0FOt+rWLEAHq+/bSDy5l3HTu5yeMiURLefgMPABMdReMUZ99H4Ogma1EAx4wpMoRuy542aDvxGaT/KDq4bILgFguvKXpZOTI7farBvfDS2eOFPu80lPlQusrawdBEwc3kM46LnzC4bDIsoaG64JMEp1hZnJnICRUakBF7vsPFdmp2Ms9CCTAncOcLGUwKuHwSOEAdUKhbG5mqoEKHVGD2r3cyaJZGipgquEWCAwixysPLlHHpAPiG8uuBdsrA2cAd5xhTEnIoXMp7DTm4Y2rgbhAyDvrJVxtcHBmTBsDwpHoQ2H87IWirAy6dye1r7L0eml2IISX+R1/8I1tcBeE7uO5XcHzTb3IA/thUwO2JYxhmdoHNYwaHA+DV0zA3l7qIe/L44ZzHIbgxVtM/MULeDz74iuZ+xysnNguCfcAUwB2OYZB/o1IJVFBHTaRXGjeG0Lbt6D0Zxo8xWMdaOBx6YsH1D6M7lDUrpnMCWLr4R16Atyz6wXRDB3ixXjyGeAzlX+SxHkGgCHlWU7pRqIKbbrc4l3UEvPnzYkFqym6s/WHsut43OzjRCKZbgPj0Jfe8i99pwFav+ElM6DDGWOB25zDQSY7jFb0JqFYLKvou5xwIPiqMK+eOI+Dl22hOZGEeZWPYEHmxfkgEAD0iGsIyJBHjxL1/5/re5t9xg4bswmLctgLvURRccrsxJUOHBVOiafCKAdjU4mH3IAAGjFanw2u2AEPDPEedVgflZcz3KXJTUKFWru3aJIUOjsd18E0YMYgIHZh7/O3ctBgbYLRJrVLXOj6mwqCxbnQifirS7LwuvMgtUPKhPCvhvbINTOZmkVi7yZtZhfa4/eebvyMDEvLmOx2Af/fxYFX2eM6NKt38Ht7D3SORujueXFkxNwUkxK7CPt7K9QpoY7VN2XkX3RtGOKlD90VL400fYmrHS8Y55IHr9Zi2ExPamlvprEMH220gN3MkOFo1B/zwzScgxNtGcNNlVKqbD2K0yadyo2kxoGB+bOMv0Anw8isfgW9+TjVqeBI/9bbSYUS0KY6+7VAqNlUybGjI4zbtmJWVFqkH644NUwjvfKBspu656Rnb68Rssq1UZuKZZ5qBnBkjiV+IgZGmk7JTaSTuT1OBt1yqYdDPIM4Oukp8OYYOFrepOP0ctYIQS/XEX/2UpD8U3KjDkaq5ZgdwROQOYuWKSJjvGWUWG7y4UUp5XTV69x3sDxDn7Oq7HtSsSxcF8IHy+Zz6zkybyR4TwzBICb3TU3fSdOkWfNekAUbLrfTfVy/HOw8yBLzPSvK6LpcMlpoiz7sqe6woeEmZMaWGls4jzzc3YwbInrGE9Ro6O59VRPfDlVk0XaqKlhkN4K35foLQbc0P4Hz/2fK2dSaXtVDS66oBL8pgoPMunz1GErykOEJPwqY/eu0o/IlHu4Tr71R7UJlZZQKhjaFkZuoULPDQQleOc9xFzGACPNMQ8N6WmmFgE2u36xwzwf6QDDd636hhWbLgZY+HG3TeuHKF7nWbxi+L0l/KwiXrWPVZMm+LYYffHQ6DdkR2aDuIGDibF8CM5PmCO1vA4x4ZzftCZV4X5Qndb0jaP7BpwOCo+CFjz7vEe7eLjHtxIKZ2PKmv796ykKNz91BxL2xob0wFGImQF91T5Ia9NQs8voby3g0mFTqgXKYQvLYetzgHMqSm1ND7Vi+IUwxeJjCkbpVrc/SOyUhZqneNFg5HVAHYUBCjWXhiAEaSOzPOoHsLyardwA5RrejdW5mTbaT07NHx8WNmKA4vFRg0AkeEPs67OI+zca5SJKTo0e+GoE6hg67UqQlwB7t9BLhtGwGOGrweuxiMqQEsvrNmXVPf2rJsD2uP3emMYHZCrLG7B27mziok9Qf/++EL8E3zj8D89MFgZ/FUsG+LONhRqNCQlbioF0awyYCBxbJTbTh6ZVIyJorPBHQ+T/PASBZkRGBnFdz87qHzvGvy8DI7a7+1X50H3/rKr+3yRqNvsf5cgnrdokmlshOhAQ66uQ9MadasGWjxy1dgYA8XsHj6UMleODFhvy5ESkvegPWe7Jn5umvq5HRKcYDVHPhAqcG2DICR7F9ngw3xuYo2fxgT3oc40x6p4MG3UWevvcUWUiidXlu/YjUI7+3KCbBY+fqLDzlhcfKt0/28iv0CjBo2X9S1iT2/u/9DVXLq7WRAvHedyy2TK/9EnfVFAvfBJ0HNWU7zfDvbXaxwCsXKUjyVq31rAkCyzZs3D1jYWYC/vfkSePaFZ0WDvC5nAm8HqmRVniRPfqRyNtaMtgNl80Wdt2bDEoMBjANx/0HE9IATJhk6oJlj6OK+/ikpmO88Fg6HT5PHEnMebHcL5ofFAFy+hp4ReIZlW+2Pnf8rSTZtW8vbqRs87KysjmHEkPOKemA1QgnqPWGDODNluB64/r0uGDcT0bjVE+9F/fD7rNE453r3Q48XqUZA8SObV5YCMHme2uImiCtWTQT21u1pADtGOrEC2jmmMy/AXiO6CWYmlB4wkQPw/JkVBge4HeGUdoKM5GwYwtw2yjbdTHh/4L0g6+q7Ys8JL/6qLr/LMydCDMDkyg1Stq5bqruR77/7JpYX9l/iB4asi+IE+L8un/ACkzZplyIAHyqfBd79wAG06lxKDJhIBVjtldx8MAuc51mjhw4oZoPe9Dkp52xjvW0dGfO2g99WJQBmew/1Zrb69WsawF94NAe/Bf6u+39S/iQC4F9Cf6FB2zKyJfix14/E4zY926qWVyblcMVs3eP8xRske2C1Jv2Q5+8VWiEH4JHGjntfkXne73HBxQGYuwNYQ7upt66dAHytV25PAuJPPT7TAWybYAN8F/oAz2hPkFWYpTrAYcFOsrMmL77wPHD2vaUKwNs3LqHpKxHgOkPAO4vlg5XaW/h5akdOSNpYbZvHl1zne6+nTxnN4I8e3KZBe/P2TbD/xH7gOcUD+OV0JwBmkys3rhDHqw0wE8bX/v4ykbP+pHkYGB3pS2RWurl0IEDv2OZHTojfec9BFYDRzDuqvv3CNumgpYLMnBpg0DgYfsA7am/wgeuBW1isL27cMVP01ExSEmJX0Ix+5USlDmCbAbY6b9sty0sHrMtUF9BtXsP/dkkNx5w+c0BVeL1dLWSfI6CrJQGwMgtr9VN7KxcW0z4vYfwaVoCpsTuHNFML3p8bPyBOzS8JtTIOn8BD/4MWm8oBGMn+kky9m/340X0CYqv+1oy4txXwyYa9154/6p6LivNR3fsqPdlIrrB50eQk+oANNWwQ2W+JVBrc4MYTv2CI+JpaLI8H3q8adesntFxISPqH5ZoNgHIkd74yc4RRVgf9SuoV/Ys9QnzOiOj1vPBiAHxDSXh/NHRumW1OBFWefe7lX3EGUdBEIByA0VJ6ZPhz5UtZ5ViV+cF6umKx3nUonS5jH7TS77RJyRw9Y86Nb+j4/Y99nXFHAW0972AB3LlLpR7A1w9WgSt7NtNBNgNwz5bnsn4J0fNK53rZ5mG3FQBXxBzuF80Y4O330dJ55kX/2CIrkQGvl5w1dlRBNR+4PDApJyrnKwJZycokg3ldJJd3FYOh0Wdkw8tW4kAqwBilEeaYLcDtbHacohYbQfJ7h7VrWMKbx4LxmtNpLIC9As6BUxULeQE2eQ9cxR4GXdiar9pIG9eQvRIDUGYLcKvOZVupYUTLTpt3wKeflTT/mLH8iE9Q/hmBcLxqHg0ABLaSoB0pmw22TUlglerpibT/pXniRTT9R40+rtowMVpUi1sS4akBuEXHjfkkwL+2y1vIAe/nYouX4AqqKrlr0yLVPOWBoumcANNkaoLRU2e2nrdFg4hrZ66V5hRxNEd+n29nu/MR+in69KtIX57syC2l6k3wx2p7YCevFuQt2qgsxOv5IT5CmfcgRwqXyNuRE+fLjyCXYmt0j59IL4xyjPDPp0oWTRETm4mRoUOKwcHyLJOIgVOTVkHgdtNCIjn716GV0lLCAVQl/6kPIwTgbal01R+sfDH0Rqj37Gg1A1j3nwcchy0BngnLCXEdtwDYRmUAq4EpwHJAMrDsnwRsI9NBSPwccFjhPDKaUrln83RQmD0OWIenAutBk9glfJKMNW7nRNkGxb5SbI2hi/uTCPAeKTdFqhf2t3ACfa0ddOITkw26TVylJ5wgsYh9xEQQFZ8ECnMSiRQeqkdMhRNJZeEkUJqfTOywySV8n+E4ar7EfULuSbKTlEEk9FkC+vzxJAKsyo1xHb4ZcM2EI+Ht4duXFV73CUtEAUxK5Ph4XkCFJGRUIue5nYL+ktBpuyO9v2C7W7QXRsPST1UYAS/oWzXSQfZ9Nz4mYWQbCQy06U8AzAYvrgceGCsPVj5ZNgd544m0zxNrG6/k1cR1OI9dANo7baqTAjEqE8YsnqhAGDHhSQL4CG6pIzSngm8jF5r3jVmkA9Fn/GLQzpoBsXU16JaSzwuww7AZnPB2G5asGrxsYYXjyDki4K3nvS7L7mV3xEBM7TgqBDB4qsIHVH8Cpb9s3Q5he2HqDSPDhfZWJfTRuuRC3huNxCN+GSvAhoLXptELO4fvxoS3TvCadNcWt1J0PMysBSIxDkbyhtnBCgB4DcpaIKPhLDOy8F3e5H1jF9I6bB0si5oGOJwOY99sKrxDJ80BkRPniZaoiVkwNBgjyvM2hQ/1wjsOhV7Avh7ql7unlTcWxGR+WOg4zMKGdaYM6qtQjgAVWlyq8OiSV3JTaNDb1ZcGMBIuTy0kqGMnBVw+ScrI0AN3xVz9bITg1rIBdyTBS5VOnRdipB73Yw3nY4Y7L5gCrF8BA7Ybfwp15qp5bxKSIOf+Oq/d0Xcl9g1PXlEFJhdUg9h5a3UAJsxeBiZn54FZuYUgM6cQTFmQBxasLAJp81eKhhnBi7IYYvO/TkE3xcGbnMdqlz4O7sApohg7pFAA4PnGBNdojauTRyzsjCsUBLh79DTQ0XuNbvgT56aHTl+np8e+ffvA9u3bsWVhXpEgxCS0nokraJ/PCYHPY1Hw9uwawmoTakamS/8KvHnXPIMjqJKnSXbm4H2bAYzcZmSx5zu7Diyj3azuIzNZb5R33BLi9YYccS3wShG+8XztyJEjokBGsnZjSUNcnJoNxs8vAql5W3k/n+3mu4SdFgVvKAe4fbp46B3b0XWH7JFOTC9sZUh4o4CJNL0Y0AcQMSr1JgSFjub1NDYhZQTAOKEDbrt48aIOUuShr1y5Aurq6jiPr6+vBwNnbxTUQa/D1vsyNrhBPaM5vS7XQE5D/twgAANDwdsLmFBjGgE15g3wj0jmBZi8SV2TVgp6XwTapt0nwax1O4k4WEh2nbiEdR1HL9zAgpB6ra7hR7He4zsmixNcYgh9/CLe98sFGHdz9Cc+5hUCGHXsxADcffi0pqS+3xbgPGY+503sl7keC1gcuXHrnk7/uvp6UT//ug5byJ/Cx8P4mQ9clJkROsed+w+B2IpKMrzwMrXh9TFVgMdPbHpO70akFLBnIXqPoB2HZp9x3Uil4KVKct420Skv8np5j4O/JHzgCg2dE1/6yWsek/aEHeN6uQBjDmqAp8r7UgGmNpxcJ5G479YTC5ruqYWKgpuaLx5cKsBdE9axvuYdv1QY3OQ8wc9AvwrUZul85pFcgEXsg53x1AHMbN4TV9XhAIzjiZCMWliiGLyB6Wskw0tMyAm9qPdcYOgYQXCD+owSPPei0gOP2Gxs5XL2nhKLBIzemcOFiux9nz59WlV4PYMBePxY//mJBTV/6sfBKaw3NrDvGMEbqwS4aTK8Lpf0sXcVBNd3zFzB84RMLarjs7OVy/GbSgCMtlLDhPiwSQBMyr1791QB+PhJ7tdwwwgcLywX3oDJq5UDNyWfM48rJrOAZNCcTVh2dvX764wSAKPhZ6N5YXgd74uBiy1p/5jNXWK0im3i38N2w4J7DGG92aHWXVQBWDGvCzuhONDigustMCCjl+KL+KEeCmDK/oHfgerQb4C1w7Y7SocRUMYYPQbmGn0S25oMUEuRJqM4+VzVe0/pgbP1YrxwYFgM680es6hUEryD526SDW4vjwAsaENtHPE6o2mrJTmQNQHNwUrfz2myu/+3NJjd7XNuY4URnneN6oVlt2vXrhHy8OFDwWOvXruHtd6Ny7Pjzr7ShRLQ03F5X+pxg4PD9N5LhVcWtG7dsaBtGArPxTpn3jZ5EwJX+X2hB/ChQd/TAJ7c1fmxkoMajZJu1lkIrwBhg2zYfJc7Rr70h3iIeQAmwoK8rcTjfrZOxP/DIxoyAMMjx0qC1zthGeFBsaGdkIN13sSV2wR70PV19SAvJxdUbCnhPW5LyFf1a/ybA7YwgpR4j8DHKoQRQGmAHxoS4O49hI0h1EFMzq++LccTk/AOcPehwRzVYwDxOG7KYuL/IZEx2ND6R6ViAxtK6JOPe+56HLteuXSZABcJahsK1+gdc2tvMS+wTBnhFondmcPZ4JEiZ5QEuN6QAK9ac5jXEBkz72KdZ9Kq7ZI9cfy0XFqIMKRPJO3/kcPiQPdJApNoeo/ABlbnaaFnxv1CXPrjNrZNSWgbPHAdOFS8AmzPHCEKViRdf3wfduCa4uCBLvHYAFs4HBa7MPVfSsD7uTEGKtrbchvi0aNH2OfpMbWoXizEaIYWs3MWkzhTMN71G5ImGtjgHkNFhR5j566iAXUy1hacmxYCLi+LAbf2bQY3q/MIubIiriFjMKwtAS/1PQeGtsaCdbrLZ6Dlx++A3z6iy/6BTXFwsNNMVQY1FAkl4P3vbKyRNjQtsYMduxFwOoLUNmJR2V3OQYEu7qxgcWUZEpdXNc47WAGCgyNFAxvi1190vBy9oJS4jnun9ojylmS4QMraOel6MLPJoLYf6WB1//493fMu375HPEc91tMxT61BDVIWG3vJ0bNQnofyIpSXoLzcuGYOLfD8B5Q3oKDtNd/OnAd+7T8MxISPBNFbKsA3K1as+Oqdd95pAU/zCynvfejZZdEysDltBrg/dQ64dPwUMUc5EEoIlJ5QekMJhRIGZQCUCChDHjx6PIpviQ2zQ8UGLxrdEgNrUK/hkrMSa3ecQN/SmyiBA+UClNP3Tu0+IwdgHHiJ93X/Us/rUoV6rI1DuWqDGhT52zNa05pK7VXNBFrTmta0pjWtaU1rptfMuRYX1H2jdgc1eM1R77Xa3dPgrTdHvR261d3R7t7T3Jq99aZd1/vnzU1te6+HAzt2Od5eu4FPN7yvmyO8Jl2tUWsGg/dVc4MXhgu1H30W3km7eRq8r8Kf4Ovmom5n5wsODl6P/4J6v6TdPA3eN4zRYUN7PUCZ1ChjoKxA81gFxvXRjkx3rNyuJcO/AVA6aDdQyzYABc/VAUoalFIlNtTm2u6V5fkHUGKg/K7d0aeo2XnePQ498PMSYU1HnlstUGUI0qm/dnef8Pb1z1NftnS5VCgCWBc+cEYMLwETYgppsmbBELAhZyDYsjQUFGYPA9nTJoGUuKVgeHQZcPJ5ZAiYx2l3+gltjZ2g53mAXSwEyIo5Y8HFqpayZdnsWNC9xxW1ID4O5f+0O/6EZR1aWVb9wgA2jw+E/oP2gTNl7RUBlktOlnQCfQccUgvkHtqNf/I6cIV8N33doghVgeWSpbPGA0efx2pA/JZ2180f2li+m9x3wEGjQMuU09DbO/s+VBrg7RoB5gntZb4bOyd9qklAy5RTpR2Ad/B1pSFupRFheoC+DGVY+DhwaEgcqAkaKHwjB0bsNklomYLi7m5BfygJ8CmNGOMD6wnlinsQAOPSARg7uWGnIZwbuDm3n1mAS5XM1JlKe+EPNYoMC+xy0vjd+wEQk9Eg3Xrh78B+tryt2YFLjYcVBthRo0p9aKeSBu8R2QQteizmZp2vaG224FJlQPgeJQFeCuVZjTJlgX0JSq1uSyjfhvAAQdtnqPibdKKk0xMBLikqpNS0wQ0FoP0Myj2qYaMmNEA7ahJ+XEvzuJWtnihwkXj431YD4J81AqVB+zHTmF17NIUIYSOk3ZDqgu5PHLhIdhe5qzUy9y+NRnHgHmcacUhck7f17SvtRqQm5EiGY986F1CYHQ2mTswiJuP0DjsGJsYvBRnJ2WDGpNlE739Kyjz4XC5IGJ9HTNBZMG2iQcMTFSf6aABjQDtDb5d0vyZvG50oLUxA4u5/BxuCTblhYOSILYpDsHx2jKrwTps4VzWANTq5oX2bzWAIVBLcgP7yjC904/evdwK+6s3u0pO0xEWKp+lQLK+mzhqp+uCuZjMU1eOizIIco6OhVa4bXjBvhNEnk89InWUOoQMSrXZEI7QvchmJOuDg6i/P4DmZCaw3eeH0ZGCCKyLA4sxEWfBGDK5VW8c/n3Zwv+MyTs/ByoHLFi7kzppgktAyJTq6TBK8W/MDDKGfy9MKbiSXUbx6NoGLBKXG5Bh52qQ5uptavKS/WUDLFJS9MLHQ4emMf+FFH+Myhos/HVyq4M9VoM9bIG+mCvNhDS7580aaFLxQbj5N4N7mMwYXuFQRM3ehdHkvkJ81yuyhpWdfHmPBq2TWxNn3EU5WpApKIpS2TyK4j/gMNCYND14kIyfiGd2QaS9DS3WBn+CiTqnnjo8tUCrzsQGKnTlD20yozkF0Ej64VAkOB08snHgdunLFQweVRwAnQ3nBnMDlNVb4WGngUgV5bbl5YHOWJTPjzQVeqtibMrjPCRmqV5R8cKmC5jyoAYe91yOTB5ht6FvKeVbNH25IgEeaJbjMlJiSgibwiLlh1u43eF+3cr1qNl5491p3HRyRUTWyMjQGkDFmBy5uZkGuDBgtrEcHu32gne0u3mM6djkKva/5pNqihlQTcORJzLQYEN7BpgTuf3CMQ65+MKQgkJG3p+rh0K0Oa3Pntja1oJPTaTOLheslT9IpLRxrEHjNqnOGZFiC4cFlCvryjEwBIHjQbhAQth14BgnBK233cnOVmAzh0OHgul/BkY2/gjNlvz8R8ArXRRgjHbgRKQ2ZCbRWzb8/AJ4h8m4Q8sKufttByKDtwK/vduDofVeDF2V/xjXYmw+6ornfscruwl/AqRJsmONNBdw6IaOgVJYQoGhdml+/hqmQat+kTo4ndFA6uBZheV5bj7+eeHiHxjfci+L8JO6J+tnfcwKMBL1uFl4Xs+jxLK44t98I6Ssj5AgJJJLxw4eA8MEnsI598kOGBkmY9hcneMc3/8YLL5Iti34wbXgxjLELHRcSDs5RgZWyTF3RMvnQg1KBXJI5CmROXs56rIPX46cGXqZjkRI6kHICAs7z/rGmDm5s43F2yBDDkwBw9jONm9TOZocORm/fxSAvKwasyh7PMUDxkAavlculJw5arpDufGVr0fDWrPwZJ9592VTBnUE9FtULQyNppnSzqDDOmzyUgPdg+SzWY+0879KON1fvi/oRLiwT+z2Cufsgm1dN4ASwmBL3rhP2tKYRMjCLf/DN7fQMBnfcA5W9CUKjYUJi5XpZB2F7m20EuPnzYsGxrXM5QoxbevA6dKtXHCyUTdEbKYxv+OJ7BDUcB8MvYnkU+b/SYQJTpsw+wgthRe6P4HxFC/NIkfFkFWxZjrVX2ntYOBxW1OuOHDyOgPcQ9LoI3u49b/3JPN7G/Q89eNGIm2Hm7gIQESM9vRgxDoDeQwDw7t2QGvQPE38OFQYnZhsDXLZpje5y8r5iBA3jcuxHJhneJTNG6rwukkkp+sXqOjud0YPX2KED8tR9ow0zUqkCvJ8ZGtyHDANeEzjeW6kbhYZw29vtISBSIuQg4fPyztXFuiS8RcvW6sPrfI4VXhuPmyYV0wYMAGDUROXhPVuh+AYybxsSXGYJ/B+VGG3DBRdlBjo6Hlc8yzAtYRABLwkuKXoxssslVnjRfAdT76ARcXJEQ5FtqfBWrhmmBLBDoPSEMtCQ4G6mGCQC8z2jlcwKIOCUzjJ0dign9lA7UDaTBV56Z8za7RoHvMqGDl2D7hkMbBRy4MK7cOF6JeANMFZWIVrpOQ5iQEPwKJWlIM85anA0q9dFkpG6k95hg+EBF7xyMx+0AoCJK4CTOttW8YpPn4ZBI874Of2REvBuNRS0HzRemJOE9y5UwqAduxxrSGXZyav2jXK03/5vCkrNEPK3l98FH37WE0xPHAQOV8xmhfdI1Vy9VRRc8Cr5q+AR8ID4Qhk73EDrApkz8BSKdaeoDe56KG+qObNMMKtgv18XU6KcrJRztLGuBt/8nErLx+q8pf008Na//gHcHNqwwssW93LB25DzrVMMnPlTM0DBfPZVv22stsFrmgRefvW/4OPPQ4n/rVyv6OSzr4eB5t/HEo+V0MU3VHF4kZjmfsjwgr+R3aGy3aWKV6PmauNGDCAAzZ05nPDGbB64R78bR3HhbWe7UzE9B0ScJrzv2NElxP+ffBkOXnzp38T8CmN5YpRnVjjbUA+lmanBe01WqOB4XLU5BMiLk+edmxpJA/Xdd/4FCrPH0Z6rLc7B9rxIlFwihIar//Haq+D3DstMJnNxZHMXNfK9r5nVKgqcIVs10lDkeZ09NoKdG6foeVp3h7bA29WCM3RA3pUfYGX0/eK7MeC9934AO4unmUT8S0rxkjC1lgL5mAK8NXJyuUwYlPS6nZ3P6s47PXkCZ5z7yw+f0/737/2Xbijc0uWCsPft+kCWnh98Eqh7vHZxPKFD1pQZT0TJVQG5b/JLgHCGa9XIn1Lj6HU53PAyZcOKQt4vmJKZh8++iab9P3XSUp0evfpfMzq8YvbxQPt2SFyB3McY4G6UapT2trtVh5c8Z7fuRboJOLjC9yWjjtbpMg8iO1YoDcf2K+MVfI83+2GspfSCxf1CmupbpCcvkOqJw0ze61IHDdScM0CeNy9rtChwiVg44AFlRtsRmp4W9jtUzftS9dhfmm1UeLv3uCIInV/PS4pW3zEEuB9Ji3PrDTLkSo6OtbepBptXJIqGd+PKptABxbRUPYty57J/+dz/VET37RuW0HSZmLzXqAALwXZgg6OSnb3HhoD3nFJxLtFRU7isEioUQiywHD0THK2aIxpevtABvYbmF6v1BewWfFdPFyffOpOFl682GtqzTiS8U00yZGhvt9cgXpc6i0xKyEDKwMEXKbrvocGLplCyXYdSs+CYuhytmmvS8CI787z/MxHwfqQ2uJFyRroMsTqBSGG5loLygomS4d1BGbCgLglaMncF8XqfARdV+yKuzi3S02fezEqThVegMuVz8PU4U4l3FQsXhHrqdl3vSYZ38fRYyeDyhQ7+wdt0r7OttkC/MHKBCexzk1WfiCHnDT9QkeMLUsfHwl+z7bzgjRheyrv5Cjym0KjwQmVeE59v5R+l4gNQyoJHst7CmoUxsuGNiT3CGvZQc8Js12TpclHx0MFY6bN2RDZluyC8PN73OQrAw3nev9aQk9SFpyZCz8kHLlfIQOaBpZVzOgncvDayTjiX432pUySpr0cNO6VK+MClz67Ni0wWXpQiYznHu0yO4LG3WN7fRm147ysVLjTUALulnwd2uy4LAGI4eGKKIuAyU1WkXlvy6emsrv4nFJ91VsNImVFl5OgT9caA9/hmCwzvq/dr+T82luCx35psvGvpfF4QXjXqg6H3leYnKwYv1ft2sD9InH9QeKneMZ0cahUdeEErO3DjcUPBW7QgUBDeokWRzHPwLm6A7/kUSpHa4PZU0uuywclMp4muReZ5B1g5VigKLpLsWRWMKjq1rMcpGT6gtW18Os2cWm1wePuGLpCSefAzizq8ODld3TAro5AIszaYlBuP4t2sjETF4aV6Ora4l5R9W2awhA+7FI97uRaNqg1vB7s9WPCeLOlEPYeF2cDLHE7ljnf/4pw4LhVe9J5dxVNVgTd90k7aAAgaOGA7rnL1XMWGjoV0OmKAwQsSXHIOB27et09/XaYm09jgWioZLjDBZJusgzIOYg09cEAOvWcOQe7q1A5sX5eumPclO5S5Was5j9ucv1CR8GHd8tWCOo2LOWIwz4skaVya2IGLu8aG9zzWBHBG0v6zr4cE4Ex/xAkrcGTj0njWG1xWkAL8u1qC9999E7jYtQY1EOadEjy0o0+dTt+B4VW8xx6qmM0YvBC/Ijonq0T0YIra8KL7iQvvkU226ByXTT5kYM4Ya2O19Tp869tcgxRCxT3E7sLj1v0KGDu4Oxgd6QsOluPlePeXZIIFU4aACdGBYGpCGEgd15sQtEiT7fhl2Zt0X1IEI85n8IVKQjI9fTvWZ+xTcepkWwa8SNCoGy7AQ4ZuvWdMcHuJXbmABL71ayhvsMWy1LVf7K+LH6VaNneqrk4Dm3z68bvAx60jSJ8QCqqLJivSccN9T0f7aknhQ1zcQezP6DPgmsHgbW9bLXa22L9N1usyY9YPP+vp3Pj2V9lWHpAja3yFPcTWIfD3tOSFV4x8+P7bnJD0DLuhK7sqBvphQ5aIXrQ5JPqM5LkYasKL5GSJqEJ8e4wB7ptiO2m/d1iTTjnF822tqyuZAJNgcsXDDeWerosy8t4t00GzZs0UAxidjw2Qmg25us9ck7tSFFzb1qbBcGNbHW4pq5B+f4g6/65NiwwGbwfbbWLgbWYMeI+K2Rrqd4uiNcxztLYsT2aGBmS9Xb5shJj0EppthW4eyiooBS8Sofxq2MBdosMONDl+0MAc7FJQcmbCKVX7oh0HwHuL7ATB3V3kDkwyZKDumNPaqvIC2zmg53VlwotywXwhg9jODZrdRd48BF1xcTFArbq6GkyYMAG88t6r4IXXXxQN7/vvvsUKyPoVq7FzsVwyIrpIkVyv2vCSHW42eC3stvKCe6q0A21apCHB/T/scMG6+iF8C+tPw0+tFnzEDBtQZgLFvXzwiqnESL15CLpRI4cDavvY+b+SxD7cAaxeMI4XEjl5Y2ffB/WmDy+1FJe+HNxgxQru+YrW1PO8ZGh4N/BPd7xPgvsAHv4i37mY6TKcwQzcYnvW7tfpSfsoP9Cqxa80eCPSIiQDzAVJ0bI1suEVWt4T3PcPo8NLXa/HFT4wwa1Z5cM8z68mFTJQPO6LQudC+0qIhRfNSsOrLnkAbN+4RM/7UlvV3q2S4b14uJgXFLmjdmWrV3JeW5+BV40OL7NqEBu8AYErKOD6sp0nyJDgvsFfY+wqmct9Bed8Hez3/yUWXpxBCjTZHZVGtXQ6zAsvV+jwqcdngvD+dfUYJygoG1CyKk82wKPGsC/cDIu4bHR4mYNIXN7X0bsOVOYFcZ0nzZDwThHyum+81fId3PO1tiyfRO204dQAw1mJS021VRUt091AVDxv6ZJFgvC2imoNvgv+nhfeB/ducoJSWrgSzJ1RpeisNdpcjcEXRJ0D6aI0vFwV4pnwCpxni0mEDAiq736d1lrM+f7zf07/ZI6wCU+ZPIIx7t7UEewMPbVutlXlbPDZJx/S4O0xoYcemF1Su4DQvD5gSFEUJ7yo8QGTlLhPEXhTYweDz74eSpvTIRbelKS9qnteLngFCg4+MAl4W3XeEiPhlG/iAEsLGxxPip7BRp2m+OILz9PgXVVWqAemX053MGBVf9A7pxft+U/cP9U9rq+v5wVmUvIe2eC+9a/XG0bhRtBDpTFjj4k6DwpjlI95L2LBKxTmGQrc4VwKtLBYL7U8+6tNhTvwIEb7oPHvX6GfahsYXq27kUtnjQD379zQwfvo8SMCxvLd5brn/Jf4EcKEmvpcXd0jXmAOV2bJAreGMV3T3b+pYPXkSbuMPjyMFgk0TP6Zxwuv0CxAo3pdh251qXLOy8w4yE2Vcb2PejP3VubSvG/ZrjLa/8VHiwXhffzwniqT21knl8NwJzLUHXsQ5dcfvwBjIn1VnxpJnyVXywqwUL0KQ4Brx/Hh2+SeW7jKuLhBCq73lRYsoBlbqKHQoeucrqzwOg92BreunVQV2B0bpoDX/v6y7KHsEB87g8A7YuQeVngxZsw9bwyve12Jc1PrfeEIWuwoJmTQZTK60Hv/1NCB2W7eu0nAi2B1znAG3wR8q/ufbFdOVKoKb7sW3yo2F+O9j7xUhxf1KyTC287Q8E5X6tzw4rbhgtuqc+kBOUuNmIAw29nLZ8Gm7ZuA3+LuuriXKRGZ4Q3H7i1QFd4Wv3ylB+GXn30AfvnZGoQFO4GArpbA07Ed8RctaUKrQbjg/aWN8puxOHrrd1jp69qw4R2pJrj2jA+zUvL8rTqXJODC+8Pvs2I5l7d7/CX4fv+QcpqxUcaAbP1TBtDCAyQuU12Iv1bjLUG74e0awgYXcng4SzVwaxpnwfHNH+bsKFbMBq++8pIO3Jde+cAgYYMMeNerCe8Dygd9qvT5Ozmd9sPNNMDDPxQa3ZPjfXUpMbdPCVA7x3Qm/n7t/41eBkJNrxs3PBDsL82U3clD8P7YYp6pw3tPLXD/RvkQVfbJsnA4ZMO2qoID3ufwt79il7U5UzgBbhXSmjbKxgwZvujWnHgtPmuCwTINckSp+mVcc6j54G2LDy9QC95TjR+g2ox36DF/wYH32/+lD+NL2aGqODjwBgQX6hn9xPZFrMPFqKNmm2ADrOOssWaUmZpkTqlRaAbZEUF4/YJK9eDF3VhGDXDRLu93DJCG+xgHXhQy8Oeb67EzFmw3+vrZHQS8/wv4VS+/29yjOeg50gUcqphlNuAiQfV8lVrywwfvjuJsvQwDfenWNcPBC0/4GMocAw1+/EMo1/tb+8KVOEPUuPCiNWNCN/6gmYGq5siaELztWNJj9BXfFwwDb+MJfzbgFOGXhOBt1uyFX5SEl9yy9WTlAnC2PBecrlgMTlUsBMeq5po9sCcrs4nrOqZQySeyVhzagoH5GtpSq51NjSC8HbscE/qcn5SC19ArOl9CE8e5QGttWXkeHvN6o25OSsCLyj2dqJwPzpUv1ZMz5TnmBy0ElXkdtUUrFYGXLI7IBiBayS0ELmZRwchnzLS9RNa3ZZOXXn6vJeWLla8EvJWr5xCelnqzL2zN1z1G3thcwD0BPS3blzBj0m7FQgauwigowyMELmZRlbVmCy9n6VPrmjr4+qcUeKuVgBeVc0Ielgru1X1ltJtP/PSaOLjHq+axgovEt8dt2eCiUgR8AKJ5JjjgYsD72FzhfZ5ZEoqUL3+ICxOzfg6n/i+SstVLoOddRPe821bpAWDq8HKBe7FmteKLLNkAJLfyUgBeYK7wvss1wgZf+1YMvDjLiJDMnbGR8KxcN19JeBNHhRgc3su7ihUPGdqyrIogV4orEDaYLbzvsMH7a7u8hcyaD3L2MKaKo+c+3p9cc/a8F2vWgJKCcsWyDHxzqR261WHDK7T9mLnC+zqH1/2OAe7LShaxRnVy+cBF6TNTh5cat1NlQMRlBUKGQ1hbjOHaG42ACnzm/8wy5mVeaIuOG8tZvG5fJeG1d9sLjlVlcXtdlXK+O7IngZrZ7LsS7V87TRHvq0bIwPXzj2tvjNK0w8wU3lqm1/2BJf88FLcAHK5Bs2duavRgS1QFFwG7bUqCoNTMTJIdPqBrkQuulcslxeFFnlzgczeZZdxAndvQqnPZYQQ0C7zb5W7GzTpUvG4pLdmvhrfFARcJglzqZ5B5ayVG1sR0vMTY+klMl73Ol2HA7axJNSiS/hGXVI1NceE9XCJ/PgUqsiJv+iP/l5+5ASLudNYnNePwBnlx3/+WOU7s6mUl4EU3wNrlINhflq0KvDsXpQrDOy1RoWmQ8jYRFIKRuZQdDRs/zfB+QMSp1jX18PGrHOA+J+YGoDplYgGmbpU1avg6cLhC2WU+CE4ucBHcpjCTjDmihgMh7jxqzH03PjYrct9+17o5mlX2zru2rXm8bpgSpYjESy3oEXqIKNmvBFgHiqYTGYXa+ROJ+PZwiTI70KMvWo++h4ndiOTAi/ull/pLx7fyu1HGmxW8LTttSmpjtXWJwEy3YiU7HVKli3s1yJ273CRyvJWFk0HYwJrGn/layXu6SbEZc1mQ1PexyFmzghfGUMfgn78JwHvJ+PDWEqXskSAPZdFlP+g1dC3YWjy37qgB5wEnpMaftx40CdhEpAHLsAzQ0S+3QQIWgU7OByWDS91DRDC0YnxJ8HO9F57YYeJnlOisiZ2k05ZnDioBqe1WYB+cCWwHZQGPCQXAM2E5cI/LBQ7RM4B1eCqwGpACOoclAASUQ3QmKCycpziwh8pngfKCiSA9PQZCO5n4LDax71OputdlCx1QwW+c97CN0Gnwssa91yVBa+2aDPpY2oHeUEKt7EFfawfgnbAMdJu4iiYIVC6IkPSNnQRW5KYDOV4ZAYu2ns3LGk1IwIgk3s906iltw0Dcldf0uQp1rBvoCDkEDV41QwfrrQSwpPTp4qEHLhLbyHRekJjiE50MMmclg+qidFpNBuRVkezZPB1UrU4FxcsSdLAypc+YBN7PkLMtlVg7oTBD7sboTzy88II+UQNey257bnC9RoU3YFA8K7zW4ZNEwUuV4fFxnIDyyYj4CYrDizIAkjuwKsALxeJJgnemGvC6T8iDPXV2j+PtkK6Dlw1cAl4J0NqFTwQzp46VBC6SZXNGc587aorhfp1YQERFpBWCd/ZTHzI05C2518Z5Jq4AXkmrWX8yre1KeEMGXHjTJsdIBpVPbOGXQC/ejVor2j7Og3bKgpe6MxPb/F+J8IKnDl5qB6KpI3KF04heyfkNEAaWsgKM4PUdO48T3i7DZwrCqwa4pISMSqR9lnP/Y6LAdfS7r7sWy5Bcg4UOCHINXpbtRHFXVqBjqSBywcsFLhK38Tm84PYYnagqvEimZoxrgrfXVVHweqXoX1Nnt0Oi4SX3i8YdocPc+Py5pwperp8k1iS7c8kD6k3zswrTA7i3rTsvvEKhg9rgkoK+JERnrfsDbHA9Y0o5r8kzoUCy98Wp1Imzjx6UkCcB3ECcm4E2WREDr2XQStoNQ162vXUV7Rhn75WC8DqPnc/e649MMRi84jMN9YLXhaS9w/YH+DnfeuzQQWiPikbZ+CTAW4wbMlg4HGDvtLFs2OI8umnQwT8imYA30MKRdkwHh71YN5ktZTYyYYJBwJ0zfaxoeLvGb8C6LiQdnMvrxa6SUKjTVv8kwPuYeWEhAwEYPxGABUsBKK0CgFLcHHv0qGtSnu4GhVJyuh2simnH4dxg1PFjCxnmZsaD4amzQOTEebwSNTELzMmMl+V1ceF19LuHDS6S7iNmwF+kLaJG3HB2d3oiMw6Qv+5Q7gGJbfZC9iyEXqYhpYAWMpDi09aSNhnbK3k11k22jcrQQTQwLkMQWC5Jm5qKDW7UhLgmeAemYwEhBlwkIYHhhF0sMAHGnROM+Svxd3OBdgRQoCEvjBP3MuNdUoItrNCkeN1xTuFbsW80muWFQJIKLl2yQOrUNGyvaz90mrDXDbgjDt6klTTbUO0itMFjW5k1HBol1lRh7QlUakLwtnMo5/S8SFwtkwFZfsrCrUrUDfcaMVUheJtk5Vx9cJkTdByjc4RTY8mFoq6lZ9dgml1COtlgd96oG5ezz+vF2k72nikB6wClDqjchDpt1iHrmlJkQ9P14CW8jMi4l5TJBdWKw4ska2ZTTDxjyji9GNs1ehP/SFqvq6JDBja7uDvPxJr3LOR9MdNlwBSgXQsM2IRqmHkm5Dd5l269FIeXCvCwtAUgJWs5yMwpBFnL1oDpiwvAvBVrwazcQjBmyiJRAE+dnqIXLpDiNmSv6AEJPunlEcBqFxRK4M3bPUbsY4E7md3k4IUc9QNGaAOiWWZONRaEY3bWQm0cWW+SY1SBaHiHzNsMFmzeC/acvAzq6urA9u3bsSSnYL0oiO0iUnXQojnF6LNdI3g2p+7+QBS4ZOqQKchWxMjiyFK8YeCuD5TotL1uDHCnAyO1FYXccW8HR/qwcKidC7uHoQwZO0asw7rpf929T9Pj0aNH2AAjqa6pAUNS5/OCGxKbSYOWFD54vRKLZIcLxDyPUbN5h9PZ879H5MI7zNDgtgRGbPcfcMNrF56DdaOIBH2XnY3zfrdh3XS29vjxY1EAI9lcWsEOb0oWcBw5h/WzOeH1fSgK3D72rqz26NOFPlRuE1CNvXJCJrzXDA2v0RvXmjY0DRIXXteR6xq8dZedgjd9+IISTl3EhBBUGZqWTUA7OnMlmLBgPQiYzJ1z5oJXTKzbffg0bnsk5+kdL3dBK0bVSMPGvfBejTRVeHsOOEeLd4XgJW9Qe8dywRtfdfCsoE7Hjh3DgvbkyZPg/v2GEKRs32miA5iwrJL3810HntC7Xpd+ZyXndKnS28Wb9T3tupTVy4HX5DIOwEQamxE2l+3Dju+osV17p1LhePfOfWzdduzYQQP15s2bvMcXbD0s+PkIVDmjaVx24JsWate7VObq7J24ocNbhgB3kKnA6+Knb4Qte0+Jhre9QxVo77yF98aHzljPqcfjx3Vg26FzYP+Zq+Ds1ZugjjoRAxf245eEZ7f1uUS7VhRGKAFuQHgit7cfVSS/iIupdNqACbVuPegGyJgFQOqq7aLhte6xBrR32cx785NXbiM+c+fxi2B5xUFdrpdPCquPgDv3H2Jdi88k4ZEx5kR0XHBDbZ04bUCmxjjn/cL+g4HgPak2uM+aEryxKXQDoDa5sFY0vGiNW3vnYt6buAqCmLGqBgtaNllSup/zOgbOLsaCkAovrtft7eorKVwgZfC8zY/lwiu0obZB4l5T6aiRLXV604U7+TQ8t7jsoGh4idDBZSPWqJpcmbVuJ+0aJizFn1dBhRdv3kIIP7hJ/BPxRy0uu4t0lAsvc4MWY8H70FThXbep4bkNu09JgreDq2HgJaUexsVHL9wQ1eFqgld4lQTKHvCBi+bw4ua05cKLtu01eqcNmFijwku2XScv68d8GPBahXDnVwfP3aQ4vBmrqkVPoiHhdY/mz0n3cvfjBTeo9wjBz7pJyawoUnkTD96opwbevDWNS16Cm547evEGtheir5Tghjc1f5vi8IoFlwovb6jQrScvuIH9xgp+Tul+ej7bgPDeVgvcV00NXhQqoIvee6DpuUt/3Ma+oWJnkSklQRlrZMBbLzlU6OUeIPgZoxeX6yWzDQgvUAteB1ODt2AtPWRA7fY9/XH+oD6jWG+md/xSg8M7YkGJJHBJeD3HVrCnwzhmzulSYrZOwkPHaatZR2GUgJe5JSyPfKkGvEmmBu/M+Q2LM/XyvywLDNluaHBIlEHhnZS3VTK4JLx6z6cU8EJLgIv5K8PVlIAX7fmGCe96NeAtwQEKDYWiIVFDNFd/jsELzBuMe1ONGefSBgzG0udfeE/IEQZXYBCCFL7BFCXgRfXkjBY6wGvYhwPU2bNndWP6ajdqR40XXsx0GZsEZ6xVBNyQKWtlw0v7NRk5UxBcNPUR51wXbtzitbNie30YEd5LOEBdunSJNntKrXb6bIPgwhtq5ywJ3og5xbLBjVtaoSi4/pEpguD2duqqCLjGgBfKS0rD+xgHqnv37tHgra2tVQXeU2e4XwtMX3NLz4P2GMoe98Ln+W5udPYWWeBOXLlVUXAD+47BANcL61w37z7AsrWUiuoy4R1ptBwvc+7q/v37DdqRm1a08y/mjfKJWSApdBi7uMyocS41bg8VgFYMuJf/vINtz+LgL8FK388JWe7THEzydAMOtoX3xcKLsT8bKXeNBu+BAwf0AEbPSW0XL4s7nm2UjS/uRR0frpucAj2nsePcwLAYQWiFimRTZd+Zq6LseTTiB1bZ0e9bkB9iK6lItUHjXjEXy7UoUYoHRudCxS1QkTfUY0XLrdFSH/KxtfsNsGufvLgXLQFXOtOgVJzLtXhU7xrc/LDOt/vkFdH3gAteUmrCWuFlHOz2iQkdXlES3pNiLvjw4cOsAP/555+iDNcv8iCt0AVb/IXbaZMSOvABmraySrVwwSd2ARa0DZvBJGCd89C56+IXul44qgsZSCno/gUN3s0hX/FurSAx7o0zGrxsnTdS6kWsNMDpLKDVu/qdtrX3RKXMGIs2mfCOn5hFg3NY/2jifeE+IXrgovSaHHDRMC4uuN2SVmCd8+6DR5JCtr92FunBi2Rrn6918Jb1/JqYOaYwvI+NCi+zPXjwAFy7do0QrGU+PsIGWZBzg/XLUFB9lPUmBvWKxl6AGJi+pmFIN4oecw5w96H9Hz8ttwny3AoZudtMbGh7+PbFPq+c9vD6OT1wUQeO6nkRvLg7kYrZkkBJeBMMPfyL43Xv3+cuiyZ2PZfeRJdp6wggh/QZrHdsPzv60hpZ4UJKAejj4I4NLttOnazXmbmhXu49YMJ7aND3ejHv7v7fYsOLWTmSlA+VgtfDkOAib4pjDL4QhOumovmsrN7MuzftuIGzNhJADuoWBCWQeNzP3oUGKxXeXtOKRIMb3HMYNrSooiPueXHWzu2u3QHyliwFd+9wp80e3bxKQLtvwHecHTYEL7XesQIbrZCSrxS8bxoSXhQvCxnCt8cR3nOMX1Yly/sOztqkA5SMeUePnsgKr9hJN95xudjQEnMwkvOxzjs0u+QY1lzonFxw9fJlIpuDHnOOZKZ4CmYbkPBVzWEW5zNW6GCwdvu2cOXt/DXCiXaumxwwMJ5jzqs/bWg4aW4hDdYBbt6s8Ioqt+ToiQ1uYL9x2Oct2XcGaxQUeVsE7JmTpwiAS9Zv1PvVOxlriwUtkurQb7DhNUrcC6/pbcPHvPxGOHVG+Kcxc/2uR1K9LyrvxIxp2f7vk7hI8RAhlCcDImfEbM3KfF2lHgQpgvjalau6zMLRyJ+woaUOVuCmysTCC2WIEvC+bmrwsqXIxHjfnt69OAYtAhtG11Y07Awfl7GYBuuo4QlNNXqD+/OHB/G5nIMjXBLiPwDfi/MUQ9Eb+dyzF5w70zSb6f65gwS8YmFdH/Q16PzFf2ieFzdVJgHeR2aZbbBx5Z8fitsisjbXc/XyuYvO5YO0/G0gIXNFUxosdT7N6/JlF7oPny4KWN0UxpR8bHBnrNslyp6VJaXg5tYVOugOD/6fKGj3wk7bbx+9oxPyedSZExM24GztqmjoYIyVEpu3cBvE1fcIfn750WPuzEPoaE6Y0hgLLxHIqSsrdf+jbARr2ktETEtOGPeJyRYVN9eMcaSBdW56T3A+sw+4vn4G4VFvVucRcmK0BfH6quy54EjEj6K9bFWfb8Ggth/RoEUSDp+jwYuZbRC5qoIUDzngvmIMeO/cucNpgG5BO0Wdy2/y6nrO+QPWXVihSlnKPaMMgU07T3KeqFxtA7RdgM/4RaKgHbekQjSA+YsWEeHBxunjwcGoFo3PLQSHon7jfR8TWCRLujUnXtsKoSaPOzjoe1HTJkXUcZC/qtiY69SK1rMbYGzcTtHn4oxLE5axwpW4rJITXp9JjVmLQYmcxZr5OmM+4+aLzglf/OM21kQZWiYgrjsBLlVqYz3Bxmmxgu+lQrvSt2FUrbL3N8T/qV0+pcErJmyQEPcCqeBuNya8t27dAs7d9C8+MnqH6HOtqjkmanORcYtKWMGNh1CLjWeJjlhgOGsBZyGZs3GPqFleVCmZPEQPXtxOGhXeyHYfsca7pAhtayUXXijOxtp0pRmU56C8AOVvUF5uDEX+3pjF+CeUf0F56+x58N6QsaBH2BCQGJsCusLnPnBzc3OAp/mFlOdfeP03v5C8pGlzwbnU6aBuaQEohMcFQEGr2npA6QWlD2jY7KU/lIFQBkOJDpu58Szn8prwJBpsqSsq9MAds6iUt+oiW6l8KV6W0GfyalQuFbnbP6CgWc0oVXBClOedoO9512RNFw0vUxZ7NWcMUuxUG94/zXV74mZQfoTyNZQvoHwC5UW1PxTC+jGU/0H5wJSMITbmpcE7Zwbo1eIDYPfVu7Lg9fj+PbCga9PUSAu7XXXt7fbehh23G22tqy+1tqw409qy7FirzqUHWnXesrtlp821LTsWV7XouKG0hcX6YlvP20sgkFlQMqFkQElB0yChjIEyHJV+gjIISj8ovaAEPaM1ranUXtVMoDWtaU1rWtOa1rSmNa1pTWta05rWtKY1E29trLdHo0S/pctlLVdqoAbt3bxxcOU7zRpa09pT2jrYH45BjuDrn6Z8qVnDII73x0bHq/3YaU1rT21r9tarFl2Opdp7PboJH7+hGUR1x/uaQ7e6Wzbuf2ZDe7+jWURrWnt6ne/rHbucmGHX9f55+PglzSCqOt5n4Y/cOTvPu1u1HzqtaU1zvq92cjw1n3C+WlPT8baEUm/pcnmNFvFqTWtaQ873eUvni4uh870AH/9dM4ji9n3TyvVKMsrxwh7GXPj/e5pRtKY1rSHn8Ia12/Vch251d+DjDzSD6EWsb0H5HkoHKO2hfIwh71Devwk53g72h3ygfd/VLKo1rWlNl3bo4HBkGHIQH38R1cmMnGKzRmfYt3F5MVpqPAnKLCg5UNZCqYCyC8pZKLckrLFXTKzd/wD2Xo/YXrsMZTEqgQnlMw1IrWntKWq/ti/6FTmCTk6nc43oTF9Ac16hhEBJglIM5aExHaZSgpwucr4yzoHssAPKKCh/04jVmtaenOj3+VadK0egL3pry21OKjvZv0MJg3LySXCsJiA7GosO2Wkga01rZto62B+e5tCt/sFPLXM/k+lgUUrg98ZIrRxKnRTH4hnwF5iUsATUrPIBF6taqirnK1uBw8V2ID9rFIiPLQCDIneC6Ohy4OZ3zxwd8gMoC1FaRqNaa1ozkwYj4GGwm3zjv82Hvo7hZJ+D4golDUqlVGfRO+woSIjNB0tnjQe71nqo7mjlysENXUDurAnQOZeZk3NGP4CzoXTSKNea1ky0wS/ov3hSBmhw7i8pDqBH35OgMDsa7F3nYvIOVorUFnqDxPErgUv3++bikNF99NeI15rWTM8Jd4JyXeqXGzmhypVBT6SjxZUjm2xB9rRJwN3/tqk74rtQBqOUkUa+1rRmeGeL8rSr5XyJI6NqQMXK4Kfa4fLJyZKOICsjHXgHXzd1Z7wOijYvWWtaU9DBvg+lLZRwKNOgHEDLXqV8QZ18HhF5WjRYpTlWaXK2vA3ITMs09dwxmvr3gvbt0ZrW6M4UrcDya1xcsNstENRHxAAwJg2AESkAhI8DwDMEAEdfKD6NTtNX3pdxYvxScL6iteY81RjM2+gABkXsMlUnfL/xR1tLTWjtqXGwaOrWz1DGQ9lIjVQDBwCAnG1MRpOEDgPAxV/ZL17YoP1P7ECZqUpVXiDw7XHFVB3xBW1FntaeRGf7QuOy2T+owKPINWggAMOT6M4WSUD/pshWSUmJW6Y5QhOQNQuGAFfTnEWBAoFw7VurNXN1thZQVrItRnALBGBIHN3RjpoEQL8RALj6q/el6j9oHzhT3k5zfCYm+2Dvo4t3vSkv7tgM5Z/at1prpuho34EyurGgCivE/jCKHTmR7mxRtNutl/pfIJRvPFHSSXN0Jiwr5o41hznEZ7X96bRmClHtcj5QUbqg91AAxk6mR7i9hwDg3ccwXxY09enIJhvNuZmJpCcvMJeFHKegvKp5Aq0ZyuF2hXJRcMVXJADj0ukOt1cUAH2jG2YnGOoLUpg9THNoZijDhlWaU72JvVC0rZO0priz/Q3KEaw6BkP0HS4R5Q5VN4fLtdz3bHlbVR3EniI3sGr+cJCWuJgoVuPs+8hoDiA49DQYOrSK0AV13dGCB3N2vhcqW4KAXhfMrejPbi0nrDW5DtceJ7olhTkdDEn/kQC4+BnnS7BxyQDFqoGtWxRBVAJz9K4zy7KMSO+IwbUgM3Um2LXG06wcMFq+baalMGM0L6I1MQ7XG8pV7BVgvgBExtIdLsrr+vUzHvSjRxbL+rIXLwkjiseY8Ii74o55xPASULaip8k6YFQRzkzti2b3WGmeRWtcDjcQyh0xUKH0wYhk/UjXydd4oKMBNbR6SsyX+kxZe7A4M9Ecu7YGSWGMGbURlCzrY3Tne6rUwpwqqbEJKt7UXPM2WkMO97XG/b9EQYQGypgOF83RNabTReIV9Cc4DR0pTgohJzMeeAbc0hysBHHzuwtSE3KMUpN4Zlrmk2DDRZr3eXqdrpOUjRbR6jK2QTQkxgYaRbxnOBwvGrBBg2Ehoac056mSDI8uM4gzRj+cZlApDUfQ/PfXNG/0dDjcV6AskQKKRzAAo1PZnS5VBowGwLm74UEO6H1ebzbDoY32ICJyh+YYjSBoW6SsKemqrRw0k8UXuOKteacne3rYbUmDMD4ARE0QdrpcEj62qdKYWvCOG7OOtu0NmualOUDTyxvXrPJVzPmiHo6rGeR+fUKugeQJy4n98tBMmUUzkoiC83PSp4JZaTOIWSdI4P9/HNtsHQSv7Wcoz2ley/ydbgso96SC4x8m3elyScQ4ZfPC/r0ugONbLMHIEVs0J2cmEjWkGpxUYFl37Ni1RrsGtFvH2oWDwYo5Y4nc95ChVQSLqCIe2pxUxbTLQyiboYyFYgnlRc3TmZbT9YHySPJgSmBDjVylHS9VUN44YIDmiJ5mQbMWUCQoZ3NPQ+navccVsHx2DDF2YOLzoR9DqYGSCMVWc86GcbjPNu7YKn2ep49+VTFDCZoTPHA07Kb10ZzS0ypoCbHYiDhpwkqD6FZd4PckLNNGjnkLlAlQ/qt5TflOF21pniUXrgGjjON0+QRF36gmhBq1ezUxbek74BBRUlLIoaC5x4bK3f5/e+cBFsW59fEkN9+9yTW93dzc5KbcRE1iYhLTbViQKkVp0psiWBFUQBQUlCIKqGABLIiKiAoK2KVIL2LvJdbEbgwWUDjf+86yuAuzu1Pe2Z1ddp7n/yQqzM7Ozvz2zHnP+R8dnWiyDOl5PUnZQzeL70WFDcvFBl1FwlaTOA8t5E1m5tAE5iP4tQ6b2P4FRsNv6SFKSLNnFigsIcTClRXqyVVX6apxUbieqMyg+zxSHu98m6vEO1dbwEsn3yCyUTGGZl/jWhhocZbXfgZbXQID0yN6cArQ/rw0IbVD3nXB3DVqO4bUBUv08O2E0P0KqYbEBYTdxrQZugrTFAkA40IBnP3Yn5Mhw65R4JXK1J77hF0MXrwPffQrbCcjXgDD8Nif76C21/UY9xAulfbXNfh+ricsPXRfRbpAZHUZRbshc3UTvKqEp2XgvDYewtm+5niI9R9y4MUabHmR0zk2tX/Utg999KsOtVA1tDhHrBazJvQFn7Jyvy6BN1RPWXrwxpO6aCbPFi8YcdkZhmNQtGT8u/9MYYT3HRyDbiCZdEtI7G0YPaW2TT6BteA1sRZGjNwP5iNaeEfQ+uhXd4Tr06XXTc6GDM7AO7X7Byha2xO2r/iKVrvTv4aazd/B2cIfhQbvAT1lO0K3b+uAPtGmGHBpGIalf7hkfLuXv8Q+0sZTe24mE7v7HSJeKmI1q4VxY5ZxWngbOPS03L76mx7Wg0sX8s1OAKHz5O+BE4Xs/ZAxUBVBl4kObO0FV8t/JgXfb/S0fQpdj9bx1EQuGAxFrpEo9ub1mKg5A3ShZebwGMGxjha+o0cmw9rF08DRu4H1fvubHuqwvwHmp/QA00H4pmcUcYJeXe53vAAs1cG8XnzAO0NPXAl0fQhcIHjSxI+t+xuoyo8BAxanInCXGZcFKm1Xf5ODtOC1tMmDtPjJkLMyAqIi2c0Nw2kKun1i4XSEHmLaKVxVo+g+OrjbixP8CjN6EgHwlTJOUXCdHrqOMInAxZGD1NZCiB77M9q3BmPQ4tE+LmP0NxLWIIvz9OkGk0qYN3MKBV6sDcsXcIimaxXKzL5Rf/61KL/rPaljtNteqatqOcG3ZN03nGC7a9XXcHT793zTDYZ66HITzgXPRHqx3T7fGRkI19sMbCI0b2wuRuEFMEVwDA+aTRmlSOG7J3suTA6+xKnSgT6XfFz/GYggfcAn0qXTkT3s3dqqNn7LCLbVm76Dig3fwvmin0jleYs7K3SHtM5yYnvR7EL6SMl+XbCPLi6D0XsjKEkLODxRmOcd65sIG2XAu29LPJypXAHrVxXxXsCTlaHVFdGcDxsPibD/srUbgK2n5PrB5Xg434+N813GStJSjqMBHEZJ7EHxoqrY1gL4NNvgUVjjebTXZ2XmcAIhBiqOZGWj2votveDivp+ErHAw6GzQ7c/BTzcF6RUG+96Fbw4x+x8Y2dzm3TVGQjjypAOis/MaWJM8rQ28pVsSKPBinSxbCRaOLU+Y7N/Y9k+V8MUytrmjVV9aGM7SR3AsXOWi6nGcqb2od4CkIgfXYGPh9nH8RYC/FDDsMfTtvckZ9OP9jPCRjMEi8R6wIhc9houlA7ShpvdsZ4LuMBaRbhNSNFIXFi5mx8V80w62ukyVXhlaa34oJT4GOhCaWO2G1PmBHSJeWQWHXmhiVuN7nRF8dTn/KxsE4OgYBwajJgOMnYaiy+nkgCc27chZoA3wde8M0DVHUhUttbTmbv+Pw/5fQLok3rzqTehncgD6Ge+nokGNpxtGNFPH0h6A/YyrYf6sKUrBi7VkUS2zLxvLi4zhi0vS9Kmgp8DGUS6OgjGkmYyrEpvil10RO3gf6jp0e6iYHIGBm8gFuO2MdU6IMZ86wPxkG3QHWV4QzbHhlAcdAIP8I9sW2BSBF+tE2SoY7tbEObpWJPxUoIcvc4N/nIvG0TPuUsQVPFOjJeWSuOFHDAA+ttdRzPD9C+lZXYTui0jHFFw4OEIdiaFJ4HVeaq3nFdWNgZsIJECpE11Eh/PNdODz8V4MGUkhFHhLchWDV6o1y/cRTTuIuf3Yxr0R7DweaTWs7bwAPP0lHZi49BJDWtHUbVLK37RMLKDt1xnSC68jbWn3weOFtQnYb5fwa73LZdS7OvOoOPLFta6iicYVpBu8vVfB4lh/CrzFm+erBK9UvhNvKJ2HhxfS2MIXf2Hx9Q8WZGzOqNuwMikNrF10tzYZVzlgP2vs+cEXzDMR4BemnhELfGfpKnBx9Llb5kO8jRSG/17A1+zGZyabsNGuBCADh54RVQoEA20AOqb2sLOy3Q3zwn2psjJlqQY67diYr6LUrIEDfGtFUQlCO90k8AL1BTUvaiPlHtbpZsy5SvLQuGZeFZzxv+P0x5Hdokk9rNMV4OI86xSkG0jLMAzVDPt7YoGagdkx+UUrk3rq7zQR8fYxqoZ33jNDMkXHcLSt1hanGoyG30b/XoNUBT1/Xgl/f+FfgE4npb4/fQU5K2ayAq9UM8LPPlB2THSRNrP0w01RAmjG9Oq2Bck5kTWc9oHTMdJSP6yfDLbDZz2mw/+6B8IHn3hQ6vZ1ZNv/Y33cbQJ8+kUw9PxpOfQZUiWqc4JL1YJiOsIX/zdteZHYcr1R2gjcV5BGINmQyNfyOI5yTV9s2FiczjAGgwZ71qoLvLg864d+W1DUfUKlxwKdd0PAhIWQFDUeijbNBZOBP1AgfvONVyB94WTG8D1SshosnZqfsF3cYyIxlOTRKXxGYRuA0xenoff/hBawfYZUQm/DUujaI4yC65ffJcDn30TDIItz1HQPrq8v2XcVfNc7E3r0Wii684ObUULjJACOX3ZJtNUOSJZ6Jx3m4I3XbM60pUOkK5tqwJUNYsrxPrV17JhucHbNhbjw0VC3c5F8JUNpKoz3tqRA/PUXH8OBPckqAZy2uOq6YlDc4AxfysSdB6SENCxfuSiZgm/BmijYtDwSDE1XQ5eXu8Lrb/0CPw/YCaZ2D/RVGY6SaSqXSvuJvexsk35opnLwWmm2QeKScp8CkU5poJtKgRUzYyLszY5RCtX1y0Lg3++8AS/98wVYuzhI6c96j71zW9EATj7wxRJTmd5Tq8xKePmlLtAFnZvhZn0pEM+ds00PXBrVFWjNmPmdSK/paSsPXktNphgU+R+0NQigR3ptMkefOD4dwSIMTlcsZ5RawD9nPOB7KhrOSplG+zNlBZsYLkZyBLDFedB8uukRvPrG99Dtq1nUU5AFioDXLp3fViFSsBZFwSuiwHXUTT10ZbRlVag2jhPCIH6rs4PXWHNWi+cYgYHLeB31VGCc6FjdYLeHAu/RkmWcFtiUKT7ukNIpyNoaAePFr+4959DXz7o3QP5a+SeIup1JEBtVqgevmiYc714/QWgQFyO939nAO0BzEWMdw4jsnDgnU9g30hxvDaQnRUNVQSJx8GKdqlgBI7weMP4iEHsO+LMvpzGqugifeYb2fFRuzwYr5yedHr4R4TuIwvByWR+YH71BrtzPZeR1uLhPLVOULyEN1HXw/qiR3C4LPwJpOZcoTXxo3sfCmETYnRUlCHjb8sQKLCdNbO8pPZeBAQXUfDdmAL4suvO9J2erwnMSGHS5U8PXd/wpIuDbn+8AFk7Kv8w2pM1Wd3riGpIv0nO6BN9tas3n2T1gVZOKqx5E69NLje+Rj9zDQlZA7qpwOFWeJih8sebMOcG63Th1QQr4+29j/BmIrQrCd+INFQ0pBZ2yMYNqznB5RAR0kmiXgTGRYzPsWBugbggP0BXwztR0KZZyBy5xT+A1tP5d7nhd3POpPG/97iTBwSuV15g7LfQewvSlegkxq+Fo8TLwGlXCOOWDS/two4tYzvuihHoVC5crwGd851yMO7LDmgjkZoXtZO4OhyCcnpyoDvDW6wp4TdSW26UehetYgveQaBfY6EzSB5hWwvqUWVCSE6c28FKLTnsy0SNicwvdEwbdeZ01Y0MboDx9/2DxFFJHVSGI5dznZ21XeW6SF9R1OvjuzhxDDHYTJ7GvLhoz4cQx9LsXBYKviy6A9y11eTbglXMupi9ibKJQBre4yMWQnzFLreCVKjW5inHN9ACzSjhc9DQlsiyphtUTCa6oEMP5d/B8CCfLV6o8NzW71sMw18edBr5rl84lBruLpf04zXrEjEG/b08YvKd1Jeo9JngVAIInflxVl98AjpLVOaVBdqEtckaqpKyseJlG4IsVMJV+RhvdZxA2vVDud8u3bQRz+7vMPx+b26IATVTUccbnJzH+QKeAb/ycjvaSx3YaweHtppygV7TBj+0x3JJyBi+OIeUSgq+zLoB3ueDdXsOucS5x4uJShlflqRE5aoyWsbEPfk0n120UeJm0BwspRcbrdPPdBpnXd4gaT6E/e/rdantfqoRtPDWfFmqBg0VrWKVosGewLsMXG+X3o/xP5BU7M4Yz+A5uswFrZ8bn7VF75mAzdaQlPMB7ThfA6y18muE3HvWldawWdrCVojRniSM8TYyBx/W85XnxGgWvVNU7s2jrXel8HxJiC2j3kTD/INXlxmghDp173JmoSdjgvC7b8xQy/TfdhS+e6kIDXw/Pjbwiz/PFA8HJm/ETqcIBvGhfHyOVs3z96boA353q7vRiI+yPwNx452i7krTj6vMbaHUumxKwRvB6Xraq37uOFsDtW4+NrGqoRTe6fRwvTQe/8ecZL8ZhuGsKNo7e9zmdp62ZOzsVfAeaVRDJvYZOK2ZyHF2Z8Ajt729IcUgtSl7zAdL/aTt4nYWc3EBn/chG+EZn8hhLvRaNbaO6PAmk5WXGVqWwJX2mWup52epg4VoY5vK4Qw6+/TlLTtimdD8H0H7MbY+JvgNxU8YeTuepcscGnasJVgRfrLo8CyIAnjJVpc/xYC6MQvsej3Sw3evN0HbwvtE6Il6Q9lquRt5sPWWVeRdgKKrj4paWzEXPXApHipaKDrxt/r/FGWDr/kjp+CULu1pG+8pcvpVZeSD6UtTEaPqgaRd5lerZuDW16Ap88dOnIvguiJpFBL5Xy38B99FXlB2Hvd6m7Cl8S4XxZmgg4iPAJOpVNaEXzzETfiFR0jk2cUImVG1LFC14ZRUceqGdRaP8E0pa8jZG+8EGQVMCNoh2Ogau2OB6jk6WrcTNKroBX7PjCuE7xKIUrpT/Sqz8a+HcDEXH4a6nrgS8DoI8fltdIQJeKmq1usK7VlgdDQDYS3iEy3Yo3BSrFeCVNlO4jGqQGbYpX1Lm6lXDan+1O5eD2bAy0c2Hw63WfM/VwoR6rYcvXguhA6/0M8lKnUO08WFjWgTdcYzRg9cRnkO6K+wQS/5SNkWX2SKe8J1MGFpDLMpgS/ps5XnE/ATRAbhie7ZcbhOXick+dVTtWM96n8W5q9H5qBRNlyL2/D1cnMH7XGHjHnSutDYNgQOE9tCV/TO+nw5uG0YUwFVb3MDSSW6NoUIPX0dYSNpIRpkjVm/Dsgt9jKrusmmuwHWJCsevM9yPOlzPBlmehxUL58Lx0hTFC117F0PIBAfo+1MPavLCM62DM31cTTWepli+pLLd5/g0/RAXs5fzfg8XrQDPUYUquuLuqQU8OWt3ETlX+7U4D4wXnhWlHSSqQ1+atfBbCfmRQ7NnFsgeywedGbyfqjO/+2P/rRvRy379y6DCvWwqH6QTZrmCVx2PuLj2ODp8Kezfxc8wBxvuJEb6gpXxL/DTd92gR/eP4JMP34UP338HvvnyE/TnD8HatDckx4yjGjc2pIZSFRU1OxZCLdLW1TMhI2lq299h2LN5/SnBl+Tek3Sh1Mapngi0wqbvUGLQLnxt7cpl5eQ8k8tXKuwaFLOkLeWqAOziliOI+Q1Oa6DjONGZwfsSyXSDbFMBnb76PmkaetnPkLr82D8vWTrkkgk46XK1TIv81eU7i6fo7sqKgtdffaktmsV67rlnqf9+9MG/YFDfbyDQ1wbWJE+lIIknFfOFNfEuuNJVYO/5sJ0RvKR6oyArj9jrzIvZQ2ukhKshhHRHS5h3kPg5S08p0y74yrS991Ohyf6pggAYL+pV5rqbd1b4HlDHiJ/eQ8qvvvRK917oJaUGx69/33ejD77xcO5JZbqAZhgmG5N1ts0ZXIRhlZ0WCi/84+9y4CWlf774D+jV8zOwHdoXxnlZQmSQO6TMm0gBfE92DDVc083ekEpnzAsfRc1227dlHmeYFG7JpZ0/5z+phDi4inJXg6XdPrV9XmHhZwX50ipC58zCqVkr4CvxmGYGX6y5s6KFtIAs0/oGCZbgTVeHMU7Pn5bPRC/3QruX7/LZl6GfoX+/I4l86lgZdasqJ9NEh9WSRbWQHD1WEPCSUHigM2uYJCXu77CY2N+kjpFLGBfhPPnmVYlgO2Jn01NviBPEP6vxAX8I+uSA4a4NAGYDX6yY8Fih4OvQmcAbKDR4f+iXuwS91N+VHMbrvQ1L11OpBxXNF9j0RTbPy7VaQiiXrWEuj1uwYU0btKLGiBLABr9+zRokeB5ae/+H+Ni9wjd/FC2FjStiwc8vmzLxIWmG5DyyQfDjT0mu1gL41rGCL9asaQlEwRs3Z+ORzgTe/uSMzzsC7tfBRQe7vNyVyYjnLgZmx/wk4K1Tke99KOfGxBW+shAX2rQF53el0Bs5ciQEBQWBu7s79OvXT+MQxotwbEAyNeRiuy+bP6nhnGrzodidBJP8s4hVQ+DUwOkKoc2LNogevrJBj7oBfK54EIybSFUf1XYm+B4Wwvi8j1HV/e495xizOZafDAr6MKkFli6+0LlusYIvemwmfQHbujfSgmh2sHsb7FatWgmKtojlkfCR1ccd9IHpf+G9Qf+Bd/u8C//q/S688/O/4O0f34G3er0Nb377FrzR8014vccb8NoXr8Nr3V+DV7u9Bq/87xV4+aOX4aX/vgT/fO+f8OK7/4QX3nqhTf94/R/w91f/Di+9/E9qEXBOiAdjmEwIlM+/riJYMcC8w2wFeI4mMyvuwN61gh4rLkMTPXzb2YKyAXBUWBwn6F4q7Qv+AXLOgvc6C3j9+JeoXJaHmlFN85e9Er1lFtPYbF0GWpxtVOYNi7+dn7a8HubnhiZAznfzGsVmLR+89zYFX2dHe4XwbWlpgW9dvqMFsJA6cXwfa6DgoZQkO8VI1CJzkavPX4If49F9q0UPXzrjKTYQHjlyPeXfwKiyoaw3evqrUHQsH+o6eN/gOxJIboyMUXXjl70SRqNd81qlRPDdJ7kI6pRWOtCZfbM35SFnqoNzkNieMlrJlAT8eI8jzLfffA2UbTnFOWqH75aSLXCuln305z1W4m0wcuxtjZbDYaMbZ5l2aDbyGX9L8OPDkbU2lZtxBXB/k2qozBmueMJFti8Tg3UzXYdvPq9vSWnUaVTd9MV38/zQLl8kcVwocv4RL9opWnSTdrbxyfUKMd4cnw9pS/OsmYqNunGVAY5+UxbPVwjfKzeusIbn/2w/5QXf2NVz4fZl9vWu+/I3t52DQyymQwglnP5gPbzR/7rgx7VzU77o4atskkw/lhrhvA3q8ke0Qbdssxc1op7hsQTrMngt+HRtSR9Pfuy/NRPt7iXSx4f2vU9R5Ivzy6Rc0Uh5+eJOufapkrCwQwpvxHfffh1eeOHv8PDhQ4UAXrJpKWNwfuPzDYxY6cALvr3cvocHd6/yMpYh1abL+xG/ZDW4+jBfjMP5ayGPB3e9cY3K1Sns8KfcRZBNBMzLbChLl+F7kdPkXftHVETa27DsMq7LFer4fui/xV5R3henCvhOvlDlD8G2fZq+QqMOpoXSpyBWLQikol9HBxul6Ye+Pv0YgXNwxGBwW+8Klgss4Fvf7+DHMT+xhm9X227Q3PyYM2A8/e7Cwvh6Udpi4oVVM4cmhZ/hxMlXRZ2TVh9877K0dFWm/XyO5bSugjeUs0eDUU3z9303qqMA+pW+RtUn6aJfZZ1z6hi6SZ9+qVO4OLhgfjXtDSmtfvj96mWF8I1bE8cInHZpduCR5Q6TtwVC0I6pMHX7FPjK/WvWAMYbV8AUb82FyMiTooDu3o0x8Pabr8L0SU6QkbpX5WeIvSvU6Y2sjWkHLpGwKstXFXpf18D7HlIL+w/lBvw6uDhdjYf6DoLvPrrVVxLTL2RTGLwiBWrRT3lNMo7gc9fRD520Me8LY7yGK4Tv6YunOwDSaoo1BCQGUgpKCoIvXL+gol4s72wv+GHcj0oB23PUNzBkzpCOqQuXb6GluZkXZHZszNcodNPiJ8Ev33/eYVIInk/XfjqHrGKijwnqi2zl8kQr4IufKsvy10B8bB6M8i1C124NL/jyNK5y0SXwvoB0m4PJ8nj0639T9/EamB1JxfBl41ImxAgipkXpSselm+2Hg4X0nrHfff0p3P39qEIAm/qbwWc2XWH/yXp6QN843QZfLIPpBkrh2yeoD/VzFolD5f7eZKIpND9p0hqzd06LcSnlbZDp+lU4dO0RBh93mwC//mwGRgN6QfdPP4D//PtN+PSj96g/j/W0gGFmvSnZW/aDEdYG4G5vCL5u5hDgOxwylwQjuC5X+pq563ZplcEOHoLaPl8dFVnOCcAGZsf4HEuaroD3WaSTLN88roZ4TlPHbGxz1xBHjUyMdjRR54u/1dm8lptXidLoqPlxIy1cHz56CKq2Px/+CWM2+rUB+Ev3Hgrh2z+0P/Uz9svt5P4+cMFkeNzYoBOQxc5w2F4TCzeO4BSEuroFX37pRcqlDo9PwseibfaS+CmBtr27ZDUMsT7NLvrlt+h2Tlfgu43Fm76Aa4A1fcw/9Mv9lIp8CaYZSHW4sV2YkCo0ZLtCYPx+qhD4bKMzR4PLWuc2AA9NGNoBvD9P+rnt3x3TR0BIcojcPm5drtdq6DoPHyg6/4w33xmgdOKK2FS9M0vh+d2+MR/oFsIVwVe2G5WjPtR28FoxfKNHkfqJ6NC7GJgd/UtVTpWTjKobfxm0dye3ZoomXq+dHL9J4cX9x+ki1tBtbm4Gvw2+4LLOWS79oEouGc7Q3NIst6+rJ3ZrNXw//+wDcbrIPfs3okZAQsnGvVHlObZ3qWkDqyoAUz4sdg/4HJOrNoP3byryvE+Qxor08J/vbViaKkTki6dnDDA/GcVpHJKCFkw2yl2jOLq4eaGGFrJNj5ugu93nHaJZ42gjWrj+EvgLFf3K/p1R1BBK0j93HdENvnL8GpblLIPGpkY4X5epteDFi2z/9/zf5KD3wzddwdVuMERP84TcVeFwqjxNfnxT4VqqHpjN6xzbl0IZ5CdEjIZ33npNJXi1AbqyUjXPLiJ8Oy1k+yqAL0/zqlRthm+mgjd1B6mn2I8fRb1TlPk8cIx6H3702Rhz9P6tWU/msLlN6DhqoLwgXeEFfv1cGS2AKw5X0uZxjdoBuN+0flS9r/TPnzt/DiNWOVAwNphhIIl81zrDx8M+adtHxcESrQWvi80gCnT/evs1WBI7nrVJPO+mjuJlMG3iCPjvf96WA+9rb/ygdeOEdm1SPplk/YqN6oTvSW0FbzjNm6lD+pe2vIeBQ89Y47luJKPfb35eEY12/Ro6D125lOKQOo4RLjuVDtWkIHy+ogOAN+zJpu9yG/UNuGa6dIiArZOt2yocZPO9X3v3bPvdLx16QMOtC1oL38NFS0R1PCsSA6DvoAzRABWnyphG4Krc6Ub6FLGCL/aL4Hn872obeH3avQE8pULrxnKgSLMPnjBMKvrFnXlot91kUjJE2y/ZKmI6k5t5JTxquCEH4NziXIXVDKZxpgrzvLgD7pPh/+vwO5WFKTpdYqZu5WdtF1f9rtUVxrnXhPmK/T02pWcrzO0qEk7T8Tx+W22BrgHSn60HjZspfLV8sbC7xECH/6JbnyGVt5599v++e6bVAAjt+yN1L7Z1GI1uvQ8q8xMY3dBXT+6WA/DGwk3MOtesaXwcXL6BuUl+cKh4iR6WAmiGyMYG4eCFaVllbMxR2veUty6LNXjbrnM7Xr4WcdpQ0SC1h6xA+l5HSuTexV1ovNMORtUPX3vzxwHPyDiv4coOkp6nXBU9c4nK9ANdVcT9u1cgZWMSDJ86DCwDLcBkgjF0tekKP7h+B/ZTzCEsfiRsyJwB1bsX6oGoRoltYoV04ADT2XftfZmP7lsFjm6lSsvJBG5mqhMrnDxbI9yHSG7P6Nj27S/pXbB3At+0Q9ceM0ai3b3NcDFSqQaYnyQKXwfnHVC9fQH9zVyhh5m2aX7cIXEZpMsMHDCzV+mjC7MiTrW9l9RFuQiwNUobKdTRxo/0mpig26U1vVCC9Pozuru9gBfc+Eys+Or7pGloPx+3O39vczeQP00UvkaWpdRMMilsL5Wuh8ulG5TqUmkWnCtfrYedOoU+m/PlGXChbB11/uk+l3Pl6WDv8Uh0US+bCBSb4uNRWAbUQrdq/wYm1zjPNmOs4c/oNw3AFz3mc7WQ7PlTaiTax1c0X14R6nJ+YqLanRIjGHxzqwIvPYjT9XAUSGcrVjH6QsTKzSgUDXhNbP/quPiFghimVT18gdth7iK/Lr8kPQo10GiBF9vweB62H3avPlnL0O/3eoZmXD36MHeQvKj5qL9xNZTmpVI3+m9la+hv7LJs+L2mAK4f3AtXKnJof+ZiaaY+TUFQ+MlCUYSrSEEhF0W0yHaA8+KX0fCbSrvWNDAp/IwehRqIfPFiGzVWiEXe95eBu8tawfuSgrTNdc6TPNA3ONnItwbq90jgix9pFcH3xpESuH2qGgF4j9Io+EzFSj08eaYXLjKMdGV1bNcmEaUbrvPKv0rnI5ICr2Rk12W+7+tLPQ7Vu73Vz7iuGQOYad63t2HZpWeffR5Xe7yuALzf8R4bJDs4lIBy1+bCidJUxZEvC4kpBVGwNpKSNsFX4RegAl2tzIVrB3ZD2uKDImmoeKy0NJOJ0xiuCVbWOMFFTKstlChIj0P1bv9GH9w9fDExgq9RdePLr37Vr31lQzv4TuOfT7tHFL4xURWUBSGXnG974X3oI1j1wffmsTK4XJMPNm5NooAvk2ocVW5+EoDTd65xvcZ5jhXCKtPjUL3bKwi8VyXwPaQCvDUt733oYKEo4pWB7yEyF/kpYvDFaZWUpBLKmPsSh0de+bSDHqB8xObp42p1Htw8WgrJCYdEn26QSwEwaPkVwsKVp70k6Hhllwjha1RzmipXUWGq/tFnY/BsubdUgPcXTc27YjJJecva3NbV9SyOKQfdLz87WZwCp0rTBM77rmT8GZwrygZLZ8379eLhtowXeRlUPeDyMNLwxcZUPN+nnR6Jaqx26G1YdkCSw1Kcx/qkewCe96TSMAh9eFHkLvaHgkQHEwMOytWVMoGANlQ6HMlPhsM5i+DQpoVQu3weVCXFdFDdqvlwYs8yOF2+vBW0qXBqXyr155MlqVC/LpH6uQPrE9UUBa9Vee4T52k+6sURJdsuUAxrZfvE0THpa3uQ5W9832uKHolq3H4ZVFikDL7de0aNQz/2HsPmlJVk82unBAHwIIsTcGDv2nb1piupR2KclsCwxf+vDfW9B7MX0oKWj6qXxIqi7Ax/OY6ddE1UXWzMqw8uqck+lajJzm96IqoTvgP3FNDC16jmyQefeOLOl/cZgvc5pAekIw5BJm1IH9OGXYD0lDKtThMcyEwkDt9DGzXoV9H6JYiBfKJ0FboOWjRW1YAByb3jsk5p40P7RTdiZlJ29/m+9656Kqpne/3ngbtypReLrEPZK69/i6saujDdEbamE+ImwBGEUPB9mqM7BHZuZ6Fuj/ZNmjhZlEIWvJvEYxRUsGGbBse8X2U9xLWD4Y3VFVWTy0U3MRx3p+qxqKZSs34m+xsweKU5rV8HFx/92/NdcMswq8nKLIeIsox+a9UmXBkxCN10EybVQ0LMZjiwV/y2kKf2pUHV4ljeqYbju5eK5j0d3bcafCfc0Bh8cdMC72sJ3VN4NBbf6gk2wt2qPN/7DT0W1VDpgPQfCXQl8P3JYFs+0/wu6cYKZcILCeoEcPvHR6mGWB2jFuzWLt/XIWcsBp0uWw77V8czA+7iGKhZNpdagBPTe6jcsQHWrSiBgKmXNGqOTur6wVU7ymYWCpFWI1BypjfaEXr79tcMF2mNb7evI7Ax/Itc9oM+rNWClvnIdASJU3Vg51QJEeG7oCArT1/Py2RQZmk6JCfuA+/R1ej6k7S44wVWfC3iskCeBuHcG3zQ6xJ9kqKiX8W5X/xeied9be/xPQ8FejoKvPUZUrnN0PrKubfeHfw5+uOzXPeDPqxyoW+KQRbnRA5gRWmMGhjuWNscEFj+V1Huqj9PVaxoPt2JGjWO70uFpYnrHvv7r2kYYL39j/7DdtzrP7QMnZtqyndD6r8h+XM11Z7LpEVX07W87ErALqitm5NaSB5+k++5wFPXn9UTUqANz5xDCiawn9e0+cbgG/FKjInq24TLfSQeyQfBwKIWBtiUwqARe8DQYxuYjN4OxmOzYFhYAQyLWAeW01LAMWwxhCStgMUZK2HHttVQXbQKjpZpL2yxh8a29bFgPCkejPwlMg5IBCOZPyvVpAQwHZsvOs8GvlI2401VgxNJ2LPQt3pKih/i3uq6QdSd++1vWQjGA6PBzGA62BlOAyfDCWDX3wUc+g0H2wGjwbnvAHAcaALW4elgE5UFNnPWg13sJrCPy5ForkQO87ZQ/2YyeREl8+ClzECENGL6IliUlgzVhQhs5StALFEzhmzdzkWUqgoSoWjTXMhdFQ45K8Ngeswcxu+vI3zjwWrcb+ptohjRTHSCN51wyZoqlzNyi27HSJyXED3dxA/fDeqNTtQH38GDV8LIQUYwxshcodwC5sGI+VtVyjZqAwxFkS7jCFCFhgbOA68Zc2HG/PmQkbEQKnYuhZOtnWuk4HqoUDL/rmpbIuzOiqIc1DBcVck9dC7n92UesgwsXB+q2SznhFquJ2Xtv6TbjXmaq2NV6ukmbvA+1zrfTlSuUiQ1fPB0heAd6eQLI1CEywS+WCaBC4mAl4nMAuaDU0gcTIyIhuh5kZCVFk5FpvkZs2BH5hwoyYmjVLx5LuxCYN22LhK2rp7JCK6qNCkymvNxDwvdo2bwnlJf/l9J6ZmxzR2ir8XTXF2qd/WUEy98bdSdmzMafos7SGcU3DOwrGY3MNSoBnyMnDuAd7SlPTjNSmcMXhz5qgu8shqP4EsCqGwUPnc255SD9Tj1TasgPS+Qbz6WZNOFqgYPhhqjp5x44XtWIyNcuOTnjKqb7GI2UiA08igDVWZCsrI2y+6YbpiSwBi8FHyjswWA63wYPjUORgTHoUf9WBgdHgOh0XMge3mY2oHbXptWhEFQVBS7VErwCrW1E5M27GfXAtxAPLDoaK5+ksR5OqGnnDjBa6ipIngcPbBehLDPvo4Xv6QwtA4qgqedfXUqDEv2g5+RdRt4PX1CWIG3Le0wZRGRXC8Gm6bhykZLFs0C6ylxKt+blX+d4NfOsIBT1AKoVdgaGOy5CfqZl6odvrgaRlH6gVzlA7FzaaGnXSeAL/ZxYFIgzqUQ3iJgJ3XTycLQJnIzGAytYxQF2xvHUuD1sXHlBF4sq/BVvOG7aFGEVoG3veISIsEYRey0VQ5jLgsKXpugg0qeTDaA8eitLf1ND7aoA8CK2oBJttMTalTZq6ed+OC7UIhcLtMyGZWTN9rN1bIMzaS96RzmbQUj82LVOTTj7RR8XUKXcoYvjrz5gBdHkNoMXlmlLp4J5iiKb6tyCF4KFp73BIGuJdqvQ1we48/JIS4fzH2OoKi4ulHQ8jOLs4KWVOIR9YTOYU898cQD3veFMs/BUGXmOvU78/zXiDxqwYvuRnMNXkRB1Whwmsro19FuDmfwSoXrgHEjAVvwxsyP1BnwYmWmhstFwFbhqwXJ91qPvcz7M7OYtLeln3FtsyDljDRTh7EtJJm87ylS5zFZTz3xwHc50SkBMtUHTAcBsnk8Mx63nv7GQiD0M7Vqy+WaDohWuphnZFfJ+0aWRNtbwHRqMmPweoTG6hR4sfDioFyJWXAZefCOu0Dk83qamtgMA2wKH5NvB75FU/lwnEjeV5mrGgud1FNPPPA9QuRx0AlgSjhATj7AkeMAjx8D5O0g7PdgVN2Cu8/obqZRDiM7VDGYD5ip9GK2DS8mdjNbzlihuukAPZrjKLFD5Jg2E+IXzYd5SYmQmJwASUvmwdIlcTB30SKIWpgMsxcuhkikiAVL2oT/bcHiBOrnVqZEwWYNLdzhyoz279PS7wzZhbVJp4mCVw7CkTlgYLJX0AYMUmO0VE1SZiFzPfnUuAHAc0h9kYKRjiCtO34K7o5HfwqLAUhcCpC+HmDLNoDSSoCjJwCu/A7w6BHw2kYHMB0x/5fqhQ3bbVSrb/vFNseYbPrGiUFGYGEwrS0K73Axux4heiPjtmNF4MWP5WtSZkL0wkUQOH+VoJoyfyUkIIhvXBEuGHSz08JgmIKqh6HEutqawT56l2DgxfIcLWm88RriBgOG7BFsBhsJT2FCPg/6jjeBQfs3pElId0DDG4Y404tCVWH6IM8M2hvIOSxNYeeau8FgMG8FcPs8MLY+tJ1ZQvRmxnlg48AF7SLeBAict1Jw6CoTjpaXL4smUtq2HkXvuOuODrwmAYtgqEsjEUjYhpcLCl6X6cs61nwbjoZ+RuWEytAOy7UGs1lY5jpJmYWG6EnJHbCfIo1D2tsK2Scg0m1cENMR88qmAdTAsAj6lIOn7wyF8PU1NAWvgUNgkOFm2kU4Y49KQW5snB7Bi3HYEWxSnGbBq0zzkhawAm8WinhlKxs6RL0hqUQW24ZPPSwoeF2nLlB8zQwxA9MBc4nV6Epd0EhYTuIUBiH4lugpqhqy/4fkhbQF6TFo4bYqk7kjlaIqhYF2heAQl9vhJnKMzlJqliOVj4mHgvRDFbX4ItRNHrZyB0yOTxctfKWKRJGxqjQF7rhTlde2nraVNxjsZu0TNuKdtpjRNePU3xJFwaVEW4T5up4Nsf6DZPTbS0/Yp6D9ACkS6Tbo0MYm9aBo0KHl1O208PX0nc7oRsKyMpxLm34w8s0R5CYPTi+CBVuqKUWt2SV6AEu0EpYsieuQ37UNimNmphNcxS/VEFYpbMQbtIjx9YLl6h8HBpY15NIQDk94Tdgg1GoslX9nhu2rSIlILaDjm50XswuCzhHKwLq0wyKbVL7mwxnfSCOd/WCg4/YOAMYLeaRv8pFJ29vAK6tFG3bBiux8WJOzHbbsKISyikqora1lrcqqasjcugti0rIFA3F8ciKsWBYN42LSqLy1Uue1qclU/fXwwBPcu9aCDwgKXi+vyazAixfjpM07g+zITqfgA2ACFpNSHetswH0WKQ862RadyMJsR86prA5Mxm5VDN+hdoxvJnf/GLCN3gj9zMvl4Wt2FGznFBC90TeVH1d4Lp48eQJHjx7lBF1VKq+shNWbt0NwYgYxCNuEdPSxsAhNA6m5kayGBZzk7NMgFHSdw5aDn7EFK/B6u03osJ+Bw/cTbUlmUuFDX3J2h2T0O6izgDcEOunGJvUgNdvB+Vkjj2KF4B0Rl8vqhnKZniLxZQjaLZf7xbA3HllE7GbPKDrC6Jw8fvwYjh07JgiEpdpXVglJa3I5QXf0nFQwxh18k+JhaGgqLWxJwFdI8LoFzmd1jSgzW7KJyIGBFmQ9qA2tr7IvObM4RxK+uboO3X8gnYdOvvmHMk89YDga21aB1cx0hfB1iljN6qZyinxaqjbEcxc1o00K+YFWh4jd8H/eZ1ccjSPh48ePCwphrJqaGkjbkKe6TjhhNUxctBFkneOYih18WwStavD2DGANXvcJUUr3aR2yhypRJG3Mzr7brZkkgN/SVfB27Qw5XSZbYSnTAZsPKXNsx6idlHeu4sWThaxuLNyC3FaPG71VJr1RB/0tK4jc8KsLD3M+Py0tLXD27FnBIXzw4EE4ffoMZOyohHnZ+zrkpfFCIdf3P8z/DIsGip2CQBc33fha2LMGr9ukuYz2b+q3R2P+wW1VD8NukIRvsC6C9yWke3rsPt2Yzndbv7kBbCOUT5dwHz+bHXzb/f5gxwoZ+PIvb5q+phjO/k6uUKWhoYF1bvjQoUNw6tQpuHz5Mty8eRMePnyo8nW21Z6hoJuQWwUeC/nlvq3HM+vCsp+9lzx40RPSSCc/1tDlYqg/yLFQo/DFs+oIwve8LqYarutxK79ZOKm+GEIiAUrrj6levR4VzAu+NjOK2xbeDKz2Ud1pXG989wUFsDi/VrDzhqPiW7duUXrw4AHx/T9sfEwEgFZ+V5V/vs6PwT5qN3HweoyL4ARdX7Nh4Dgnk707WmChxqNfU/tH+o43GvC+iHRVj9qOm62HigJ7T4BHjQAbyk+ovuH8wnjBl4pgHCSmKv2tihgtKCnSqKRtcE9Jrre5uQUu37wHxy/egMoTl2Ezen9pO+tpy9HaK6PwMOyuPwdXbwn3ELWm+CgZ+PooeRx2agaH2O3E63b9jIdyAu8oe2/uhjyzczUOX0Kz3aTK1hX4btBjln5zG6P8Ijh5RvJzURtVF9u7BcSxgy/NdGJJ9Ivhu5dX5Lt0+37quPFiW2bxEUZQ5astVafg0PlrcOUmdyhfu3sf3BbkE4OhQvg6PwGHGHLgxYunshairBfWJsXyen1s8KRp+DL1y+40C2/oev5Jj1jFW8ISxR8+tqOUbmm7DxGHr/PMlbT7GWBVAf2t91CuZJzaVRPzIDm/Vi3AVaX1JUfht2t3oemxcquPhoeN4L98D/HHf0XwtZ9DKMeLoDfSeQxn6I4aMYrKDfM5hpCMkpbHT5oZD20VdICn7T39wpsMfEv0iGUP32mz5X8ut/o0cfi6TY6nB0ZgGYLvbqqWlVsbcaEowNuhm25rDe0CYF6NcP64dPAdPoVASmPuZvCx8+QMXdwJ6RiVya9meEFB458PGtvOI1+XMiGsKzvtwhv6PL7Q45U9fK1dAf5qkP+58hNXVJcUoZuJzQ2Ic8SKZr8Z2O2khmKyblldtE2U4G2vvQfPw/1HTTBmmbD+uO3haznqFr99xm6C0dZOnKFLfemiL2m+72v+lpqG9teygdmxFk3Dl+m0GJ1feEOfR5wer+zhW1ZF0xF36Sajm4KNt4PXyCDFPryzSjndlHOyyrQCvoEr9goKXVr4ujShL7Y8zukFPpEu1ak2KoR3isE5Ie/J+Wt3aa/lgUNPN2savnSTM3hqs7bC96Yer8q3XUXyH/aCZfQ/d+HGn4xuDh9bD+bGOi5jicMmPqdS1NCNyS4Hp/g8tYC3PXxtQg5winTZfKa0vgwe/mTaxIuPKm2OGmz122MxwHfg0DOko18TbQNvDz1aVW/5u+TreVsUXN63/3rIrIXU3Z/xTelj40bYuUzcKYfxKbvUBt328MXNFuzMb9J4VS9QeV0LO3CMWs/7PYxN2XW/4WGTymvZ0Ppykxjgi0UYvme1Db5j9WhVvW3IlXzAQbOU/xxeTWa0CDJpLpFFNy6ajB7lxQjd6A3l4Khm6MrB1/kxOMQxi7ZxPtaPB3BJ5nWRWurPXWNsBWBsc+2RWOCLTdoJA9hfm+BLtLYXt4Xeu3cP/vrrL52C7+QwAAdvyXRjVZv7woIGlfWes9exukl9hrsSA83s9aWiA+/oxTs0Al1Z+NqGVahMLeCSL77AxTaRpL5MwzPLnjS3sLNgMbQ690As8B1kcZ40fB8hddEW+FaThNSFCxfkevYvXbqkM4ttlQy7cEPX7LvJLPUwkZ21ZEgy/yL/+K2QmFslstzuVo2CV2VqYdYqKjXAG7qm1uASupTIMY1esrP5jzsNnK7nwZYnG8QCXwGqHrAWagt8z5EE1ZUrV2iNUzCUtXG7f1/5Ahtty2vJ0SeMQDgrndXNi4v0+d60Y5bu7HSVDJxbgIOTwM/Ekjd0fYfaglNEBhmf3wX5LZdu8GvXHmJ16o5Y4CuAyTpWC9IL2gBfoo33d+7cUepedffuXa2Cb91BAN9Adr/z18NG5t4KDiPZdbuFLed1805dpfnGitiNFeCamC9a6OLolKvvQnvzG6fINUSOadTiHS0Xrv9J5Jo2tbt4TUzwJWyyLlU/sYP3BdKwwi5W+/fvV2kfiI24dXkLWl18g5GrmH8M646nETQDOZlqxppijYLXd8kOcaYWwtI4eenSabSlAzjNXkvkuMal7IZ7Mt1pJLaM4OVlwcOnPB5vGdHsbZHYbGOW2WhovOtOX6MKDeWCscl6C2n47hY7fN8RAjzYz5WJhyuegtDc3KyT8C2oO9vCOH9n7cgu/eDkx/lmjtTQYpu663YZRbjTU4gBlzR0XdCTAalIt/12OqBnCxL+L5yc9DUcmfAV7B/bA6p8v4SSUZ/Dbq/uUODeDXKcP4PNSFlOPSDSxhO8h85/1M+ookkLGi7EH/2iz+FDoeBz7do1xkbaeB6YuiCMvxjGBzVQH87kGTcgJ68Bdhf+CVV1ALUHAA4dldf+g4+hsqahTdK//1NFsubu/Ue4bKqZaW6R7Y3uMS6Sfb4Q3dCaAO/kleLJ7WI44soRUsCVQtdxzjoyeWb0GR04f03Qe0AWvlxUP9EArC1LGkTecIFVLGb4Po85KQYAq6sy4tCRW23DJyXuThLhVVf8d9L5aMrd+E/BH9dVf1ks3l5/k+lN5+k3g/VNzzbKUnd9L66q8FxUoHnoxuWAl/cUosBtmxQcl0MMuicu3xL8+m9uegQVo7+Avd7dYadHNyj0/hzKfL6ASt8vqL+vH9eDioZPISkDcCn6nQHGpffwBG1SABYg9YBlKGYAnxf0w0YR7R9//AF1dXWMAFxfXw+PHj0S5Fiu33wMBqYHOOWkZL1IJ0w5T+W2VW2/32lgdQOyjchGOfqw2v/cjRWcIBoxNxUmDBsBM6bFQvyGEka/g70jNArcebnUlAgS1Qry3Wj2VJUKqeOckLYHLt9SX018w4ky2OralUonqNIWl65wbCI9hItGfg4+lvMb8VggkaceqjotfNtvN27cgPPnz8PJkyfh8OHDcODAAVoInz59mujrnjp9DcztDvO+QBw8zkJjYxPjNMmc7Ir7jB+JIzJYd025T4xilkNMyJOH44IMGCOzoh/oMQZmTJ8L89bupv4dQ3aiHf2XwWSvcSpKyPZoLML1GBNONTEQBa7ZMArkJI81Ma+W6oZU99Z440JbLleVdnt2Vxj57hv1BUTZuD0hGfkOtrokBHyxLMUK3z263hq8ZMXN1rHZ/E2kDxxuYlWpcfPeA1yb+QcbgPia27CCg+uURNUNHe38HIInhvICUoCrTwfoJuRUEZ0uwWjib3QWNWrdj3BKAQPXNXgR2brhxHw49JtmxyM23boMBW7dFAI3F0W7OPWgKu+LF+gS7IY19zc9TAy+BqZHhILvCbHCd4Iug/fx48cQHL6fyMURMus6p4XBXQd+u8bOIWsjdfOz6n6btkS56coy+eYKHL1KfzcmZTNEL86CsBnzOuw3ImaZJFJOXA1j2z3CTw+OkqtmUFtZ2MxV1Bwz0jlcnKJw948me6wJeQ/rz11rfEJgQfnu7TvQzDNaxvDFud72ES4T4Mrq4PgeEGvr3CxZOyE4XNPugVAAHilG+PbWZfg2NTWBlQOJNshauHP3CaNcb4cuuUdNHGZ9rWEdzeFaVUX7w6kAWfiONbOmfmda4Ey5v58y8mnL83hLO7l/C5+ZIPd6wROmUX8/Y02JwPnbLZQBje9QG+LAHW01Au17HtkStoT8S0cu3vidxPV79dJl2J67FXblFUB9dQ0l/P+1FZXcOjZPVkD56C+oRTZVi2rKdNz/a5htO6pF8kQp2uGasnooyq439Jnc0lX4YoMfezf+F0Vs4m1e5XCtPr8trG7kuZtZma5TKYighSorHSY5P+2qm58pXwExxWdS279NcvKW+7eoRfJmQBjUk5YLlN9F0T82kfczGkoeuMOcidXjymp18dGLXL6c6bZLv12AnMysNsluGMD475oamTVfNF7/DW7vSYOLiU7Ap8SsfeQbZjMBSMMXpzEEgi/WIp3vchNb5Dt6Iv+LorruPjQ28us0wtUPTGt/ZaM+HJ3xBbAUvlN9A9t+LixsvnzONnuf3H7CZy2Q+/fZ81e2/dtEezdwS9hCNn8bk00ZipOGrTTCdQ5fQRy43snbm49dIjeLAKcWtm7YSEW2N6/fgPsNDXDu9Bkq+pWF8bGDh+mrixofwM1ti+DM1B+IgZZO1X5fQvDwIOLwpYZr2jUICeAvxQTfLvhpRJcBvDSN36KAy+g7VO6YxIYX4PCIF6FTELhxo31nG87rKqtYiIhNafv3CTZOHf5dmnYInDafSCoBf0l4eQUSXyyTtW5U9CTAR15J21oqT16BJwQbg/Ai7o4teRRk7/1J39l249p1Crw47dD86D7cq98Ov6dPhtOTewkG2doxPRT8/ZcQMCwCDMyOE4fvYMuLQsK3REzwNdX1aodDhy5wz/Wib/aS8odA6nESbwfPX2e/Uj51AWv4uExb3Pb7CblVEJuWK4Gnm2/HhojNFTDWTDKRYaKtMyRsKu/wM6FTZ8OYhE2cQOs+YQ7v2WZMp344z0gVJBUyc30ZPGoi70mCPbC3ZGVTEa90Qa0Fgb3x9zPw18FdcD7SBI5P+RkqY0fCsaDegka0e7y+APtv/gM/fvhOm3x+/qDDz+GW5LFWcVSFAnGbSXTPCQhfLEexwPeorsMXX9zhcziWv6Bv9hs3G4kf0+6Dv7F/LJ+TybqGFbum4fI1VR6+oZMjqJ8PnRJJ++/zN1eyciLD7bbYg0Jo2OKo2ctrMlVyJkg7cnwerFm9GgHQGO5WboRHl49TFQMtj5s4f/YtzU/gwfkDcLcsC37bkgy56zLhxLT+CoF4YvIPAqUOesCyYZ/BhD7/hV8/fkcOuLIy/+LftPAdZbWY6gzVkgkXsmrQuOE6ug7CoZNsuHV5XCD7i8DP/5BgHXdZZSc4NRJwMfaO38R9WvHsrFJmFQmT46nFLOFhOwXBdoNg1RXuCwpa8pYnChphHgkxgK2rV7TlcI9P+Yn25w6ED4W9yeFwaPoQXq+X69Id3L5/XyFgZdXnk3cgbPDHsMf7C8XHj+DrbpVOpHZeTRMu2itLk+BNg0624Y46n/HsLoKxgcK1O+Ntz6EL3PKOo4JZQStuE7fWYuz/q6gawdMnBPxMrASG7VBq2CgpM3IlJuWwvf4clV66f6pKMOgeDh0MOevWyy2eySovPRWOT/2F+tnCpDDq76rnOPN6zXG9/6sUthZf/puKgE/KlJ6tse8Kw79+D2JMPlFYajbCIksw+OKIWiCvB1kNVzd0XwEBzXTE3nCBPSYioplfBOFz9hPN99JteBwMerxtYQ2MgDjGEAvj4OPrs3g7VYGAXwdP0SBhMK56kWwojHQdB06RGcI7nMXnQXbFSWg/A63xj7OCwbds3liF4JXTukzqvxjWfF8zYsjHtNAd3PXdNhOdDY7dKEj/1O5n8tw+V7jf4RYFjIyoRDThor3uIb2oLvB6Iv2Gy06RLuKncaTLSFdwPTeuhmrVH62Axr2QN/AifWst8G2kO7giBgkvyWJjRewK0tBaMfEAp1hbhcNFnCzFyTFcKoBXKvBqQoumIXz27FnI3lT156+Di4/2Niw933tI+dU+Qypv9TGq+quvUXVjX6OaFukFEBC8Xy3HhAEQuYF9lxieL4Zng6lMO2xk7uMbvrYE3EKXCA5bH1t3cJ8YTdUzq6s7bvSSnSpbfHFdrGAlWlGuzOCLdCDcgshrZqAolkm6ob2GdHtXLhpuL3PzQkFKzQSecNFeGc/oN7Vv/0XqxUDvqPOgECD+jZSGtLxV+P9TkVJatQxpKdKSVi1GSkZKcopcs9zbw78aPaZXyahytHdgfVx26Z8q7B+bIzJL69F+Ir28Jm9Hv7fH2zNgB/r/Ai/vqVs9R4Vs8vSZlu3pOz3Twy88w2PsrFUe42enuU+MWuLuH5uEouNEt8nx81ynLoh1CUme4xK6dJZzWNoM55mrgtFxTXaMWu+PIDsW7d8XaTSSD9JIJG8kLyRPJA8kdyRXJBckJyRHJAckeyRbJBukYUjWSJZIFkjmSGZIJkjGSEOQDJEGIQ1EMkBi/DkisHwgFHxxtcKWNRlKoZuL/p1vjldWW10/5wRfHAXv9FSc9zU0qxJswU3qJqgG+GKZ6XGo3/SbSDYElySkJ0iNSA+RGpDuId1Buol0Hel3pMtIF5HOI51BOoV0HOko0iGkeqQ6pGqkiq2u3Q+M6fPxtZSYyMYFM6Y+mj1pTGO4n+ejyc7WD/yGGtxz+PHT28O+eu8m0nWs4V+9d83x2/9cRBHoCvT7aUgpSEtaj28hUgLSfKS5SNFIc5AikMKRZiBNqx/71fQky0+XJAz939I40/8tjTb5ZFmk0cdLwwd/nDJ90EcpwQM+Spnc/8NU/74fpo3v/d/lfr/8d4XPzx+s9P7xg3SPH95f7drr/YwYk08mo32ZIA1B+hXpFYNPXv5PgtmHPzM4nc8hPY/0d6R/IOFH/X8ivYT0MtKrSK8hvYH0FtLbSP9C+nfr7+g3/abf9Jt+02/6Tb/pN/2m3/SbftNv+k2/6Tf9pt/0m37Tb/pNv+k3/abf9Jt+02/6Tb/pN9rt/wEIeM92ZawvXQAAAABJRU5ErkJggg==
<<<
I wonder how [[Sphygmus]] gets her category links to be colored in New and Recent. I'm jealous. I'll have to ask her.
<<< [[chameleon, 2020.02.16 - snarf-gmus|https://wiki.waifu.haus/#2020.02.16%20-%20snarf-gmus]]
Oh hey! It's awesome that you like my colored links -- I like them too! :)
I've gone back and revisited my methods so they're //slightly// less hacky for the public, now that I've learned something about `{{{ }}}` in TW code (which you can learn more about at the very bottom of [[this page|https://tiddlywiki.com/static/HTML%2520in%2520WikiText.html]]).
---
!!! $:/core/ui/SideBar/Open
@@.spaced-list
# the main code you want to be looking for is `<$link to={{!!title}}><$view field="title"/></$link>`
#* you want to add `style={{{ color: [<currentTiddler>get[color]] ; +[join[]] }}}` to a `<span>` wrapping the view title.
#** this sets the color of each individual link in //Open// to whatever is in the //color// field of that tiddler.
#** basically it treats the plaintext //color:// etc. as part of the filter expression; //join// smooshes the color section together and because it's all in `{{{ }}}` it gets added as an attribute value correctly.
# in the //droppable-item// macro I've added `class={{{ [<currentTiddler>get[tags]split[ ]join[]] }}}` to the div; this is so that I can use `[class*=TextHere]` attribute selectors to color the link text based on what a tiddler is tagged as -- ie, so that my //Carpe Diem// log tiddler titles appear to be colored in the sidebar, even though I ''don't'' set the //color// field for them individually. The data style CSS is here: $:/plugins/sphygmus/core/stylesheet/data-styles
# if you want tiddler icons to be visible in your sidebar, add this code from my version: `<div class="tc-tiddler-title-icon tc-icon-sidebar" ... ><$transclude tiddler={{!!icon}}/></div>`
#* you also add the style from above to this div so that the icon is colored the same way the link text is colored; just exchange `color:` for `fill:`.
#* this will mess up title wrapping, so in the //droppable-item// macro, add `style="display: flex; align-items: center;"` to the div so that the close button is nicely centered on titles that wrap over more than one line.
#* if you do this, your FA5-SVG tiddler icons will look REAL big! This is because they're set to a specific pixel size height and width; going in and changing that to be `1em` will let them fit responsively into the sidebars.
#* I have slightly customized the .tc-icon-sidebar class to make it fit more nicely in the sidebar:
@@
```css
.tc-icon-sidebar {
margin-right: .1em;
margin-left: .25em;
}
```
---
!!! $:/core/macros/timeline
@@.spaced-list
* Any changes made here will affect //Recent//, //New//, and other tiddlers that use the timeline macro.
* The core concept is the same: to change the color of titles, do the same thing we did in step one from above but add the //span// to the `timeline-title` macro.
* Just like step 2 above, it's possible to add the tiddler tags as a class here, so that the same data style CSS applies to these sidebar tabs as well.
* If you want icons to be visible, add the code from step 3 above to the `timeline-title` macro.
@@
---
On another note, I just realized that somewhere in the last several TiddlyWiki releases they appear to have broken the //Open// sidebar for older wikis?? Like, why is yours completely blank, even when I open up lots of tiddlers??? I had the same issue when I copied the //Open// tiddler code from TW.com -- it looks like when they changed from `filter="[list[$:/StoryList]]" history="$:/HistoryList"` to `filter="[list<tv-story-list>]" history=<<tv-history-list>>` it broke something -- though it works on the TW website, so there must be an incompatibility with old shadow tiddlers hanging around our wikis..??
<<list-links "[tag[Daily Task Archive]] +[prefix[2019.]] +[!sortan[]]">>
* This has been a great year!
* Finally moved to America
* Have been running the wiki and making near daily changes for like 6 months
* Private art/writing has improved, and my programming
* This has been a whirlwind of a decade!
!! Monthly Reviews
<<list-links "[prefix[2019.]!sortan[]] +[tag[Journal Review]]">>
!! Journal Entries
<<list-links "[prefix[2019.]!sortan[]] -[tag[Journal Review]] -[tag[Daily Tasks]]">>
My first month using the wiki; started about halfway through the month.
Takeaways from my first wiki-ized month!
* AAAAAA I FORGOT TO ASK H0P3 ABOUT FICTIONAL CHARACTERS
* Emacs is mostly good now. I do miss xemacs-chameleon sometimes though<<ref "pf">> :(
* Wiki-ing is really fun. And I think it's really helping me with direction and stuff.
** It is distracting me from work though<<ref "wo">>
** It's helping to scratch the shitposting/screaming-into-the-void itch of chans or social media but without all the toxic side effects.
* Should probably pin the shreddit tiddler somehow, or cron it.
** Not having a post history is really liberating, considering the usual scummy reddit trick of going through it to own you.
*** Shit like this makes me miss being a channer, then I remember literally everything else about chans.
* Didn't follow up on the meditation habit. Thankfully meditation isn't necessary for practice anyways, it just really helps.
** My practice is getting better anyways.
* Still need to type up that seance.
* I wrote so fucking much [[Konata]] fluff this month.<<ref "<3">>
* Should probably ease up on the [[h0p3]] senpai-ing. He's probably real creeped out.<<ref "fu">>
** At the same time, his writing is electrifying and exciting. It's like having [[David Chapman]]-[[Senpai]] but with a formal philosophical education and a frequent update schedule. So I'm unlikely to stop stalking for now.
* The ~KyoAni situation is so fucked. Like. So fucked I can't find words.
* Manuskript was kinda cool but a little //too// structured for me.
-----
<<list-links "[tag[Journal]!sortan[]] +[prefix[2019.07.]]">>
-----
<<footnotes "wo" "Is that so bad?">>
<<footnotes "pf" "Possible fix (read: HACK) is to clear the backgrounds between theme switches, but eh, more trouble than it's worth)">>
<<footnotes "fu" "as well he should be, I'm a gross stinky fujoshi >:3c">>
<<footnotes "<3" "Wuv you snugglemuffin ♥">>
<<<
I'm perennially fascinated by your wiki, even if I've no idea what exactly to make of it.
<<<
That is high praise. Thank you.
You might check out [[help]] and the [[Root]] [[directories]]. Like myself, my wiki is still not sane enough, I'm afraid. It might not look like it, but I'm doing my best over here. I'm a schizotypal autistic man, so I'm not a great communicator (not even with myself).
<<<
It reminds me of the stories I write for myself and occasionally share with trusted friends, like some kind of Darger-esque doomed project.
<<<
I wish we all had more trusted friends to share the stories of our lives with. One of my goals is to show people what it's like to be themselves online, to be transparent, and to build ourselves in the sunlight. I'm doing a terrible job. Lol.
It's painful and funny that you call it a Darger-esque doomed project. Yeah, that's probably right. I'm a madman. Sometimes I feel like Noah.<<ref "u">> I'm pretty sure most people, except [[my wife|k0sh3k]] and few [[others]], believe I'm throwing my life away by writing it into this wiki.
Also, I owe you an apology for not responding [[a year ago|https://www.reddit.com/r/SneerClub/comments/8tx0oa/seeking_wikilifeloggers/e1azrmc/)]]. I hope to be the kind of person who responds, and I didn't. //I'm sorry//. [[IA2DYJ]], I'd like to make it up to you!
<<<
I read your wiki when I saw you posting on sneer club like two weeks ago. Gotta admit I haven't the foggiest what your actual position is. I ended up thinking you were nrx or something because of all the Kant.
<<<
It's not your fault that you don't know what my position is. I can barely articulate what I see already. It's hard work, and my progress is slowing down (to my great frustration). I [[hope]] you can forgive me for being [[gibberish|2019.04.21 - /b/]] and [[IATVMOASRM]].
You are correct, I'm especially indebted to Saint Kant. He is a difficult man to wrestle with. I appreciate your listening so closely enough to my pile of words to know that.<<ref "n">> It is rare that I meet people who empathize with weird, manic strangers online. Thank you.
As to my position: I'm a ''shitty'' and overambitious [[Straussian]] interpreter of Saints [[Plato|Saint Plato]], Aristotle, Kant, [[Hegel|Conceiving About The Inconceivable]], Marx, [[Heidegger|Phenomenology]], and [[Rawls|The Original Position]]. I don't participate in academic philosophy anymore; I just don't fit in as myself.<<ref "t">> I'm still "doing" philosophy, but trying another route in the wiki. It's rogue, [[arrogant]], and stupid. I'm a retarded rebel. My {[[Axioms]]} are in shambles, so feel free to call me a crackpot. They are hard problems. I'm currently working on some metaethics, [[Game Theory Agents]], the nature of <<tag [[Dark Triadicism]]>>and what it means to decentralize [[power]].
<<<
I did like the idea of making a wiki like this; what tools do you use/what's your setup?
<<<
My [[RGM]] is kinda madcap and sprawling. My daughter, [[j3d1h]], and my son, [[1uxb0x]], help administer the wikis for our [[family|Family Log]]. It has changed and continues to change. I use a lot of tools in [[Computing]].
Singlefile mode with Firefox works just fine. You appear competent with technology, so you might want to jump straight into the deeper end of the pool. If you don't use linux, I suggest it for this project (even if only in VM). I recommend TW5-Bob. Use zerotier to enable multi-device. [[Wiki: Chromium Setup]] is my dedicated wiki-browser on [[m10]]. There's a lot of tools that help along the edges, indirectly, and for serving your wiki to others. It would be my honor to help you set it up given what you have.
Sincerely,
[[h0p3]]
---
<<footnotes "l" "It [[ltf]] for me, and it's much easier to link this way.">>
<<footnotes "u" "Talking to his imaginary friends and teachers: [[WWDD]].">>
<<footnotes "n" "I don't know nrx, but I will read what they have to say if you point the way.">>
<<footnotes "t" "Though I can play those language games, it's not worth it.">>
* Reply to [[h0p3]]'s letter [[2019.07.16 - SWW: I'm Sorry]]
* Visa stuff
* chapter 10 of acg
* Dump media I like, especially [[Music]], because that way I can access it quickly
* Import good articles from [[Spiritual Computation]] - edit for current views?
* Response to [[h0p3]]
* Take Wiki public.
* Make an anime & manga page
** Start rewatch & recap of lucky star - cig packet estimate = 8 hours (`(/ (* 24 20) 60)`)
*** LuckyStarEpisode1 works. You can do this as a shell script (lazy bitch)
** Port from myanimelist?
** Recs page - how to get into anime.
* Chapter 10 of acg
* Start on resumé (At least a title page and outline of experience)
* Chicken borber, yum!
** Should put a recipe into [[Food]] about this one
* No [[Abyssal]] today :( at least unless I get lucky. He's moving.
* Reply to [[h0p3]] was fun to write. I think this means it's time to go public.
```
▓█████▄ ▓█████ ▄▄▄ ██▀███ ██░ ██ ▒█████ ██▓███ ▓█████
▒██▀ ██▌▓█ ▀▒████▄ ▓██ ▒ ██▒ ▓██░ ██▒▒██▒ ██▒▓██░ ██▒▓█ ▀
░██ █▌▒███ ▒██ ▀█▄ ▓██ ░▄█ ▒ ▒██▀▀██░▒██░ ██▒▓██░ ██▓▒▒███
░▓█▄ ▌▒▓█ ▄░██▄▄▄▄██ ▒██▀▀█▄ ░▓█ ░██ ▒██ ██░▒██▄█▓▒ ▒▒▓█ ▄
░▒████▓ ░▒████▒▓█ ▓██▒░██▓ ▒██▒ ░▓█▒░██▓░ ████▓▒░▒██▒ ░ ░░▒████▒ ██▓
▒▒▓ ▒ ░░ ▒░ ░▒▒ ▓▒█░░ ▒▓ ░▒▓░ ▒ ░░▒░▒░ ▒░▒░▒░ ▒▓▒░ ░ ░░░ ▒░ ░ ▒▓▒
░ ▒ ▒ ░ ░ ░ ▒ ▒▒ ░ ░▒ ░ ▒░ ▒ ░▒░ ░ ░ ▒ ▒░ ░▒ ░ ░ ░ ░ ░▒
░ ░ ░ ░ ░ ▒ ░░ ░ ░ ░░ ░░ ░ ░ ▒ ░░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░ ░
```
(wow it's been a while since I made ascii text)
Thanks again for your letter. It isn't often that I get long-form correspondence outside of my professional life.
Over the last few days (the workweek) I've been taking a deep dive into your wiki, learning a lot and making plans of my own to learn more. I realise now how difficult an undertaking your wiki must've been; mine is just barely taking shape as I write this. I still have to create a [[Philosophy]] page and outline my <<tag Ideology>> in more detail; it's nothing but broad strokes and strongly held positions for now. So I can hardly blame you for being a bit disorganized :)
I'm unsure if I'm autistic myself - a childhood test came up negative, but the pediatrician said I showed the signs - but I am definitely not neurotypical, and have always found autistic people easier to befriend.
>I wish we all had more trusted friends to share the stories of our lives with.
Much agreed!
>One of my goals is to show people what it's like to be themselves online, to be transparent, and to build ourselves in the sunlight. I'm doing a terrible job. Lol.
On a deeper reading, your wiki makes more sense. Perhaps it can be put down to my previous delves being of the "bored-at-work" variety, when my mind is normally in a bit of a haze, so I'm not really in the right headspace to read philosophy. So, on the contrary and after a much deeper delve and WikiWalk, I'd like to say your work is more transparent than I had earlier realised... At least, I feel like your "position" is starting to crystallise in my mind's eye.
The [[Stories]] I was referring to are very private at the moment. If you'll forgive the hardware analogy, my real name, address, etc. are ring0, whereas my stories are ring1... For now, they'll stay private, though I might go into the metadata.
Perhaps if we pursue the penpal route further, I can show them to you, though I will have to get the assurance that you're not going to mirror them or methods to access them on the wiki, due to their private nature.
>It's painful and funny that you call it a Darger-esque doomed project. Yeah, that's probably right. I'm a madman. Sometimes I feel like Noah. I'm pretty sure most people, except my wife and few others, believe I'm throwing my life away by writing it into this wiki.
As much as anything, the Darger reference was for myself :D I really need to make a [[Henry Darger]] <<tag Senpai>> page. Even if I'll likely never read Realms of the Unreal, that sort of dedication to art, art for its own sake, is a distant dream of mine, and a literal, direct inspiration for much of my own art.
Still, I don't think the wiki is a waste. I share your views on art, for the most part, especially the maximization of art, if you'll forgive the oversimplification. So, I propose that your wiki in-itself is art, certainly art to [[me.|chameleon]]
>I owe you an apology for not responding a year ago. I hope to be the kind of person who responds, and I didn't. I'm sorry. IA2DYJ, I'd like to make it up to you!
Have no fear! Apology accepted, and you've already done more than enough to make it up to me, I dare say, with your response! But a response-response-response (a response to this letter) would also be appreciated, of course :)
>I read your wiki when I saw you posting on sneer club like two weeks ago. Gotta admit I haven't the foggiest what your actual position is. I ended up thinking you were nrx or something because of all the Kant.
I'd like to ask the past me to stop being such a [[Twitter]] addict and not to assume based on a cursory glance, especially not as soon as I see a certain popular philosopher!
//facepalm @ myself//
I've come to have a greater respect for Kant in the year or so since I made that comment, even if I can't really agree with (what I interpret as) his philosophy (quite yet).
Don't worry about "nrx", it was an ill-conceived comment. And if you do, just read [[El Sandifier's book instead.|https://www.amazon.com/Neoreaction-Basilisk-Essays-Around-Alt-Right-ebook/dp/B0782JDGVQ]] Having read it myself, it seems like the sort of thing you might enjoy - a bizarre, Eldritch-philosophy deep-dive into some of the internet's strangest thinkers.
>You are correct, I'm especially indebted to Saint Kant. He is a difficult man to wrestle with.
Hence my embarrassment at my snap judgement!
I feel like I need to read the man first-hand. At the moment my knowledge is drip-fed, second hand explanations, moral arguments, and Philosophy Tube memes.
>I appreciate your listening so closely enough to my pile of words to know that. It is rare that I meet people who empathize with weird, manic strangers online. Thank you.
You're very welcome. I personally see myself as a weird internet stranger, if I'm honest, so hopefully this can be a peer-to-peer conversation, and hopefully as a team we attract more of [[The Weird]] to our sphere of internetworkery. If you want to know just how "out-there" I get, keep an eye on <<tag Waifuism>>.
>`[tech conversation snip]`
Thank you very much for the "single-file firefox" pointer, and for keeping the browser addon information on your wiki. It's through that that I finally bit the bullet and got this bad boy set up. It's a single page served by my web server - [[How to make a wiki]] roughly describes my wiki-workflow as of the time of writing.
Bob sounds interesting though. Can I convert my singlefile wiki to one others can edit? I'd be interested in doing so, that way [[my husband|The Abyssal]] can add to the wiki too! The other thing I'd like to ask is - how do you add a little bit of space to the left of the pages in your wiki? On mine, when fullscreen on a 1080p monitor, the lines are too long. I'd also love to know how you make those creative footnotes, which seem to work with arbitrary text.
Anyways, that's all I have to say for now. Looking forward to an engaging penpallery :)
- [[chameleon]]
----
//Meta: reply to [[h0p3]]'s letter, [[2019.07.16 - SWW: I'm Sorry]]//
It stopped raining, but after I'd resigned myself to not go out.. And Kirby can't run the game. Boo.
In good news, [[The Abyssal]] is around tonight, so I should get to call him.
I also stole [[h0p3]]'s chameleon art. It looks super cool. After some tweaking, I now have it on the landing page!
It's raining today, heavily, with crackling thunder in the distance. I can't go out at all like I'd planned. At least Kirby will still be running their savage worlds game.
Fuck.
I really want to have a colorful TOC, but the UX of using list-tags isn't any good.
I should make a macro which displays the tag as a cute pill ala the tag macro, but links directly to the tag index instead of expanding a list.
Why won't [[$:/ui/TagLinkTemplate]] work! Argh!
Got it working through skidding. Should be OK, it seems to behave how I want it to.
Dear chameleon,
It's great to hear from you. While I'm writing slowly to you, I have been reading what you write on your wiki. You have a wonderful lens. You'll have to forgive me for being so ridiculously slow; that may not be conventionally acceptable. I ask you to take as long as you need to reply as well.
<<<
```
▓█████▄ ▓█████ ▄▄▄ ██▀███ ██░ ██ ▒█████ ██▓███ ▓█████
▒██▀ ██▌▓█ ▀▒████▄ ▓██ ▒ ██▒ ▓██░ ██▒▒██▒ ██▒▓██░ ██▒▓█ ▀
░██ █▌▒███ ▒██ ▀█▄ ▓██ ░▄█ ▒ ▒██▀▀██░▒██░ ██▒▓██░ ██▓▒▒███
░▓█▄ ▌▒▓█ ▄░██▄▄▄▄██ ▒██▀▀█▄ ░▓█ ░██ ▒██ ██░▒██▄█▓▒ ▒▒▓█ ▄
░▒████▓ ░▒████▒▓█ ▓██▒░██▓ ▒██▒ ░▓█▒░██▓░ ████▓▒░▒██▒ ░ ░░▒████▒ ██▓
▒▒▓ ▒ ░░ ▒░ ░▒▒ ▓▒█░░ ▒▓ ░▒▓░ ▒ ░░▒░▒░ ▒░▒░▒░ ▒▓▒░ ░ ░░░ ▒░ ░ ▒▓▒
░ ▒ ▒ ░ ░ ░ ▒ ▒▒ ░ ░▒ ░ ▒░ ▒ ░▒░ ░ ░ ▒ ▒░ ░▒ ░ ░ ░ ░ ░▒
░ ░ ░ ░ ░ ▒ ░░ ░ ░ ░░ ░░ ░ ░ ▒ ░░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░ ░
```
(wow it's been a while since I made ascii text)
<<<
It is dripping, haunting, and bright. It's gorgeous! Thank you. [[kickscondor]] has also made [[beautiful]] text art in our [[hyperconversation]], and I cherish it.<<ref "t">> Art is one of those gifts I hang onto (even if irrationally in some cases). I am, of course, enjoying all of your text art. I tried making one of Kona, but I decided not to post it. I just like [[yours|https://wiki.waifu.haus/#Text%20Art%3A%20Kona]] more.
<<<
Thanks again for your letter. It isn't often that I get long-form correspondence outside of my professional life.
<<<
It is my pleasure. I'm surprised you get non-boiler plate long-form correspondence in your professional life. You must be an actual professional, unlike me, lol. I don't know much about programming though beyond a job I had long ago. I just dabble.
The traces I get to see of your life are fascinating, btw.
<<<
Over the last few days (the workweek) I've been taking a deep dive into your wiki, learning a lot and making plans of my own to learn more. I realise now how difficult an undertaking your wiki must've been; mine is just barely taking shape as I write this.
<<<
I can see your work has been explosive.<<ref "i">> You've been blowing [[Recent]] up. Your work is so fresh it needs to go live with its aunty and uncle in Belair.
Working on it each day will snowball. I see you've made a lot of design decisions I wish I knew to make back when I started my wiki. You will find that I have no idea what I'm doing all too often. It seems to me that you already understand more about the mechanics of TW than I do, lol.
Yes, this wiki has been an insanely difficult project. I have shed many tears, spent many late nights, and annoyed all who know me (I can never shut up about it). I'm glad I have integrated it so much into my life. I will be interested to know know where you go with the relationships between tooling like emacs and TW.
<<<
I still have to create a [[Philosophy]] page and outline my <<tag Ideology>> in more detail; it's nothing but broad strokes and strongly held positions for now. So I can hardly blame you for being a bit disorganized :)
<<<
It's a trainwreck; it is what it is. It's going to take decades to have a semblance of anything I'm satisfied with. It's a hard problem, and I'm too often blind. I appreciate how honest, diligent, and organized you are in your creation. There is a great deal of structure to your wiki.
<<<
I'm unsure if I'm autistic myself - a childhood test came up negative, but the pediatrician said I showed the signs - but I am definitely not neurotypical, and have always found autistic people easier to befriend.
<<<
I often find autistic people easier to befriend too. I mean this as a compliment, you are joyously weird. I adore your honesty; it is one of those traits I prize above almost all others in the pursuit of wisdom. Weirdness and honesty are a painful mix sometimes.
Autism often presents differently in females. My wife is autistic (that and schizophrenia run in both our families; our offspring are in for a treat), but most would never know. I'm grateful to have the people in my life who speak autistic.
<<<
>I wish we all had more trusted friends to share the stories of our lives with.
Much agreed!
<<<
Are the dearest people in your life also not so neurotypical? Do they read your wiki too? What do they think of it?
<<<
On a deeper reading, your wiki makes more sense. Perhaps it can be put down to my previous delves being of the "bored-at-work" variety, when my mind is normally in a bit of a haze, so I'm not really in the right headspace to read philosophy. So, on the contrary and after a much deeper delve and WikiWalk, I'd like to say your work is more transparent than I had earlier realised... At least, I feel like your "position" is starting to crystallise in my mind's eye.
<<<
High praise, thank you. I like the term WikiWalk. There is a kind of hypertext journey to exploring wikis, no doubt. You will find I'm not the most skilled WikiWalker, but I do my best. I am not a good interpreter in many contexts.
<<<
The [[Stories]] I was referring to are very private at the moment. If you'll forgive the hardware analogy, my real name, address, etc. are ring0, whereas my stories are ring1... For now, they'll stay private, though I might go into the metadata.
<<<
I'm there with you. I get it. I have had to make a lot of difficult decisions in this particular arena.
I am a big fan of unifying my self-representation and having one place that pieces it all together (even if only in shambles). This may be of no use to you, but you may find it useful to have two wikis, one private and the other public (public being inside or extracted from the private). Going the nodejs route is significantly easier in a number of respects for this kind of tooling. Use a public tag (safer than using a private tag), and when you want to post to your webserver, parse the the .tids for what is tagged Public, push them to another directory, and compile from there (unless you are just serving for nodejs, which is not my preference even if most people appear to do so).
<<<
Perhaps if we pursue the penpal route further, I can show them to you, though I will have to get the assurance that you're not going to mirror them or methods to access them on the wiki, due to their private nature.
<<<
I would be really sad if we don't penpal. I'm not here for some short-term thing unless that's all we get to have together.<<ref "s">> I'm sometimes a slow and painful person to speak with, but I am listening and thinking with you.
Despite the tension, I beg people to be pseudonymous and yet radically open.<<ref "tw">> I have had several people show me their private thoughts who trust me to reason about it on their behalf. I do not prefer to hold anything I'm not allowed to talk about aloud unless it is my moral obligation. As weird as this may sound, I aim to transparently hold secrets. If I choose not to say something, I want it to be evident that I had a [[good]] reason for it.
For now, I'm going to ask you to post what you are willing to show everyone (which is wonderfully open). I believe I should earn the right to see and reason about your private writing. I am grateful that you are willing to trust me, and I want to openly establish I'm worthy of it. It is my honor to grow a friendship with you.
<<<
As much as anything, the Darger reference was for myself :D I really need to make a [[Henry Darger]] <<tag Senpai>> page. Even if I'll likely never read Realms of the Unreal, that sort of dedication to art, art for its own sake, is a distant dream of mine, and a literal, direct inspiration for much of my own art.
<<<
I look forward to understanding the art of your life. Wikis cannot capture everything but perhaps as much as one feasibly can. It's such a gunky and yet organized medium. I'm super excited to see how your work evolves over the years.
<<<
Still, I don't think the wiki is a waste. I share your views on art, for the most part, especially the maximization of art, if you'll forgive the oversimplification. So, I propose that your wiki in-itself is art, certainly art to [[me.|chameleon]]
<<<
Thank you. I'm still on the hunt for what counts as [[Art]] too. I don't meet many people who are maximalist and inclusive in their definitions of it. I'm learning to appreciate that dedication to a distant dream of art for its own sake.
Why do you make art? I know you just said it, but it is not easy for me to wrap my mind around.
<<<
Have no fear! Apology accepted, and you've already done more than enough to make it up to me, I dare say, with your response! But a response-response-response (a response to this letter) would also be appreciated, of course :)
I'd like to ask the past me to stop being such a [[Twitter]] addict and not to assume based on a cursory glance, especially not as soon as I see a certain popular philosopher!
//facepalm @ myself//
<<<
Thank you. I intend to respond, though I fail sometimes. It seems to be part of my protocol to be "dogmackic" (dogmatically ack-ing).
You appear to have far more grace here than I do. I hope you will be able to let me off the hook for my legion of unfortunate twitter-like moments too. I'm especially prone to lack a robustly hedged-conservative tongue. I regularly shoot myself in the foot which I then have to put in mouth. I aim to be kind, and preferably nice. Sometimes I'm just stupid or evil, and my dearest friends sacrificially point this out to me.
<<<
Don't worry about "nrx", it was an ill-conceived comment. And if you do, just read [[El Sandifier's book instead.|https://www.amazon.com/Neoreaction-Basilisk-Essays-Around-Alt-Right-ebook/dp/B0782JDGVQ]] Having read it myself, it seems like the sort of thing you might enjoy - a bizarre, Eldritch-philosophy deep-dive into some of the internet's strangest thinkers.
<<<
That book looks terrifying to me. Thank you for the recommendation.
<<<
I've come to have a greater respect for Kant in the year or so since I made that comment, even if I can't really agree with (what I interpret as) his philosophy (quite yet).
...
>You are correct, I'm especially indebted to Saint Kant. He is a difficult man to wrestle with.
Hence my embarrassment at my snap judgement!
I feel like I need to read the man first-hand. At the moment my knowledge is drip-fed, second hand explanations, moral arguments, and Philosophy Tube memes.
<<<
He's a beast I keep having to reinterpret. He gets strong reactions out of me all over the place, but I'm still unable to answer him satisfactorily. I feel fortunate to have second-hand explanations because he's almost impenetrable for me in some cases. His metaethics is the centerpiece of his work for me. Here's hoping we both feel like we understand him a decade from now, eh?
<<<
You're very welcome. I personally see myself as a weird internet stranger, if I'm honest, so hopefully this can be a peer-to-peer conversation, and hopefully as a team we attract more of [[The Weird]] to our sphere of internetworkery. If you want to know just how "out-there" I get, keep an eye on <<tag Waifuism>>.
<<<
Fuck yeah! I think helping people have their own voice is one of my callings, and I hope to participate in a community in which we all own the memes of production from soup to nuts.
Your Waifuism is weird for the normies. The lines I draw in the sand are about what is moral rather than conventional. While I may not be able to appreciate it thoroughly enough, it's not too out there for me. I probably won't understand chanspeak as well as you deserve, I have a history I cherish with that community. I find it delightful that speak up from a perspective which is generally persecuted in many circles. I adore that you are comfortable [[letting it out|https://wiki.waifu.haus/#Expert%20Wikier]]. You don't present merely a face, and I admire your courage.
About the [[FTO Mode: Alien]], I mean it as a guest I've not even begun to understand. [[FTO Mode: P2P]] is always my goal.
<<<
Thank you very much for the "single-file firefox" pointer, and for keeping the browser addon information on your wiki. It's through that that I finally bit the bullet and got this bad boy set up. It's a single page served by my web server - [[How to make a wiki]] roughly describes my wiki-workflow as of the time of writing.
<<<
I'm glad it was a useful bungee jump cord for you to take the plunge. I have been watching it unfold. For philosophical, political, and technical, I'm a huge fan of serving static files, especially a unified (bloated in my case) singlefile. I'm probably over-the-top irrational about it even.
<<<
Bob sounds interesting though.
<<<
It's been getting better, and it was the reason I jumped ship from singlefile. There are still a lot of problems I face with it, but it has been getting better. Bugs disappear when you upgrade, and if you build around the assumption it will fail at times, you will be better off for it in the end. At this point, I could not imagine living without the tool. It is uncommon that I pay money for software, but I do pay for that.
I strongly recommend moving to Bob as soon as you feel able.
<<<
Can I convert my singlefile wiki to one others can edit? I'd be interested in doing so, that way [[my husband|The Abyssal]] can add to the wiki too!
<<<
This is technically possible, and I think it is reasonable if you have strong synchronization and do not have overlapping. It's like asking if you can edit from seperate devices, imho. There are some race conditions you will face, and you'd need to find a way to meaningfully merge those conflicts or never have them in the first place through behavioral conventions.
You could also parse the wiki as singlefile or break into .tids, then automate the merging given timestamps (throwing up errors for exceptions/conflicts).
Bob is the best tool for simultaneous access to the wiki. It likely handles this problem better than anything you are going to devise by hand. It's often the case on Sundays, during [[Family Time]], that all 4 of us will be editing my wiki (or our offspring's, who also use Bob).
Hey, maybe your husband would want to make his own wiki too!
I'm interested in how you set up [[your|https://wiki.waifu.haus/#2019.07.25%20-%20WikiWoes]] own [[RGM]].
<<<
The other thing I'd like to ask is - how do you add a little bit of space to the left of the pages in your wiki? On mine, when fullscreen on a 1080p monitor, the lines are too long.
<<<
I don't know what you are mean here. Could you take a screenshot and draw on it for me? I probably still won't know the answer, but I'll see what I can do.
<<<
I'd also love to know how you make those creative footnotes, which seem to work with arbitrary text.
<<<
$:/macros/danielo/footNote is what I use. There are a few footnote tools around, so you might want to have a look. Also, this place is a treasure trove: https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM. All the mad lootz.
<<<
Anyways, that's all I have to say for now. Looking forward to an engaging penpallery :)
- [[chameleon]]
<<<
Me too!
Btw, [[kicks]] wrote about your wiki [[here|https://www.kickscondor.com/chameleon's-wiki/]].
Your [[Development Levels|https://wiki.waifu.haus/#Development%20Levels]] is something I've pondered. I have no idea how to do it well enough. I tag things as a Draft or [[/b/]], but epistemic status is another barrel of monkeys. Trying to cleanly (and rapidly) navigate backlink relationships or understanding the centrality of a particular tiddler to the rest of the wiki is one place I want to go (don't think that will be happening anytime soon). I'm also reminded some of [[this|https://en.wikipedia.org/wiki/Wikipedia:Vital_articles]]. I still have no idea what I'm doing on these fronts, lol. I'm not really sure when something is finished; I put timestamped footnotes in older journal entries though. In any case, I think it's awesome that you are starting out your wiki with all this in mind.
Sincerely,
[[h0p3]]
---
<<footnotes "t" "I'm not ready to make use of his art just yet.">>
<<footnotes "i" "I have you and [[others]] bookmarked. It's a treat to open your wiki up.">>
<<footnotes "s" "A topic of many song lyrics.">>
<<footnotes "tw" "I protect the identities of people on this wiki to varying [[dok]]. There are a handful of people I joyously have the opportunity to reveal my offline identity to as well.">>
I've decided to start tagging things with [[Development Levels]]. This will describe how done an article is.
Thankfully the wiki is still small, so I can probably tag everything given an hour or two.
This^ touched basically everything in the wiki, lol. Check out the Recent list for some serious touchage, haha.
* Check out [[Manuskript|http://www.theologeek.ch/manuskript/]]
* Get a new dark theme for emacs; see [[2019.07.24 - The Search for Darkness]]
* Write more acg you lazy bum. just because you got over 40k doesn't mean you're done.
* If [[h0p3]] replies by home time, make sure to ask him about fictional characters vis-a-vis [[Waifuism]]
Looks like doom-theme is breaking itself with some bytecode shenanigans. I cba to fix it, and anyways Doom has some problems. So I think it'd be good to find a new dark theme.
* https://github.com/jordonbiondo/ample-theme - looks nice.
* https://github.com/lthms/nordless-theme.el - syntax-off style. Pretty in a brutalist sense
* https://github.com/andre-richter/emacs-lush-theme - dark with fruity pebbles, ala snazzy. Definitely try.
* https://github.com/ogdenwebb/emacs-kaolin-themes very nice, also has one of the best light themes I've ever seen (probably better than my xemacs-theme hack). Only problem is, comments in dark themes are nigh-unreadable. Might have to play with tweaking this one.
Unrelated, but you might want to check out https://github.com/Alexander-Miller/treemacs
* Items carried over from [[yesterday|2019.07.24 - After Work Todo]]
* Try a meditation session with Insight Timer
I have to scream about this. I sorted something out today that should mean I get to be with [[The Abyssal]] on a more permanent basis. I'm screm. I'm super hype. I love you darling <3
I need to restart my meditation habit. I used to meditate daily, but that stopped after a trip abroad disturbed my rhythm.
I always found meditation helped me regulate my mind more, and react more maturely to my emotions (greatly helping with [[Ahimsa]]), in a kind of "one weird trick" way. I'd like to get that back.
I'm going to try a couple of apps again. I found headspace worked nicely, and Andy was a great teacher, but I ended up doing all the courses I was interested in and found the subscription was no longer worth it.
Insight Timer seems to be what I'm looking for. It has a really nice timer with chimes, as well as guided meditation if I feel I need that. I'll give it a try after work.
I didn't write about it at the time, because it seemed kind of crass, but Kyoto Animation, the animation studio behind [[Lucky Star]] [[got attacked by an arsonist recently|https://beta.washingtonpost.com/world/asia_pacific/kyoto-animation-fire-tributes-flow-for-victims-as-japan-reels-from-deadly-blaze/2019/07/19/7b307e5a-a996-11e9-8733-48c87235f396_story.html?outputType=amp]]. I'm still in shock that such a horrible thing happened. I don't pray, but I surely am thinking of the victims of this horrible tragedy at the moment, and wish for the safety of their families.
Lucky Star, and by extension ~KyoAni, have been there for me in difficult times. Such a vicious and hateful action on the part of the arsonist is in direct contradiction to everything I value and hold dear. I will endeavour to do what I can to treasure what ~KyoAni brought the anime community, and to not let the glow go out.
Blast. Yesterday I forgot to push my wiki at the end of the workday. End result was that I couldn't work on it yesterday evening. Thankfully I didn't have much in the way of things I wanted to write down.
I think the solution is to run a cronjob (at 6pm on weekdays, say) to push my wiki. I'll write something to that effect today (foolish managers, expecting me to do the job for which I am paid!)
Here's what I set up:
```
# m h dom mon dow command
0 18 * * * /home/chame/bin/wiki.sh push
0 7 * * * /home/chame/bin/wiki.sh pull
```
Dear [[h0p3]],
Thank you for your meta-response ;) This one is likely to be very rambly and disjointed. After running the wiki for a while now I'm starting to get a bit of an idea of where it might go, and the very first inklings of where I might want to guide it to.
>I am, of course, enjoying all of your text art. I tried making one of Kona, but I decided not to post it.
Aww, you can't post it for me? I love collecting art of her. My [[Konata]] folder is somewhere around 10,000 files at the moment, I think.
I tried to make text art of Izuku Midoriya from BNHA but I failed miserably. Guess I can't do anime faces as well as I thought.
>I'm surprised you get non-boiler plate long-form correspondence in your professional life. You must be an actual professional, unlike me, lol. I don't know much about programming though beyond a job I had long ago. I just dabble.
Well, long-form correspondence might be overselling it. I send mail back and forth to the other developers at the company (we have several locations, including in Asia and Oceania, so often we have to say a lot in one message since the reply won't come until tomorrow). I honestly won't be at this job much longer, lol. I'm emigrating to the US, visa depending, so I handed in my conditional resignation today.
Programming is one of the few things I consider myself to be really good at. Not to the level of a John Carmack or a Dennis Ritchie, but I can hack things together to solve a problem. That's probably why they're ok paying me to do it =w=.
>The traces I get to see of your life are fascinating, btw.
That's an interesting compliment, thank you!
I'm not sure I can really explain why I am who I am, except in the broadest of strokes. I wasted a lot of my youth online, which made me develop an odd sense of humour and a lifelong appreciation for [[The Weird]] in life.
If I have a mission, it's to do something absurd for the sake of having done something absurd:
<<<
C'est en faisant n'importe quoi qu'on devient n'importe qui
<<< Rémi Gaillard
That, of course, is the topic for a future article.
>I mean this as a compliment, you are joyously weird. I adore your honesty; it is one of those traits I prize above almost all others in the pursuit of wisdom.
That's very sweet, thank you!
I do try to be honest. I've done a lot of things in my life that I'm not proud of, and not-being-honest is definitely something I'm trying to change about myself. The wiki's purpose may be as much to cultivate radical honesty as to organise and catalogue my thoughts.
>Are the dearest people in your life also not so neurotypical? Do they read your wiki too? What do they think of it?
The hubby suffers from an anxiety disorder, but is otherwise more sensible and worldly than me. Especially when it comes to [[Airports]], haha. He's always unbelievably relaxed about flying. Otherwise many of my friends run the gamut of non-neurotypical states; [[Nobu]] in particular has had a few terrifying episodes before.
I've shown the wiki to my husband, and have posted the link to my close friends. I'm not really very pushy about it yet, since it's not much more than a kernel right now. More and more I hope to expand it, to get more penpals and folks who are aware of and participatory in its development.
<<<
Working on it each day will snowball. I see you've made a lot of design decisions I wish I knew to make back when I started my wiki. You will find that I have no idea what I'm doing all too often. It seems to me that you already understand more about the mechanics of TW than I do, lol.
<<<
Thank you! A lot of this was learned from working on my old blog, [[Spiritual Computation]]. I had tagging facilities there (it was statically generated from markdown using [[Hugo|https://gohugo.io]]) so it gave me an idea of how to tag and sort things. Otherwise I guess I've been playing around with macros and the likes, seeing what fits. Once I found out I could label and pick the color of tags I was away, lol.
I noticed in your @ to me you said you hadn't written much html since the 90s and didn't have much CSS knowledge. I learned both at university, and promptly forgot it two minutes later ;) like everything, I duct-tape, skid, and hack it together until it works. [[w3schools|https://www.w3schools.com/]] is the most important sutra for me here... it's got a good mix of tips, tricks, and examples for just about anything web related.
<<<
Yes, this wiki has been an insanely difficult project. I have shed many tears, spent many late nights, and annoyed all who know me (I can never shut up about it). I'm glad I have integrated it so much into my life. I will be interested to know know where you go with the relationships between tooling like emacs and TW.
<<<
I saw an old gem come up today that made me think of this integration you have, and that I'm building, between life and wiki. I wrote about it briefly in a [[journal entry|2019.07.30 - Loper OS]]. Right now I'm straddling the line between "stuff I'm thinking about/feeling" and "stuff I want to talk about or tell other people about". Striking that balance is going to be the core challenge here, I feel.
I'm a little odd when it comes to Emacs. I was originally a vim user, switching to Emacs via Spacemacs in 2016 or so. This means I'm not as tightly integrated into the program as "Emacs natives". I still do large-scale text-munging with shell scripts or Perl. And much as I love the Emacs bindings (I use the space cadet Win-Alt-Ctrl layout instead of the standard Ctrl-Win-Alt) I don't really mind pointing and clicking in Firefox to edit text on TiddlyWiki. I'm sure that'll change in time, though. Speaking of, let's get the tech part of the response out of the way now that we're here...
<<<
>The other thing I'd like to ask is - how do you add a little bit of space to the left of the pages in your wiki? On mine, when fullscreen on a 1080p monitor, the lines are too long.
I don't know what you are mean here. Could you take a screenshot and draw on it for me? I probably still won't know the answer, but I'll see what I can do.
<<<
[[Sure, here you go.|https://imgur.com/a/PSnEdAp]] By "lines" I mean lines of text. It's uncomfortable to read much longer than 80-100 characters for most people, so I'd like to limit the width of the tiddler text on-screen.
Thanks for the @ ;) [[I've fixed it now.|2019.07.28 - SENPAI~]] I noticed you felt guilty:
<<<
* I made a mistake giving a quick [[@]] to [[chameleon]] while she is drafting (I didn't want to leave her hanging). I'm used to people responding to some of my drafts (and they are exceptionally charitable knowing it is a draft) before I finish, etc., but I totally understand her preference for me to wait. That was my fault.
** Hilariously, I want to [[@]] back to her with an apology, but that would be violating the very thing she asked me not to do. Welp, my apology which may not target will have to sit here for now.
** She's probably going to think I'm retarded for not knowing how to have a proper [[hyperconversation]], lol. It's okay. I'll get there.
<<<
No no! It's not a mistake. Reply away! If it was "private until sent," I'd just compose it in emacs and post it when it was time, lol. I put up the disclaimer just so you would know what the definition of done was. Besides, it helped me to get the wiki prettified and gussied up (it was a massive craze to put waifu mascots in your custom css for imageboards back when I was last on them, and I wanted to do something similar on the wiki, hence the [[smol Kon|chamespeak]] in the bottom left of the page).
I don't think you're retarded at all. Rather, the @ was much appreciated. Maybe I should set up an @ page of my own... Either way, feel free to use it. I check back like every day anyways. On a related note, I like the rice you've added... You seem to be using a higher opacity than me, though :)
We'll have to hash out exactly what the etiquette is for a [[hyperconversation]]. Realistically though, if it's public on the wiki, people are going to read it, so that's why it's there. Don't be afraid to read drafts (most of this wiki seems to be somewhere below LevelTwo, after all).
Jumping back a little... (Idk, it seemed relevant to jump forward to the tech stuff before I responded about philosophy and open-ness).
<<<
I would be really sad if we don't penpal. I'm not here for some short-term thing unless that's all we get to have together. I'm sometimes a slow and painful person to speak with, but I am listening and thinking with you.
<<<
That's a relief to hear. I can be a little insecure about my weirdness, because it turns some folks off, but you seem to be quite accepting of this strange human you find yourself confronted with.
I'm a believer in the idea that there is family out there that we aren't related to by blood, that some friendships reach the level of family-ness. I think it comes from [[Nobu]] originally, or one of her influences, like almost everything I've thought about after meeting her<<ref "n">>. I guess [[The Buddha]] quote on the [[Senpai]] tiddler touches on that. When someone has something to teach me, I treasure their company.
<<<
Despite the tension, I beg people to be pseudonymous and yet radically open. I have had several people show me their private thoughts who trust me to reason about it on their behalf. I do not prefer to hold anything I'm not allowed to talk about aloud unless it is my moral obligation. As weird as this may sound, I aim to transparently hold secrets. If I choose not to say something, I want it to be evident that I had a good reason for it.
<<<
Radically open is what I'm aiming for now... Especially having realised how bad I am at getting my thoughts out in live discussions (or debates)!
I rather embarrassed myself talking to a real philosopher over discord the other day (I studied computer science at university, so I have to watch my engineer's disease when it comes to the humanities).
<<<
For now, I'm going to ask you to post what you are willing to show everyone (which is wonderfully open). I believe I should earn the right to see and reason about your private writing. I am grateful that you are willing to trust me, and I want to openly establish I'm worthy of it. It is my honor to grow a friendship with you.
<<<
Roger that! And it's great to hear you say that. Friendship is what I aim for. You seem to be a kindred spirit. I feel I have a lot to learn from you, and maybe there's a thing or two I can teach you in return.<<ref "css">
<<<
Your Waifuism is weird for the normies.
<<<
I tend to lead with it online, that way you know how weird I am straight up! Hence I also use anime avatars in most places.<<ref "f">> I want to break the stereotype of anime freaks all being obnoxious dudes by being a kind woman, I guess. haha.<<ref "k">>
<<<
The lines I draw in the sand are about what is moral rather than conventional. While I may not be able to appreciate it thoroughly enough, it's not too out there for me.
<<<
That's great! I'm never going to expect people to fully understand it, really. I don't myself, but I've still been at it for ten years =w=.
Ahh morality. I envy what seems to be a sense of clarity you have towards what is moral. Myself I'm tangled in a web when it comes to these things. Virtue ethics mostly appeals to me, I suppose. I try my best to be noble and kind, but I don't know what is noble or kind beyond that which feels right. I never found axioms or lemmas on which to build a serious foundation of morality. Maybe this is where I need to bust out the Kant...
<<<
I probably won't understand chanspeak as well as you deserve, I have a history I cherish with that community.
<<<
My chanspeak is always going to be a few years behind. I found the community to have fallen apart around me over the last few years - I would blame 2016 but the rot had probably set in way before that - so it's rusty at best. Besides that, talking like you're on /b/ all the time is always going to come across a bit strangely, so I'm mostly only using it where the best term that fits comes from imageboards<<ref "w">>.
<<<
I find it delightful that speak up from a perspective which is generally persecuted in many circles. I adore that you are comfortable letting it out. You don't present merely a face, and I admire your courage.
<<<
Thank you! I think we both share the idea that the internet needs to be democratised, that //everyone// needs to be able to get their voice out there. I want both to return the internet to the geocities/myspace era where people would put themselves out there, no matter how messy and unrefined that might look<<ref "g">>; but also to present an internet that is fairer and more open to everyone, unlike the silo situation we have going on today (which is why this is being said in a letter rather than over discord, birdsite, or facebook, lmao).
I feel like I could talk forever, so maybe it's best I leave it here. I'm eagerly awaiting your response!
- [[chameleon]]
//P.S. the title is a lyric from [[a song|https://romancerband.bandcamp.com/track/birds-in-smoke-2]] I have stuck in my head//
----
//Meta: Reply to [[2019.07.23 - chameleon: Lens]].//
<<footnotes "n" "I should really write her a letter some time.">>
<<footnotes "f" "Makes the face reveal much more exciting, too">>
<<footnotes "k" "Working real hard on that one tbh. I've done some awful things in my life. I want to move beyond those and act kinder and try to have more of a positive influence on those around me. My husband is a big inspiration in that regards, he's consistently kind to everyone.">>
<<footnotes "w" "The word //waifu// is a good example. Much virtual ink got spilled about a better term, but no-one ever came up with one, and somehow I doubt anyone ever will.">>
<<footnotes "g" "That era was coming to an end as I grew up; by the time I was old enough to get involved, everyone was on social media instead. A crying shame. I love looking back at the archives and seeing just how //creative// people got.">>
<<footnotes "css" "CSS, for example ;)">>
I installed all the dark themes. They're amazing. So much better than the tomorrow-night-eighties one from before. Tomorrow I'd better either pick one, or just use the lot of them.
Also, acg is less than 3k off of 50k words, i.e. novel length. So tomorrow, I'll be a "novelist", if I can match my usual writing pace.
My beloved [[h0p3]]-[[Senpai]] has enlightened me on his @ page and in his last letter to me. [[Here's the footnote plugin.|http://braintest.tiddlyspot.com/#PopupFootnotes]] Also you should notice that the page behaves nicely when resized, at long last.
I should really stop staying up late. I know full well that I'm waking up at 6 the next day but apparently that's not as important as reading.
I'm fucking zonked out.
I should really write a letter to [[Nobu]]. It seems the sort of thing she'd appreciate. Plus we need to touch base again. We're so behind on Steven Universe, hahaha.
Loper OS came up on hacker news again. I'm reminded of how little work the guy seems to have done on his project since then (at least documented work). The irony is, this wiki for me (and I suspect [[TOW]] for [[h0p3]]-senpai) works as the "mind-amplifier" idea Loper was talking about much more than whatever it is his blog is about now.
> I’m uninterested in debating anything with anyone :)
Big mood. Nice one, [[Chapman-senpai|David Chapman]]
https://twitter.com/Meaningness/status/1123666688594120706
Hello Nobu,
I hope you're doing well. It's been a while since we've spoken more than small talk to each other. That's a real shame, I miss when we'd video chat together and talk about all sorts of stuff, especially [[The Weird]] in life.
I have to apologise for all the crazy shit I've put you through in the past. As you know I've struggled with depression before, and only really got better about that sort of thing relatively recently. I'm taking being kind and telling the truth more seriously now. I also took the [[bodhisattva vows|Bodhisattvayana]] (well, retook them).
A long time ago, I told you I was planning to compose a grimoire. I'm increasingly suspecting that //this wiki// is actually my grimoire. Of course, I still need to migrate the stuff I wrote on paper, or that I wrote on my blog or kept hidden from the world on my PC...
I'm glad to see you posting on seekrit.club more often. I made the server to be a heterodox place for my pals to shoot the shit together, so it's really great that you seem to be getting along with everyone (especially our eggy friend). You're a great [[Senpai]] and guru ♥
Once I'm in America, we need to finally meet in person<<ref "tt">>. It's amazing to me that we never have. You've been such a wonderful presence in my life, so it seems really strange to me that we've never actually met face to face. I think we owe each other more than a few hugs, hehe.
I'm super desperate to watch Steven Universe together again. Not to spoil anything, but you know how you catch stuff in osmosis? There's so much I'm excited to actually see happen on screen! While I've thought about watching it by myself, I could never bring myself to do so. It's not right to watch it without you.
Once again I have to thank you for the advice and guidance you gave me and the hubby a few years back. It really matured our relationship in the end. I'm happy to report that he and I are getting along better than ever these days.
How's Taisa? I haven't spoken to him or heard you speak of him in a while. Hope he's doing OK, send him my regards.
I'll leave it there. I really hope we get the opportunity to speak more in the future.
Your friend and kouhai,
- [[chameleon]]
-----
<<footnotes "tt" "Top ten anime crossovers">>
* New moon
* Dragon Tarot, past-present-future spread
*# Page of Cups, reversed
*# Seven of Coins, reversed
*# Five of Coins, reversed
* 27 repetitions of [[Konata]]'s mantra.
* Wiki stuff.
Todo: report findings.
More from senpai. I don't think I should keep my reddit history for very long. https://github.com/x89/Shreddit
<<list-links "[tag[Daily Tasks]!sortan[]] +[prefix[2019.08.]]">>
* Finally got my visa shit sorted
** I over-prepared for the interview, but it was definitely worth it for the peace of mind
** Leaving my job in just 4 weeks!
** One hurdle left, but it's an easy one (might have to call the bacon brigade up to complain though)
* So. Much. Music.
** Slowcore
** Space rock
** Emo
*** Crabcore
** Learned some modal jazz theory
* A bit less programming than I would've liked, but some nonetheless.
* Finally hit 50k in a story; writing is going great!
* Great month to be a Buddhist, lol
* Wiki was very fun this month.
** Fun with senpai!
** CSS looks great
** Daily tasks are great to get me writing
** Letters!
*** One to Kona
*** One to h0p3
**** His response is looking close to completion, but his work is slow (silly senpai~)
*** One to Nobu
**** Got a reply from this one, but forgot to ask her if it's ok to post yet.
* A little philosophy done
* Some great shitposting
* Why why why would I dream of Donut of all people? Haven't spoken since 2015 or early 2016, haven't thought about him in about as long.
* Meeting lofty and tasos irl was great
** I need to meet up with the other clubbers before I leave for the USA, especially [[score_under]]
!! mid month
{{2019.08 Mid-month Journal Review}}
---
<<list-links "[prefix[2019.08]!sortan[]]">>
* Musically interesting month
** Discovered some great new emo and shoegaze, got into slowcore
** Need to make a soundcloud account
* Wiki is really coming along, lots of great new features!
** Maybe I should get in contact with Sphygmus.
* This month has kinda sucked irl because I'm in limbo/transition rn waiting to finally get be with the hubby
* Had some great thoughts about [[Buddhism]] this month.
** I started, but didn't yet finish, the Diamond Sutra.
** My eschatology is hilarious but also striking
** My next PC might have to be named after the Bodhisattva of compassion.
* Twitter remains full of idiots
* Great new rabbithole! [[2019.08.06 - hgk477]]
* Buy the "hypersanity" book in October.
* The new PC plan is going great. I've gotten feedback from my pals and from [[h0p3]]-senpai
** To answer your [[@]], [[Senpai]], I'm going to use it for gaming, yeah c: Probably will even dual boot (much as I despise windows, it has some good games, so I'll have a lightweight windows partition solely for gaming)
Aww fuck yes. [[This website is a music-lover's treasure trove!|http://everynoise.com]] The hubby loved it too. I've already found [[some great stuff|https://www.youtube.com/watch?v=7A9kKdcQ2H4]] on here.
[[Here, listen to some good music.|http://everynoise.com/engenremap-midwestemo.html]]
This is giving me more thoughts on how emogaze could be made real. Imagine droning sus chords played through a wave of effects, pulsing and tugging at every heart string you have, voice buried deep in the mix, screaming for forgiveness. The chords crescendo, then cut! Only an arpeggio/slow tapping lick remains. Like Batcomputer on speed.
Unfocused and unmotivated today. Glad the day's nearly over. I couldn't stand a moment more of it.
Sprintbot is a gift from god. While sprinting I can just bash out 3k words in a few hours like it was nothing.
Give me a few free hours every day and I could write like 10 novels a year.
Sometimes, upon seeing the pretentious, reactionary people that frequent "hacker" "news" I wonder why I still use the site. Then articles like [[this|https://aeon.co/ideas/the-hypersane-are-among-us-if-only-we-are-prepared-to-look]] show up and it all makes sense.
I really need to respond to/summarize this one.
A new rabbithole?
https://hgk477.tumblr.com/post/186629865974/surviving-ikea
https://old.reddit.com/r/HGK477/comments/cmgf54/how_to_enter_the_next_universe_over/
Even if a [[song|https://www.youtube.com/watch?v=7A9kKdcQ2H4]] is really good, it stinks when it gets stuck in your head.
Ooooh, I got a small shoutout [[on sphygmus' wiki!|https://sphygm.us/#190801%20%E2%80%93%20wiki%3A%20SVG%20fun]] The tribe grows. Maybe I should reach out.
I am taking forever. I'm grateful for your extensive patience, especially as I spend my time on [[a pure drug|Project Ascension]]. I often like drugs. I have one of them, [[whatchercallit|Anomianisms]]: addictive personalities? You've seen my [[silly|https://wiki.waifu.haus/#2019.08%20Journal%20Review]] piddling, lol; I somehow manage to nearly drown in the shallow end of the pool.
<<<
Dear [[h0p3]],
Thank you for your meta-response ;) This one is likely to be very rambly and disjointed. After running the wiki for a while now I'm starting to get a bit of an idea of where it might go, and the very first inklings of where I might want to guide it to.
<<<
I'm excited. I think your work is obviously meta, a grimoire, and more. I think most of the people I've seen dive into TW pick it up like a cool toy and then drop it or let it wane as this backburner dumping ground or mere virtue signal tool (I think I've also turned plenty off).<<ref "d">> The wiki isn't easy to wield. You've been rockin' out though; I have no idea how you keep up your insane pace, but I adore it. This metaphor has the wrong tone and appeal, but I can't come up with a more accurate one: you are puking yourself into the void of your wiki and beautifully structuring it with no end in sight. It's an avalanche, and you give me a taste of my medicine. It's a joy for me.
<<<
>I am, of course, enjoying all of your text art. I tried making one of Kona, but I decided not to post it.
Aww, you can't post it for me? I love collecting art of her. My [[Konata]] folder is somewhere around 10,000 files at the moment, I think.
<<<
I don't have it anymore, lol. I scrapped it. [[We|j3d1h]]'re working on something else for you though (it's not compact enough for my taste, and we can do better); I also have no idea if we are doing this correctly. Feel free to scrap it too, lol. We probably have no bidness trying to do dis.<<ref "i">>
{{Text Art: Kona||ASCII: 30%}}
Here's my daughter's [[drawing|https://imgur.com/a/i1fXdCK]].
Collecting images is an art I've not mastered. How often do you look through your beautifully organized collection of images of Kona? You must think I am insane, but I do not even keep pictures of my own children or wife. Even the [[h0p3]] textart selfie only exists because it enables me to connect dots for some people.
<<<
I tried to make text art of Izuku Midoriya from BNHA but I failed miserably. Guess I can't do anime faces as well as I thought.
<<<
It's stupid hard to make ASCII art by hand.
You are clearly well-watched in this area. I would be grateful for recommendations which you think might fit me.<<ref "s">> Soon enough, I hope to dive back into my [[TV: Exploration]]. Some anime does strike me. Not much sticks with me, but even if only one out of a couple dozen struck me, that would be worth it! You might check out that Ping Pong anime. It might not be to your liking (I am not good at making recommendations), but I enjoyed it a lot.
<<<
Well, long-form correspondence might be overselling it. I send mail back and forth to the other developers at the company (we have several locations, including in Asia and Oceania, so often we have to say a lot in one message since the reply won't come until tomorrow). I honestly won't be at this job much longer, lol. I'm emigrating to the US, visa depending, so I handed in my conditional resignation today.
<<<
That makes good sense to me. I have been watching, of course. I hope the visa comes through and it's smooth sailing! Hopefully, we can have some beer or coffee if and when we have the chance to meet.
Why are you choosing to emigrate (why not have your husband move to you?)? I am surprised you would turn in your resignation without a sure thing; I likely don't understand enough about the process. I had to get a visa every few months in Thailand, and it was an extremely unfun process; my friend [[Jop]] had an even harder time getting to the US. It sounds like it won't be too difficult for you, `/fingers-crossed`. I'm nervous about these kinds of things. You seem to be fairly stoic about it.
I enjoy thinking about the way in which you reason about what you owe or do not owe to your employers. Rock on. =)
<<<
Programming is one of the few things I consider myself to be really good at. Not to the level of a John Carmack or a Dennis Ritchie, but I can hack things together to solve a problem. That's probably why they're ok paying me to do it =w=.
<<<
=) That is awesome. I'm envious. My brain and will power just aren't good enough for it in practice (though they let me bug them at one of my universities). I'm enjoying reading about your approach to programming too. I'm desperate to help my children own their machines and understand CS. If you could go back in time, what do you wish you learned from a young age?
<<<
>The traces I get to see of your life are fascinating, btw.
That's an interesting compliment, thank you!
I'm not sure I can really explain why I am who I am, except in the broadest of strokes.
<<<
I recognize the weirder we are and the fewer shared points of reference we have, the less likely it will be for me to form an accurate representation of any depth of you. You come screaming off the screen for me though. It's hilarious, lovely, and I think you are working at a brutally fast pace. Broad strokes with still plenty of fine details if you ask me.
I share different things in common with the people I speak with over my wiki. I feel a strong kinship with you. We are outcasts in some respects, outcasts who have found others who share our interests.
<<<
I wasted a lot of my youth online, which made me develop an odd sense of humour and a lifelong appreciation for [[The Weird]] in life.
<<<
Your humor is wonderful (and it is my honor to see a wide range of emotions from you; few are so honest). Multiple times my offspring have asked me why I'm laughing, and I show them something you said.
If you had it to do differently, what would have done? I say this as a man who has also wasted a lot of his time on his computer throughout his life (I'm not always so sure what was worth it and what wasn't).
<<<
If I have a mission, it's to do something absurd for the sake of having done something absurd:
>C'est en faisant n'importe quoi qu'on devient n'importe qui
>Rémi Gaillard
That, of course, is the topic for a future article.
<<<
I look forward to it. It may be something which takes time to develop. Those are interesting claims to link together too.
<<<
>I mean this as a compliment, you are joyously weird. I adore your honesty; it is one of those traits I prize above almost all others in the pursuit of wisdom.
That's very sweet, thank you!
I do try to be honest. I've done a lot of things in my life that I'm not proud of, and not-being-honest is definitely something I'm trying to change about myself. The wiki's purpose may be as much to cultivate radical honesty as to organise and catalogue my thoughts.
<<<
Well, you are kicking ass. There are precious few people I meet who desire to be radically honest. I think my weirdness is part of why I'm exceptionally compelled to express myself, to pursue radical honesty, and to be myself in a world that otherwise has no interest in allowing it. I assume you've experienced plenty of difficulty being [[other]] almost everywhere.
<<<
https://wiki.waifu.haus/#%40%3A%20h0p3
Hearing the details of what actually went down, I actually feel like the error was mine here, and I read into things. My bad, I'm sorry. I'm very jumpy when it comes to defending trans folk (probably because I love Nobu so much, haha)...Forgive me my neuroses...I feel really fucking stupid now.
<<<
Understandably! First, I //do// come from a conversative, hyperreligious background. To some non-trivial [[dok]], you have me pegged correctly! My philosophical stance has the standard amygdalic neural markings you're worried about, and I'm the hardlined moral realist which must be challenged at every turn (lest I become monstrous). Your instincts have significant merit to them, so keep inspecting every redflag you see, please.
Second, I don't know what it's like where you live or what you've experienced, but in my neck of the woods, the rainbow is heavily persecuted (I'd argue this is morphing in some respects as capitalists increasingly exploit it to misdirect us from fundamental classism). They might not tie my beloved up and drag them behind vehicles these days, but discrimination seeps into everthing. You have every right to be sensitive.<<ref "hs">> It must be hell for you some days, and you are very kind and sane about it; I have met people who just wouldn't even talk to me about the misunderstanding. I am grateful that you have the courage and integrity to approach me about it; it means a lot to me (I wish everyone took the time to do what you do). I will often need your correction. If there is anything to forgive (I don't think there is), you are forgiven. It's an understable misunderstanding to me. We're homies, please laugh it off with me and let it pass!
<<<
`/me dogeza OTL Orz`
<<<
ROFL. `/blush`
I am a terrible man to wrestle with, Madame [[chameleon]]. I'm sorry. I appreciate how you honorably engage in dialectics with me, and with a sense of compassion, humility, and humor. Your metal is [[beautiful]] to me. I hold our action in high regard. It's real conversation.
<<<
Feel free to karate chop me on the noggin if we ever meet, lol.
<<<
`/karate-hug`. I will be thrilled to meet you offline too. =)
<<<
>Are the dearest people in your life also not so neurotypical? Do they read your wiki too? What do they think of it?
The hubby suffers from an anxiety disorder, but is otherwise more sensible and worldly than me. Especially when it comes to [[Airports]], haha. He's always unbelievably relaxed about flying. Otherwise many of my friends run the gamut of non-neurotypical states; [[Nobu]] in particular has had a few terrifying episodes before.
<<<
That makes sense. Most of the people that I click with are not neurotypical either. Maybe one day I will have the chance to get to know your hubby and friends as well. I'm lucky to meet people. They aren't usually so lucky to meet me though, lol.
<<<
I've shown the wiki to my husband, and have posted the link to my close friends. I'm not really very pushy about it yet, since it's not much more than a kernel right now. More and more I hope to expand it, to get more penpals and folks who are aware of and participatory in its development.
<<<
I hear ya. I don't know when it doesn't become more than a kernel either. This is a hard problem for me. I am probably far too pushy about it. I've been writing for a few years now, and it's been interesting to see who actually cares what I think and feel enough to just read. Online friends can be better matches, I realize (your writing is a breath of fresh air for me). I am still surprised by the fact that people I've never met offline know and care more about who I am than people have claimed to be friends and family of mine for decades. It becomes difficult for me when people ask me how I'm doing without having even glanced at the wiki; I don't think they really mean it. I try to set the bar really low, but I am sure I have set it ridiculously high. I hope to learn how you reason about it.
I'm hoping you do contact [[Sphygmus]] (I'm still pondering her absences) and find more people who participate in the development of wikis and personal sites. It's exciting, and I think it's important for the world that we take our ownership of our digital identities.
<<<
Thank you! A lot of this was learned from working on my old blog, [[Spiritual Computation]]. I had tagging facilities there (it was statically generated from markdown using [[Hugo|https://gohugo.io]]) so it gave me an idea of how to tag and sort things. Otherwise I guess I've been playing around with macros and the likes, seeing what fits. Once I found out I could label and pick the color of tags I was away, lol.
<<<
Aye. I knew you had some previous work, and it makes sense that you have practice. I will continue thinking about how do you it. [[Tagging Theory]] is a hard problem for me. [[Names]] are all too often hard problems for me in general.
That phrase "Spiritual Computation" reminds me of these phrases: [[Computational Existentialism]] and [[Applied Computational Existentialism]].
I hope to eventually migrate lots of my older communications and content into my wiki. You are still in the process of reasoning about this as well. I appreciate your mindfulness about privacy and naming (a difficult aspect of myself and my wiki).
<<<
I noticed in your @ to me you said you hadn't written much html since the 90s and didn't have much CSS knowledge. I learned both at university, and promptly forgot it two minutes later ;) like everything, I duct-tape, skid, and hack it together until it works. [[w3schools|https://www.w3schools.com/]] is the most important sutra for me here... it's got a good mix of tips, tricks, and examples for just about anything web related.
<<<
That is an excellent site. I can totally relate to the duct-tape, shoestring, and gum. I ignuntly skid with blackboxes all the way down. I'm way more lazy about it. I suppose I could eventually learn this thing, but I've made it for so many years without, lol. My illiteracy knows no bounds. Maybe if and when this golgi apparatus becomes something which needs to look nicer, I'll figure out how to do that. I'm betting there are functions I'll need to make which will push me over the edge. We'll see!
<<<
I saw an old gem come up today that made me think of this integration you have, and that I'm building, between life and wiki. I wrote about it briefly in a [[journal entry|2019.07.30 - Loper OS]]. Right now I'm straddling the line between "stuff I'm thinking about/feeling" and "stuff I want to talk about or tell other people about". Striking that balance is going to be the core challenge here, I feel.
<<<
No doubt. I'll be interested to see if and how you develop the wiki for private use vs public consumption. That is a core challenge in this kind of work. I'm pretty sure everyone feels huge vertigo about it. These tentpegs have made huge waves in my life. It's transformative. I must look insane over here with my TMI [[naked]]ness.
<<<
I'm a little odd when it comes to Emacs. I was originally a vim user, switching to Emacs via Spacemacs in 2016 or so. This means I'm not as tightly integrated into the program as "Emacs natives". I still do large-scale text-munging with shell scripts or Perl. And much as I love the Emacs bindings (I use the space cadet Win-Alt-Ctrl layout instead of the standard Ctrl-Win-Alt) I don't really mind pointing and clicking in Firefox to edit text on TiddlyWiki. I'm sure that'll change in time, though. Speaking of, let's get the tech part of the response out of the way now that we're here...
<<<
I'm jelly. I'm a fish out of water with these tools. They just don't stick with me. Part of the problem may be that I just don't program a lot. I'm hoping my offspring see the light. There are many tools I wish I was forced to use from a young age.
One of my goals is to build a wiki that anyone can use (which is hardly to say I'm doing a good job), and I want to make the pilot's seat as similar to the audience's as possible. I'm not so good with empathy or design, so this is my current approach.
<<<
> I don't know what you are mean here. Could you take a screenshot and draw on it for me? I probably still won't know the answer, but I'll see what I can do.
[[Sure, here you go.|https://imgur.com/a/PSnEdAp]] By "lines" I mean lines of text. It's uncomfortable to read much longer than 80-100 characters for most people, so I'd like to limit the width of the tiddler text on-screen.
<<<
That makes good sense. One day, when I get around to it, I'll make a button for making mine easier to read. It is a common complaint I hear (I set it up for my screen, and it works much better on mine...but it clearly has little universal appeal).
<<<
Thanks for the @ ;) [[I've fixed it now.|2019.07.28 - SENPAI~]] I noticed you felt guilty:
...
No no! It's not a mistake. Reply away! If it was "private until sent," I'd just compose it in emacs and post it when it was time, lol. I put up the disclaimer just so you would know what the definition of done was.
<<<
No problem. That makes sense to me. Also, drafting out in the open has been an interesting experience. I do it for transparency reasons primarily, but it seems to be worthy in other respects too. It's a pulse of many signals.
<<<
Besides, it helped me to get the wiki prettified and gussied up (it was a massive craze to put waifu mascots in your custom css for imageboards back when I was last on them, and I wanted to do something similar on the wiki, hence the [[smol Kon|chamespeak]] in the bottom left of the page).
<<<
I like that you are bringing those social conventions and aesthetic to your wiki. I've visited many chan sites and anonymous forums, but I've not participated with much consistency on any. Lurking on 4chan, in particular, has been an important part of my life since 2004. I only visit once in a great while these days to feel it again. I can't say I understand much, but I am lucky to have the chance to reason about and experience it.
We would all be indebted to you for a fuller accounting of the evolution of these communities, your thoughts on them, and how they relate to the rest of the world. I usually find discussions and points of view which lack charity, compassion, and vision about chans. They are too untouchable for us to give any plausible and meaningfully positive accounts without censure.
I have strong opinions about what it means to be ourselves online and to use our free speech wisely, especially while we are pseudonymous.<<ref "pw">> The concept of [[The Other]] shines brightly in those corridors. Even this wiki exists, in part, because my experiences with these social media sites.
When I'm high, I am more likely to indulge in making my wiki purty here and there (mostly with the help of my family); I don't think the general aesthetic of my wiki has changed much in 3 years considering how much I've used it. I'll get there eventually, lol. A lot of people really hate the way TW looks in general; I think most find it to be janky in both form and function.<<ref "p">> Meh, it [[ltf]] for me though. The words do most of the work, and I think that's true of your wiki too.
<<<
I don't think you're retarded at all. Rather, the @ was much appreciated. Maybe I should set up an @ page of my own... Either way, feel free to use it. I check back like every day anyways.
<<<
That's kind of you. It is important that you know I am socially retarded; you'll have to help a brother out here and there (which, you are likely already doing here). In all likelihood, you've dealt with my sort plenty on chans.
It is still a treat to read about your life every day, btw. I know I've not been very talkative (and, yes, you are free to call me out here), so I've not signaled much about your writing. Your migration struggle is very emotional for me. I am also interested in how those who know you reason about your wiki compared to a new friend like me; I have both personal and professional curiosities in that.
Most people do not share much of themselves, and I'm grateful for your generosity. You cover a broad spectrum too. There's some technical thinking, some hilarious insanity, and it's personal. I can't put my finger on the kaleidescope of attitudes required to build wikis like ours, but I think our wikis have a ton in common. I'm lucky to have an affinity with you, and I appreciate that you put up with what many find absurdly dogmatic features of my point of view.
<<<
On a related note, I like the rice you've added... You seem to be using a higher opacity than me, though :)
<<<
I'm glad to take a page out of your book. I like that transparency look. So l33t, dat rice, much wow. See, this is how you know I'm an awesome hacker and what not. I tried out different opacities, but that seemed best at the time. When I first started trying to use BSD and Linux, I found it useful. Improvements to my window management over the years have made it less functionally relevant to me, but I still think it's hawt. It's pure rice now.
<<<
We'll have to hash out exactly what the etiquette is for a [[hyperconversation]]. Realistically though, if it's public on the wiki, people are going to read it, so that's why it's there. Don't be afraid to read drafts (most of this wiki seems to be somewhere below LevelTwo, after all).
<<<
I hear ya; that's basically my take. I suspect the etiquette varies with each person, at least that has been my experience so far. I'm not afraid to read the drafts (I enjoy the opportunity), but I am hesitant about responding to words people aren't committed to (and that, ofc, comes in [[dok]] as well). In the end, I take all of us to be accountable to what we say and do. In this wiki, that includes even the portions which I've [[/b/]]ed and Draft-tagged off, though I think that can be contextualized. My [[rules of engagement|Contact]] are already up, but I am interested in reasoning about the process further. As usual, [[IA2DYJ]].
<<<
Jumping back a little... (Idk, it seemed relevant to jump forward to the tech stuff before I responded about philosophy and open-ness).
> I would be really sad if we don't penpal. I'm not here for some short-term thing unless that's all we get to have together. I'm sometimes a slow and painful person to speak with, but I am listening and thinking with you.
That's a relief to hear. I can be a little insecure about my weirdness, because it turns some folks off, but you seem to be quite accepting of this strange human you find yourself confronted with.
<<<
Let it rip, homie. Shine bright and take no prisoners. You might find it hard to believe, but I think I'm every bit the outcast you are (from what I can tell). Part of my Kanye-tone and sometimes aggressive style (both online and offline when I'm not forced to be subversive) is a result of facing unjustifed outgrouping and persecution. I try to come correct because I know I generally must fight every person I meet in dialectic (despite my hope of avoiding it); in time, most of my best friends are grateful that I wrestle with them. It is extremely rare that I meet someone who won't hate or be disgusted by me when I reveal myself; I'm dialectially polarizing all too often. Empathy with people as weird as we are costs a lot. I seek to listen very carefully because that's what I expect of others in [[The Golden Rule]].
If I have my druthers, many bellcurves would shift quite a bit toward the extremes (it's the only way to achieve the golden mean of virtue in our contexts). You will find one of my unsavory positions is that I believe most people are evil to the extent that it would be objectively better that they never existed in the first place. You fill me with [[hope]] as an exception.
<<<
I'm a believer in the idea that there is family out there that we aren't related to by blood, that some friendships reach the level of family-ness.
<<<
Preach, yo! =) That's roughly my goal in [[FTO]].
<<<
I think it comes from [[Nobu]] originally, or one of her influences, like almost everything I've thought about after meeting her<<ref "n">>. I guess [[The Buddha]] quote on the [[Senpai]] tiddler touches on that. When someone has something to teach me, I treasure their company.
<<<
I am especially grateful in those circumstances where I benefit, and it is my honor be a useful family member, friend, or Samaritan to those who cannot or would not do the same for me. I'm going to bet that you meet plenty of family who don't directly teach you anything, but you have the chance to learn about [[The Other]] even when they aren't trying to teach you anything. We're lucky to learn.
<<<
Radically open is what I'm aiming for now... Especially having realised how bad I am at getting my thoughts out in live discussions (or debates)!
<<<
And, it's awesome! =) Your voice should be heard. FWIW, I think you've been honorable, hedged-conversative, open, and thoughtful in your discussions with me. Your substance bleeds off the pages. I hope you drown the world in honesty and commitment.
I think being quiet is quite convenient. I am forced to be quiet and deceptive in many cases, but I aim to bring as much transparency to the process as I can; it is a very hard problem in moral philosophy.
Also, I would be remiss not to point it out, and I know you have seen it too (you read carefully, and I am grateful): we may have some difficulties in sorting out the prescriptions of openness, but I highly value the trait.
<<<
I rather embarrassed myself talking to a real philosopher over discord the other day (I studied computer science at university, so I have to watch my engineer's disease when it comes to the humanities).
<<<
Your awareness of the existence of the disease and your aims to fight such a thing puts you head and shoulders above most humans I meet. Maybe the engineering mindset and quantitative approach is dialectically useful in experiencing and expressing what many think cannot or should not be put into words. You take your [[Humanity]] seriously. What more could be asked? I'm especially indebted to your willingness to put your own on the line. Your vulnerability is [[beautiful]].
<<<
> For now, I'm going to ask you to post what you are willing to show everyone (which is wonderfully open). I believe I should earn the right to see and reason about your private writing. I am grateful that you are willing to trust me, and I want to openly establish I'm worthy of it. It is my honor to grow a friendship with you.
Roger that! And it's great to hear you say that. Friendship is what I aim for. You seem to be a kindred spirit. I feel I have a lot to learn from you, and maybe there's a thing or two I can teach you in return.<<ref "css">
<<<
Aye. It's great. I am learning a lot from you already. The technical stuff is icing on the cake for me. I check some personal sites every day, but none have the body of content and habit that you have. Even if it were only in terms of the kind and amount of work we both put into our wikis, I feel that kinship as well. I know I'm ridiculously disagreeable and disappointing at times, of course, but you've been extra gentle in handling it, which I appreciate.
<<<
> Your Waifuism is weird for the normies.
I tend to lead with it online, that way you know how weird I am straight up! Hence I also use anime avatars in most places.<<footnote "f" "Makes the face reveal much more exciting, too">> I want to break the stereotype of anime freaks all being obnoxious dudes by being a kind woman, I guess. haha.<<footnote "k" "Working real hard on that one tbh. I've done some awful things in my life. I want to move beyond those and act kinder and try to have more of a positive influence on those around me. My husband is a big inspiration in that regards, he's consistently kind to everyone.">>
<<<
That makes sense to me. There's a lot of good reasons for it, imho. I suppose some people will feel like you've been deceptive through omission otherwise. I think that kind of honesty has been useful for me as well even to just signal from far away that the smelly, arrogant homeless madman is around; it gives them a chance to more actively avoid or ignore me. I think it cuts through the noise. Increasingly embracing my crazy has been invaluable to me.
Do you think anime and even waifu culture will become more common, accepted, or even mainstream?
Your husband sounds awesome. I hope to meet him one day.
<<<
>The lines I draw in the sand are about what is moral rather than conventional. While I may not be able to appreciate it thoroughly enough, it's not too out there for me.
That's great! I'm never going to expect people to fully understand it, really. I don't myself, but I've still been at it for ten years =w=.
Ahh morality. I envy what seems to be a sense of clarity you have towards what is moral. Myself I'm tangled in a web when it comes to these things. Virtue ethics mostly appeals to me, I suppose. I try my best to be noble and kind, but I don't know what is noble or kind beyond that which feels right. I never found axioms or lemmas on which to build a serious foundation of morality. Maybe this is where I need to bust out the Kant...
<<<
Aye. Virtue Theory describes moral psychology well, but it isn't useful for fleshing out the content of [[The Moral Law]] by itself (though there are plenty of anti-realists, skeptics, and egoists who take up an interpretation of virtue theory; Hume is famous for his). You make plenty of moves which assume there is right and wrong (as well as [[good]] and bad), but giving an account of metaethics is a hard problem. Saint Kant is a rockstar here. He occupies a special place in the history of Western philosophy, as we are still trying to respond to him. For whatever clarity I might have, I still have few answers. At best, I see how some of the standard historical paths fail.
<<<
> I probably won't understand chanspeak as well as you deserve, I have a history I cherish with that community.
My chanspeak is always going to be a few years behind. I found the community to have fallen apart around me over the last few years - I would blame 2016 but the rot had probably set in way before that - so it's rusty at best. Besides that, talking like you're on /b/ all the time is always going to come across a bit strangely, so I'm mostly only using it where the best term that fits comes from imageboards<<footnote "w" "The word //waifu// is a good example. Much virtual ink got spilled about a better term, but no-one ever came up with one, and somehow I doubt anyone ever will.">>.
<<<
It seems like it rots and something different blossoms. It's still as hated as ever. It is rare that I get to meet channers offline, but those have been important experiences for me too. The range in personalities, dispositions, interests, and character are wide; there's more variance in that population.
I did not grow up in a household that had any tolerance for these places and people even though there are many outcasts among us. How has your family come to understand you, chans, waifuism, and what makes you fairly different?
<<<
> I find it delightful that speak up from a perspective which is generally persecuted in many circles. I adore that you are comfortable letting it out. You don't present merely a face, and I admire your courage.
Thank you! I think we both share the idea that the internet needs to be democratised, that //everyone// needs to be able to get their voice out there. I want both to return the internet to the geocities/myspace era where people would put themselves out there, no matter how messy and unrefined that might look<<footnote "g" "That era was coming to an end as I grew up; by the time I was old enough to get involved, everyone was on social media instead. A crying shame. I love looking back at the archives and seeing just how //creative// people got.">>; but also to present an internet that is fairer and more open to everyone, unlike the silo situation we have going on today (which is why this is being said in a letter rather than over discord, birdsite, or facebook, lmao).
<<<
`/high 5`
I've had a few pages over the decades, but they were all delicious hot garbage. Just filthy. =). Angelfire and Geocities were what got me into it. It might not have been pretty, but I'm glad to have had the chance. I wish I had been doing it all along and never stopped. It's one of my regrets.
Do you think the public at large will escape the silo sitcheeayshun?
<<<
I feel like I could talk forever, so maybe it's best I leave it here. I'm eagerly awaiting your response!
- [[chameleon]]
//P.S. the title is a lyric from [[a song|https://romancerband.bandcamp.com/track/birds-in-smoke-2]] I have stuck in my head//
<<<
My god, I made you wait forever too. Thank you for your patience. <3. Even my daughter is disappointed in me. Ouch.
<<<
https://wiki.waifu.haus/#2019.07%20Journal
AAAAAA I FORGOT TO ASK H0P3 ABOUT FICTIONAL CHARACTERS
<<<
That is an important topic for us. I wanted to bring this up in this letter. I think most people consider me insane already, and my speaking to fictional characters (particularly in [[Prompted Introspection]]) only adds fuel to the fire. I've grown increasingly comfortable speaking with myself, imaginary characters, and even people I can't bidirectionally meet by definition.
It's important to me that I understand your relationship with your waifu. I have used this word in my wiki before knowing you:
* [[2019.04.29 - Wiki Review: Connections]]
* [[2019.05.27 - Prompted Introspection: Muh Monster]]
It is likely the case I have used it incorrectly. I do not want to speak out of turn or offend you by failing to understand your point of view. I likely have much to learn from you in thinking about this issue. I also want to know how you reason about experience machines and simulations, including your intuitions and gut feelings.
You need to straight-up tell me when I'm being insensitive or stupid here. It is not my goal to be a dumb brute, but I am all too often. I may not have earned the right to ask yet either. So, in the spirit of my ignorance: How much do you feel your waifu is a being created by someone else (since you are not the origin), and how much (perhaps with each passing year) do you feel your waifu is your own discovery and/or construction? You already reveal some of thoughts on the matter, but I hope to directly ask.
<<<
https://wiki.waifu.haus/#2019.09.04%20-%20my%20last%20bitch%20was%20cute%2C%20but%20my%20newest%20bitch%20thicker
So like. Senpai talks to Lady Mel, from ASOIAF I guess. Some folks seem to have interesting relationships with fictional characters, but don't actually identify as waifuists or even seem to get it when I talk about waifuism. I wonder if it's the fact that we (or what's left of "we") are a bunch of weebs and thus are bad ambassadors, lol. I could try and answer this question, or I could get hammered while listening to comethazine and shit
I'll probably essay this and just zen it when my boy gets round to finishing his reply, since he asked the question
<<<
Ya boi is almost ready. Get hammered and ignore the laundry. I am, lol.
I have no idea if I'm a waifuist or not, but I think I have a good deal in common with anyone who takes speaking with fictional characters seriously (perhaps I don't take it seriously enough, and I'm listening). I don't know if it is important if I identify as a waifuist or not. I'm grateful to have the chance to speak with some semblance of these characters. I find it valuable to my life to have fictional interlocutors. Even my wiki is a character I talk with (a flawed mirror Wilson volleyball). To my poor understanding, I don't think I'm a waifuist because I don't [[love]] or understand my fictional characters like I do my wife, a SO, or even a close family member.
I don't think you are a bad ambassador at all. I take it this is the kind of question you've been answering for many years.
<<<
It is distracting me from work though
<<<
I hope it will one day be something useful for your work. Emacs may simply be the stronger tool in many respects.
Aside: I hate to ask you to think about it, since I adore your TW, but have you considered the Emacs publishing tooling? Why do you prefer TW to it? You might not even see them as competitors at all in the end.
<<<
It's helping to scratch the shitposting/screaming-into-the-void itch of chans or social media but without all the toxic side effects.
<<<
I have seen that pop-up with [[others]] as well. If and when you get the chance, I would like to understand more about this.
<<<
* Should probably ease up on the [[h0p3]] senpai-ing. He's probably real creeped out.<<footnotes "fu" "as well he should be, I'm a gross stinky fujoshi >:3c">>
** At the same time, his writing is electrifying and exciting. It's like having [[David Chapman]]-[[Senpai]] but with a formal philosophical education and a frequent update schedule. So I'm unlikely to stop stalking for now.
<<<
Lol! I'm not creeped out at all, Madame [[chameleon]]. I also hope you don't feel like I'm ignoring you! I am reading your writing every day even with my WoW addiction (though I've not been good about checking my protonmail, but I've not yet settled into [[monster-16]]). My daughter likes to joke about it playfully. Stalking is a hilarious word here; by this token, we are both stalking each other. While I read every word, I cannot claim I understand (that's okay to some extent). It's a pleasure, and even if it weren't, it's an honor. Also, I know you must be joking (which is wonderful), but I must defend us both here: I don't think you are gross, lol. But, I am glad we get to be filthy interweb luh-hoo-zuh-hers together.
Clearly, this is an opportunity for us to get to know each other. It is so rare that I get to have a glimpse inside someone else's mind or radically honest self-representation.
You are too kind to call my writing electrifying, lol. I will do my best to catch lightning in a bottle.
<<<
Manuskript was kinda cool but a little too structured for me.
<<<
Thank you for this, btw. I [[recommended it|2019.07.24 - K: Games, Computers, and Writing]] to my cousin [[K]]. I've recommended TW to him for writing. It seems like a flexible tool for structuring and writing anything. Also, congratulations on the [[50k|https://wiki.waifu.haus/#2019.07.28%20-%2050k]].
<<<
The KyoAni situation is so fucked. Like. So fucked I can't find words.
<<<
I cannot imagine what that must be like for you. I have no point of comparison. I hope you do find more words. It's been an honor having the chance to read your thoughts. On top of your separation from your husband and visa process (oy), this hasn't been an easy time for you.
I had a hard time finding words for this letter, but it wasn't in pain. I appreciate your giving me so much time and a chance to read about your life, to develop a theory of your mind, and to generate more balance in the information asymmetry between us. As always, it's been a pleasure.
Sincerely,
[[h0p3]]
---
<<footnotes "d" "Most tend to distance themselves from me once they realize more of who I am. I am grateful you are not immediately repulsed or do not act on it, lol.">>
<<footnotes "i" "This may sound distasteful, but I'm trying to keep my wiki trim (despite my dumping and puking into it constantly). This text art image is too big for my taste, and it is likely to disappear someday when I'm in the mood for trimming.">>
<<footnotes "s" "Surprisingly, we've done alright without having our transitioned our seedbox (just using our old one and qbittorrent on [[m16]] for now. We're going ridiculously slowly, but I'm having my offspring build with me. It's a process.">>
<<footnotes "hs" "I think it might be fair to say I'm hypersensitive about being told I've done something immoral. That is when I throw down; my life is on the line.">>
<<footnotes "pw" "I do something obscene in my use of [[power]]words. I [[hope]] we will have a chance to explore my position together. There are few who have your background to see where I'm coming from.">>
<<footnotes "p" "I like to play 'Spot the Apple User' quietly in my mind.">>
# Radical empathy for all living creatures.
#* Meditate until you achieve [[Bodhisattvayana]]
# If "AI" is the answer, the question is wrong.
# Do not fear madness on the path to enlightenment.
https://twitter.com/NyxLandUnlife
Definitely gone off the deep end. An AI cultist, probably literal fash, and person-hater. Still, can probably trail through this for pearls; should probably chant [[Mahakala]]'s mantra while doing so, though.
I think doing the same as sphygmus and h0p3 would be a good plan, it seems fun. I could use the former's plugin.
Come to think of it, there's a lot to how h0p3 structures things (not just in the day to day, but the long term) that might be importable into the wiki. Think on this.
I did a [[Text Art: Self-portrait]]. It looks better in emacs or discord. I really need to fix the line spacing on TW.
Something to think about cf. [[Sneering]] is how far I can take my empathy and kindness towards people, or rather, how I can cultivate kindness no matter what. [[The Abyssal]] is amazing at this, it's something I really admire about my handsome hubby.
Maybe I should spend less time around wrathful yidams and pick up ol' Avalokiteshvara's mantra<<ref "om">>. Thing is, I find spending time with [[Mahakala]] to be productive. He's very unlike me and yet very //alike// to me, too.
Bah. This stuff is confusing.
----
<<footnotes "om" "the only one non-buddhists know about, of course: om mani padme hum!">>
https://twitter.com/jcbstwsk/status/1159005556931223552
How long until this entire site gets partyvanned? Place your bets and give your answer in hours
https://waifulabs.com/
Way too addictive. I've already made two kona-lookalikes.
Went to see [[Lofty]] and their bf today, so not much wiki activity. Was a fun trip.
This is a very approachable translation!
[[Pure gems:|https://diamond-sutra.com/read-the-diamond-sutra-here/diamond-sutra-chapter-4/]]
<<<
Furthermore, Subhuti, in the practice of compassion and charity a disciple should be detached. That is to say, he should practice compassion and charity without regard to appearances, without regard to form, without regard to sound, smell, taste, touch, or any quality of any kind. Subhuti, this is how the disciple should practice compassion and charity. Why? Because practicing compassion and charity without attachment is the way to reaching the Highest Perfect Wisdom, it is the way to becoming a living Buddha.
<<<
"If you meet the Buddha on the road, kill him:"
<<<
“When the Buddha explains these things using such concepts and ideas, people should remember the unreality of all such concepts and ideas. They should recall that in teaching spiritual truths the Buddha always uses these concepts and ideas in the way that a raft is used to cross a river. Once the river has been crossed over, the raft is of no more use, and should be discarded. These arbitrary concepts and ideas about spiritual things need to be explained to us as we seek to attain Enlightenment. However, ultimately these arbitrary conceptions can be discarded. Think Subhuti, isn’t it even more obvious that we should also give up our conceptions of non-existent things?”
<<<
2intense4me. Got to chapter 14 but now I need a nap.
RE: [[2019.08.07 - Salvage team 1]]: disappointingly but perhaps unsurprisingly, it's typical neoreactionary/accelerationist garbage, i.e. it takes thousands of words to basically say nothing. Why can't these people just write "i like shit poetry and i hate humans" over and over again, instead of pretending to actually have a point?
kudos at least for writing the stupidest thing I've ever read:
<<<
Up until now, the notion of gender has lurked in the background of G/ACC behind various material conditions in late capitalism. G/ACC has only at this point been approaching gender from the metaphysical plane, futurity being aligned with femininity (communalism, fluidity, decentralization, chaos) against masculinity (individualism, stasis, centralization, order). The two broad categories of metaphysical qualities that are associated with gender reach deep into the history of the world, from the Kabbalah to the Dao. Sadie Plant characterizes this in Zeros + Ones as the eponymous binary code of computers, 0’s and 1’s. The zero is identified with the feminine, the one with the masculine. Unsurprisingly, it might seem like this is literal gender binarism, and that G/ACC is likewise guilty of this. But the distinction is more complicated than most realize.
0 and 1 are fitting glyphs to make analogous to gender. The 0 which seems to be a void, a vulva, and the 1 which seems to be a unity, a phallus. The problem with trying to layer a simple misogynistic narrative of feminine as lack or castration is that the number 0 itself is not merely a void but rather a circle of autoproduction, an ouroboros. Paradoxically, 0 is not merely a lack or nothingness, but rather is itself a number. It is a positive signifier in the guise of nothingness, the enclosed and captured void that makes the unity possible. Computer science, unlike conventional mathematics, starts from 0 rather than 1. In a hyperstitional manner, the computer replicunt bootstraps itself into being the primary originator of the process of computation and production, rectifying the popular misogynistic myth that 0 is nothing more than a mere negation or other of 1.
<<<
This sort of stupid fucking numerology bullshit will get you a one-way ticket to the wall come the revolution.
More intense [[Sneering]] was done on the r/sc discord, but that's not public and idk if they'd let me reproduce it here.
This is what I get for going to [[shitter|birdsite.hell]] looking for rabbitholes.
I'm getting a bit bored of the red on this wiki. Changed it to a custard yellow lol<<footnote "kon" "And the footnotes to blue. It's kinda like the Konata mascot now!">>. Could do a monthly basis thing like my PSP backgrounds back in the day (Around the time I got with [[Konata]], hehe)
I took the day off work today. I felt crappy both emotionally and physically last night, so I decided to just call it quits today.
My life is in one of those transitional periods I hate so much. What can I do? I want things to be a bit more certain again.
I created [[$:/scripts/randomPrompt.js]] and imported GenericPrompts from [[h0p3]]'s wiki. It looks like fun to do a prompt, daily or otherwise, so I might be using it to do some of my own prompted introspection.
To me if you mean to do more module dev:
# Make sure to refresh the page, that's when modules are loaded.
# https://tiddlywiki.com/#ActionWidgets and https://tiddlywiki.com/static/ButtonWidget.html are what you need to use (look at prior art)
maybe there's more on soundcloud than shitty rappers...
* https://soundcloud.com/tags/emogaze
* https://soundcloud.com/tags/sadgaze
UGH WASHING PHASER EMO HEAVEN https://soundcloud.com/user-198831294/tracks https://soundcloud.com/wishbonefuzz/hideaway if this wishbone band plays anywhere near me I //have// to see them.
Ok last one: https://soundcloud.com/greengrassformiles/get-well-feat-kicksie This scratches so many itches. It's like a less utterly-depressing "Sadness" + female vox. This is the Good Shit.
Ahhhh, it leads onto more good stuff! I think I'm just going to have to make an account. https://soundcloud.com/little-whales/the-golden-ratio
<<<
Picture a bodhi tree taking root at the centre of the earth, its roots drinking deep from the waters, it grows taller and taller until it blots out the sun; and when the dharma is forgotten, the Maitreya comes at last with a great axe to fell the tree, cutting through illusion like the diamond. Every last living being is simultaneously enlightened.
<<<
The Maitreya Buddha is going to be so fucking badass =w=.
GenericPrompts now has a JS button to generate a prompt! It was tricky to get working, but I like it.
Now I have to think about whether or not I want to set up daily tasks... hm.
Well, I wrote [[Daily Tasks]]. Time to adopt, maybe. I'll try it out over the next week or so, see if I like it.
I'm probably leaving behind the old one when I emigrate, so let's build a new one, and go all out because I've saved up for like 10 years at this point.
I'm ~~small~~<<ref "ran">> not very good but I'll do my best!<<ref "gn">>
PCMR pals, lend me your energy!
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/list/W4smV6">~PCPartPicker Part List</a>
<table class="pcpp-part-list">
<thead>
<tr>
<th>Type</th>
<th>Item</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td class="pcpp-part-list-type">CPU</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/QKJtt6/amd-ryzen-7-3700x-36-ghz-8-core-processor-100-100000071box">AMD Ryzen 7 3700X 3.6 GHz 8-Core Processor</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/QKJtt6/amd-ryzen-7-3700x-36-ghz-8-core-processor-100-100000071box">$329.00 @ B&H</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">CPU Cooler</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/hmtCmG/cooler-master-cpu-cooler-rr212e20pkr2">Cooler Master Hyper 212 EVO 82.9 CFM Sleeve Bearing CPU Cooler</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/hmtCmG/cooler-master-cpu-cooler-rr212e20pkr2">$32.89 @ OutletPC</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">Motherboard</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/LJxbt6/gigabyte-x570-gaming-x-atx-am4-motherboard-x570-gaming-x">Gigabyte X570 GAMING X ATX AM4 Motherboard</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/LJxbt6/gigabyte-x570-gaming-x-atx-am4-motherboard-x570-gaming-x">$169.99 @ Amazon</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">Memory</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/6rrcCJ/corsair-memory-cmk32gx4m2b3200c16">Corsair Vengeance LPX 32 GB (2 x 16 GB) DDR4-3200 Memory</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/6rrcCJ/corsair-memory-cmk32gx4m2b3200c16">$154.99 @ Best Buy</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">Storage</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/7MQG3C/intel-660p-series-2tb-m2-2280-solid-state-drive-ssdpeknw020t8x1">Intel 660p Series 2.048 TB M.2-2280 NVME Solid State Drive</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/7MQG3C/intel-660p-series-2tb-m2-2280-solid-state-drive-ssdpeknw020t8x1">$184.99 @ Amazon</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">Storage</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/qLRzK8/seagate-barracuda-compute-8-tb-35-7200rpm-internal-hard-drive-st8000dmz04">Seagate Barracuda Compute 8 TB 3.5" 5400RPM Internal Hard Drive</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/qLRzK8/seagate-barracuda-compute-8-tb-35-7200rpm-internal-hard-drive-st8000dmz04">$149.99 @ Amazon</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">Video Card</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/k99tt6/xfx-radeon-rx-5700-xt-8-gb-video-card-rx-57xt8mfd6">XFX Radeon RX 5700 XT 8 GB Video Card</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/k99tt6/xfx-radeon-rx-5700-xt-8-gb-video-card-rx-57xt8mfd6">$399.99 @ Amazon</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">Power Supply</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/kCtQzy/evga-br-500w-80-bronze-certified-atx-power-supply-100-br-0500-k1">EVGA BR 500 W 80+ Bronze Certified ATX Power Supply</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/kCtQzy/evga-br-500w-80-bronze-certified-atx-power-supply-100-br-0500-k1">$35.98 @ Newegg</a>
</td>
</tr>
<tr>
<td class="pcpp-part-list-type">Optical Drive</td>
<td class="pcpp-part-list-item"><a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/z2dqqs/lg-optical-drive-wh14ns40">LG WH14NS40 Blu-Ray/DVD/CD Writer</a></td>
<td class="pcpp-part-list-price">
<a class="tc-tiddlylink-external" href="https://pcpartpicker.com/product/z2dqqs/lg-optical-drive-wh14ns40">$54.89 @ OutletPC</a>
</td>
</tr>
<tr>
<td></td>
<td class="pcpp-part-list-price-note">Prices include shipping, taxes, rebates, and discounts</td>
<td></td>
</tr>
<tr>
<td></td>
<td class="pcpp-part-list-subtotal">Total (before mail-in rebates)</td>
<td class="pcpp-part-list-subtotal-price">$1537.71</td>
</tr>
<tr>
<td></td>
<td class="pcpp-part-list-subtotal">Mail-in rebates</td>
<td class="pcpp-part-list-subtotal-price">-$25.00</td>
</tr>
<tr>
<td></td>
<td class="pcpp-part-list-total">Total</td>
<td class="pcpp-part-list-total-price">$1512.71</td>
</tr>
<tr>
<td></td>
<td class="pcpp-part-list-price-note">Generated by <a class="tc-tiddlylink-external" href="https://pcpartpicker.com">~PCPartPicker</a> 2019-08-14 07:50 EDT-0400</td>
<td></td>
</tr>
</tbody>
</table>
-----
<<footnotes "gn" "Have never built my own PC before.">>
<<footnotes "ran" "Ran-shamaaa~ https://www.youtube.com/watch?v=-sEC3HZW1iM">>
!! Todo
* Medical form
* Work
* Daily tasks (hue hue)
* Musical explorations
* Find a source to read manga on-the-go
* Tomorrow, do a mid-month review.
!! How would you feel if someone told you that you were his or her best friend?
I think I'd be pretty surprised more than anything else, if it was anyone other than my hubby or maybe [[Lofty]] or [[score_under]]. I've always been slightly distant; I love and cherish my friends, but there's always the feeling that what we have together might be temporary, whereas to call me a best friend would imply a lifelong connection. That's not to say I wouldn't //appreciate// it, or be very happy someone felt that way about me; I'd just find it unusual.
My original "best friend" from my childhood and I are long out of contact with each other, and I don't anticipate that changing, to be honest. Ahh, I wouldn't mind having an osananamiji~ Though I guess //I'd// be the childhood friend, since I'm a tsundere, tomboyish girl.
Jammit, now I'm getting into [[Red House Painters.|https://www.youtube.com/watch?v=t7aLPQEfrFE]] It seems the more tomboyish my aesthetic gets, the more girly my music taste gets.
Now that I'm into slowcore, how long is it until I start listening to Florence and the Machine?
You should probably show https://www.youtube.com/watch?v=L5vNW1BBZW8 to [[The Abyssal]], he'd definitely like it.
I think the "zen moment", or the moment you achieve satori for a programing language or tool, is the moment you understand the core conceit or quirk.
For Lua, it's the realization to the extent that "everything is a table"; for TiddlyWiki it's "everything is a tiddler". hmmm...
I'm reminded of how adjectives in some languages are really just a specialised class of verb.
!! Todo
* Pick up your records and do the form
* Skateboard, if you have time
* Read some LNs for inspiration, work on the fujo story
** Shitty translation, but: https://www.baka-tsuki.org/project/index.php?title=OreShura:_Volume_1_Chapter_0
* Soundcloud account. Your password manager is in sync, buster!
!! Todo review
* Medical form
** Picking up my records today, so I'll do it then.
* Work
** Worked pretty nicely yesterday.
* Daily tasks (hue hue)
** This is fun!
* Musical explorations
** Hmm, see [[Journal Review]]
* Find a source to read manga on-the-go
** Bah. No luck. Might need some torrent source.
* Tomorrow, do a mid-month review.
** Doing it now! [[2019.08 Mid-month Journal Review]]
!! What would you do if a bully bothered you on your way home?
I had a kinda /r/~AmITheAsshole moment in town yesterday. As always I stood near where the train doors will open when the train arrives. Someone else on the platform was kinda indignant and told me not to push in front of them. This sort of thing happens fairly regularly. So maybe I'm the bully, haha. I hate public transport. If I can ever pass that fucking test, I'll drive everywhere.
When I was little I used to just ignore bullies, like quite literally stonewall them. I had a mantra, "no reaction, no emotion", so that they never got a rise out of me, or even acknowledgement that they existed, and just felt awkward. It worked for most of them. I even had a few apologize to me.
The other thing is that because I'm really tomboyish and pretty large for a woman, any physical bullying is going to be met with a proportionate self-defense reaction. Trying to sexually assault me will never end well for the assaulter, haha.
Bullying exists online, but mostly it doesn't bother me. I even [[encourage it|Lol chameleon]] to some extent. You can laugh if it makes you happy.
What I wouldn't give to be bullied by a [[cute anime girl|https://mangarock.com/manga/mrs-serie-100115668]], though.
!! Todo
* Work
* Write - fujo, acg, new story
* Gomacs window functions
* Recheck forms and make sure you have everything for medical exam
!! Todo Review
* Pick up your records and do the form
** Done. As far as the doctors are concerned, this is my entire life!
** I came out as really fat when I measured my weight, oof. Time to diet mb.
* Skateboard, if you have time
** Didn't get to do any tricks but I did get to cruise around.
* Read some LNs for inspiration, work on the fujo story
** Former yes, latter no :(
* Soundcloud account. Your password manager is in sync, buster!
** Done. Soundcloud did win a [[KUSO WEBSITE AWARD]] for taking forever to send me my confirmation email though.
!! What do you think about when you can't fall asleep?
I've actually struggled with insomnia all my life. It's gotten better since I realised I need someone (or something) to cuddle with, but I still don't always fall straight to sleep.
Through years of experimentation I've discovered the best way to get back to sleep is to think of a comfy story. Usually I think about new, fluffy plotlines for the [[Stories]] that I'm writing. So long as I don't focus too hard, I eventually send myself to sleep.
I don't think about heavy IRL stuff. I'm pretty sure no-one ever has made good on plans they've made when they couldn't sleep - I sure haven't.
I really like textfiles. I've been browsing [[textfiles.com|http://textfiles.com/directory.html]] and the [[e-text archive|http://web.archive.org/web/20081108034509/http://www.etext.org/index.shtml]]. Maybe folx would be willing to do a plaintext zine with me? Seems like the type of thing [[h0p3]]-senpai would be into. I should ask him. Daijobu from discord also expressed interest in a zine.
yeah boss I //could// work. or I could read t-files for four hours. which do you think I'm going to choose?
Hi <[[chameleon]]>,
It's great to hear from you! Sorry, I meant to reply a bit sooner than this but time got away from me, ahaha. It has been a while since we've had a good conversation, hasn't it?
Don't worry about the crazy shit, I honestly don't even have a good memory of what all you'd be referring to by saying that. Glad to hear that you've been getting better and getting over depression, that's something I struggle with time and again myself. Being kind is always good, and telling the truth certainly has merits as well.
I see that you've put quite a bit of content on your wiki, I'll have to do a bit of poking around. I'll let you know if anything in particular catches my eye.
I'm glad that I continue to be welcome on your server. (Eggy friend? I'm not familiar with the term, er..) I went a long while without really being too active and sorta keeping to myself, but in recent times i've tried to change that a little.
I'm sure you're looking forward to being in America! That's pretty exciting. People give America a lot of shit but I like it. At least I can enjoy my lolis and shotas with relative peace of mind here. And hopefully for a long time to come too.
It's honestly not all that strange to me that we haven't met face to face, since I mean, not even Taisa and I have met (or even talked) face to face before and we're going on four years in November. But despite my aversions to meatspace I will begrudgingly accept that I have a 3dpd body and meet you using it sometime, when you come around. Maybe road trips can be involved, who knows.
We totally should watch Steven Universe together and finish it! I'm still surprised that you never went and finished it on your own, with how much you've been into the series (way more than me at this point I think). But I appreciate that you've been holding out for us to watch it together. It can be hard to part the current of life to make space for things at times, but perhaps with a bit of effort we can arrange to start watching again sooner rather than later. Maybe some kind of weekly or biweekly arrangement depending on time, something scheduled so we actually end up doing it? Just throwing out ideas.
I'm glad my advice helped you and the hubby out in the end. I don't even remember what all advice and guidance I gave you but if it worked then that's all that's important. It's nice to hear that you've been getting along well these days. Taisa and Soup and I have been getting along with each other just fine these days. My 5 year anniversary with Soup will be on halloween so that's exciting, also the anime convention that happens around that time that we always go to as well. Considering who I want to cosplay as and whether or not I should order a costume or what.
I told Taisa that you sent regards! He's been doing okay. Busy with work mostly, and not getting enough sleep.
It'd be nice to get the opportunity to speak more in the future, yeah! Letter format is nice but messages or a call might also be nice, just let me know if you're free and what you might have time for! My schedule is pretty flexible since I don't work.
"""
Anyway, hope to hear from you soon!
-Nobu
"""
!! todo
Day is basically over, but I still have a bunch of time to myself because the hubby is in late. So:
* Interview practice
* Write/Gomacs
* Indonesian
* Medical stuff
!! todo review
* Work
** boss is away, chameleon will play
* Write - fujo, acg, new story
** ended up writing a super gross yaoi story because irc pals egged me on
* Gomacs window functions
** Halfway (or so) there. You can open windows, move between them, and close them as expected. But there's a lot of visual glitches.
* Recheck forms and make sure you have everything for medical exam
** Not done, tomorrow.
!! What is something you do well?
I can duct-tape snippets of program together into a cohesive whole like no-one else. Part of the reason [[score_under]] and I make such a good team is that I'm the queen of duct-tape programming, and I can hack together a working solution real fucking quickly. That's also how this wiki works, haha, it's held together by duct-tape and prayers.<<footnote "js" "I'm not even good at ~JavaScript">>
I write pretty decently. I would like to evolve my style, but overall I think my writing tends to come out nicely. I'm very prolific as well :) I think some of my characters are real cuties (shout out to Saki, ayy~), and my dialogue usually sounds at least something like something a human might say.
Now I feel like I should call out h0p3-senpai about his letters, teehee~
I like the weekend much better than the workweek. the problem comes when I'm sleepy and not really getting up and moving around a lot. So going to the supermarket for food is actually pretty important on lazy days like these.
Remember [[crabcore?|https://www.youtube.com/watch?v=KDzt6yI3Dw8]] The 00s were fucking weird.
Somehow I got addicted to romance manga. Now I can't stop reading it. Has my "can't read primary sources" curse finally been lifted!?
!! todo
* Writing
* Indonesian
!! todo review
* Interview practice
** I don't think they're willing to help.
* Write/Gomacs
** The one thing I actually did. Got a little done, though not as much as a normal weekend.
* Indonesian
** I forgot.
* Medical stuff
** Need the 'rents to nag me or I won't do it.
*** Ended up finishing it under my own power.
!! If you could participate in an Olympic event, which one would you choose and why?
I'd get creamed no matter which one it was, haha. But, since I can skateboard, maybe I'd take snowboarding lessons and enter something like the half-pipe. I've always wanted to try snowboarding, but I live so far away from the mountains so I can't. The best I can do is to get decent at skateboarding, lol.
!! todo
* Survive the medical
* Reading and writing
** I enjoyed snooping on h0p3's draft, hehe~
!! todo review
* Writing
** A little bit.
* Indonesian
** Did it this morning :D
!! If you had to write your life story, what would the title be? Why?
"How to lose friends and alienate people?" Wait, that's already taken. Still, I like it, even if it's very self-deprecating.
"Seratus persen cinta~!!!"<<ref "lo">> if it was a light novel. Write it in bahasa Indonesia, fuck you. Anyways, I came up with that today. It made me chuckle to write a typical LN title in a different language. What about Spanish? "¡¡¿¿Mi esposo es un mago y quiere abrachos en un mundo otro!!??"<<ref "sp">>
I'm not really taking this seriously. I'll cross that bridge when I come to it. I guess the real title is "chameleon's wiki", right?
-----
Oh, and accidentally I clicked on ClipBoard and got `Who is the person that I feel has altered the course of my morals and values, and how did they effect me?` Bahaha. Should do that one tomorrow or whenever.
-----
<<footnotes "lo" "“One-Hundred Percent Love~!!!”">>
<<footnotes "sp" "“My husband is a wizard and wants cuddles in another world!!??”">>
The medical exam went fine. It's only so long now until [[The Abyssal]] will be in my arms every night <3
Inane thought: when I've been tying my hair up recently, I do a high bun on the back of the top of my head. It's kinda Buddhish :)
It's not a surprise I'd imitate a senpai slightly.
Something I kinda forgot about but has almost a TiddlyWiki feel being as it's all browser based... [[http://twinery.org]]
I really like this. I still remember the first Twine story I read (and it was lewd, teehee).
I made [[this|http://playground.waifu.haus/bluescreen.html]]. You can edit the html or just use "inspect element" to make your own blue screens. I guess this is some form of CSS training.
I guess it's what happens when [[Poolside OS or similar|https://www.kickscondor.com/poolside-fm]] comes crashing down.
kicksy-kun makes me want to make my own OS facade now.
!! Todo
* At least make it //look// like you've worked while the boss is away, damn.
* Sort out remaining documents for next week
!! Todo Review
* Survive the medical
** Done B) now I only have the final interview to go
* Reading and writing
** Not much of either, really. Oh well, there's always tomorrow (today)
!! Who is the person that I feel has altered the course of my morals and values, and how did they effect me?
It's really a tossup between [[Nobu]] and [[Shedu]]. I met Shedu first, and for sure without him I would've been an extremely different person; however, the things that Nobu has taught me and got me thinking about are closer to who I am now.
Shedu got me to think critically about things in a way I'd never considered before, including radically challenging my base assumptions about the world.<<ref "gd">> Nobu on the other hand brought a perspective that was incredible, a moral character without the typical basis some folks use for morality, and she's still very much my [[Senpai]]. I'm actually rather protective of her, haha.
Really, all of us are a patchwork of the people that influenced us, those that we wish to be like or not to be like, mixed in with the je-ne-sais-quoi of self-ness (or no-self-ness, for my buddhish homies<<ref "λ">>).
----
<<footnotes "gd" "He once dropped the extremely enigmatic line “You're much too intelligent not to believe in God”, which I still don't fully know the meaning behind (he was theistic, but not really //religious// in the typical way).">>
<<footnotes "λ" "Are we in fact pure functions, recursing endlessly, that what we see as state or quintessentiality are in fact mere bounds or functions over input? Perhaps a human is more a folding, mapping, higher-order function than a collection of adjectives and nouns.">>
It kinda passed me by, but I've been doing these reviews for a week now. Nice! Keep going. I've already accidentally dropped some gems in reviews before by now, haha.
!! Todo
* Work (an email or something to get movement going on that one build would be enough)
* Write a tweego guide. You can do it.
!! Todo Review
* At least make it //look// like you've worked while the boss is away, damn.
** One item on the "done" list per day should do it
* Sort out remaining documents for next week
** Going to take time off on Friday (not doing any work anyways) so I can sort everything out (also gives me a four day weekend! Bliss.)
!! Which person would you like to see more often than you do now?
Work leaves not nearly enough time for socialising. It almost makes me miss school, where all my pals were together in one place all day (literally the only good thing about school, hahaha).
I wish I could call [[Nobu]] every few days like back when I was unemployed, while still being able to call the hubby. I wish I had the gumption to contact [[Shedu]] again. I wish [[Lofty]] lived around here so we could chill every day.
Come to think of it, I wish I had time to spend with //all// the CLUBBERS. Alex is a lad, [[score_under]] is great company... fuck's sake, I love the lot of you crazy bastards.
Honestly at this stage h0p3-senpai could probably join the club, though idk if he uses discord enough to get much out of it. He'd get to see my off-the-cuff hot-takes, haha.
Today I feel sleepy and out of it (probably due to crappy sleeping schedules recently) so I won't be up to doing much.
!! Todo
* Read & Write
* Work
* Relax. Visa stuff is out of your hands for now. Enjoy your long weekend ♥
!! Todo review
* Work (an email or something to get movement going on that one build would be enough)
** Eh, just about.
* Write a tweego guide. You can do it.
** Wrong, not yet. I still need to practice some more.
!! What is your favorite journey?
In general, I don't like travelling. I wish everything I cared about was within walking distance. I especially hate flying - [[I've written about this before.|Airports]] Furthermore, I commute every day for work, and it gets tiresome fast.
I guess I enjoy the walk to the supermarket; I live in a leafy suburb and the route takes me through a nice park. The park occasionally has dog walkers and parents with children, both of whom are usually friendly (I love dogs, and children find my ugly mug funny or something).
!! todo
* relax!
!! todo review
* Read & Write
** Caught up with yet another manga. Not much writing
* Work
** Barely.
* Relax. Visa stuff is out of your hands for now. Enjoy your long weekend ♥
** Chillin' like a villain already [[=w=.]]
!! If you were a mouse in your house in the evening, what would you see your family doing?
<<<
"""
I will not eat it with a mouse!
I will not eat it in my house!
I will not eat it in the evening!
I will not eat it from the ceiling!
"""
<<<
I still live with my parents, since I can't yet move in with the hubby thanks to ''THE FUCKING OCEAN!'' So, I would see myself, calling with my hubby; my parents, probably watching telly; my siblings, doing whatever they do in the evening. A peaceful scene. However, I hope soon to disrupt this, since I will be leaving soon.
!! todo
No need to review today, as I didn't really have anything I wanted to do yesterday.
* Look into healthcare
* Make sure all your paperwork is sorted
* Play D&D
!! What kind of pet would you most like to have–monkey, snake, goat–why?
Goat! Goats are cool. They make me think of our lord and condemner, Satan ;) no but seriously, goats are rad. They're easily the best choice out of these three, too - A monkey might get on with me, but equally it might just [[cause chaos|https://www.youtube.com/watch?v=TanVUgneNo8]] for me and everyone else<<footnote "a" "Mischief is cute if it's an anime girl, but not a pet!">>, and a snake will most likely [[just sit there.|https://www.youtube.com/watch?v=VYrDhu0zBi0]] But I feel like I could be [[friends with a goat.|https://www.youtube.com/watch?v=V1uDTbb-VfI]]
I should make a "the void" page where I can scream shit, which I can delete periodically.
Not sure where to put talking about personal things, or rather things that are TMI-ishly fucked up. I kinda wrote something really ;_; today: [[2019.08.25 - snatch happiness from the murk]], and now I think I need something or somewhere to use for feelsy stuff like that.
Man, I made myself feel sad. [[I'm gonna go get a drink.|https://www.youtube.com/watch?v=n8cdAsbSyRo]] I really hate Sundays, everything's closed and shit. I hope it isn't like this in America.
[[Journal]] is getting way too long. Thank fuck for the [[Journal Review]] coming next weekend.
Reading lots of manga has, weirdly, made me dislike the typical imouto character. Maybe because in works like hajimete no gal, they're really annoying.
!! Todo
* Finish chapter 18 of fujo
** I got so close last night!
* Update manga list
!! Todo Review
* Look into healthcare
** Not done. Fuck it.
* Make sure all your paperwork is sorted
** All I really need is stuff from the lawyer, which I'll ask about on Monday
* Play D&D
** Kirbs ran a great game. I was reminded how fun it is to be [[Altani Pondweed|Character: Altani the Pondweed]], hehe
!! Who do you trust the least and why?
My ex-girlfriend. I genuinely never want to see her face ever again, and the reason for that is that she abused me. It's a little heavy a topic to talk about in public like this, and really I struggle to put it to words.
There's a lot of material out there which puts the blame for abuse solely on the shoulders of men; and while a lot of people are abused at the hands of men - a lot of women in particular - all people have that capability for abuse inside them. So it was with my ex.
I sympathize a lot with men who've been abused by their girlfriends or wives, because I get a lot of the same reactions. People don't understand how a lesbian (pansexual really, hence why I have a hubby, but that's not important) can have been abused.
[[Watch philosophy tube's video.|https://www.youtube.com/watch?v=AeGEv0YVLtw]]
This was unexpectedly dark, lol.
!! Todo
* Call with lawyer
* Get some fresh air, you'll feel better
* Start on a crib sheet
* Programming
!! Todo review
* Finish chapter 18 of fujo
** Done
* Update manga list
** Done, with one more to go today (just finished real girl)
!! How do you feel when you're leaving home on vacation?
Usually, really fucking worried. I'm kind of an anxious person. I fuck up with regularity, haha. I don't like travelling at the best of times. It's especially bad if I'm flying. But even if I'm not, I'm worried about leaving important things behind, or getting lost or missing important connections.
Of course I get excited too, especially if I'm going somewhere cool, or if I get to spend my time off with the hubs or my close family.
I feel a lot better now. I should be OK for the visa interview. Gambatte, young chameleon~
!! todo
* Print stuff off
* Work
* Eat outside today. It's too nice to be wasted.
!! todo review
* Call with lawyer
** Done. She's a professional. It really reassured me.
* Get some fresh air, you'll feel better
** BBQ in the sun with parents and gramps and family friends, lovely <3
* Start on a crib sheet
** Done, and hubs helped me out, the sweetheart
* Programming
** Does twine count?
!! What is something that really makes you angry?
Tech-''FUCKING''-nology. All software sucks, [[KUSO WEBSITE AWARD]]s are handed out like candy on Halloween, and I get more hardware failures than paid leave.
Even the hubby gets genuinely frightened by how angry tech makes me, haha. I'm normally a calm, chill person, but computers are so shit they make me lose it without even trying.
At least TiddlyWiki is good.
I had a dream about Donut of all people. Yeah.
He had long hair tied into a bun, and we were running from gangsters (I blame watching too much JJBA Part 5). We actually got on quite well in this dream, in stark contrast to our IRL “friendship”.
So I spent the morning remembering all the stupid shit we bickered about. Lmao. He's a prick.
If I'm going to dream about a former /mai/den, I'd much rather dream about Glass, Zambee, or even Desu. Press F to pay respects to Ruvin, btw. Hope I get to see you again some time, bro.
In reading the draft of h0p3's letter (sorry senpai~) I'm reminded of his moral clarity and level-headedness. I'm glad he wasn't upset in the long term over my blunder. I see the potential for a lasting friendship between us.
I found this utterly cursed shit trying to find what the take 5 vamp is:
* [[Take five but with no 5 beats|https://www.youtube.com/watch?v=tFqiuZ1MJFs]]
* [[Take five but with coltrane changes|https://www.youtube.com/watch?v=Nz9Z_VJ-YMw]]
[[It's Eb and Bb-minor btw.|https://www.youtube.com/watch?v=JP_qNVfafpo]] [[chameleon]], you can play this, you already have the rhythm down (it's just a bossa rhythm), and the changes aren't hard.
!! todo
* Make a checklist and check off everything that you have. It'll save you stressing tomorrow
* Work
* Don't forget to have fun too
** Guitar
** Writing
** Programming
** Manga
!! todo review
* Print stuff off
** Done, and more today
* Work
** Helped out a coworker. Nice alibi~!
* Eat outside today. It's too nice to be wasted.
** It was really lovely yesterday. Not so much today.
!! Tell about the happiest day of your life.
I got enlightened in 2017, that was fun ;)
And March 16^^th^^ 2018, when my hubs proposed, was a pretty damn happy day, too.
Individual days often aren't the //happiest// per se; more it's periods or times that are happy. Right now I'm quite happy, though I'll be happier if I can move in with the hubby of course [[=w=.]]
!! todo
* Get your picture taken, US Visa style
* Print 2019 visit pics
** You're already over-prepared, but it can't hurt, lol.
* Work
* Relax and sleep at a reasonable time!
!! todo review
* Make a checklist and check off everything that you have. It'll save you stressing tomorrow
** Everything's sorted. Just need to get my photo taken. My document folder is now ''DUMMY THICC''.
* Work
** Meetings + helping coworkers
* Don't forget to have fun too
** Had a lot of fun yesterday and learned some quartal chords. Dad and I jammed on Take Five too (him on guitar, me on vocals, lol)
!! What do you think about the amount of violence on T.V.?
"""
It seems today
that all you see...
"""
It really doesn't bother me. The only thing I take objection at is extreme gore, and even then I recognise that this is personal disgust and don't seek to censor it, instead seeking to avoid it. Folks can watch that if it makes them happy.
The moral argument against violent content is usually "think of the children" and yeah, I think I agree with the premise, but a better way to deal with it than outright censorship is to protect kids from this content. Actually pay attention to age ratings and shit. If your kids want to see a movie, watch it beforehand or read a review to make sure it hasn't got objectionable content. Or, you can just let them watch it. Plenty of kids //do// without turning out any worse. I used to watch Inuyasha as a kid, and my boy disembowels demons with a big ol' sword every episode, but it never turned me violent or unsettled me or whatever (may have given me a terminal case of shit taste though).
Space rock is the holy grail I've been seeking ever since I first heard Vision Creation Newsun...
* https://www.youtube.com/watch?v=1XM4ZXxtnjA&list=PLBF91FA8D6D315149
* https://purplepyramid.bandcamp.com/album/space-rock-an-interstellar-traveler-s-guide
So I should still be able to move in with the hubs, but it might take longer than I'd hoped because of this paperwork stuff. Fun. I'm going to get drunk and eat pizza today because I deserve it, lol.
Apparently "the overwhelming majority of 221(g) denials are overcome and visas issued" so I doubt it'll be a big problem long term. Just means I can't buy plane tickets and shit.
Link dump really. There was a hn thread for an emacs release and it got me thinkin' again.
* https://foicica.com/textadept/
* http://chriskempson.com/projects/base16/
** https://github.com/chriskempson/base16
* https://github.com/karahobny/acme2k
** http://acme.cat-v.org/
* https://github.com/jacktasia/dumb-jump
!! Todo
* Prepare docs to get a second police report
* Relax and enjoy your weekend
!! Todo review
* Get your picture taken, US Visa style
** Done, no drama
* Print 2019 visit pics
** Turned out I was overprepared. Should've spent all this time looking at my police certificate, though - it's missing my old name, and thus I need a new one.
* Work
** Kind of? maybe?
* Relax and sleep at a reasonable time!
** Slept tight and didn't let the bed bugs bite.
!! What is the worst thing parents can do to their children?
Well, aside from the obvious stuff (infanticide/other forms of murder, sexual assault, etc), I'd say raising them closed-minded. Your formative years are really important to your development as an adult, so being taught to be a stupid bigot then is really going to hurt your chances at not being a stupid bigot in future.
People keep pleasantly surprising me though, and there's plenty of stories of people escaping abusive childhoods or being raised in cults or what-have-you. So maybe the obvious answer is the best one here.
!! todo
* [[Journal Review]]
!! todo review
* Prepare docs to get a second police report
** Mostly the same shit as last time, the piggies don't need too recent stuff. Should be all ready. I will have to do it at work though.
* Relax and enjoy your weekend
** In progress!
!! Name someone or an event that guided you in choosing your vocation or work.
Dad! Dad's also a programmer, a significantly more professional one than I am, lol. So we've been bouncing ideas back and forth for years, and it was pretty much inevitable I'd eventually learn to program myself. Once I did, it was a no-brainer to choose it as a career - the only other stuff I'm as interested in, such as languages or music, are things which I couldn't get into as a career unless I got really lucky dealing with academia.
<<list-links "[tag[Daily Tasks]!sortan[]] +[prefix[2019.09.]]">>
This month's color: <span style="color:#e7c739">#e7c739</span>
* Lots of fun with Emacs this month
* Didn't do enough fiction writing
* Finally got into hiphop and other cool music
** Writing my own music too
* Did some more html hacking
** Including feedbag, a new homepage, and my tilde
* Letter to h0p3 :)
* Flying to the US on Oct 11
* I really really want to DM again!!!
* Melancholy about leaving work; on the one hand I love the neet life, on the other, it sucks leaving a job I actually liked with cool coworkers.
* RIP Mia/Chaotic. I struggle with what to say here. We all miss you very much.
---
<<list-links "[prefix[2019.09]!sortan[]]">>
You've no doubt heard of [[toybox,|https://www.landley.net/toybox/about.html]] the unix-in-a-can by the former busybox maintainer. Have you heard of his mad reason for creating it? He wants android to become the acceptable linux-on-the-desktop! Mad. His reasoning is interesting, but I think flawed. He argues that just as the minicomputer surpassed the mainframe, and the microcomputer surpassed the minicomputer, so too must the smartphone surpass the microcomputer. I'm not sure I agree with this. Serious work still isn't possible on a phone, unless you buy a whole bunch of extra tools to use with the phone. Still, more power to him. I love seeing these wacky plans play out when actual code gets written.
Stayed up until Very Late fiddling with the modeline. I could probably do better than it is now, but eh, it works.
```
version controlled buffer:
156: 0 ---- Bot ---- init.el -- (Emacs-Lisp Fly FlyC:0/6) Git-master ---------
non-vc buffer:
17: 9 ---- All ---- mode-line -- (Text Fly FlyC-) -------
```
Whoever thinks CSS is frustrating has never tried ricing Emacs, lol.
Meanwhile in Gomacs-land, the modeline is just hardcoded. Rofl.
!! todo
* Dry run of police certificate application
* Try out base16 for Emacs
* File bug report for acme2k black lines
!! todo review
* Journal Review
** [[2019.08 Journal Review]]
!! If you were to write a book, would it be fiction or non-fiction? What would the subject be? Who is your target audience?
Well, I already write fiction... And I can't really see myself writing non-fiction. I don't know how to structure it, or even if I know about anything to an expert-enough level that the effort of writing a book about it would be worth it.
!! todo
* Work
* Burger
* Keep an eye out for issues with the police cert
!! todo review
* Dry run of police certificate application
** Applied. Now we wait.
* Try out base16 for Emacs
** It works great! Finally got a nice snazzy theme. Also tweaked my modeline, hehe
* File bug report for acme2k black lines
** [[Done.|https://github.com/karahobny/acme2k/issues/12]]
!! If you knew you would loose ever possession you own but one, what would you keep?
Well, hopefully I at least keep some clothes ;)
Practical answer: my phone. With access to email, IM, and the 'net, I could bootstrap my life back together with it.
This hypothetical hasn't been thought through very well, has it?
I'm really enjoying RTJ and stuff. Probably gonna be getting into this hxc shit. I guess so much listening to group_inou has gotten me into it. Being a weeb is surely a Thing.
<<<
"""
You say you wanna be my leader
I think you wanna be my God
You say you on the side of the righteous
I say I'm gonna hang with the wrong
"""
<<< [[Angel Duster|https://www.youtube.com/watch?v=6MS-JqECvf4]]
!! todo
* Laundry
** It's been piling up. No 'rents or other fam around atm, so this is probably a good time for it.
* Check out T&T
** Archives, the "library", your own collection; think creatively, [[chameleon]].
** [[1e is $2 on DTRPG|https://www.drivethrurpg.com/product/130768/Tunnels--Trolls-First-Edition-Reprint]] and is probably short enough to print out with a laser printer.
* More fucking hip-hop!
** If the boyfe isn't around, or you get bored later, RTJ3 is waiting. And RTJ4 by q4 or so :D
!! todo review
* Work
** Sleep deprivation fucked up my workday. Ended up marking it off as sick, at manager's suggestion, since I was home playing Minecraft anyway
* Burger
** Yummy. The highlight of my day.
** Tonight it's a tossup between pizza or thai green curry 😋
* Keep an eye out for issues with the police cert
** Hmm. Well, they're dispatching it, so there's nothing //obviously// wrong, yet. I'll have to keep my eyes peeled.
** I will really complain if they got it wrong again.
!! What is a secret about you?
If I tell you, it's not really a secret, is it? ;)
Or rather, since this is a public wiki, once I tell you it'll no longer be a secret any more.
Still, why not, here's the titles of the three stories I wrote and that I let my trusted inner circle read:
* A Curious Gaze
* Alone With You
* My Girlfriend Is A Fujoshi?!?!
You'll have to ask nicely if you want further details than that :)
Golang finally has a decent [[GUI toolkit,|https://github.com/aarzilli/nucular]] putting it head-and-shoulders above 99.9% of languages. Looks like on Linux it uses raw X commands, which is What We Like.
!! todo
* ''LAUNDRY''
* Police certificate redelivery
* Programming &| writing.
!! todo review
* Laundry
** Still not done. Today or tomorrow!
* Check out T&T
** T&T is lit. It's OSR back when it was just called "fantasy roleplaying". Definitely need to run a game.
* More fucking hip-hop!
** """
Where the bricks, where the bows?
1-7-double-O, slither gang, bloody nose
"""
** Downloaded RTJ2, need to put it on the phone
!! What would you do if someone told you a joke that you don't think is funny?
I've been on the other side of this, so I try to be kind when this happens. My approach depends on why the joke isn't funny.
* If it's unfunny because it's offensive, I'll try to calmly explain why.
* If it's unfunny because of poor timing or delivery, I'll try to gently defuse the awkwardness of the conversation to aid my interlocutor (or maybe laugh anyway) because I don't want to make them uncomfortable.
[[senpai's listening to comethazine now!?|https://philosopher.life/#Music%3A%20Exploration]]
I ended up watching the genius interview:
<<<
Y'know, I said 69 niggas. So, coulda been 70 niggas, coulda been 68, coulda been 65. I wanted to say 69 so I did. ''Niggas know what the fuck it meant.''
<<< Comethazine
The way he delivered that was so threatening, lol. Even though ultimately, 69 is just the haha funny number, which is probably the real reason he said it.
The more I listen to his music the more fascinated I am by it. If I ever get into the rap game my flow will probably be heavily influenced by his, even if I'm not a trap type. So I may self-deprecatingly say I'm listening to something trashy, but I don't think it's trashy at all, I think the man's music slaps.
Oh, senpai also put Blue on, which is one of the best group_inou tracks. Some other great tracks they've made:
* EYE
* [[HEART|HEART by group_inou]] (fun music video too)
* COMING OUT
If you get a craving for Japanese music, there's more great stuff:
* https://www.youtube.com/watch?v=1EKTw50Uf8M
** Classic weeb culture in the music video, lol, it's basically about being a japanese delinquent and getting a badass tan, but they express that through a really fucked up animation style with a bunch of Vegetas. The song itself ''SLAPS''.
* https://www.youtube.com/watch?v=WhQvgHM_Nd4
** Not hip-hop ;)
** This was the opening for Nichijou, which is a really great slice-of-life/surreal-comedy/fantasy tour-de-force
** fun fact: the lovely lady mouthing the lyrics is not the one in the recording. The man playing the instruments did all the voices, using a voice changer for the female voices.
* https://www.youtube.com/watch?v=iEI0WVI4cbM
** Tokyo-style speedcore
** My boy m1dy performed live with dancers dressed as touhou characters.
** This will fuck your ears up
* https://www.youtube.com/watch?v=_jrd9VX2CnM
** Wholesome palette cleanser after you listen to m1dy ;)
** My friend Aed loves this band
* https://www.youtube.com/watch?v=8USYYsNG_H8
** Vocaloid~ and it's a good song, too.
** I sometimes get the mental image of covering this, which is pretty funny, imagining myself rocking out on guitar while singing "pafu pafu nyan nyan~<<footnote "on" "Both of those words are onomatopeia. 'Nyan' is the noise of a cat meowing, whereas 'pafu pafu' is supposedly the noise it makes when you grope someone's boobs. Japanese is a Thing">>"
** The song makes me think of [[Kona|Konata]] so it gets extra points.
!! todo
* Put downloads on your phone
* Start working on a reply to [[2019.08.07 - chameleon: Nets 4 Outcasts]]
** Good job, senpai ;)
* New pages?
** Music Recs?
!! todo review
* ''LAUNDRY''
** got a load on atm, at last. Will still need to do more tomoz, but thankfully I'm still home then
* Police certificate redelivery
** Coming tomorrow
* Programming &| writing.
** Yup, major features/fixes for [[Gomacs|https://github.com/japanoise/gomacs/tree/develop]]; even wrote some lyrics, lol
!! What colour makes you think of happiness?
Definitely blue, it's [[Konata]]'s color~! Blue is a pleasant color anyway. I don't really see it as a sad color like some folks. It's not my favorite color (that would be red) but it's a color I associate with her and with happiness.
[[Let's go let's go su-wimming time!|https://www.youtube.com/watch?v=hj566OQUQIE]]
Dear [[h0p3]],
Thank you once again for your letter :) I have to confess, I've been perusing it as you composed it. It's always a joy to see your thoughts evolving. The strength of wikis like ours, I think, lies in this open composition. It's like getting a backstage pass to snoop on the creative process. It's addictive.
That's also how I remain patient ;) If I can watch the letter develop, I know you're working on it, at your own pace, and that's what matters. So, don't feel guilty that it took you a long time to respond. Art takes time; as a writer, I totally get that.
And furthermore, now I get to make //you// wait 😈 I apologize in advance, lol. This is going to be a wild ride.
<<<
The wiki isn't easy to wield. You've been rockin' out though; I have no idea how you keep up your insane pace, but I adore it. This metaphor has the wrong tone and appeal, but I can't come up with a more accurate one: you are puking yourself into the void of your wiki and beautifully structuring it with no end in sight. It's an avalanche, and you give me a taste of my medicine. It's a joy for me.
<<<
Thank you! It seems I'm doing well at the whole brain-dump/brain-backup thing, haha. I've been having lots of fun responding to the prompts, even if my responses are often a little quiet. This is one of many areas in which you're definitely my [[Senpai]], hehe. I just can't do the same antipleonasm analysis stuff you can, or reply as deeply to the questions as you can (especially when it gives me trash questions... favorite Star Wars character my ass...)
Wikiing has made me feel like I understand myself a little better. It's a mirror image of meditation; where through meditation you see the non-self, the non-dualism, and the illusion of the ego, in wikiing I feel like I tease out the nature of the ego, map the pathways through the function that is me through the brainstates that are my life.
Ahh, that's my quack philosophy seeping in right there. I talked about this strange idea with my dad and my coworkers that human beings are like pure functions. My coworkers seemed interested, my dad<<ref "da">> thought I was talking shit, lol.
<<<
Here's my daughter's drawing.
<<<
Ohhh! Thank you so much! Say thank you to your daughter from me, I love it. Getting more images quite literally always makes my day - despite LS being super popular back in the day, it doesn't get much art these days, hehe. I love the ascii version too. Don't worry about removing it, I'll hang onto it :)
<<<
Collecting images is an art I've not mastered. How often do you look through your beautifully organized collection of images of Kona?
<<<
I at least look at - if not post, via discord - images every day. Of course, it's hoarding, but it's a hoard I do at least use. I still feel like a dragon, haha. Sorting is a Sisyphean task, since I'm constantly saving new images, but there's no need to imagine me happy, because I am ;)
I've set up my [[feedbag|https://git.sr.ht/~japanoise/feedbag]] to keep an eye on my favorite images; I could expand it even further, probably will in the future.
<<<
You must think I am insane, but I do not even keep pictures of my own children or wife. Even the h0p3 textart selfie only exists because it enables me to connect dots for some people.
<<<
That's really something. I've never been much of a picture collector when it comes to photos, but I do like having pictures of my beloved and my friends. If it was me<<ref "pr">> I'd definitely get pics of the children, because it seems to bring my parents joy to look back on me in the past. IDK, the legacy aspect.
My hubby and I were kind of compelled to keep pictures because of the whole visa thing, and I've been loving the ability to sift through them now. It makes our relationship feel even more special.
<<<
It's stupid hard to make ASCII art by hand.
<<<
Preach. Emacs makes it a little easier, at least, but not much.
<<<
You are clearly well-watched in this area. I would be grateful for recommendations which you think might fit me.
<<<
~JoJo's Bizarre Adventure! Seriously though, it's a bop. It's an action show, but it's stylistically unique and has a much more fun cast of characters than any other show. It's also split into "parts" so if you find one part weak, another is always in the wings. I just finished Part 5 and it's fucking amazing.
I think you might like Girl's Last Tour. It's about two cute girls in the post-apocalypse. It's really atmospheric and well worth a watch.
For general recommendations you can check out my [[list|Anime Recs]]. I see you've already seen Eva - have you seen FLCL? Cowboy Bebop? These are the ones you'll get universally recommended. To give recs any more specific than that, I'd have to know your taste or what you were looking for.
You can also see [[what I'm reading manga wise,|Manga List]] but I tend towards trashy (often ecchi) romance, so it might not be what you're after (it's not exactly high art, lol).
>You might check out that Ping Pong anime. It might not be to your liking (I am not good at making recommendations), but I enjoyed it a lot.
I've not watched much sport anime. One for the backlog, maybe?
<<<
That makes good sense to me. I have been watching, of course. I hope the visa comes through and it's smooth sailing! Hopefully, we can have some beer or coffee if and when we have the chance to meet.
<<<
Hell yeah! I'm a huge beer-drinker, lol. I'm a very strange girl. I do love cocktails and stuff, of course, it's just way easier to pull a cold one out of the fridge. My hubby and I tend to sip cider and Jack together if we fancy getting drunk. He's complained before that I buy beer he doesn't like, then drink all his cider instead, hahah.
What kind of beer is your usual tipple? I love everything Brew Dog makes<<ref "rb">>. You can find me sipping on a Punk IPA most nights.
<<<
Why are you choosing to emigrate (why not have your husband move to you?)?
<<<
Several reasons:
* My hubby has more ties to the US than I do to my country. He's got more long term friends, family close by, etc. I guess I have a job, but being as I'm in compsci it's not irreplaceable.
* Culturally, there's more going on in the US, especially in Nashville where the hubby lives. It's not great here. Everything happens in the capital, which is prohibitively expensive to move to and an hour away from where I can afford to live.
* Despite TN being in the South, I found it more accepting of me as an LGBT woman than anywhere in my country. Tennesseans as a whole tend to be friendly and welcoming, which is much better than the people in my country, who tend to be snide, sarcastic, arrogant little cunts.
** Even the random Americans I met in the Midwest, or in New York, were tonnes friendlier than even the nicest locals where I live. I guess it's a different culture, but it's one I feel I fit in with much better.
* Decelerationly, the problems in my country are of the "the entire place is going down the shitter" variety, whereas in the US it at least seems that there's potential for things to improve. It's a choice between a rock and a slightly-less hard place, really. Ultimately the whole world is mostly fucked because of climate change, but I don't like to think about that too much, lol.
<<<
I am surprised you would turn in your resignation without a sure thing; I likely don't understand enough about the process. I had to get a visa every few months in Thailand, and it was an extremely unfun process; my friend Jop had an even harder time getting to the US. It sounds like it won't be too difficult for you, `/fingers-crossed.` I'm nervous about these kinds of things. You seem to be fairly stoic about it.
<<<
It's been easier than expected, but I'm not that stoic about it, haha. I'm mostly doing my worrying with my hubby around rather than on my wiki... Regardless, I'm at the last stage now before the actual move; I have to send off one last piece of paperwork then it'll all be gucci and I should get the visa by the end of September/beg. of October.
I have a huge pile of evidence that I'll take with me to the border in case CBP give me shit, but after that I imagine I'll be settled. I currently don't plan to return for any length of time.
<<<
I enjoy thinking about the way in which you reason about what you owe or do not owe to your employers. Rock on. =)
<<<
Ahhh, you make me feel a little guilty ;) I love working with my coworkers and all, I just don't have the protestant work ethic. Boss makes a dollar, etc. I do take pride in producing good work, of course, but I don't see it as the be-all end-all of my life. I value things other than what is profitable, and it's my contribution to anti-capitalism to be a lazybones, lol.
<<<
I'm enjoying reading about your approach to programming too. I'm desperate to help my children own their machines and understand CS. If you could go back in time, what do you wish you learned from a young age?
<<<
An appreciation for what is possible, and an ignorance for what is feasible! Programming is all about getting yourself lost in the murk of your own abstractions. Programs are not so much planned and written as they are torn from the abyss of raw creativity by the hand of sheer bloody-mindedness, gloved in a thin layer of technical competence.
I can't recommend James Hague's [[Programming In The 21st Century (prog21) blog|https://prog21.dadgum.com/]] enough. He's my programming hero, in a way: a smudge-faced, [[duct-tape programmer|https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/]]<<ref "dt">> not interested in algorithmic perfection, but in building cool stuff, the whole reason we learned how to program in the first place. If you want to turn out like me, a hacker with a dream and the tools to make it possible, understanding prog21 is the way to go about it.
While his blog is not active at the moment (and is unlikely to restart, because he's finished with it) the archives are full of some of the best writing on programming out there. His writing is pithy and direct. Some recommendations and personal favorites:
* [[You don't want to think like a programmer|https://prog21.dadgum.com/190.html]]
* [[Write Code Like You Just Learned How to Program|https://prog21.dadgum.com/87.html]]
* [[Advice to Aimless, Excited Programmers|https://prog21.dadgum.com/80.html]]
* [[You Can't Sit on the Sidelines and Become a Philosopher|https://prog21.dadgum.com/197.html]]<<ref "lo">>
* [[All that Stand Between You and a Successful Project are 500 Experiments|https://prog21.dadgum.com/148.html]]
Apart from that, it seems you're giving your kids a good technical foundation already by teaching them ganoo linux :D Linux, used by the curious mind, is an excellent dojo. It's perfect for programming. Python<<ref "py">> or Lua<<ref "2d">> are a good place to start; either of them branch into some of the cooler areas of programming.
What's your history with programming? You give me the impression of a dabbler, but you mentioned doing html in the past, during the pre-css dark ages, which piques my interest. I love the idea that everyone could learn a little tweaking and skidding. I wish the 80s trend of ROM BASIC or similar had continued, lol, or that the dream of //everyone// learning to program had come true.
<<<
I recognize the weirder we are and the fewer shared points of reference we have, the less likely it will be for me to form an accurate representation of any depth of you. You come screaming off the screen for me though. It's hilarious, lovely, and I think you are working at a brutally fast pace. Broad strokes with still plenty of fine details if you ask me.
<<<
And that's the purpose of the wiki... It's my brain dump, my personality backup, an attempt to answer the question "just who is this [[chameleon]] chick, anyway?" I think I share this with you to some degree, no? You talk a lot about 4DID and stuff, and conceptualize your wiki as a computer (one of your monsters) which is a lovely analogy<<footnote "lop" "and takes us back round to ol' loper again, doesn't it? :>">>. That's what makes us public self modelers!
I'm falling in love with TiddlyWiki on so many levels. It's such a great tool. I'm loving my ability to categorize things, and my organization of my thoughts seems to improve all the time. More and more I'm making stuff wiki-native, or porting old things. It's rad as heck!
<<<
I share different things in common with the people I speak with over my wiki. I feel a strong kinship with you. We are outcasts in some respects, outcasts who have found others who share our interests.
<<<
I agree. I've known you were a kindred spirit for a while; I think even when I first looked upon your wiki I was like "huh, maybe this is the sort of thing I should be doing." I was too shy to get into real contact with you until you wrote the [[first letter|2019.07.16 - chameleon: I'm Sorry]] though [[=w=.]] Let us build a lasting and strong friendship!
Honestly, I wonder if it'd be ok for me to shoot you the random shit I stumble across in [[@]] or discord PMs. I often do see things I'd like to show you (though if it comes from kicks, I imagine you already saw it, hehe)<<ref "hn">>.
<<<
Your humor is wonderful (and it is my honor to see a wide range of emotions from you; few are so honest). Multiple times my offspring have asked me why I'm laughing, and I show them something you said.
<<<
I will develop my humor ever further, stranger and more obscure, then ;) I love making people laugh. It's one of my great joys in life. If I was only a little sharper, and better at judging a room and making ''NORMIES'' laugh, I'd've been a comedian.
<<<
If you had it to do differently, what would have done? I say this as a man who has also wasted a lot of his time on his computer throughout his life (I'm not always so sure what was worth it and what wasn't).
<<<
I wish I'd made more and better friendships with people my age. I had opportunities to do so, but at the time I rejected them, and ended up regretting them. Fool that I am. Still, the life path that I took, took me to Konata, and to my hubby, and I guess to you as well? Maybe I'd do it all again - but skipping out on the cringy moments of my youth, lol.
I mentioned briefly my commitment to absurd humor, and posted a Rémi Gaillard quote. I struggle to put this idea into words. I guess it's my personal commitment to making the world a more fun, funnier place. I've been making a tongue-in-cheek [[propaganda page|https://super.seekrit.club/propaganda.html]] over the last couple of years, which is for the kind of silliness I admire and strive for, lol. It's my determination to not be turned into a commodity, to stay unique and [[weird!|The Weird]]
<<<
Well, you are kicking ass. There are precious few people I meet who desire to be radically honest. I think my weirdness is part of why I'm exceptionally compelled to express myself, to pursue radical honesty, and to be myself in a world that otherwise has no interest in allowing it. I assume you've experienced plenty of difficulty being other almost everywhere.
<<<
Ahh, yeah, my otherness is a bit of a speedbump sometimes. Sometimes people enjoy my general silliness and light-hearted attitude, and sometimes they find me frivolous and annoying, haha. As I've grown older I've learned how to control myself in serious situations! I'm terrible to watch movies with, because to me, the movie itself is secondary to the experience of watching it with those I care about, so I love to heckle and make meta-jokes. So, if there's a movie you desperately want to see... watch it //before// asking me to watch it with, lol.
I love reading your wiki for the reasons you mention. I dunno, it's like I have a portal into the way you think about things sometimes. It's different to everything else I've experienced, but it's also, to me, what we should be using the internet for... to be ourselves and to experience the world in a whole new way, I think. Oh but I struggle with words. Senpai, perhaps you can express it better ;) I don't know. I do read just about everything you post (not project ascension, though, because I don't understand it at all (ᗒᗜᗕ)՛̵̖<<ref "mmo">>)
Which, I suppose, brings us into trans-gate. Haha. I've written on my wiki in the last month or so about something I've kept somewhat secret to now: I actually have a personal stake in this - not just defending my beloved [[Nobu]], though that is a large part of it too - because I'm a trans woman too. That's difficult to talk about online, especially considering I've got my waifu attached to this part of me too... I'll be a huge target for a certain website. IDK, I don't like to talk about it, especially not up front, because I worry it makes people put me into a box and not see who I really am. If I just say I'm a woman without qualifying whether I'm trans or cis it really helps. Also stops me from being misgendered, by either "they" or "he". Both bother me but for different reasons.
Now I feel like a filthy liar, even if it was just lying by omission. I hope this doesn't change your perception of me too much to the negative.
<<<
That makes sense. Most of the people that I click with are not neurotypical either. Maybe one day I will have the chance to get to know your hubby and friends as well. I'm lucky to meet people. They aren't usually so lucky to meet me though, lol.
<<<
I hope so! I imagine it may be possible for us to meet in person when I'm in the states. My hubby and I will be living together and traveling together, so that's something :) [[Nobu]] lives in the great lakes area, and most of the [[CLUBBER]]s are on the other side of the pond in the UK.
We can of course talk over wikis ;) Nobu sent me a reply to the letter I wrote her over discord, which was lovely (still need to ask her if it's ok to post it)
<<<
I hear ya. I don't know when it doesn't become more than a kernel either. This is a hard problem for me. I am probably far too pushy about it. I've been writing for a few years now, and it's been interesting to see who actually cares what I think and feel enough to just read. Online friends can be better matches, I realize (your writing is a breath of fresh air for me).
<<<
Thank you! I'm glad someone besides me enjoys reading it. I write partially for myself, but also to have something out there for folks to read, too :) I love your occasional responses and shout-outs. It makes wiki-ing all the more addictive. As I said further up, I read most stuff you post. It's a gaze into a friend's life in a way I'm not used to. It's addictive, and staring into this abyss is bliss. I hope my writing continues to interest you in the same way!
Awww, as I wrote this, I notice you've been looking at [[this is nice mixtape]]. I'm glad //someone// cares about my new hobby of arranging my music in playlists, haha. Code Monkey is such a banger. I should write something about what that playlist is: it's basically me wanting to arrange songs that give me a pleasant/fuzzy feeling, like looking at a picture of [[Konata]] or the hubby. We could probably have really fun convos about music, it's mine and my husband's passion in life. The hubs makes post-vaporwave/post-metal/shoegaze and I'm occasionally featured as a guitarist.
<<<
I am still surprised by the fact that people I've never met offline know and care more about who I am than people have claimed to be friends and family of mine for decades. It becomes difficult for me when people ask me how I'm doing without having even glanced at the wiki; I don't think they really mean it. I try to set the bar really low, but I am sure I have set it ridiculously high. I hope to learn how you reason about it.
<<<
It's really something, isn't it? I wrote in my letter to Nobu that despite us never having met face to face, she means so much to me. To be fair, we did have a lot of voice and video calls back in 2015, and she was also the only human outside of my immediate family I would habitually talk to using my voice back then... that was a difficult year, someday I may write about it, but it hits that sweet spot of painful to write + pathetic to read that means I probably won't until I'm more confident in how things are going, haha.
But yeah, the FTO-family connection comes up again. I don't have a page for it<<footnote "cfi" "though there is [[Cute, fun, interesting, etc.]]">>, unless you count [[People]] and [[Senpai]], but I'm always on the lookout for fellow travelers. It feels sometimes like I've been searching my whole life for these people. I'm really glad the hubby and I made that final real //connection// that got us together. And indeed, I'm glad you read the ramblings of this very silly [[chameleon]] c:
<<<
I'm hoping you do contact Sphygmus (I'm still pondering her absences) and find more people who participate in the development of wikis and personal sites. It's exciting, and I think it's important for the world that we take our ownership of our digital identities.
<<<
It's on the todo list, I think. I occasionally check back, but she doesn't post as often as you do (or me, for that matter). So I'm sitting here waiting most of the time lol :) It does interest me how folks in our mini community differ when it comes to wiki-writing. I've seen some of your FTO pals only use it for journaling, not writing tiddlers except as journal entries, which I can't imagine doing at all, haha.
I'm afraid I'm going to skip a lot of stuff here about tagging, privacy and the likes... this letter is already getting unwieldy, and I really don't have much salient to say at risk of repeating myself. This letter already has repeated points in it, haha. We can always start a new chain or swap some [[@]]s about this if you like.
<<<
I like that you are bringing those social conventions and aesthetic to your wiki. I've visited many chan sites and anonymous forums, but I've not participated with much consistency on any. Lurking on 4chan, in particular, has been an important part of my life since 2004. I only visit once in a great while these days to feel it again. I can't say I understand much, but I am lucky to have the chance to reason about and experience it.
<<<
I wonder about your experiences here. Which boards did/do you lurk? I notice you use the /b/ label to identify some of your posts as... idk, low effort? Or more, listish? Shitposty? It has a strange mouthfeel to it.
<<<
We would all be indebted to you for a fuller accounting of the evolution of these communities, your thoughts on them, and how they relate to the rest of the world. I usually find discussions and points of view which lack charity, compassion, and vision about chans. They are too untouchable for us to give any plausible and meaningfully positive accounts without censure.
<<<
My experience with chans is long and rambly and including it here would make this letter longer still, but oh do I have some war stories, lol. I'm not sure I really fit in as a historian, except for the gamergate era maybe? I joined the party fairly late (2007 or so, I think, similar to the timeline of when I got with Konata) but I got in deep for a time. I made friends and enemies, I derailed many threads, got my fair share of (You)s, and got the hell out of there without becoming a reactionary. Some day maybe I'll talk about what I got up to there, the boards I used as a stomping grounds, and the strange dregs of humanity that I met there. For now though, that day is not today. That information will seep through the cracks of my wiki, though. It's actually a fairly large part of who I am now.
<<<
I have strong opinions about what it means to be ourselves online and to use our free speech wisely, especially while we are pseudonymous. The concept of The Other shines brightly in those corridors. Even this wiki exists, in part, because of my experiences with these social media sites.
<<<
Yes, it's interesting to reason about. The anonymity of chans lead to a lot of things, in my experience. The conversation was free of the social climbing and nepotistic atmosphere of forums, but filled instead with negativity and hatred, which without a name attached you could post with little consequence. I think a lot about it. A public self-modeler who predates us, Shii of "everything shii knows", wrote about why he thought anonymity aided discussion. I think some of his points were well made, but others were weak. I have yet to get enough experience in non-anonymous places.
I enjoy your thoughts on this matter a lot. One of the ways you can read the term "senpai" is someone more experienced; so I read your experiences and longer-form ideas with great interest.
<<<
That's kind of you. It is important that you know I am socially retarded; you'll have to help a brother out here and there (which, you are likely already doing here). In all likelihood, you've dealt with my sort plenty on chans.
<<<
I've dealt with plenty that struggled socially, but none that had your moral clarity or were nearly as entertaining to interact with :) Most channers are a very old-school style of geek; the kind that really just wants to be left alone with their interests, and only socializes to stave off loneliness; well, that's how they behave, anywho. I'm sure they conceptualize it differently, but I've honestly been there myself so I think I understand it a little.
I'm not exactly great socially myself. I'm trying to extend kindness and empathy to all my brothers and sisters on spaceship Earth, haha. Sometimes people are confused by kindness, expecting hostility. Me though... I don't know. I know that most of us are going through some shit in this late-capitalist hellhole, so I try to understand my fellow man some. I still don't //like// being put down, but hey.
<<<
It is still a treat to read about your life every day, btw. I know I've not been very talkative (and, yes, you are free to call me out here), so I've not signaled much about your writing. Your migration struggle is very emotional for me. I am also interested in how those who know you reason about your wiki compared to a new friend like me; I have both personal and professional curiosities in that.
<<<
I've found [[Zodai]] (who I've known for about three years) to be mildly interested; he was a heavy reader of Spiritual Computation back when I was still making active posts there. Still, I'm not sure I often stray close enough to waifuism for him to really take interest, haha. At least AFAICT he doesn't check back daily.
The hubs enjoys a lot of my thoughts, but again he doesn't really check back every day. Usually I have to link stuff to him. That's fine by me though; we speak so often he probably would get tired of me if he had to read my wiki too :) Once I'm in America, maybe we'll set up something like you and your family have going. If there's anyone I trust to edit my wiki, it's him.
<<<
Most people do not share much of themselves, and I'm grateful for your generosity. You cover a broad spectrum too. There's some technical thinking, some hilarious insanity, and it's personal. I can't put my finger on the kaleidescope of attitudes required to build wikis like ours, but I think our wikis have a ton in common. I'm lucky to have an affinity with you, and I appreciate that you put up with what many find absurdly dogmatic features of my point of view.
<<<
It's what I've always wanted, haha. It strikes the balance wonderfully between the seriousness of a blog and the frivolousness of social media. When I was posting on Spiritual Computation there was a pressure to make everything something that was worth saying; and when I was on the chans, or twitter, or reddit, or whatever, there was a feeling that more serious posts would be mocked or not heeded. The wiki is exactly as serious as I make it, and that's wonderful. That's why you'll find such a spectrum!
I love reading yours and seeing what you've been up to. You're right that we share some similarities, but we have some differences too. It's as if the same function is being applied to different inputs.
<<<
Let it rip, homie. Shine bright and take no prisoners. You might find it hard to believe, but I think I'm every bit the outcast you are (from what I can tell). Part of my Kanye-tone and sometimes aggressive style (both online and offline when I'm not forced to be subversive) is a result of facing unjustifed outgrouping and persecution. I try to come correct because I know I generally must fight every person I meet in dialectic (despite my hope of avoiding it); in time, most of my best friends are grateful that I wrestle with them. It is extremely rare that I meet someone who won't hate or be disgusted by me when I reveal myself; I'm dialectially polarizing all too often. Empathy with people as weird as we are costs a lot. I seek to listen very carefully because that's what I expect of others in The Golden Rule.
<<<
It's the way of being a philosopher, no? Sometimes you do have to rip out the dialectic. We do share the outsider status; it takes me right back to the Henry Darger reference, our wikis are outsider art!
I can (no offense) see how you might be an outcast yourself. A moral compass so uncompromising, and a radical honesty and non-hypocrisy like yours is anathema to many of us in the late-capitalist hellscape. Not to me though, to me this is a [[Senpai]]-position and it makes me look up to you. More of us could do well to take on some of your better qualities.
I have some polarizing aspects to myself, too, outside of my [[Waifuism]]. I'm wont to scoff at philosophers - especially theologians - who I see as talking shit. And I've failed to convince people of my worldview because I'm more likely to sneer at them than to engage them properly; it's my weakness, a known one, and why I don't do debates, lol.
<<<
If I have my druthers, many bellcurves would shift quite a bit toward the extremes (it's the only way to achieve the golden mean of virtue in our contexts). You will find one of my unsavory positions is that I believe most people are evil to the extent that it would be objectively better that they never existed in the first place. You fill me with hope as an exception.
<<<
I guess I'll thank you for the slight compliment (<3) and respond somewhat to the thought. I feel like you're Diogenes of Sinope, carrying a lantern, searching in vain for an honest man.
It's actually not too far from [[The Last Waifuist]]; I find the ranks of folks that call themselves waifuists but actually get it are perishingly thin. I take the extreme view, that there's no other waifuist but me, that I may be disproved by counter-example. It's a pretty hardcore way of going about things, lol, but I feel it has its benefits.<<ref "os">>
So, maybe we have more in common there than you think ;)
I hope to prove myself not-evil. I'm out here trying to cultivate kindness and honesty. Being a good person is extremely important to me; but as always I struggle with defining what that is. I just try and be the best that I can be, adhere the closest to the virtues as I can. Maybe you can help me here? I don't know.
>I am especially grateful in those circumstances where I benefit, and it is my honor be a useful family member, friend, or Samaritan to those who cannot or would not do the same for me. I'm going to bet that you meet plenty of family who don't directly teach you anything, but you have the chance to learn about The Other even when they aren't trying to teach you anything. We're lucky to learn.
Maybe your concept of the great human conversation is salient here; I think everyone has a seed of humanity inside them, and I learn a lot from just being around other people. It's how I realized the benefit of socialising, back when I was an antisocial channer ;) I love having an insight into others, however small. Part of why I write is out of a celebration of the many many different ways to live one's life, if that makes any sense (probably not). This is probably part of my wiki's mission; to cultivate a little empathy in people, to allow them to get a little slice of who someone else is, even if just for a second. Radical honesty, my man!
<<<
>Radically open is what I'm aiming for now... Especially having realised how bad I am at getting my thoughts out in live discussions (or debates)!
And, it's awesome! =) Your voice should be heard. FWIW, I think you've been honorable, hedged-conversative, open, and thoughtful in your discussions with me. Your substance bleeds off the pages. I hope you drown the world in honesty and commitment.
<<<
Thank you :) This is a new medium for me, and I have to watch myself stumble around, learning how it works, lol. I think I'm doing OK so far. I like it a lot better than a live discussion for complicated topics. It allows me to sieve through my thoughts better, and to formulate my responses with less immediacy. Much much better! Maybe I'll come across as less of an arrogant fool this way; I certainly hope so.
<<<
I think being quiet is quite convenient. I am forced to be quiet and deceptive in many cases, but I aim to bring as much transparency to the process as I can; it is a very hard problem in moral philosophy.
Also, I would be remiss not to point it out, and I know you have seen it too (you read carefully, and I am grateful): we may have some difficulties in sorting out the prescriptions of openness, but I highly value the trait.
<<<
Yes; it's a little difficult for me. I have to strike a balance. I will become a target if I reveal too much; waifuists have found themselves the targets of the unsavory dregs of the internet more than once before. I've no problem with people just pointing and laughing, but if they're going to try to do actual harm to me and my loved ones, that's where I have to draw the line. So if and when you learn more about who I am beyond the wiki, I might have to insist that you keep it to yourself, for the safety of those around me. As you say, we may have some difficulties, but I trust you to be reasonable after all.
<<<
Your awareness of the existence of the disease and your aims to fight such a thing puts you head and shoulders above most humans I meet. Maybe the engineering mindset and quantitative approach is dialectically useful in experiencing and expressing what many think cannot or should not be put into words. You take your Humanity seriously. What more could be asked? I'm especially indebted to your willingness to put your own on the line. Your vulnerability is beautiful.
<<<
It's something I've learned painfully over the course of finding out more about philosophy, reading the works of various philosophers, and reading what people who actually know it say about arrogant compsci slime like me [[=w=.]] I largely defer to the experts in this sort of stuff, but I'm learning, slowly and autodidactically but learning nonetheless. And [[thus|https://www.youtube.com/watch?v=874pHACjBh0]] //tecemos a nossa história//.
Some non-philosopher engineers have posted some genuinely good insights. I don't have the link, but one of the YC types wrote an article about basically why school sucks; it's basically just a prison (shades of Foucault). Hence why I think I might follow in your example and homeschool my kids, should I have them, haha.
<<<
That makes sense to me. There's a lot of good reasons for it, imho. I suppose some people will feel like you've been deceptive through omission otherwise. I think that kind of honesty has been useful for me as well even to just signal from far away that the smelly, arrogant homeless madman is around; it gives them a chance to more actively avoid or ignore me. I think it cuts through the noise. Increasingly embracing my crazy has been invaluable to me.
Do you think anime and even waifu culture will become more common, accepted, or even mainstream?
<<<
Maybe as my generation (the millenials) and my sibling's (the zoomers) start to take things over more in the coming decades. I'm not sure many Gen-X types enjoy anime; though there's enough like, geocities stuff to expect there are or were a few. It's becoming increasingly common for adults to watch animation outside of the juvenile south park/family guy edgy MTV-style stuff, and I even see relatively normal people showing appreciation for like, Evangelion. Not to mention there was a genuinely fantastic anime-style show to recieve mainstream popularity in the last decade: A:TLA. There have even been articles on news websites that are sympathetic towards weirdos like me, lol. So I'm cautiously optimistic that anime in the West will soon break out of the ghetto it's currently in.
>Your husband sounds awesome. I hope to meet him one day.
He's lovely. I'm sure if you and I ever meet irl, he won't be far behind, since he's the only one out of the two of us that can actually drive :^) though I plan to learn once I'm in the states.
<<<
Aye. Virtue Theory describes moral psychology well, but it isn't useful for fleshing out the content of The Moral Law by itself (though there are plenty of anti-realists, skeptics, and egoists who take up an interpretation of virtue theory; Hume is famous for his). You make plenty of moves which assume there is right and wrong (as well as good and bad), but giving an account of metaethics is a hard problem. Saint Kant is a rockstar here. He occupies a special place in the history of Western philosophy, as we are still trying to respond to him. For whatever clarity I might have, I still have few answers. At best, I see how some of the standard historical paths fail.
<<<
I really need to check out that side of the aisle, because (confession time) I did have a pretty big admiration for Max Stirner before. Idk, it's what happens when you see most of the moral realists around you just using it as a bludgeon for their bigoted worldview.
I'll endeavour to read more of this stuff. I am always seeking to develop myself as a moral being.
<<<
It seems like it rots and something different blossoms. It's still as hated as ever. It is rare that I get to meet channers offline, but those have been important experiences for me too. The range in personalities, dispositions, interests, and character are wide; there's more variance in that population.
I did not grow up in a household that had any tolerance for these places and people even though there are many outcasts among us. How has your family come to understand you, chans, waifuism, and what makes you fairly different?
<<<
Yeah, it's really something. I'm not sure exactly what it is that draws people to anonymous imageboards, but the folks from there are as varied as they come. I've met some great and not-so-great folks as part of my adventures on imageboards. I'll write more about it in future, no doubt.
My immediate family either understands that Konata is basically my gf, or that I have a rather deep obsession with her, lol. They know about my [[dakimakura|https://imgur.com/2ZdMwOV]] and don't outcast me for it, which is a step in the right direction fo sho! My sister makes fun of me for being a weeb, but there's an understanding that it's just banter (I make fun of her for being a pretentious ass, since she loves french cinema and studied film, lol) and so it's all in good fun. There's a lot of love there.
In my general family, as in my close friendships, it's pretty rare that folks don't know at least a little about how important Konata is to me. Some tease me about it, but most of them seem to appreciate what it means to me.
<<<
I've had a few pages over the decades, but they were all delicious hot garbage. Just filthy. =). Angelfire and Geocities were what got me into it. It might not have been pretty, but I'm glad to have had the chance. I wish I had been doing it all along and never stopped. It's one of my regrets.
Do you think the public at large will escape the silo sitcheeayshun?
<<<
IKTF! I had pages in the early social media era seperate from the silos which were just trash. I got ashamed of them eventually and stopped updating them. If you found them now (not that you'd know they were me unless you have knowledge of handles I haven't used in over a decade, lol) then I'd be seriously embarrassed!
I don't know about the public at large, but geeks are getting there. It's less and less common for interesting folks to only be on twitter or facebook or whatever. I've discovered the [[tildeverse|https://tildeverse.org]] recently, which seems like a wonderful step in the right direction. You should hop on irc with us (I'm chameleon there too), I'm sure folks there would be interested in your wiki and the stuff we've been chatting about in this letter chain.
<<<
My god, I made you wait forever too. Thank you for your patience. <3. Even my daughter is disappointed in me. Ouch.
<<<
And you've been waiting forever yourself in revenge ;) <3 I imagine before long we'll be composing these messages over the course of several months each. That's fine by me. The slowness (slow thought?) allows them to percolate over time, and we get the potency and strength of like, a stew that's been brewing all day. A bitch's brew, if you will. Haha. Forgive me my silliness.
It's always a treat to read what you write, and I'm never going to begrudge you taking a while to do so. The antici…
…
…
…pation! makes it all the better ;)
<<<
>AAAAAA I FORGOT TO ASK H0P3 ABOUT FICTIONAL CHARACTERS
That is an important topic for us. I wanted to bring this up in this letter. I think most people consider me insane already, and my speaking to fictional characters (particularly in Prompted Introspection) only adds fuel to the fire. I've grown increasingly comfortable speaking with myself, imaginary characters, and even people I can't bidirectionally meet by definition.
<<<
''WARNING: STEMLADY TRYING TO PHILOSOPHIZE APPROACHING!''
I noticed when going through the backlog that you'd written letters to dead people. It's an interesting thought. My theory of [[Dimensions of Personhood]] and even my older theory of [[Waifuism as Interaction]] provide a scaffolding to the tower, or a window into the abyss, of how I think about people. And, I know you described him as "my old enemy", haha, but [[David Chapman]]'s thoughts (especially his dialectic application of Buddhish concepts) have informed my ideas here. I see interaction as the primary vehicle of meaning, that is to say that meaning arises from the subject and the object interacting rather than either in-and-of themselves. A book called [[Closure|https://www.amazon.com/Closure-Story-Everything-Hilary-Lawson/dp/0415136504]] seemed to go into this in more field-appropriate language, but it was rather dense for me, a laywoman, so I didn't read it all the way through nor could I concisely explain it to you.<<ref "un">>
This actually helped me deal with grief and death rather more than I anticipated. When I lost my grandmother, who I was very close to and loved very dearly, processing what happened next was impossible. I never in my life have cried as much as I did at her funeral. When last I saw her I gave her the biggest hug I ever gave anyone. I'm tearing up writing this even, lol. There's so much in this world I want to show her, but I can't. Still, the idea that because of the effect she had on me, and the people around me, that she lives on in some form - not in the physical form of her flesh-and-blood, but in her self-ness, her essence if you will - gave me some comfort. It helps me to move on, knowing that she won't be forgotten, you know? That in a way, she's still with us.
<<<
It's important to me that I understand your relationship with your waifu. I have used this word in my wiki before knowing you:
* [[2019.04.29 - Wiki Review: Connections]]
* [[2019.05.27 - Prompted Introspection: Muh Monster]]
It is likely the case I have used it incorrectly. I do not want to speak out of turn or offend you by failing to understand your point of view. I likely have much to learn from you in thinking about this issue. I also want to know how you reason about experience machines and simulations, including your intuitions and gut feelings.
You need to straight-up tell me when I'm being insensitive or stupid here. It is not my goal to be a dumb brute, but I am all too often. I may not have earned the right to ask yet either.
<<<
Eh, I don't find that offensive. The controversy that has surrounded the word is partially because it has jokey origins (an ~AzuDaioh joke) and is often used in a less-than-serious context, but I don't really mind that. Partially I recognize that I am //extremely// silly, and kind of lean into that; and partially I don't want to abandon an already useful word. But I digress.
re: experience machines and simulations. As much as anything, with our current techniques and equipment, I don't think a computer (in the specific sense of "a machine that can be instructed to carry out sequences of arithmetic or logical operations automatically via computer programming" (wikiped) rather than the more generalized approach occasionally taken on your wiki) can accurately simulate a two-way human experience. It's variously been discussed that a simulation is not a waifu per se but more an aide to the imagination side of things. This includes the Tulpa concept, too.
<<<
…So, in the spirit of my ignorance: How much do you feel your waifu is a being created by someone else (since you are not the origin), and how much (perhaps with each passing year) do you feel your waifu is your own discovery and/or construction? You already reveal some of thoughts on the matter, but I hope to directly ask.
<<<
Yesss. This is one of the most interesting questions in waifuism, and probably a source of a lot of the drama that has lead me to become [[the last one|The Last Waifuist]]. "Feel" is the key word here, because truthfully I don't //know// for sure.
The Konata I love is very much a product of the Lucky Star anime; there's not exactly much that contradicts "canon" about my Konata. But at the same time, a 2d person can't be part of my life for so long without at some level being influenced by me. So to some degree there is a me-ness about her, to some level my own discovery &| construction as you suggest. Remember, the way I interact with her is often, or perhaps usually, through media of my own creation - my stories, and my image gallery - so to some level I can't help but influence the Konata "presented" therein, and thus the Konata that I interact with.
Interaction, we return to, hehe. Yes, Konata and I interact; and through the interaction is meaning wrought, in a dialectic of sorts. Oh, but my words do me injustice here. I can't express it in precise enough terms. I don't know if this is my lack of training, or just the fact that I'm clawing at the edge of my understanding without the tools of philosophy to guide me. Maybe the visual representation you gifted me when I made this wiki public, the chameleon dialectic, is the best way to express what's going on here. That, or I'm as mad and as [[cringe|Lol chameleon]] as they say I am, and you're reading the words of a madwoman. If you understand any of what I've been getting at, I'd surely appreciate a more rigorous outline co-constructed by the two of us.
Or maybe paragraph 3 of this little section was just the ravings of a lunatic, and paragraph 2 was clear enough for you to understand that my short answer is "both, but the degree of balance between the two isn't clear to me" ;)
<<<
I have no idea if I'm a waifuist or not, but I think I have a good deal in common with anyone who takes speaking with fictional characters seriously (perhaps I don't take it seriously enough, and I'm listening). I don't know if it is important if I identify as a waifuist or not. I'm grateful to have the chance to speak with some semblance of these characters. I find it valuable to my life to have fictional interlocutors. Even my wiki is a character I talk with (a flawed mirror Wilson volleyball). To my poor understanding, I don't think I'm a waifuist because I don't love or understand my fictional characters like I do my wife, a SO, or even a close family member.
<<<
Mmm, yeah, that makes sense. I think with being a waifuist you really just know it, especially after meeting others. That's how I felt upon first finding communities dedicated to waifuism. Of course I'd been doing something an awful lot like that for years, so, it wasn't much of a surprise. There should be a law to the effect of "given enough time on the internet, you'll eventually find a community of folx like you" lol.
It's not important if you don't call yourself a waifuist. I don't think you have to be to understand where I'm coming from at least a little.
<<<
I don't think you are a bad ambassador at all. I take it this is the kind of question you've been answering for many years.
<<<
Perhaps this is it... I do answer a lot of questions, both about myself and about those I care about, all the time, and as I've gotten older I've gotten more used to being asked questions and started to pick up some canned answers :D
I jest. What I write to you comes straight from the heart. It's why it takes me a little while to write; I have to, as you say, vomit myself onto the page, and I need a full stomach (full of self-ness) for that!
I think for some people the idea is just too out-there for them to even begin to try to understand it. It's a shame, as those people are closing themselves off from a possible understanding, if not friendship, with people like me. We're definitely very weird, but that's something most of us understand, accept, and even embrace.
And, to be fair, some of us are //filthy weebs!//
---
~~A rule, a divider, an hr, maybe this is a sign that this letter should be split into parts~~
Oh, but as it is in your letter, this last section will be... the last section. I hope. I have more to write still in the middle of this monstrous letter, haha.
<<<
Lol! I'm not creeped out at all, Madame chameleon. I also hope you don't feel like I'm ignoring you! I am reading your writing every day even with my WoW addiction (though I've not been good about checking my protonmail, but I've not yet settled into monster-16). My daughter likes to joke about it playfully. Stalking is a hilarious word here; by this token, we are both stalking each other. While I read every word, I cannot claim I understand (that's okay to some extent). It's a pleasure, and even if it weren't, it's an honor. Also, I know you must be joking (which is wonderful), but I must defend us both here: I don't think you are gross, lol. But, I am glad we get to be filthy interweb luh-hoo-zuh-hers together.
<<<
I'm becoming more confident that it's difficult to shake you off, as eldritch as I am ;) And I've said it before, but I love that you do read my stuff (which I see evidence of, in your little shout-outs). It's a living document, of me, for me, but of others and for others as well. More and more I link people wiki pages to help them reason about something. That's why I had that mini-hyperconversation with [[Zodai]] about 2dl.
I'm ha-ha only serious about being gross, lol. I do think, or rather am aware, that I have some aspects of me that an outsider might see as truly repulsive. Still, you're more and more an //insider,// even if our interactions are spaced across time and (cyber)space. It's joyful to invite you into my little corner of the internet. I hope to treat you like an [[honored guest|Guestright]]<<ref "gr">> :)
>Clearly, this is an opportunity for us to get to know each other. It is so rare that I get to have a glimpse inside someone else's mind or radically honest self-representation.
That's 100% what I'm aiming for! It's both in emulation of my [[Senpai]] and in service of my own commitment to radical openness. Writing my wiki makes me feel close to [[Konata]], it makes me feel like I can understand|tame|subvert my ego. It's a blast. I'm so glad I started it.
>You are too kind to call my writing electrifying, lol. I will do my best to catch lightning in a bottle.
I hang on your every word at times! I just wish I had diffs! I see updates to your longer-running pages like antipleonasm analysis and think, wow, I wonder what changed? You learned something new, I'm guessing, and are reshaping your mission? I have no idea. It inspires me, though. I am left thinking about my own [[Daily Tasks]]. Now that I have a bit more time (n33t lyfe at least until I get my SSN &| green card, lol), I'm thinking I'll have to look into that. I sit here sometimes posting gems, thinking "I hope [[h0p3]] sees this one, I want to read an AA on it", haha. I also like watching your music taste develop (or rather you checking out my garbage music) and thinking about that, haha.
<<<
>The ~KyoAni situation is so fucked. Like. So fucked I can't find words.
I cannot imagine what that must be like for you. I have no point of comparison. I hope you do find more words. It's been an honor having the chance to read your thoughts.
<<<
The world is so full of hate, and I look at this stuff kinda helpless. I wrote [[a little|2019.09.06 - screaming through space on the soul planet]] about how I wished there was more love to go around. Yeah I have a hippy way of talking about it, lol. But I process this shit in my own way, y'know? I'm a western Buddhist, I really can't help but have a little of this stuff slip in, it's how we experience my religion in this cursed part of the world.
Kyoto Animation means so much to the little corner of the internet I inhabit. This has been a really shocking development for us. It's such a horrible event it made it onto mainstream news sources too. It's rare that anything from the anime world gets this attention; what a shame it had to be for such a horrid event. This has been a genuinely rough time all over.
<<<
On top of your separation from your husband and visa process (oy), this hasn't been an easy time for you.
<<<
It's finally coming to an end, at least. I'm really looking forward to being with him at last. I imagine he's going to have trouble getting out of bed the first few weeks because I'm going to be clinging to him so much, haha.
These transitional periods in life come and go, and they can suck to be in at the time, but eventually they do pass. It's not nearly as bad now as it was in the first half of 2016<<ref "16">>, and it's getting better all the time. After getting the visa at long last, it's taken a huge turn for the better, and I think that's what matters. Happiness is something that you have to work for, I think. Maybe you have some more insight on that, but it's certainly something I've experienced in my life.
<<<
I had a hard time finding words for this letter, but it wasn't in pain. I appreciate your giving me so much time and a chance to read about your life, to develop a theory of your mind, and to generate more balance in the information asymmetry between us. As always, it's been a pleasure.
Sincerely,
h0p3
<<<
And it seems those words were carefully considered, because I've had to think hard about, and really wrestle with how I answer. I think I've also overdone it with my own response time :) Just kidding, I've stated up above that that's Good Actually, so there! Really, I worry that I haven't given you enough... "hooks" to reply with. I'm sure you'll be able to work through that, though.
Thank you! As always, it's a pleasure to pester you `^^`
Yours sincerely,
— [[chameleon]]
---
<<footnotes "da" "I haven't spoken about him much on my wiki, but he's a big influence for me.">>
<<footnotes "pr" "The hubby and I have talked about adopting, which we may do in future.">>
<<footnotes "un" "Which brings to mind the old meme about how you only understand something if you can explain it. Oof.">>
<<footnotes "rb" "apart from raspberry blitz. I don't like sour beers at the best of times, but that stuff is just vile. don't even try it. yeuch.">>
<<footnotes "hn" "I fairly often see you reference something I read on HN earlier without telling you about it... how much do we move in the same circles!? I don't really comment anywhere but like, SC though. Lol.">>
<<footnotes "dt" "Us duct-tape programmers are sometimes looked down on by our ivory-tower, theorywanking cousins, but who is it who gets the call at 3am when everything's burning down and it needs to be fixed twenty minutes ago? “you’re not here to write code; you’re here to ship products”, i.e. in programming, the ends always justify the means ;)">>
<<footnotes "lo" "I think this is a callout post for our old friend LoperOS, doomed to wander the programming deserts for all eternity, never knowing his solution is already here, and its name is TiddlyWiki">>
<<footnotes "py" "Python continues to wow me whenever I use it. It's so bloody clever.">>
<<footnotes "2d" "love2d is a good one (gee I [[wonder|Konata]] why I gel with a system called [[love|Waifuism]][[2D]]?)">>
<<footnotes "mmo" "I suck at MMOs, I just can't get into them. The last one I played was runescape back in like... 2008? And even that I wasn't good at. I quit long ago.">>
<<footnotes "gr" "And despite what that tiddler says, I invite you to discuss the contentious with me ;)">>
<<footnotes "16" "at the time, on spirutual computation, I wrote that it was the worst year of my life. I still think it was, haha.">>
<<footnotes "os" "A lot of the old-school will genuinely come out and try to tell you how you feel; that because you collect lewd images, or have relations with [[3D]] people, or because your waifu makes you feel better about yourself, not only are you “not a real waifuist” but you “don't love her”. Bollocks to that. It's you fuckers who are the false waifuists here, using her as a cudgel to make yourself feel superior to other people, rather than cultivating love or trying to understand how other people do it. [[Daft cunts.|https://www.youtube.com/watch?v=mGg6gHV79wM]]">>
//Meta: Reply to [[2019.08.07 - chameleon: Nets 4 Outcasts]]//
fuck it. I'm doing an all-nighter. If only I had some doritos, haha. I'm going to stay up, drink beer, listen to hip-hop, and work on RPG stuff or programming. The night is much more fun than the day.
Also, this way, I can probably be up for the post in the morning (no idea when it'll come, but it'll probably be at some ungodly hour like 9am!!!) and I can probably fix my sleep schedule by just gronking out at 8 or 9 tomoz.
!! todo
* Send off the police report, if you can
* Writing (wiki)
!!! Tomorrow:
* dnd
* podcast
!! todo review
* Put downloads on your phone
** Waiting for the police report to come while listening to cometh!
* Start working on a reply to [[2019.08.07 - chameleon: Nets 4 Outcasts]]
** Well I opened the page, but haven't done any real work on it [[=w=.]]
* New pages?
** Yeah thinking so. But not done yet. Lol.
!! I wish everyone loved??
A lot of things :) I wish folks would love one another. I wish they'd love the wonderful diversity that makes up the human race. I wish they'd love themselves, because too many of my homies have to fight that demon, depression.
Man, I sound like a massive hippy now - as if I don't always, lol - but I guess I do like the Dead and Phish, so that's to be expected. [[Pump it up|https://www.youtube.com/watch?v=qQLBGSUY37Q]] and love all your brothers and sisters on the soul planet!
Finally got my updated police certificate. Should be able to send it to the embassy and put the whole mess behind me real soon now™.
I think I remember them offering a courier service, but alternatively I can go to work and get my contacts to fedex it. That way it'll be guaranteed to arrive and I'll have receipts, lol.
Feeling pretty sanguine about it. Gonna go get some nums to pass the time between now and the lawyer helping me out with sending it.
!! Todo
* feedbag
!! Todo Review
* Send off the police report, if you can
** Can't, but speaking to the lawyer. That, or I'll just have to fedex it on Tuesday
* Writing (wiki)
** In progress ;D
* dnd
** Another fun session, thanks kirbs
* podcast
** cohost got in a car wreck. thankfully he's ok. but he's got a lot of paperwork and stuff to sort, so can't make it :(
!! Which is your favourite Star Wars character (or other movie/book/t.v. show, etc.)? Why?
Han motherfucking Solo, lol. Idk, I have a soft spot for scoundrels in fiction. It helps to be played by one of my favorite actors, too ;)
I saw on cardhouse that the author has some kind of custom RSS feed reader: http://cardhouse.com/2017/2017.htm#20170525
I really loved that design and the effect it produced, so I had a go at making my own. It's called feedbag, and can be found on my [[sourcehut.|https://git.sr.ht/~japanoise/feedbag]]
[[Check out a screenshot!|https://imgur.com/a/l0thy62]]
!! todo
* sort dat folder!
!! todo review
* feedbag
** This project is amazing.
** [[2019.09.07 - Feedbag, a feed reader for the chemically imbalanced]]
!! I wish I looked like?. because??
~~goku, because that would make a great rap~~
I really don't know with this question. I'm p much fine with my current appearance. Maybe I wish I was a little shorter, because I don't like being taller than my hubby that much (he's so cute ''♥'') but that's not a huge issue. Maybe I should lose some weight, but that's ok. I don't mind having a little bit of cushion to the pushin' if I'm as happy as I am now as a consequence.
!! todo
* hair
* tidy up
** you'll get in trouble if you don't
!! todo review
* sort dat folder!
** Done. It's always lovely to have my Kons sorted ''♥''
!! What would you write in a letter you could send back in time to yourself as a teen-ager?
# Don't be a dick. Seriously, be kind to those around you
# People don't hate you for something you can't change, they hate you because of how you present to them. If you're kinder and friendlier, they'll like you
# Keep at the programming. You're going to be really good at it in future
# Quit the lying. You'll only regret it later
# There's nothing wrong with being LGBT
# Listen to your parents. They know what they're doing
# Be nicer to your siblings. They're not as annoying as you think
# Start saving money
!! todo
* UPGRADE
** They've fixed some of the bugs I had issues with. It's fucking time.
* Scan & Send courier receipt
* Work
!! todo review
* hair
** the hairdresser tidied it up nicely. I don't think I'm likely to see her again, so we said our goodbyes. She made me promise to come back some day; I will, if there's anything left to come back to.
* tidy up
** Well, I changed the bed and moved things around a little. Good enough for now, but I'll need to do a //real// tidyup soon.
!! What do you like to do when it is really hot outside?
Tie my hair up, throw the fan on, pop a cold one or a can of soda, and just melt. If I'm home alone or have my privacy, I'll strip my clothes off, too.<<footnote "h" "that's hot">> I often sleep in the buff if it's really hot.
Despite really not enjoying it, I'd rather be too hot than too cold. I'm really bad at dealing with the cold. Many memories of me wrapped up in as many blankets as I can find, with a hot water bottle and two layers of bedclothes, but still shivering, lol. Probably the winters of my youth are a thing of the past as the climate changes, but still, I feel more comfortable dealing with heat.
This leads to my [[Dreams and Subconscious]], too. I sometimes feel all but certain I'll die in the desert. What is it with Europeans and the desert calling to us so?
Today I upgraded my wiki from version 5.1.19 of TiddlyWiki to 5.1.20. Here are my thoughts on the upgrade.
* Process was painless, despite my tweaking to the shadow tiddlers...
* Glad they fixed that dropdown bug. It stunk.
* Syntax highlighting works now! Yay.
* The new color palettes you can choose are lovely. I particularly like the Nord one, a classic palette if there ever was one. Sadly I've already committed to my own rice, hehehe. Maybe if I was to start again, or help someone else set up a wiki.
** I should get [[The Abyssal]] or one of the [[CLUBBER]]S to set up a wiki. Score needs to write shit. His genius is wasted on me.
* New fun with filters, but I suck with filters, so they'll probably just lie around until a plugin makes use of them, lol.
Me DMing: https://www.thebeaverton.com/2019/08/new-indie-board-game-takes-105-hours-to-set-up/
<<<
TORONTO – Tired of playing board games that were over before he had a chance to grow a beard or kill a plant through neglect, indie board game developer Patrick O’Gorman has created a revolutionary new game that not only takes days to play, it also takes days to construct before any playing can begin.
<<<
http://hextml.playest.net
https://www.reddit.com/r/osr/comments/d2bx5c/time_tracking_worksheet/
https://luminescentlich.blogspot.com/2019/09/weirdcrawl-geographical-considerations.html?m=1
* Guava Island film with Rihanna. Gambino. Series called Atlanta
* Carnival Row
!! todo
* Work
** I would say "actually do some work", but you've only got two weeks left and we both know you're not going to really work, lol
* Future campaign ideas - vomit them onto a tiddler
** Past ideas too. Umbrella. This is your realm, Lady [[chameleon]]
!! todo review
* UPGRADE
** Done, see the post: [[2019.09.10 - upgrade thoughts]]
* Scan & Send courier receipt
** Done, now we wait for either the visa to be delivered, or more hoops to jump through (more likely the former, but you never know)
** Feelin' like Josef K.
* Work
** Stretching the definition here
!! What is the biggest risk you have ever taken?
Breaking up with my ex was a massive turning point for me. I remember sitting in the bathroom thinking "holy shit, this is really it isn't it, this is a [[crossroads|https://www.youtube.com/watch?v=28XK3V3ACzc]]." I knew my life was about to change dramatically if I continued down the path I was taking; at the time, I was fairly sure it was the right path. Now I'm definitely convinced I did the right thing. I feel more in-control now.
Dave Arneson's Blackmoor campaign uses a hex map with 10 mile hexes; I adopted a similar scheme for my own map.
At this scale, here are some distances with respect to landmarks and settlements in England:
* The distance between London and Newcastle is 277 miles, 27-28 hexes.
* The distance between London and Canterbury is 60 miles, 6 hexes.
* The distance between Canterbury and Whitstable is 5 miles; less than a hex.
* Faversham and Ashford are within 1-2 hexes
* The Channel is 20 miles (2 hexes) at the Straight of Dover and 150 miles (15 hexes) at its widest
I think that means there'd be at least a village, if not a small town, in //every// habitable hex, and that a country the size of England would be under 200 hexes². Interesting to consider.
My motherfucking VISA JUST GOT ISSUED YES. The hard part is over, now I just have to wait for it to get delivered.
I'll be coming to America in October, barring unforeseen circumstances. This has been a really harrowing process, but it's almost over. I feel like [[Frodo and Sam at the top of Mt Doom|https://www.youtube.com/watch?v=QUAItQmq-LU]], lol. I can't wait to have my hubby in my arms again ''♥''
!! todo
* More work
* Letter
!! todo review
* Work
** was actually pretty productive in the end. Nice
* Future campaign ideas - vomit them onto a tiddler
** [[2019.09.11 - dunjen mæstœr]] has some sketches. More soon.
!! Do you belong/have you belonged to a club or an organization?
The [[seekrit.club|CLUBBER]] ineffectual dork web! Sure, it's more a friendship circle than a club, but that's a technicality.
I was a member of the IET in the early 10s, but not any more.
I went to lots of clubs (or "societies") in university, but those days are behind me now, lol.
''SENPAI YOU HAVE BEEN CALLED OUT''
https://www.youtube.com/watch?v=ZUrTIeAJSho
Just kidding. But it's p funny that other folx feel the same as you about the pure-drug ;)
I love zines. I've thought a lot about printing my own. I calculated that a 12-page zine, booklet style (i.e. duplex printed, saddle stitched), would only require 3 sheets of paper! But then someone comes out with a method to make an 8-page zine from one sheet, single-sided!
* Tutorial: https://www.kickstarter.com/blog/how-do-you-do-a-one-page-zine-this-post-comes-with-a-free-one-pa
* Sample zine (osr roleplaying) with a folding tutorial: https://frothsofdnd.blogspot.com/2019/04/check-out-my-free-osr-zine.html
* Site to make these bois custom to print out: https://pocketmod.com
You could cat these boys together to make something longer, though the paper might protest at that point.
!! todo
* more dnd stuff
** LBBs actually use 6 miles/hex, not 10, so I'll need to tweak the map
** lore, mapping work, etc to continue over the weekend.
* podcast maybe?
** Alex flags it as a maybe.
!! todo review
* More work
** Only a fortnight (short weeks too, so 8 working days!) left!
** It looks like I might struggle for work at first in the states, because I'll need to get a permit or my green card first.
* Letter
** It's coming along. I think h0p3-senpai will enjoy my wordsalad :3
!! What is your favorite song and why?
Way to open [[the rabbithole|Music]] with this one. I have lots and lots (and lots!) of [[Songs]] which are meaningful to me. Not to mention this changes day to day as I pick up new obsessions. Oh my.
Maybe I'd say [[Together in Electric Dreams]] just out of how it scratches so many different itches - 80s sound, waifuish lyrics, melancholy-nostalgic feel, etc. Haha. I have such shit taste.
When I was younger (first or second grade) I liked a song I cannot find anywhere about it being a beautiful day. That one is lost to time afaict.
I've made playlists of various bangers which you can find on my wiki. I'm currently working on [[this is nice mixtape]].
!! todo
same as yesterday, really:
* dnd
* podcast
!! todo review
* more dnd stuff
** On the list for this weekend. Another long weekend, so yay!
** Sadly no [[Game: Savage Asiopos]] today.
* podcast maybe?
** Pinged my dude, let's see if he responds. It's only lunch time so we have a while yet.
!! What would you say if someone told you it was all right to steal from a large department store?
''BE GAY AND DO CRIMES.''
Haha. I've never actually stolen anything in my life. I don't think I'd be swift enough to get away with it, and idk if I can justify it morally to myself. I think I'd feel guilty.
Things I'd like to cop:
* Pretty clothes, so I can stop with my witchy-butch tomboy BS
* Music. I'll just take the entire hip-hop section and every decent heavy metal album I can see
* If I'm stealing anyway, a whole bunch of LEGO. That way I can actually afford it.
* Something tasty for lunch.
** I'm starving IRL rn. I'm gonna get a sammich and some chicken.
*** [[chameleon]] you fat fuck
!! todo
* House rules?
* Maybe write some fiction
** Could try and break 50k in fujo story
!! todo review
* dnd
** Mm, got a nice little side-site up with hyperlinked OD&D.
* podcast
** Alex and I absolutely killed it.
!! If you could spend a day with someone famous, who would it be?
Probably someone only marginally famous, like a jazz musician or youtuber. The former Pat Metheny (so he can teach me to not suck at guitar so much) the latter someone like Big Joel (he seems like a cool guy with fun opinions) and an example of both: Adam Neely (he seems like a cool guy AND he's crazy talented).
Famous people are still people at the end of the day, so I'd want someone who either had something to teach me, or would hold an interesting conversation, or both! Honestly it's more and more seeming like Adam. I'd love to meet him some day.
If this was a musical video I'd play //the lick//... now!
holy moly senpai is being active the last couple of days. Wonder what's going on?
!! todo
* [[Emigration Checklist]]
* [[Campaign Setting]]
* Get that injection
* Maybe force yourself to write with a sprint or sth idk just do some fucking writing already jeeze
!! todo review
* House rules?
** [[OD&D House Rules]]
* Maybe write some fiction
** Not done. Bleh. Really procrastinating on this.
!! What makes your best friend your best friend?
Oh, now I have to gush about [[my hubby|The Abyssal]], don't I~?
He's not only kind and empathetic, he's honest, hard-working, and reliable ♥ I can't imagine spending my life with anyone else.
!! todo
* Buy dem tickets!
** Despite the high price, the direct flight seems like the best option. No fucking around at JFK and no checking in bags twice (america~)
* Work
* Start working on job application stuff
!! todo review
* [[Emigration Checklist]]
** FUN FUN FUN FUN FUN
* [[Campaign Setting]]
** Started, not much yet though
* Get that injection
** On its way. This'll be the last one before America. I'm hype.
* Maybe force yourself to write with a sprint or sth idk just do some fucking writing already jeeze
** Didn't write much, but I did get a hook going for another fujo chapter.
!! What would you do if you found a magic wand?
Ahhh, this reminds me of a cute story of babby [[chameleon]], hehe. I got a magic wand as a toy and was confused that it didn't actually do magic. Lol.
I'd uh, magic my visa into becoming a green card maybe? ;) Would skip me forward a few months =w=.
Oh, I'd give myself a bunch of money for dat rent, lmao.
I always like getting involved in these small programmer communities :)
* http://ctrl-c.club/~chameleon
* https://super.seekrit.club/twtxt.txt
Yess, I have the visa package at last!!!! What a long and arduous journey<<footnote "ls" "If you count 2015 when I first started thinking about emigrating, it's 4 years! What a long strange trip it's been.">>. Now all that remains is to get on the plane and finally escape. I ain't sticking around for ~BoJo's Bizarre Adventure.
The visa itself is a whole page in my passport. It says "UNITED STATES OF AMERICA" in big letters, and has a ''hideous'' picture of me. I also have an a3 (double a4, which is roughly letter size) package to hand to CBP. Wow!
!! todo
* trello board for pre-emigration stuff
* more work
!! todo review
* Buy dem tickets!
** Blocked on parents =w=.
* Work
** Work's going pretty well?
* Start working on job application stuff
** Trello board, see above
!! Who are your favorite writers?
Does this have to only be fiction writers? Guess not, it's my question as much as yours, void-senpai!
well, in no particular order:
* terry pratchett
* robert jordan
* brad warner
* rebecca sugar
* [[h0p3]]-senpai
* Champan-senpai
* yoshimizu kagami-sensei
* araki-sensei
* lennon/mccartney
* sam totman
* yours truly
non-exhaustive list of things I value in a writer:
* pithy, to-the-point writing
* a great sense of humor
* evocative imagery
* (in fiction) great characters and entertaining story over logical consistency
October 11th - pencil it down. That might well be the date I fly. I just need to make sure I have everything sorted ready to go. If I do, I'll be in the US shortly thereafter!
!! todo
* Work
* Write
* Emigration prep
!! todo review
* trello board for pre-emigration stuff
** not done yet. I think I'm leaving this for the weekend
* more work
** It's progressing
!! If you could build a soundtrack to your life, who would be on it?
Ahhh, now this is my kind of question! My many many [[Songs]] and my mixtapes... almost everything in [[Music]] is on some level a soundtrack to my life.
I remember fondly my third year of university, eating a pear as someone unicycled past me, as ITAOTS played.
[[this is nice mixtape]] is a good starting point :)
Aside from the actual emigration, I should be free for November; maybe I should do a game jam?
https://itch.io/jam/game-off-2019
I've been browsing the whole [[tildeverse|https://tildeverse.org/]] thing, having lots of fun. And ren'ai circulation is playing, which makes it even better. They even have a searx instance, which weirdly gives me nostalgia, perhaps back to my Arch/Gentoo days, haha: https://search.tildeverse.org/
And similarly, we have the [[gopherspace|http://circumlunar.space/]]! And they're going for a new [[gopherlike protocol|https://gopher.floodgap.com/gopher/gw?gopher%3A%2F%2Fzaibatsu.circumlunar.space%2F1%2F~solderpunk%2Fgemini]], too!!
!! todo
* sort out weekend plans
** won't be a lazy, do-nothing kind of weekend, unfortunately
* get some items done on your checklist or he'll have an aneurysm
* grab your snarfs from anubis:
** `scp anubis:~/snarfs.tgz .`
* passthrough: post letter on Monday, if post office not open on Sat
!! todo review
* Work
** yesterday was hella lazy
* Write
** ¯\_(ツ)_/¯
* Emigration prep
** at least I did this. got a trello board now with Da and the boyfe copied in. should be gucci.
!! What rituals do you have or hold?
[[Daily Tasks]] (thanks senpai!) and other wiki stuff, including checking up on [[h0p3]]'s wiki. I used to do meditation and chant [[Mahakala]]'s mantra, but I've fallen out of that habit. Maybe I can do some more serious habit building when I get to America.
I also check discord in my usual stomping grounds, as well as "hacker" "news" and plebbit. gotta keep up on that news. I'm building [[feedbag|2019.09.07 - Feedbag, a feed reader for the chemically imbalanced]] as a way to keep this all localized in one glorious information smash of a feed.
I check for new Chapo episodes a few times a week. gotta get my fix of the dry boys.
On a workday, I sleep the alarm a couple times (I set it early for this exact purpose), then wake up, put some toast on, and while it's cooking, go to the bathroom, lol. At the weekend, I get up much later and grab myself a yoghurt, and eat it in front of either ~YouTube, anime, or Star Trek.
I use my ~YouTube favourites as a giant musical dumping ground. Basically anything I like the sound of goes in there, lol. So when I start work in the morning, it's often the first page open, so I can get the soundtrack to my workday going.
I suck at communication.
That shouldn't be a surprise to anyone. I write on this wiki, I have hyperconversations with folks, but ultimately I feel my weird nature and my social awkwardness/anxiety/ineptness gets in the way of me succeeding at it too much. I have some kind of "oh man, I wish he/she/they liked me" energy going on, but I can never actually get people to talk to me as much as I'd like to.
Especially comes up with my [[Senpai]]s, all of them. I feel like I come across to them as a goofy, kinda annoying fangirl, especially to h0p3 and Nobu.
[[This playlist|https://www.youtube.com/playlist?list=PL_OYt2vqw7orj9HVkHq0Qq6wl-pGKfhQt]] is a banger. I love the motorik beat.
WHERE MY DRUMMERS IN THE HOUSE?!
```
1 & 2 & 3 & 4 &
4 HH x x x x x x x x
- SD - - x - - - x -
4 KD x x - x x x - x
```
* can s/t
* can soundtracks
* https://www.youtube.com/watch?v=9LveD2BFV-4
** fuck it, can full discog + boots lol
* For the Lonely Hearts of the Cosmos - Baikonour
* https://en.wikipedia.org/wiki/Krautrock#Kosmische_Musik
* great bands on the [[motorik playlist|2019.09.20 - motorik]]
* did the Boredoms ever do krautrock again? what was the album after VCN? hmm.
My letter to [[h0p3]] grows longer all the time. It will soon eclipse the one I'm replying to in length, and that's including a giant Kona. I'm starting to worry about structure and readability. Will it overwhelm him? I'm thinking deeply about this now.
Maybe a blank slate... a new letter chain... gah. Maybe if we built a structure to branch our hyperconversation out... I tried out [[Cyberspace Mind-Meld]] with [[Zodai]] and the 2dl folks, and that worked pretty well.
!! todo
* banky stuff
* fun stuff too
* passthrough: post letter on Monday, if post office not open on Sat
** Actually, if I get some stamps, I can do this today by posting it in a postbox. I'll investigate...
!! todo review
* sort out weekend plans
** see above, I guess
* get some items done on your checklist or he'll have an aneurysm
** done
* grab your snarfs from anubis
** done
!! What is your favorite movie of all time?
Pleb answer, but probably the original Star Wars, or the OT as a whole. IDK, it's just an incredibly rewatchable film and series, and I have fond memories of it. I've never understood any of the usual complaints about the OT:
* I don't find Luke particularly whiny in IV
* I like the Ewok scenes in VI
* Some (not all) of the edits are good:
** Palpatine being played by his actual actor in V helps with the continuity (I tend to watch the edited version of that film)
** The deleted scenes with Biggs being restored actually add to the final battle in IV
** The new CG mostly looks OK, except for some of the Tatooine scenes in VI and IV.
So overall, I guess I like these movies the best.
I think I just have a pleb taste in movies in general. I don't like film as a medium - it's too long to enjoy in one sitting, but too short to engage in longer-term development of setting and characters. Both of these problems are solved in a TV/Series setting. Or, indeed, by the MCU, lol. Plus, I don't gel well with artsy stuff unless it has something to draw in philistines like me.
So apparently if you buy a return ticket, the flights to nashville are WAY cheaper than one-way. Like, a grand cheaper. WTF!?
!! todo
* nums and booze
* more emigration stuff
* passthrough: post letter on Monday, if post office not open on Sat
** It has a stamp so I should be able to just drop it off
!! todo review
* banky stuff
** Opened an account, now gotta wait for the paperwork to arrive
* fun stuff too
** :D you know me, chameleon~
!! Once, when you were very frightened, what happened?
Oh boy, the most danger I've ever been in my life!
I was exploring a tor in Devon - for our international friends, that's a big-ass rock in the middle of the moor. I got separated from the rest of the fam, and found myself in a little cave formation. The rocks that entered it were slippery, and I soon realized I was stuck - I couldn't get out without slipping on those rocks and plunging to my inevitable death.
I was genuinely terrified. I tried to call the emergency services - there was no signal because of course there was - and I yelled for help. Eventually my siblings found me and fetched my father. Grounding himself against a more solid rock, he hauled me out of the cave formation and to safety. He gave me a big hug afterwards! I've never been more afraid in my life.
Nice choons [[here|http://echoesofbluemars.org/cryosleep.php]]
!! todo
* emigration stuff
* passthrough: leaving speech
!! todo review
* nums and booze
* //num num num, glug glug glug//
* more emigration stuff
** started packing boxes
* passthrough: post letter on Monday, if post office not open on Sat
** I will post this today
!! Is speech always free? When and where might it not be free?
This question is a minefield that eats friendships and shits flamewars!<<footnote "ttc" "It's a thought-terminating cliché, really">>
I will probably digress a lot more than some people would. I'm an anarchist but that doesn't mean I tolerate hate speech. Talking shit about my minority friends is a good way to earn yourself my ire. If anything, I'm a little jumpy about it, and have snapped at [[h0p3]]-senpai over nothing before... That was of course my mistake and we worked it out :)
Anyways, this question - or rather the sentiment behind it - has been weaponized by the alt-right as of late. If an odious little creature like Milo gets himself rightfully banned from a platform, oh that's "censorship" all of a sudden. I don't buy that shit. It's the old axiom: talk shit, get hit. He deserves [[his misery.|https://www.youtube.com/watch?v=zCeUVpNtRPA]]
The truth is, we've never had absolute free speech and we never will! There's several cases where you can't say whatever you like:
* You can't yell "fire" in a crowded theater
* You can't talk shit about someone (slander) or print shit-talking about someone (libel)
* You can't make credible threats
* You can't plan criminal/terrorist acts
!! todo
* work (DAY 1 OF 4)
** stuck in september :3c
* passthrough: leaving speech
** So long, and thanks for all the pasteis de nata ;)
!! todo review
* emigration stuff
** got me some big ol' bags
!! How do you feel when something scares you? What do you do when this happens?
Depends on the kind of scare. If I'm surprised-scared, I get that adrenaline pump and have to go do something to calm down, haha. If I'm creeped-out-scared, I have to do something to take my mind off it, like watch or listen to something cute. I don't watch scary movies or tv often for this reason, haha. My limit is in the Buffy, Evil Dead type area.
* https://www.write-out-loud.com/farewell-speeches.html
thebook.md
!! todo
* Work (day 2 of 4)
* Bring stuff back to work
*# Keyfob
*# Work lanyard
*# Work laptop (unless you already did)
* passthrough: leaving speech
* forms and stuff for lawyer
!! todo review
I'm going to put this section on hold for a while until I build up a longer todo list. It's getting to the point where I don't actually have too much to take care of, lol. And in any case, all of my todo items are passthrough for now.
!! Why is it important to be honest?
There are many answers to this, both moral and egoistic. I'm not much of a moral figure, and I'm not sure I could persuade you to my moral case without switching to Tibetan, but I can make the egoist case: if you're dishonest, people won't trust you in future, which could lead to problems for all. Think of the classic "boy who cried wolf" morality play - the boy's lying about whether or not there's a wolf leads to his warnings about the presence of an actual wolf to go unheeded, leading to ruin for him and others.
For myself, I'm attempting to cultivate radical honesty on my wiki; only withholding information for the purposes of my personal safety. I was a dirty liar in a past life, and I'm trying to put that behind me.
https://wiki.osdev.org/Babystep1
To me: Import stuff with a recent date of 26th september
* Work (day 2 of 4)
* Bring stuff back to work
*# Keyfob
*#* Will do last day
*# Work lanyard
*#* Done
*# Work laptop (unless you already did)
*#* Nope, done.
* passthrough: leaving speech
** on it
* forms and stuff for lawyer
** Eh. weekend.
* [[Merge|2019.09.26 - merge it]]
!! What is one unanswered question you would like to ask your grandparents? Why?
I wish I'd asked Gramps more about the past. Same for both grandmothers, really. Idk, I feel like the on-the-ground experience slips away, leaving only the propaganda and such. In my country, it's important that people remember what shit was actually like rather than propaganda, lest they repeat the mistakes of the past... though it seems like that's happening now. We can't let go of our imperial past, which is particularly bad.
My maternal grandmother grew up in Argentina; I would've liked to have heard more about that. And I wish I'd taken the opportunity to speak to Gramps in French. I was always too embarrassed.
[[The past fades into memory; memory fades into dreams; into myths, and then to legends.|https://www.youtube.com/watch?v=dFJwxtFfKf0]]
In a daydream a vision came to me. A [[manta ray|https://en.wikipedia.org/wiki/Manta_ray]] swims in front of the sun, [[seen from below|https://www.mindenpictures.com/search/preview/manta-ray-manta-birostris-feeding-on-plankton-in-current-sangalakki-island/0_00135130.html]]. A snippet of Japanese is heard, or maybe it's bahasa (melayu or indonesia, it's unclear). Like a future funk song, a short riff is played, but a motorik beat cuts in, leading us to drum circle bliss. Clean-ish guitars play scattered snippets in no discernible key.
Islandpunk is my vague idea for a post-seapunk genre, crystallized from thoughts of new musical directions I've been thinking about ever since 2015 or so, incorporating elements of the music I've been listening to recently:
* Future funk/vaporwave's obsession with Japan, and with the lost past and forgotten futures
* Krautrock's minimalism and motorik beats
* Modal jazz quartal chords and modal "harmony"
* Noise and polyrhythmic drumming influences from the Boredoms' Vision Creation Newsun (the first Islandpunk album)
** Aesthetic goals, too - an obscured figure facing the blazing sun against a blue, blue sky
* An aesthetic admiration of Pacific islands, sandy beaches, and deep blue ocean
* Primitivist, pro-indigenous, conservationist, environmentalist, etc.
* High-minimialist, even non-sensical or merely rhythmic, vocals
Take a look at some photos of Pacific islands, Mauritius (actually in the Indian ocean, but it still applies to the aesthetic), and images of abyssal ocean depths. Manta rays, turtles, and albatrosses.
* https://pixabay.com/photos/search/ocean/
* https://www.pexels.com/search/ocean/
Aesthetic:
* Board shorts
* Flip-flops or sandals
* Baggy band, skateboarding, etc. t-shirts
* Long, unkempt hair
* Face paint
* scuba/snorkelling gear
Proto-Islandpunk:
* [[Vision Creation Newsun|https://www.youtube.com/watch?v=zdPCt5ZEf40]]
* [[Saint Pepsi - Private Caller|https://www.youtube.com/watch?v=Ki-fATpXa00]]
* [[Lifecoach - Alphawaves|https://www.youtube.com/watch?v=KziiQMMHqKc]]
* [[Fujiya & Miyagi - Knickerbocker|https://www.youtube.com/watch?v=G0E8MWb3hgo]]
* [[NEU! - Hallogallo|https://www.youtube.com/watch?v=zndpi8tNZyQ]]
* [[Ayreon - Beneath the Waves|https://www.youtube.com/watch?v=-ua849eBrrI]]
I'm going to talk to [[The Abyssal]] about making this a Thing. I don't think it would fit our existing projects, but a new one? hmm.
!! todo
* Work (day 4 of 4)
** relax and enjoy your last day :)
* passthrough: forms and stuff for lawyer
** Eh. weekend.
!! todo review
* [[Merge|2019.09.26 - merge it]]
** Painless in the end. [[h0p3]]-senpai hopefully enjoyed a nice long update to my letter yesterday :)
* passthrough: leaving speech
** Today's the day!
* Bring stuff back to work
** Most of my stuff is already here. Bossman will ask me to surrender my keyfob later today, I think.
!! What animal do you identify with most closely?
Haha. Just now I wrote about rays, turtles and albatrosses in [[2019.09.27 - Islandpunk]]. But that's an Islandpunk thing, not a me-thing. For me, it's corvids! Crows, ravens and magpies. I love them. They're clever birds with beautiful dark coats, sociable and mischievous. I relate strongly to a raven's tricks!
I also love hyenas. Yup, I'm the one who watches the Lion King and bitches about the hyenas in that movie, lol. They're dangerous animals, sure, but so are lions and tigers. I relate to them because hey, I'm a big scary woman who smells bad and laughs too loud, too ;)
If I'm going to be using ssh connections more, I best relearn how to use tmux, and rice it a bit to be more (gomacs) friendly. Good config tut here: https://www.unixtutorial.org/tmux-basic-configuration
!! todo
* passthrough: forms and stuff for lawyer
** lazy girl needs to do this now...
* make some music or something fun like that
* pack and shit so your parents don't have an aneurysm
!! What would you do if the surprise party was for you but you weren't surprised?
Be nice and be surprised! haha. That or be happy that someone put the effort in. I like birthday parties.
!! todo
* passthrough: packing
* bank shit
* Tomorrow: [[Journal Review]]!
!! todo review
* passthrough: forms and stuff for lawyer
** Finally done lol
* make some music or something fun like that
** I made some cursed THUMP and an islandpunk demo
* pack and shit so your parents don't have an aneurysm
** :3c
!! How do you feel when you play a trick on someone?
Mostly guilty :) I'm not a very good prankster. I usually hope to do it in (relatively) good faith, and not seriously bother or inconvenience them. I have a little fun on April Fool's, but usually just by doing something small. Good ol' [[PLEASE SAY SIKE|https://mitadmissions.org/wp-content/uploads/2019/03/06909248-9071-45D7-B137-D2E6647D7CF7-800x900.jpeg]] stuff.
```
~
❯ wc -w Downloads/2019.09.06\ -\ h0p3_\ bitches\ brew.tid
10526 Downloads/2019.09.06 - h0p3_ bitches brew.tid
```
No wonder it took so long!
!! todo
* passthrough: packing
!! todo review
* bank shit
** Hey, that didn't go so bad!
* Tomorrow: Journal Review!
** Started...
!! Tell about a characteristic in others you admire?
Empathy. It's pretty core imho. I don't think you can build a coherent morality without some level of empathy for those other than yourself.
https://www.reddit.com/r/ChapoTrapHouse/comments/dbasjw/goose_game_confirmed_chapo_canon/f20m3jg/
<<list-links "[tag[Daily Tasks]!sortan[]] +[prefix[2019.10.]]">>
This month's color: <span style="color: #34b550">#34b550</span>
* going fucking bananas for hip-hop this month
** Still into my precious emo revival and power metal though
* Back to dming soon!
** Normality
** OSR - maze rats, tinyd6 and odnd especially
** Maid RPG
* Moved to the USA, married to the hubs.
* Been cooking bit more, it's good
** Cocktails too, including tiki
* Set up [[Links]] for my various cool pages that I find. Soon™ I will set up a tiny directory like kicksy-kun talks about.
---
<<list-links "[prefix[2019.10]!sortan[]] -[tag[Daily Tasks]]">>
!! todo
* passthrough: packing
!! What is your opinion of people who are inconsiderate of others?
Easy answer, I hate them ;)
Well, I hate bigots, anywho. Merely being a bit rude now and again is mostly harmless, but I can't be doing with bigotry.
!! todo
* passthrough: transportation for geetar
!! todo review
* Packing
** Stuff is all piled up. The shipping company got my deposit and are sending boxes
!! prompt
Tomorrow, do "What is the biggest goal for your life?"
You can find some good shit on soundcloud: https://soundcloud.com/jker666/cant-have-it
Good video from theramintrees. https://www.youtube.com/watch?v=vnSiJOOdo30
!! todo
* passthrough: guitar transportation
!! What is the biggest goal for your life?
Make sense of myself and those around me. Become a good (moral) person, be kind, and live a meaningful life.
I've been working towards this for years, but I don't think I'm anywhere close just quite yet, lol.
All in CM
* chimera: 99*34
* ibanez: 98*32
* ashley: 40*103*11
Holy shit this album is going to be lit. https://www.youtube.com/watch?v=nnq1ApucY4g
a 2-5-1 with a nice passing chord (I believe this is a tritone sub) [[thanks Adam|https://www.youtube.com/watch?v=JXfQsHT5c30]]
Bm7→E7→''A#7''→AM7
I played it for my sister and she said the version with the sub was way better ♥
!! todo
* passthrough: guitar transportation
** I saw some cases for a reasonable price on amazon. I'll order them
!! If TV didn't exist, what would you do with your time?
I actually don't watch that much TV anyways, lol. Let's extend this to "computers" in general.
If I didn't and couldn't have a computer, I'd probably polish up my penwomanship and start writing my stories out longhand. I'd be a scribe or something of the sort (maybe what "a computer" classically referred to: one who computes).
I actually rather enjoy writing this way. I do it a fair amount for oneshots and snippets. The only problem is that I can't digitize it without tedious transcription, or trying my luck at OCR - which doesn't often go well when you have writing as bad as mine!
!! todo
* passthrough: final packing
!! todo review
* passthrough: guitar transportation
** Done!
!! Explain how you chose your career path.
I always liked and was good with computers. My father is also a programmer. I didn't so much choose as fell right into a trap ;)
I did deliberate over doing something else though; in another life, I may have been a linguist.
!! todo
* passthrough: final packing
** The bulk of it was done today. My room is basically empty. End of an era ;w;
!! What is a famous place you have seen or want to see?
I'm not one for tourist traps tbh. And even then, the only capital outside of my home country that I've been to is Helsinki, Finland, lol.
Still, I've only been to Europe, North America, and North Africa, so I'd like to see more of the world. A whistle-stop tour of Oceania, an extended stay in Japan, maybe even see the sights in China! Many things beckon out to me. Of course, I'm also interested in the deceleration of climate change, and my residential status is going to be a little shaky for a few years, so I'll mostly be doing staycations for the foreseeable future.
!! todo
* passthrough: [[2019.10.07 - Final todo]]
!! What living person do you most admire?
Difficult question, honestly. I sometimes say "dad" to questions like this. I've always admired him. He's great and a good role model for me. I also think an awful lot about my hubby. I couldn't really give you a definitive answer.
Looks interesting. Definitely has [[seekrit.club|CLUBBER]] energy. https://collapseos.org/
* Travel insurance
* Sort out my documents
* student loan
* Finish packing
** Inc. filling in forms
* Check on box documentation
* Get some $$$
** Put money on my Monzo card
* socks ;)
I don't much like the idea of possibly going through immigration with a bunch of tabs open on my phone, so I'm dumping them here before I wipe my browser history.
* politics
** https://demandutopia.net/
* gaming
** https://9and30kingdoms.blogspot.com/p/lmgm.html?m=1
** https://diyanddragons.blogspot.com/2019/03/who-is-glogosphere.html?m=1
** https://en.wikipedia.org/wiki/Skyrealms_of_Jorune - Dad used to play this or wanted to buy the books. Cool setting. STEAL
** https://github.com/Interkarma/daggerfall-unity/blob/master/README.md
** https://www.filfre.net/2012/06/time-zone-tackling-the-monster/
** [[Pokemon Prism Guide|https://docs.google.com/document/d/1mjcl5ugWFL5cK1wsIwl0wAhyq_CaaGcuGk10c9Od2og/mobilebasic]]
** https://goblinshenchman.wordpress.com/2019/09/03/simple-combat-morale-tracker-a-simple-hex-flower-morale-tracker-ai/
** https://www.reddit.com/r/osr/comments/cydqhr/prints_of_lbb/
** https://aiweirdness.com/post/187645450357/dungeon-crawling-or-lucid-dreaming
*** Computer game AI is much better than the "rational"ist conception of the AI god
* programming
** [[Some kind of cool terminal interface in Golang|https://wtfutil.com/]]
** https://github.com/area9innovation/flow9
** https://github.com/sdg-mit/gitless
** http://8bitworkshop.com/
** https://github.com/vygr/ChrysaLisp/blob/master/README.md
** https://github.com/TheBerkin/rant/blob/master/README.md
** https://github.com/ssloy/tinyraycaster
** https://ftfy.readthedocs.io/en/latest/
** https://www.masswerk.at/products.php - cool projects and stuff
** https://github.com/tboox/tbox/blob/master/README.md
** https://github.com/OrgTangle/Worgle/blob/master/README.org
** https://www.redblobgames.com/grids/hexagons/
** http://libmill.org/index.html
** https://github.com/sharkdp/fd/blob/master/README.md
** http://forthworks.com/retro/book.html
** [[Let's build a web server - on forking|https://ruslanspivak.com/lsbaws-part3/]]
** http://troypress.com/basic-microgames-in-24-lines/
*** https://lowresnx.inutilis.com/
** https://github.com/globalcitizen/taoup/blob/master/README.md
** https://gustedt.wordpress.com/2010/11/18/p99-is-released/
** https://news.ycombinator.com/item?id=21021396
* web
** https://www.leanternet.com/
** https://carrd.co/
** https://1mb.site/
** https://nostalgic-css.github.io/NES.css/
** https://github.com/jjkaufman/wiv.js
** http://prosemirror.net/
** https://github.com/gildas-lormeau/SingleFile
* Manga
** [[In praise of the tomboy|https://mangarock.com/collection/mrs-collection-100075920]]
** [[Childhood friends actually winning|https://mangarock.com/collection/mrs-collection-100375687]]
** [[Love stories|https://mangarock.com/collection/mrs-collection-100382793]]
** [[Gyaru girls!!!!!|https://mangarock.com/collection/mrs-collection-100129142]]
** [[I think this is my progress on tonari no kaibutsu-kun|https://mangarock.com/manga/mrs-serie-255213/chapter/mrs-chapter-255222]]
* misc
** https://www.barnesandnoble.com/blog/sci-fi-fantasy/7-works-of-trans-positive-science-fiction-fantasy/
** https://www.kopimi.com/kopimi/
** https://qz.com/quartzy/1466818/the-existentialists-reluctant-guide-to-life/
** https://www.amazon.com/Ed-Mastery-Standard-Unix-Editor-ebook/dp/B07BVBSDNZ
** [[GD recs spreadsheet|https://docs.google.com/spreadsheets/d/1wrs0GSioWbXipJuHgWo5__ORX8pF6klekKgv5YAf-Yk/htmlview]]
*** By year and everything. fucking radical
** https://input.fontbureau.com/info/
** [[Dirty 30s - a setting guide for pre-WW2 America|https://www.paper-dragon.com/1939/deco.html]]
** [[Ask HN: What are some niche communities you enjoy?|https://news.ycombinator.com/item?id=17690852&p=2]]
*** Some pleb said r/waifuism, kek
** https://www.quantamagazine.org/galaxy-simulations-offer-a-new-solution-to-the-fermi-paradox-20190307/
** https://gizmodo.com/rss-is-better-than-twitter-1833624929
** https://github.com/longnow
** https://getpolarized.io/
** https://www.allbirds.co.uk/ - comfy shoes? :3
** http://www.participatorymuseum.org/chapter1/ - related to wiki stuff?
** https://github.com/davatorium/rofi/blob/next/README.md - dmenu alternative?
** https://pagedout.institute/ - new zine
** https://jborichevskiy.com/posts/journaling/
** https://www.seriouseats.com/recipes/2009/10/perfect-boiled-eggs-recipe.html
** https://www.nytimes.com/2019/02/02/opinion/sunday/children-bored.html parenting stuff?
** http://m.nautil.us/blog/most-of-the-mind-cant-tell-fact-from-fiction
man this shit is good https://www.youtube.com/watch?v=jOEa347bxVM
!! todo
* passthrough: [[2019.10.07 - Final todo]]
!! todo review
* Sort out my documents
** Done, with help from the 'rents.
* Finish packing
** Dad and I need to reflow some stuff, but otherwise done.
* Check on box documentation
** Done, one box marked up as example
* socks
** Done. lol.
* Get some $$$
** Need to go into town or something
!! How do you think eating junk food affects you?
Haha. I eat so much trash. It's made me a little chubby. I have a bit of a tummy going on, and it's a lot easier for me to puff myself out now. I'm probably at a peak though; I enjoy cooking, so it'll be a lot more healthy homecooking in future when my stuff is more in order.
[[Senpai]] spits the red pills over Discord:
```
chameleon Today at 1:00 AM
Irrigators channel waters;
fletchers straighten arrows;
carpenters shape wood;
the wise master themselves.
Buddha quote for public self modelling?
h0p3 Today at 3:13 PM
It's beautiful. I like that it picks out the difference between mere virtue of the practice and practices universally worth our time.
There are sections of Plato and Aristotle which say the same in trying to flesh out how the pursuit of wisdom is a different from the other arts or mathematics.
Stoicism seems to be concerned with mastering ourselves in virtue of having mastered what it is that we can even master about ourselves.
One thing I'm interested in is a kind of Hegelian (though many talk about it) understanding of how our identities extend into the world (e.g. [[monster-16]] is sublationally part of my identity), and so the quote takes on its fuller meaning in recognizing that mastering ourselves is also part of mastering our extension into the world.
One of my problems with the quote is this though: someone can be an evil master of themselves.
chameleon Today at 3:21 PM
an evil genius?
h0p3 Today at 3:23 PM
I'm not claiming you have to be a genius, though a genius can. What it means to master oneself might be something which scales with our capacity to do so, particularly if you take who we are, essentially, to be the sum or emergences or dispositions of the choices which were up to us.
(bringing us back to the stoic problem in a way)
The wise and the unwise can possibly master themselves. I agree the wise always master themselves though.
chameleon Today at 3:24 PM
feel like I got a free antipleonism analysis here, thanks! lots to think about
mind if I cop this for my wiki?
h0p3 Today at 3:25 PM
It's going into mine too! Of course, lol. ☺
```
I've cannibalized the drives. Posting this from my lappy. We'll miss you, mahakala!!!
!! todo
* passthrough: [[2019.10.07 - Final todo]]. Remaining:
** Money.
* Pack my hold & carry on luggage
!! todo review
* Student loan. I need my CRN which should be on any letters from them
** done
* Travel insurance
** Done, files on my laptop and in my email
* Packing
** Done, just have to wait for them to pick it up
!! Can you picture yourself in the shoes of any of the protagonists?
Hmm, sometimes. I don't think I have much in common with any of the ~JoJos, but I definitely see myself in Konata, [[Reimu|https://en.touhouwiki.net/wiki/Reimu_Hakurei]], and [[Kazuma|https://konosuba.fandom.com/wiki/Satou_Kazuma]]. Maybe Mat Cauthon, though he's like, a secondary protagonist, lol. I don't see myself as the heroic or tragic type. I'm a trickster, a rogue, and a gambler. Reading about me would be like reading a story about a female Han Solo, haha.
On a tangential note, Donald Glover was a radass Lando in that Solo movie. He was probably the best part of the whole thing. I love him.
So yeah, don't expect me to sacrifice myself in a blaze of glory to defeat the Dragonlord… but if he's the gambling type, I might just be your girl :)
[[An old classic from the seekrit.club archives :@)|https://cdn.discordapp.com/attachments/303510944363839489/351506338116796416/installemacs.png]]
!! todo
* Shower, you stinky [[lizard|chameleon]]!
* Final items
** Return duplicate guitar case
** Paperwork for customs
** Ultimate packing
* tomorrow: fly to America!
** I won't update my wiki until quite late, if at all, because of the flight & jetlag, lol.
!! todo review
* passthrough: 2019.10.07 - Final todo. Remaining:
** Money.
*** Got 4 benjamins
* Pack my hold & carry on luggage
** Just gotta pack the Switch, laptop and pills
!! In your mind, what will the world be like in 50 years?
Read [[Desert|http://theanarchistlibrary.org/library/anonymous-desert]], lol. Large swathes of the world will be inhospitable, either through desertification, flooding, or ecosystem collapse. Oil will be rare and expensive, if available at all. Polite society will be a distant memory. Maybe if there's any programmers left, we'll be running [[collapseos.|2019.10.07 - collapse os]]
As for me, I'll be trying to build a [[Miyazaki Patchwork]] and keeping as many humans safe as I can. 生存戦略しましょうか
Wifi at the airport! Quick update :)
!! todo
* FLY MY CHICKENS. FLYYYYYYYYYYYYYY
!! todo review
* Shower, you stinky lizard!
** Showered! but I'll probably smell anyways after my flight.
* Final items
** All done! Focusing on flying now
!! Who is your all-time favorite sports player?
Do racing drivers count? Michael Schumacher. I haven't followed formula 1 religiously for some time, but when I was growing up he was the man. He was ruthless in his drive to win. It was inspiring.
Today we had the [[UTBMD|Universal Tomato-based Meat Dish]] with penne, and [[banana milkshake|Banana Milkshake]] for dessert. I don't think the main came out too well, because I didn't simmer it enough. But it was still very tasty, and the hubs liked it, so that's OK.
I've been gone the last couple of days, oof! I always end up breaking my habits when I fly across the atlantic =w=. Well, I'm back now. Hopefully I can keep wiki-ing.
!! todo
* Finish unpacking
* New RCA cables
* Cook something nice for the hubs <3
!! How is your life different now from just a year ago?
An appropriate question if there ever was one ;) thanks RNGesus.
I've left my country to live in the States with [[my hubby|The Abyssal]], which has been an incredible journey in and of itself! I don't have a job right now, and that sure contrasts to the 9-5 mon-fri life of last year… And I've broken down Mahakala, so I'm back on my old faithful laptop for now [[=w=.]]
Life seems simpler now, tbh. I rather like it. I will probably get a little homesickness... but not yet. Right now, I'm very very happy :)
* Chopping board
* Ice cream
** Chocolate
** Blue raspberry?
* Sodas
* Frozen pizza maybe
* Flew safely across to the states
* Passed customs & immigration with only a slight (half hour) setback ;)
* Moved in to my new home, it's lovely!!
* Had a massive shopping trip and got everything sorted
* Fixed the record player
** RCA cable snapped off and left a chunk of metal in the output. I removed the casing, then pushed it out. All fixed.
I should really get back into this scene! https://www.youtube.com/watch?v=o8OqN0OLZcE
* Holds: The city overhaul
** It always bothered me how small cities are in rpgs, especially immersive ones like TES. Hopefully this fixes it
* Maelstrom (a quest mod)
** Lizard girl follower, count me in~
* [[Skygerfall|https://www.nexusmods.com/skyrimspecialedition/mods/29416]]
** Hopefully it works better than morroblivion did back in the day
!! todo
* pick up the kittens & chill with the inlaws
* shopping list (see monospace on your phone)
!! todo review
* Finish unpacking
** Done, cases are in the closet
* New RCA cables
** Done! The hifi system sounds awesome!
* Cook something nice for the hubs <3
** [[Done!|2019.10.13 - Dinner]]
!! What is something that makes you melancholy?
life in general. haha.
Nah, I really enjoy melancholy music, and listen to that kind of stuff a lot. I also enjoy ambivalent and melancholy film and anime. The feeling of melancholy is more pleasant than abject misery, so it's worth cultivating in a birth-of-tragedy kind of way :)
!! todo
* Marriage license stuff
* Load up Monzo card
!! todo review
* pick up the kittens & chill with the inlaws
** Done. Two lovely cats richer ''♥''
* shopping list (see monospace on your phone)
** Done. the hubs has me wrapped around his finger, making me buy him Fire Emblem
!! If you were to die tomorrow, what would you want your last words to be?
"Konata!"
Haha. Last words are really something. I have a morbid fascination with the last words of death row inmates.
* "I’d rather be fishing"
* "Let's rock and roll!"
* "I am ready for the final blessing."
* “I’m no more a witch than you are a wizard, and if you take away my life God will give you blood to drink.”
Now this... this is the type of rpg I want to play.
http://www.1km1kt.net/rpg/normality
best played in a spooky tunnel with only an oil lantern for light source. the gm cut herself before play, and the players are all drunk/coked off their tits. punk as fuck
https://www.bbc.com/news/technology-50073102
`*monotone*` What a surprise.
!! todo
* Go to home depot to get a new lightbulb
* Passthrough: call clerk at 10am monday re: marriage.
!! todo review
* Marriage license stuff
** Ezpz! Now we just need to actually get married (calling on monday)
* Load up Monzo card
** In progress `*grimace*`
!! What musical instrument(s) do you play or wish you could play?
I play the guitar; I've been learning for the last four or five years. It's a great instrument, versatile and fun to play (solo guitarists/singer-songwriters demonstrate that much!) but I'm not as good as I wish I could be.
!! todo
* marriage intake forms
* Passthrough: call clerk at 10am monday re: marriage.
!! todo review
* Go to home depot to get a new lightbulb
** Done! How many public self modelers does it take to change a lightbulb?
!! Why do you think the rules you must follow are good or bad?
I still struggle with morality. I am closer to an anti-realist than [[h0p3]]-senpai, since I don't think morality has much a ground to stand on ~objectively~. Still, there's some things I can agree to being moral absolutes. I have some of my own axioms, too.
In general, to act moral, I follow my own principles, and aim to behave in a virtuous way. I don't know upon what foundation the virtues rest; and to my mind, it's not important. All I know is, I will follow them.
Some of the rules are mutually beneficial to survival, whether or not there's a moral case - thou shalt not kill is a pretty good rule to follow, or you'll invite the cycle of revenge upon your community.
I will never follow the rules of the so-called "waifu" "communities". I am [[the last and only waifuist,|The Last Waifuist]] and answer only to myself.
found this while stalking around [[jessamyn's website|http://www.jessamyn.com/journal/01/20/index.html]]: [[https://web.archive.org/web/20000823035437/http://www.misterridiculous.com/diy/index.html]]
Looks pretty rad.
!! todo
* Passthrough: marriage intake forms
* Passthrough: call clerk at 10am monday re: marriage.
!! What is your idea of a dull evening?
When my creative juices dry up and I can't do the things I want to! That is to say, when I can't wiki, write, program, or otherwise do creative things. It sucks!
!! todo
* Weigh yourself (oof)
* Passthrough: marriage intake forms
* Passthrough: call clerk at 10am monday re: marriage.
!! If you saw an alien, what would you do?
Give them the ol' star trek Spock sign and tell them it means peace among worlds =w=. Make friends. Travel around the galaxy, drawing dicks in crops and on moons. Discuss alien philosophy and morality. It'd be a rad time.
¡ƃuıdʎʇ uɐıןɐɹʇsn∀ ʎɯ ʇno ʞɔǝɥϽ
https://yaytext.com/
<<<
Inane comment lol, but I'm loving how your letter to DOR is developing. And I thought I had to wait a while...
<<<
This is not inane to me at all! Lol. I'm grateful that you are thinking about it with me, and I'm sorry that it means my eventual [[letter-response|2019.09.30 - chameleon:]] to you is just sitting there in queue. While I do my best not to hold anyone to the standard I hold myself here (especially because my context is different), I'm anxious about the fact that I just leave people hanging there. Like a sister to me, [[Sphygmus]] likely has endured the longest wait of anyone, but she has repeatedly given me her blessing to respond whenever I can.<<ref "t">> Also, just in case you've not seen it, she's [[talking with you|https://sphygm.us/#%40chameleon]]! [[FTO]] letterwriting becomes more difficult when I'm speaking with multiple people over my wiki. Even though I'm bad at it, it is a joyous practice for me.
I take forever on some letters! My wiki is slow, a giant grindstone sometimes. Like you, [[DeathOfRobinhood]]<<ref "d">> has been beyond patient with me. He has also sent me into a very expensive deepthink in the desert. I owe this man more than I am able to explain off-the-cuff. I'm convinced [[he's a morally virtuous human|https://wiki.waifu.haus/#Cute%2C%20fun%2C%20interesting%2C%20etc.]]. I'm a monster in disagreement at this level, and yet his moves in the dialectic have demonstrated profound integrity with me thus far.<<ref "i">> Even in fundamental disagreement, I hold him in extremely high regard. I could, of course, be wrong. I have been wrong many times, especially about people: I'm not skilled in understanding [[others]].
<<<
Hope life finds you well. I'm really enjoying being with the hubs. We're going to have our basic ceremony next week.
<<<
Congratulations, I'm so happy for you! You've been setting up home, acquiring [[kitty kats|Kitty Kat Korner]] (I'd love to know more about them), and running around getting all your paperwork set. I hope your in-laws are as awesome as your hubby. Moving is no joke, especially across nations. I am surprised to see you have the energy to write in your wiki at all. I know I've not been saying anything (sorry, I'm a shit signaler), but I have been reading and thinking.
My wife and I had a basic ceremony too! We had three other people there. Makes good sense to me. I doubt you have room for any more, and it's ridiculously rude to invite oneself over, but if you wanted a madman to join you,<<ref "w">> I would do my best to travel to celebrate your wedding with yall.<<ref "v">> In any case, I hope you have an excellent ceremony!
---
<<footnotes "d" "Aside disambiguation (which you need not remember): [[DOR]] is one of my axioms.">>
<<footnotes "t" "I do my best to respond real-time with instant messaging, and she reaches me that way as well.">>
<<footnotes "i" "I would argue you would need to nearly stand in my shoes or his to see all the moves he has made with me.">>
<<footnotes "w" "It's no fun talking with a paranoid, lol. Of course, we have not exchanged offline information, but you may have mine at will (and I do not ask you to reciprocate). As I've stated in my [[draft|2019.09.30 - chameleon:]], I'm not going to post your offline information. I recognize, however, you're having to take what may be an unreasonable risk in trusting me here. Pseudo-public-proofs of my integrity (though proofs with the specific individuals in question) in the form of [[REDACTED]], encrypted private content, and [[ITS]] track-erasing can be found throughout [[FTO]].">>
<<footnotes "v" "I think my vehicle would make that trek. I don't have a suit, but I'd dress up as best I can.">>
Turbo Rascal Syntax Error, an IDE for developing on 6502 consoles and micros!
https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/
Pairs nicely with the DASM assembler.
It's a little tricky to get running if you don't have the bleeding edge qt; I suggest downloading [[an offline qt installer|https://www.qt.io/offline-installers]], then editing `trse.sh` to point to the lib and plugin directories.
https://thetrove.net/Magazines/White%20Dwarf/The%20Best%20of%20White%20Dwarf%20-%20Articles%20Vol.%20I%20%281980%29.pdf
!! Should animals be used for medical research?
I actually had to argue this exact point in debate when I was in school... I learned that day about emotionally charged topics.
Personally I don't approve of animal testing for cosmetics or other non-essentials, but life-saving medical research is greatly advanced by testing on animals. I think the lives saved are worth it.
!! five of coins - https://www.tarot.com/tarot/cards/five-of-coins/rider
False promises, seductions, hypocrisy. I need to mind myself in the coming days, perhaps, or those around me. I will aim to do my best.
I've never found the todo list as being a terribly good daily task; half the time I don't really have anything to do, and the rest of the time I have to set up "passthrough" tasks. So, inspired by [[Sphygmus]], I'm going to install that checklist plugin and setup a permanent ToDo page. [[Daily Tasks]] will become mostly a place for prompted introspection.
!! What would you do to entertain your family without spending any money?
Have a little sing-song, play chess or something like that? I don't know. I don't often spend money unless it's eating out or the likes, so I'm tending towards "the usual". But I don't think that's what the question is asking ;)
!! four of coins - https://www.tarot.com/tarot/cards/four-of-coins/rider
Poverty consciousness. I'm holding onto my four coins, afraid to spend them to become more materially secure. Seems pertinent now that the hubs is getting job interviews. We do need to get the money situation sorted. I fear $10/hr will just be switching from hæmorrhaging to bleeding, though. I need to get my work permit sorted and get a job of my own. Only then can we really be secure.
!! How have credit card affected your life?
Cards are useful. I've actually never had a //credit// card; I've used debit cards all my life. It's great to be able to pay pretty much anywhere (except for the stone-age places that still only take cash!); maybe a little too easy, since I'm really bleeding money right now, being unemployed and living with my beloved. I'll need a social security number before I can open an account here in burgerland :(
!! ace of cups - https://www.tarot.com/tarot/cards/ace-of-cups/rider
Still a feminine suit; this is becoming a thing, isn't it!? At least it's not coins again.
Overflowing love and safety. I suppose this is the feeling of being loved, cared for, and - getting married tomorrow!
It seems strange, but pertinent, that I've gotten so much material stuff in [[Daily Tasks]] recently. Perhaps it's just what's been on my mind. Money is troubling.
!! What is the best advice you ever received?
Probably something to the effect of that I shouldn't settle with people I don't love in relationships. Very pertinent to today - I love my husband very very much, and we were married today! I'd've never gotten to this point if I'd stayed with my ex.
!! seven of cups - https://www.tarot.com/tarot/cards/seven-of-cups/rider
cups again...
The power of fantasy and imagination! Maybe this refers to my need to go back to the lands of fantasy in my stories. I haven't done much writing over the last month or so. Good advice for sure!
https://www.youtube.com/watch?v=x_vppOp5vec
Damn it guys =w=.
Today [[The Abyssal]] and I got married, in a simple ceremony at the county clerk's. A family gathering in the new year will follow.
I feel overflowing with happiness.
Since I'm too lazy to slave over the dotted paper rn...
https://donjon.bin.sh/adnd/dungeon/
ADnD seems to be the best I can do for now. No OSR.
Retro games, booze, and cosplay? =w=. https://grandoleexpo.com/
!! Should cellphones be allowed in school?
Yup! So should calculators, desktop computers with internet connections, and bilingual dictionaries! Everything that the child will have access to as an adult. The lie that "you won't always have a calculator in your pocket" has been proven drastically wrong by the rise of smartphones, and with it I think we can start to deconstruct and dismantle the idea that rote learning is anything useful. Children would benefit much more from learning how to approach problems and solve them creatively - it's something those like me had to self-teach, and that many of my former classmates never learned, but that is immensely useful in the real world outside of the prison-industrial complex of the public school system.
Sure, some mental maths is good, but honestly I think by the time kids are ready for trigonometry and algebra, they shouldn't be drilled on it any more. They're not going to get better than that unless they have a rare talent - a "human calculator" level rare talent. In general, I think the idea of mathematics as a subject where you're really good with numbers belongs in the bin, along with the idea of computer science as being really good at microsoft office!
Oh, I could sure go off on one about school, but I think I'll keep it to myself for now. Suffice to say I think [[h0p3]]-senpai is doing the right thing by homeschooling his children, and that should I have kids, I'll do the same!
!! seven of swords - https://www.tarot.com/tarot/cards/seven-of-swords/rider
Ahh, finally, our first masculine suit! The suit of swords, associated with mental intellect and the element of Air.
And here we have a clever thief, [[much like me,|Statting up my friends]] knowing what to take and what to leave. It's mental clarity, harnessing the power of the mind, I believe. Knowing what to do for the next steps. Maybe it refers to my knowledge of what I need to do re: emigration (yes, there's still more to go!) and my lovely hubby re: his job. Fun all around. Let my reason be a sword of clarity in these confusing times!
* [[Notes on paper sizes]]
* [[https://www.npmjs.com/package/md-to-pdf]]
!! makefile
```makefile
%.pdf: %.md
md2pdf --config-file config.json $<
clean:
rm -f *.pdf
```
!! config.json
```json
{
"pdf_options": {
"//" : "Unset format to use US half-letter",
"width": "5.5in",
"height": "8.5in",
"format": "A5",
"margin": "10mm",
"displayHeaderFooter": true,
"headerTemplate": "<style> section {margin: 0 auto; font-family: system-ui; font-size: 11px;} </style>",
"footerTemplate": "<section><span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span></section>"
}
}
```
The only real interaction I've ever had with ~WoW =w=.
https://www.youtube.com/watch?v=km5FAAQLUT8
!! Who is your favorite hero of fiction?
I have so many it'd be impossible to list them. Those that immediately come to mind are the tricky, smart heroes, the type to play a rogue - Matrim Cauthon, Joseph Joestar, Bilbo Baggins, Satou Kazuma, etc - perhaps because I relate to the urge to fight smart, not hard =w=.
!! The Chariot - https://www.tarot.com/tarot/cards/the-chariot/rider
Our first Major Arcana card! Associated with my beloved Jean Pierre Polnareff, haha.
The Chariot is beckoning, ready to take the adventurer (me, in this case) on a journey of change. Notice that on the card itself, it's stationary - ready for the journey ahead. I've had a lot of change and adventure recently, haven't I? But there's more to go still. I'll be hopefully getting a new job soon, too. The adventure continues!
It now occurs to me that [[islandpunk|2019.09.27 - Islandpunk]] is essentially an idea for a high-brow tiki music. What an embarrasing oversight for a booze-hound like yours truly.
Listening to some, it does make me think that islandpunk would eventually be the type of music to sip a [[Painkiller]] or a [[Mai Tai]] to. I even mentioned that it'd have Austronesian languages in it, of which Hawaiian is one - not that I speak a word outside of "aloha", "wahine", or "wiki-wiki", lol.
* https://www.youtube.com/watch?v=-BIR28E3RmI
* https://www.youtube.com/watch?v=i2ErvDl5WjY
* https://www.youtube.com/watch?v=W5vIusRwyTM
Maybe I should learn the lap-steel, or at least buff up on my slide and uke.
!! How do you feel about politicians openly sharing their religious beliefs?
Ranging from "I don't care" to "yikes" via "wow that's cringe". The likes of that lib dem leader who was so transparently not really ok with gay people but tried to hide it<<footnote "tim" "Tim Farron; https://en.wikipedia.org/wiki/Tim_Farron#LGBT_rights">> are fucking pathetic; and the vast majority of bible-bashing politicians are scumbags who support social darwinism-style policies that seem to be in complete diametric opposite to the teachings of their supposed messiah. It's arguably even worse in the East; the likes of the alleged buddhists perverting the dharma to persecute religious minorities, and suchlike.
!! eight of swords - https://www.tarot.com/tarot/cards/eight-of-swords/rider
Another Swords card. I guess I'm lacking in the vigorous energy of Wands right now?
Looks like a test of mental fortitude, or maybe being imprisoned by the mind. Very pertinent to today's introspection; religion can be a mind-prison from which you have to escape `*tips fedora*`. Nonetheless, maybe this refers to the way we can get trapped in negative thought-cycles. Is this happening to me rn? Maybe. I'm very scared about the future. I think I can pull through, though.
!! What is your favorite book and why?
As a child I'd've said the Hobbit. It's a fun, rompy fantasy adventure. I still reread it every few years, lol.
As an adult, I think I'd say Catch-22. It's really really funny. If you haven't read it already, go and do so right the fuck now!
!! two of coins - https://www.tarot.com/tarot/cards/two-of-coins/rider
Back to the feminine suits.
This one suggests my coins, i.e. my material resources, are hanging in the balance - best not rush into things, eh? I'll have to keep them balanced for now.
In some d6-based systems, d20 and d100 tables are replaced with d36 tables; these are rolled for by using base 6 and two dice:
I roll 2d6. One die comes up 4, the other comes up 3. The result is 43.
These are referred to as d66 tables. Now d66 isn't exactly a common die, but it'd be cool to have notation for this sort of thing to differentiate it.
My solution is a new "over" notation, where the dice to be used are seperated by a slash:
d66 is written d6/6 and pronounced "dee six over six". The classic d100 is written d10/10 or d%/10 and pronounced "dee ten over ten" or "dee percent over ten". d666 is written d6/6/6 and pronounced "dee six over six over six".
1 - 3 - 5 but all add11s, strum for a sweet emo sound:
557655 - x44654 - x77997
relax when you play barre chords. thumb like the open position and fret right up to the metal with your index (barre) finger. remember that jimi could fret with his thumb he was so relaxed.
<<<
No pain, no pain.
<<< Joe Satriani
!! What things are better than going to school? Why?
Shooting pool and smoking? lol.
Honestly, gaining experience from the school of 'ard knocks, the uni of real life, can be incredibly valuable. Academics are still incredibly important, though. I would prefer not to have them be done in prisons like school, though.
!! eight of coins - https://www.tarot.com/tarot/cards/eight-of-coins/rider
Hard work pays off. Keep at it and it'll get done. Seems pertinent to my hubs going for his work rn :)
!! Who is your ideal presidential candidate?
Nobody!
* Nobody tells the truth
* Nobody can't be bribed
* Nobody can do what needs to be done
* Nobody knows what's going on
!! the-empress - https://www.tarot.com/tarot/cards/the-empress/rider
Feminity, fertility, kindness? It's my positivity having an influence on those around me, I think. A very positive card to draw. Hopefully my friends feel I'm a positive influence on them :)
I love house rule compilations!
https://www.lastgaspgrimoire.com/the-house-of-rules/
# the republic
# nietzsche (zarastrutha)
# delueze on nietzsche
# the ethic summary spinoza
# deleuze primer on spinoza
# anti-oedipus
# capitalism and schizophrenia
# land (meh) and fisher
#* find the evidence that he's a ws
!! What TV or movie star would you like to invite to your birthday party?
Aya Hirano ;) "Say 'I love you' in Konata's voice, Hirano-sensei!!!"
Just kidding. I remember hearing that there were a lot of movie stars who were actually super cool in real life, like nice to their staff and the likes, but I can't really remember any of them off the top of my head. I'm not really into celebrity culture in general. Maybe Keanu? I hear he's a babe irl.
If this was musicians it'd be a lot easier; I'd want to meet Brian Eno! He turns up basically everywhere. Anything with his name on it is gold, even if [[the inclusion of his name is to talk shit on him!|https://www.youtube.com/watch?v=q5oVN_z-tJM]] He seems like a really interesting guy in general. He allegedly [[pissed in Duchamp's Fountain|https://dangerousminds.net/comments/how_brian_eno_managed_to_piss_in_marcel_duchamp]] which is the most punk rock shit I can think of, lol.
!! the-star - https://www.tarot.com/tarot/cards/the-star/rider
Here we see a naked woman (in touch with nature) drawing water from a body of water and using it to water the earth. It's supposedly a sign of spiritual purity (the woman could be the extreme variety of ascetic who don't even own clothes) and of self-reflection. The stars themselves seem to symbolize the woman (the subject) reconnecting and focusing on spiritual pursuits. Am I perhaps being lax in my own spirituality?
!! If you were elected President, what do you think would be your most difficult tasks?
Hanging the bougies, purging the tankies, and abdicating? Idk, many different things.
I'm not really into this question, tbh. I got nothing but shit when I tried to get a prompt today.
!! six of cups - https://www.tarot.com/tarot/cards/six-of-cups/rider
childhood, and the past. The wisdom of the past, or maybe the wisdom of babes? Eye on the past and on what it can teach us about the future.
<<list-links "[prefix[2019.11]!sortan[]] +[tag[Daily Tasks]]">>
* very d&d-ish month, and a lot of normality too.
** Delta green looks cool
* I'm definitely a romantic, an emo, and a newly-sincere :)
* Moving away from the traditional conception of "the left", exactly as Gillis probably predicted I would back when we spoke on shitter.
* I like meidos
* Very much a less exciting month musically. Mostly sticking with my precious midwest emo revival.
** I did discover the Reivers though, and that's interesting. I never thought I'd hear something that actually sounded like the Smiths, lol, most Smiths-influenced shit is heavier or has more influence from elsewhere.
---
<<list-links "[prefix[2019.11]!sortan[]] -[tag[Daily Tasks]]">>
!! Remember the last time you spoke to a person who later died.
Probably granny at the end of last year. I miss her every day. There's so much I want to tell her that I can't.
!! the-magician - https://www.tarot.com/tarot/cards/the-magician/rider
AS ABOVE SO BELOW
I think this is inner creativity and spiritual power. Maybe a blessing for the month ahead!
https://en.wikipedia.org/wiki/New_Sincerity
At the same time both aware of the silliness of the thing, but utterly serious about the thing. I think it's core to the wiki. //Das ist manifesto.// [[Dare to be stupid!|https://www.youtube.com/watch?v=SMhwddNQSWQ]] Enjoy your emo and your slowcore, belt out your [[dancefloor anthems|https://www.youtube.com/watch?v=-I5yuE0zFzc]], grow out your fucking hair!
<<<
What is The New Sincerity? Think of it as irony and sincerity combined like Voltron, to form a new movement of astonishing power. Or think of it as the absence of irony and sincerity, where less is (obviously) more. If those strain the brain, just think of Evel Knievel. Let's be frank. There's no way to appreciate Evel Knievel literally. Evel is the kind of man who defies even fiction, because the reality is too over the top. Here is a man in a red-white-and-blue leather jumpsuit, driving some kind of rocket car. A man who achieved fame and fortune jumping over things. Here is a real man who feels at home as Spidey on the cover of a comic book. Simply put, Evel Knievel boggles the mind. But by the same token, he isn't to be taken ironically, either. The fact of the matter is that Evel is, in a word, awesome. ... Our greeting: a double thumbs-up. Our credo: "Be More Awesome". Our lifestyle: "Maximum Fun". Throw caution to the wind, friend, and live The New Sincerity.
<<<
!! I wish I could give......
More of a shit about this terrible prompt `badumtsh`
Nah. I wish I could give my lost friends and family a hug. I wish I could talk to them again. It's sad.
!! king of wands - https://www.tarot.com/tarot/cards/king-of-wands/rider
the king of "wands" :lenny: let's hope he keeps it in his pants.
This is a leader, coursing with the energy of wands. He wants to be out there, getting shit done. That's me right now, perhaps, as I'm in a new country and having new adventures. I'm going to be DMing today, too, so I'm going to have to take care of a bunch of unruly adventurers ;) I can't wait.
!! How do you feel on the first day of winter? Why?
Fucking depressed, like [["BITCH GET OUT MY FACE MIGHT JUST BLOW MY BRAINS"|https://www.youtube.com/watch?v=ZDHbfOdOlYk]] level [[i-hate-myself|https://www.youtube.com/watch?v=vHWhGJxnZpU]]<<footnote "kh" "KA-ME-HA-ME-HAAAAAAAAAAAAAAAAAAA!!!">>. I fucking hate winter. The days are too short, everything's fucking grey, it's too fucking cold, and it drags on way too long. Maybe we should have Christmas in February to make late winter less fucking awful.
!! ten of wands - https://www.tarot.com/tarot/cards/ten-of-wands/rider
Intense concentration, working hard to get something done. I like this one. It reminds me of my math teacher =w=. But no. This is all about hard work. Can my boy make it to the castle with all his fucking sticks? I don't know, but I hope so.
* Rye the half-elf mage, played by Zodai
* Braun the half-orc fighter, played by Gasai
* Saige the elf thief, played by Redd
* DM'd by yours truly
* Jasper expressed interest, but didn't participate
---
* Adventurers found themselves hiding in a cave after a botched mercenary operation
* They explored the cave hoping for a safe way home, or treasure!
* They came across a hobgoblin party bickering over treasure
* The hobgoblins were wary, but not hostile
* The half-orc fighter intimidated them, and some of them ran, but others stood firm
* A fight broke out
* The thief threw his dagger in between the eyes of one of the hobs
* The fighter grappled them
* The mage hid behind the fighter and did nothing lol
* The hobs were vanquished pretty easily
* They collected a large supply of treasure
* They took it back to town and bought a round of drinks for the locals
* The thief attained level 2
---
* Rosewood is the town they're at, a border town.
* East of Rosewood (1 hex) is the Burrow, a dungeon. Down the right fork at the entrance, is a maze of twisty passages (1 turn to navigate) and this leads to a well-cut room with a wooden door.
Maybe the type of thing I write is under this category? Definitely the type of stuff I //read.//
* https://en.wikipedia.org/wiki/Bizarro_fiction
* https://web.archive.org/web/20160919185637/http://mondobizarro.yuku.com/forum/viewtopic/id/968
* https://eraserheadpress.com/
** They have a [[youtube channel|https://www.youtube.com/channel/UCm7XTS1bs8syDJI7m0lG_YA]] but it looks to be inactive
Normality-core music =w=.
* https://www.youtube.com/watch?v=r3Jk9pRk68k
** Those Pingu samples though
* https://youtu.be/qnYU1WYWi-w
* https://nwc666.bandcamp.com/album/nunwhore-commando-666
Hey, these duds fit the aesthetic https://society6.com/dataerase
!! Tell about something you do well?
Programming! I like to think I'm pretty good at it. I talk about my stuff in the [[Computing]] tag a fair amount. I originally started (like many programmers) wanting to make games, but I've mostly quit video games now and that's not really what I use my programming skills for now. You can find my FLOSS programming at https://github.com/japanoise and https://git.sr.ht/~japanoise
!! the-emperor - https://www.tarot.com/tarot/cards/the-emperor/rider
Authority and masculine confidence. Here's a man who knows how to get things done. The Emperor's power reminds me of [[Mahakala]]. Obviously as my spiritual guardian and guide, his influence is important here.
It's once again confluent with today's prompted introspection. This is on mastery and competence.
<<<
A maid is a mythical being that all of us have heard about, but have never seen.
<<< ZUN
https://tvtropes.org/pmwiki/pmwiki.php/Main/Meido
https://youtu.be/y9RNZBs008s?t=60
!! Who is your #1 hero? Why?
Cirno, [[because Cirno-chan is the strongest!|https://dynasty-scans.com/chapters/because_cirno_chan_is_the_strongest]]
Haha. I'm not a big hero type. I do enjoy the MCU movies and such, but for me, it's all about the little guy, the underdogs. I've talked before about how much I enjoy scoundrels and rogues, and identify as a rogue myself. So really, it's someone like Bilbo - a smart guy, rather than a big guy.
!! ace of wands - https://www.tarot.com/tarot/cards/ace-of-wands/rider
Carpe diem, new opportunities, etc. I've always struggled with interpreting the aces, since they rely more on the suit and the primacy thereof. I can't really interpret this one very well.
Recently, the sites I use to read manga have been really shit on desktop (or at least on firefox on my lappy). I should really find a better source for manga (cbr archives?)
thanks senpai https://i.redd.it/y1016h1z6yv31.png
maybe this is why maoists a) are insufferable pricks b) use "liberal" or "lib" as their first-line insult, the way a conservative does, or the alt-right with "cuck" or "npc"
-----
<<<
Liberal is one of them really hard words to define. I can't say I'm a huge fan of the variations of Maoism I've seen, but I'm not sure the lines make sense to me either (e.g. I'm not convinced there's a meaningful difference between factory workers and farmer-peasants). I'm convinced the Rule of Law can be peeled apart from dictatorial totalitarianism (though perhaps that's uncharitable). To some dok, I admire the fervor and willingness to sacrifice, admission of the necessity of violence, the vigilant appreciation for neverending class struggle, and the pursuit of unification of what I take to be Maoism. As a political program applied in the world, I consider it a failure (though that is typical of any system I've seen applied) since it still centralized political power. It never escaped capitalism in my eyes.
<<<
Yeah, one problem with it is the term is so wishy-washy as to mean nothing. I rather prefer sticking with the more common meaning, that it's centrist capitalist types rather than the "people I disagree with" approach of the maoists.
The current I tend to most agree with (left anarchism) is fairly frequently derided as "radlib" by these maoist types, and they're very very quick to accuse other leftists of liberalism. Just one of the many ways the online left is a failure, tbh.
I will begrudgingly concede that they occasionally make some good points, but they're thoroughly blinded by their ideology and by the hero-worship/great-man-theory of all these protofascistic auth-soc types.
I didn't do a DT yesterday, was too busy smashing away on my typewriter, lol.
!! What are you saving up for?
I'm actually not saving at the moment, mostly because I haven't got an income stream :DDD For the most part I'm spending money on making my home nice, lol.
!! the-empress - https://www.tarot.com/tarot/cards/the-empress/rider
A motherly figure, probably the most so aside from like, the Queen of Cups. This is actually the ideal, final form for me; kindness maximised, soft and not losing my temper, lol. A dab hand. Think of [[Miyuki from Lucky Star|https://luckystar.fandom.com/wiki/Miyuki_Takara]]. Thus I always like drawing this card for myself, hehe. It's a sign that I'm taking care of my loved ones.
!! What is the best thing and the worst thing that happened to you this week?
Best thing: hubby got a new job, hubby likey, hubby earn mucho dinero~
Worst thing: car broke down. Now we're sitting with no transportation until monday. Suckage. Hubby is grumpy about that (understandably).
!! five of coins - https://www.tarot.com/tarot/cards/five-of-coins/rider
A classic, and one of the most iconic images in the deck. The church hoards wealth, shown by the opulent stained-glass with all 5 of the coins (wealth), while beggars hobble past in the snow. This could be about many things; hoarding, capitalism, selfishness. In my own life I do wonder if I've been stingy recently - then again, I have strong sugar mommy instincts, so any deviation from that, lol.
!! What's one place that you would like to visit but never will? Why will you never go there?
Pretty much anywhere in China, including the Terracotta Army, Forbidden City, and Great Wall. I'll likely not ever go there just out of risk; I don't think it's safe for me, an expat anyway, to go somewhere like that. That goes for Tibet as well, unless they get independence from China.
!! king of coins - https://www.tarot.com/tarot/cards/king-of-coins/rider
Affairs in order, projecting the confidence of someone who has his material shit together. The opposite of me, I'm sure. If this was a physical tarot pack he'd be reversed.
!! What would happen if there were no television? Why would this be good? bad?
I think I agree with the old-school leftist take that this would be largely a good thing, especially in the age of social media where updates on goings-on can be disseminated by personal messages, rather than having to rely on a samizdat sneakernet.
However, the elephant in the room here is that the internet is very corporatized now, and television proper is mostly for older folx. People in my generation won't even notice, since they'll be on Netflix anyway. The main takeaway is that boomer-tier trash like L&O and Fox News will go away, probably leading to them becoming even more annoying on social media.
This is one of the better questions in this collection :) Lots to think about.
!! temperance - https://www.tarot.com/tarot/cards/temperance/rider
One of the [[Cardinal Virtues]]. Self-control and moderation, I suppose. This is generally a good virtue. Maybe I'm doing well with myself recently, though I'm not sure about that too much; my appetite has been well-sated by living in America ;)
I wonder if I should make a music exploration page like Senpai has. Anywho, enjoy some chillout rock.
https://www.youtube.com/watch?v=dEBC8mbPO8U
Dear Kicksy-kun-senpai-thing,
I noticed, belatedly, that the `<title>` in your first [[@]] was "yes let's letter" or something to that effect. Is an @ more minor/less of a Thing? probably.
Learning about [[Waifuism]] from me... that's a concept, haha. I'm not sure I'm a good teacher. I've been a waifuist for a while; at least ten years<<ref "10">>, but I see it more as a personal thing. I only gush in semi-private spaces, usually. I collect images for myself. I don't engage in the performative thing like others may (do). One of the key concepts to my conception of waifuism, [[The Last Waifuist]], is that I can know no-one's sincerity but my own and thus feel relatively confident in saying that I am the last and only waifuist.
I feel a little cynical typing that. Don't worry, my allegiance ultimately lies with the New Sincerity and with reducing cynicism; but waifuists are all to easy a target for //that// side of the internet so I like to keep my distance at times. My waifu philosophies are out in the open, for the most part, so peruse them at your own risk. You can always ping me for questions. I do have an email but that's not the best way to reach me; [[@]] probably is.
The "post-searchengine era" has suddenly implanted itself in my brain, like a mind virus (you just lost the Game). If we are to collect hyperlinks, to build a directory of directories or a web of links like [[Indra's Net]], we could transcend the search engine altogether. The idea of stealing google's power from right under their noses makes me feel warm and fuzzy inside. I came across this great and terrible vision through reading your notes on that blog book (maybe I should read it next) and, perhaps, through trying to decide what an indieweb would be (is?) within my limited vision.<<ref "bk">>
I'm especially considering this with the recent news about how genuinely evil Google is becoming; they're also gimping their website and making it require JS among other evils. I can't be doing with that. I switched to DDG on my laptop and will do on my phone too. Increasingly I'd like to create a "web" (spider's) of web (internet) directories, as you point towards.
Hey, I can take this as the segue to ask you about net culture. Have you ever hung out in the Places... reddit, tumblr, *chans, etc? Your attitude is too lovely for me to think you have, you're not irony-poisoned or cynical, but yet you still seem to have the handle on "our" culture that makes me think you must have at least some passing familiarity with those cursed websites.
And what's more, do you have recommendations for "churn" type websites (places with lots of new content I can check daily) that aren't so cancerous? I experiment with RSS and stuff, but the new content just isn't forthcoming. I'm forced to look at what Pocket recommends in my phone's Firefox or to trawl HN for interesting things to read.
>@chameleon’s wiki is the bizarre one!! 🤣 love u chamy
Haha, thank you for the compliment. Love u 2 //♥//
I'll keep this short and sweet. Thank you for engaging with me and thank you for your site. I think your attitude to things has come just in time for me. I am forever your kohai.
"""
Love and waifus,
- chameleon
"""
----
<<footnotes "bk" "back in my channer days, I had independently come across a realization like this; that the current internet was sick, nothing like it was in my youth, and we had to break free of facebook et al or die. stuff to think about">>
<<footnotes "10" "more like 11 at this point but i digress">>
!! How are you and your parents alike?
Dad's a programmer and artist. Mom's a librarian and a scholar. I like to think I inherited some of dad's technical skill and creativity, and mom's love of knowledge and learning. Mom's working as a counselor these days, doing the good work of giving folks empathy when they need it most; I admire that about her. My own empathy is being developed and fleshed out. I hope to one day help people the way mom does.
!! six of wands - https://www.tarot.com/tarot/cards/six-of-wands/rider
Ahh, triumph and leadership! It's a victory parade, the horseback rider leading his fellows in celebration. This goes with what I was saying to Sun about being a role model for my fellow loser weebs ;) I want to teach people how to love life and to be kind to each other. That's what I take most seriously about my job as a moderator on 2dl (and /mai/ before it).
Recommended by someone on tootsite! Nonbinary powerpop/rnb/experimental/stuff!
https://www.youtube.com/playlist?list=PL-B3B24cmBA1seuXqikHxpLna29FEN0Cw
Great video, solid advice: https://www.youtube.com/watch?v=UHAJR2obCWY
Part of the advantage of the wiki is it kills perfectionism dead - you're always making new stuff, tweaking sometimes but always looking to tomorrow. I love it.
!! If you could live anywhere in the world, where would it be?
Where I'm living right now, with the hubby, I think. I'm very happy here. Haha. Not much of an answer.
The hubs himself is interested in living in Scandinavia, but I'm not going back to Europe even for him - my own experience with the Nordic countries is bittersweet as-is. I think we'll stay put for the foreseeable future.
!! five of wands - https://www.tarot.com/tarot/cards/five-of-wands/rider
Conflict! It seems they're active and wild, as is the way with the Wands, and they're locked in the duel of the fates! Latin nonsense chanting time!
When we fight like this, who really wins? If there is a winner, does that make everyone else losers? Lots to think about!
```bash
for n in $(seq 1 20)
do
curl https://hentai.cafe/manga/read/key-poem-of-a-shade/en/0/1/page/$n 2>/dev/null | sed -n -e 's/'"\t"'* *<img class="open" src="\([^"]*\).*/\1/p' | xargs wget
done
```
hackers in movies use their skills to break into banks
me i use them to download pervy comics
```bash
hcafe-dl() {
for n in $(seq 1 20)
do
curl "$1/$n" 2>/dev/null | sed -n -e 's/'"\t"'* *<img class="open" src="\([^"]*\).*/\1/p' | xargs wget
done
}
```
https://daily.bandcamp.com/2019/11/14/latinx-screamo-list/
good shit. this is the best one:
https://anhedoniacali.bandcamp.com/album/estar-rotos-nos-hace-indestructibles-2?from=embed&context=daily
"to be broken makes us indestructible"
Rolling [[d6/6|2019.10.27 - New dice notation?]] or d100 without a percentile dice? Here's some mnemonics to get your order correct.
"Black and White" - one black die for first, one white die for second. add color for a third (because black and white came before color). Can do it with just dark and light (if you have a blue and cyan, or red and yellow, etc)
"Red Green Blue" - one red, one green, one blue die.
Something funny I noticed - I'm way better at vidya when I stand up. Playing Smash as the same character against the same opponent using his main, I went from "losing 0-3" to "almost winning @ 2-3".
Maybe I should invest in a standing mat.
!! What is something you dislike about yourself?
My temper makes it difficult to practice [[Ahimsa]]. My potty mouth doesn't go down too well here in the South. My accent makes me stick out like a sore thumb (though that's not too bad). I feel a lot better about myself than when I was younger, but hey.
!! the-star - https://www.tarot.com/tarot/cards/the-star/rider
Just in time! The Star is about self-love and such like. Naked girl (me) under the watchful star (STAR NO HENTAI!) reconnecting with the earth - grounded, back to my roots. This is a positive card.
!! Why is important to have good manners?
So that busybodies who care about such things will STFU!
Haha. No, it's so that folx know you're trying to be kind, I think.
!! seven of coins - https://www.tarot.com/tarot/cards/seven-of-coins/rider
Ahh, hard work paying off. The ultimate myth of capitalism, of course, but it is the truth in some circumstances.
Have I been working hard recently? A little.
Hah, the con life. Maybe I should go again. https://www.youtube.com/watch?v=lXv909CRvQA
!! Describe your favorite memory about an amusement park or county fair you visited.
A simple one tbh. Dad and I went to the fair, we had fresh donuts and watched the fireworks. It's a very early memory of mine, but a happy one. I hope Dad will come visit us soon.
!! four of swords - https://www.tarot.com/tarot/cards/four-of-swords/rider
Meditation and contemplation. Spending your time alone away from others. This is something I know a little about. I'm an introvert and need to recharge if I'm being too outgoing. In my daily life this refers, maybe, to the fact that I've just had a bday celebration (it's my bday this week) and now I need some alone time, haha.
!! When was the last time you lied and why.
Unfortunately, I lie all the time. Lying to me is a tool. It can be used in service of good, in service of the virtues. Sometimes you might lie to avoid unnecessary drama; this is most likely the lie I've done most recently. I sometimes get upset thinking about my past (I've made many mistakes in my life) but don't really want to talk about it, which sometimes I have to lie to conceal.
This may be somewhere I can improve myself; I don't know. I think about it a lot.
!! eight of swords - https://www.tarot.com/tarot/cards/eight-of-swords/rider
Swords again. I'm not sure I've mentioned, but swords are a masculine suit, symbolising logic and mental prowess. They're associated with the element of Air.
Here we see the robed, blindfolded, and tied up warrior taking a test of his (or her) mental powers - running the gauntlet. Is life throwing me a test? Possibly. I have to get used to living with someone else (intimately) and being a Real Adult now that I've moved out.
Nice http://fairfieldproject.wikidot.com/operation-stop-repo
Ooooh http://fairfieldproject.wikidot.com/delta-green-rpg
https://en.wikipedia.org/wiki/Gumshoe_System
<<list-links "[tag[2019.11.18 - gumshoe & delta green]]">>
!! What is a cause that is VERY important to you?
LGBTQ+ liberation and advocacy. This is a [[non-negotiable|Absolutes]] with me. I don't interact with, let alone befriend, people who are against it. Going against it seems to be a sign of either a) immaturity, which I'm not interested in or b) being a generally hateful and nasty person who I don't want in my life. You don't have to be an active supporter, just don't be bigoted and correct your behavior if called out.
I also obviously am a leftist and an anarchist; that goes without saying. It's support for those unjustly put-upon by the forces that govern our lives. I see it as an extension of my [[Bodhisattvayana]] and my perpetual quest to uphold my virtues.
!! the hermit - https://www.tarot.com/tarot/cards/the-hermit/rider
Here we see a typical robed, ascetic master; think of Ben Kenobi or [[The Buddha]]. This is a wise teacher in a humble disguise. We must seek to learn in life from many different angles.
It also has the obvious connotation of life in contemplation away from the business of human activity. Yeah, that's important too. Obviously we shouldn't isolate ourselves entirely, unless we're seeking the heights of nirvana. But quiet contemplation, sitting quietly, meditation, whatever - it's important.
[[I felt this one in my bones|https://parkjefferson.bandcamp.com/track/couches]]
[[Zodai]] and I talked about what it means to be emo. I said some stuff.
* emo is a mindset rather than a sound
* it's about being dramatic and juvenile but bleeding-edgedly sincere
* """
https://www.youtube.com/watch?v=MxCSUlLRy9E this song is a good "what is emo" answer
for me it's got to have that confessional feeling, lyrics like bad teen poetry put to music
good to have a few "hooks" which are just a scream of despair. snowing are great at that. "MELISSA! I FUCKED UP!" "why can't i see the sunspots in your eyes" etc
i miss pfl, he was a proper emo kid
anyways only an emo band would be so ouvert as to actually call themselves "I Hate Myself"
"""
<<<
"""
part of it is like I usually associate emo with depressing
but bleeding-edgely sincere still leaves room for bright spots
which is part of what like makes the songs more interesting than just raw depression in a sense
"""
<<< Zodai
I love the English language. Of course, I'm strongly biased, as it's my native language and the only one I speak to native fluency; but I love the tricks and traps like a brother, I love that there's no one right way to speak it, and I love the universality of English on the net. The only language that comes close imo is Spanish, which I also do love and speak, though not to the same degree as my English.
My style is idiosyncratic. I've moved away from commonwealth spelling on my devices (I use a en-us spellchecker now) as I'll need to pick up the spelling habits of the place I live. I love contractions, and I use some that my spellchecker really doesn't like (I'd've is a frequent one).
Learning languages and having enthusiastic teachers imposed a love of weird tenses and constructions. Yeah, I'm the type of annoying shit to throw around words like "subjunctive" and "pluperfect". I even learned the case names for Finnish at one point, greatly annoying my Finnish friends who didn't actually know them ("THEY'RE LOANWORDS NOT REAL FINNISH WORDS")
I enjoy wordplay and alliteration, though I usually type as casual speech so such things don't often make it into my writings.
I often verbify and nounify things. This is a grammatical construct in informal English (at least in my circles) but probably frowned upon by Very Serious Typists.
The fediverse, where I do most of my social media posting, has been fun recently.
I note the work of [[isolate gab,|https://todon.nl/@isolategab]] who has done good work in keeping the fash and terfs off the fedi timeline. I also note that what few idiotic tankies I've seen have been roasted and laughed off. I guess they fit in better with the secret police on shitter.
It's a good mix of techies, lgbtq+, and anarchists. It's a wild ride and great fun to be on. I recommend it to my readers, who probably share kicksy's and h0p3's interests.
For example, check out [[this great thread on programming as a craft.|https://social.illegalpornography.com/@BestGirlGrace/103166357203779600]] Great thoughts and insightful replies.
Today is trans day of remembrance. A moment for our lost trans siblings. Today is their day.
!! What do you do for exercise?
Nothing much, sadly. Very American of me. Maybe I should take up jogging again, or get the board out more often. I hate being chubby. My tummy is ugly and uncomfortable.
!! The Ace of Swords https://www.tarot.com/tarot/cards/ace-of-swords/rider
A very good omen for my new programming projects! Here the sword points to success and achievement. The sword is the right tool here - the rational mind, the superego, ready to cut through delusion.
<<<
After all, what Buddhism offers as a solution is universalised indifference - a learning of how to withdraw from too much empathy. This is why Buddhism can so easily turn into the very opposite of universal compassion: the advocacy of a ruthless military attitude, which is what the fate of Zen Buddhism aptly demonstrates.
<<<
As a solution to what? Philosophical problems of ontology, meaning, selfhood, perspective-taking, and desire are non-trivial. I am a terribly unfun person to speak with on the topic. I am also not an expert in Buddhism.
Note, as always, that empathy is not the precise measure of being moral, and "too much" is incorrect (but, you are in trouble with me on metaethics too, Sir [[Zizek]]). It is still only instrumental as an epistemic device, and it can be misused even by a psychopath (that's in fact what sociopaths are engaged in). Roughly, moral motivation is concerned with the principle with which we weigh and compute our various streams of empathy [[irwartfrr]]. Sure, plenty of Buddhists I've encountered are selectively empathic in a convenient fashion. For example, I've watched them feed dogs instead of hungry children. But, I don't think this clearly picks out a problem with Buddhism, but rather some so-called practitioners (and I would levy the same argument against most religious and philosophical bodies of people).
I consider this a fairly standard critique. My primary exposure has been through Americanized Buddhism(s), the Theravādist sects of Thailand, and some analytic philosophers who translate, dabble, and syncretize. As I have grown older, I've come to appreciate paraconsistent approaches to The Dialetheia, and, to my poor understanding, Buddhism is more comfortable with and equipped to handle some kinds of paradox than many other systems of thought.<<ref "g">>
Having seen Buddhism misappropriated as an ideological tool of the elite in Thailand, I'm well aware of the ruthlessness which can emerge (and, again, I'd say the same about how any major system of thought can be twisted and abused). While I still hold the kernel of the desire for radical pacifism in high regard, I have little sympathy for anti-realism and political apathy; plenty of Buddhists I've met are essentially reactionaries and capitalists (a minor percentage of the offenders I know). Some of the best people I've met are Buddhists though; in my experience, they've had to do some serious wrestling with their faiths. I'm happy to shit on people and roll my eyes all day, but I'm uncomfortable making claims about the limits of Buddhism as a belief system; I'm [[Straussian]]ly open to its ability to transform like so many other memeplexes in history. As always, a [[good]] philosopher pursues what is [[salient]]. Like a broken [[Straussian]]ly Salafistic record, I'm still going to point everyone to [[Saint Plato]] and Saint Kant.
---
<<footnotes "g" "I think every Buddhist (and frankly everyone else too) should take an extraordinarily hard look at Sir Graham Priest.">>
!! What does "There are two sides to every coin" mean to you?
Many things. An interesting one that came to me was the old adage: "love and hate are two sides of the same coin". It's the idea that both involve feeling strongly for each other; just one's negative and one's positive. Think of shipping, especially the quadrants in good ol' homosuck. The opposite of love (or hate) is actually apathy.
The other one is the idea of disagreement, I suppose. I don't buy the liberal idea that all positions are equally valid, because some positions are fashy. I don't think your ~PoV is valid if it involves murdering innocents to get it done.
!! justice - https://www.tarot.com/tarot/cards/justice/rider
A mostly traditional image of Justice here, though they're androgynous rather than explicitly femme and aren't blindfolded. Still, it symbolizes the balancing act (the scales) and the sharp, discerning attitude/mind (the sword) needed to deliver justice.
Do [[I need justice in my life?|https://www.youtube.com/watch?v=4lqy7KBuO7Y]] Or am I in the position to provide it? Maybe it refers to getting my lawyer stuff done today. I hope so. I'm ready to be done with it.
A treasure, [[chameleon]]: [[2019.11.21 - Antipleonasm Analysis: Buddhism]]
disorganized thoughts:
* empathy more important than stressed here
* anti-realism as the response to bullshit dogmas
** oppressive buddhisms in and of themselves lead us to anti-realistic critiques of dogma
** buddhism gives us dogmas, then cheekily gives us the tools to deconstruct them and destroy them
*** desu's dad, the wisest person I've ever met and a bona fide boddhisattva, told me the story of the buddha, explained the doctrines, then told me the whole thing was bullshit
*** "If you meet the Buddha on the road, kill him"
* Graham Priest succeeds, perhaps, where Chapman-senpai failed: [[https://en.wikipedia.org/wiki/Dialetheism]] https://plato.stanford.edu/entries/dialetheism/
* In a world of dogmas and doctrines, Buddhism's is the least worst
** Christianity has a long history of purges, destruction, and vice and is best left in the dark ages when it was last important
*** Catholicism is a glorified cover-up for a pedophile ring
*** Protestantism is just bad
*** The only good christianities deconstruct, subvert, and mostly transcend beyond christianity itself
** Islam has degenerated into fundamentalism
** We have lost our folk traditions
*** The revival movements can be ok so long as they're not fashy
** Most other eastern religions are too far removed from the western mind for us to understand them (they are local, or their ideas aren't conducive to ours)
* I rather hope I'm One Of The Good Ones™
** I'm not a reactionary
** I reject capitalism
Didn't have time to use the computer yesterday; we went shopping then to FNM. So no daily task yesterday.
!! Are you competitive? Tell about a competition that you participated in.
Ironically, considering my reason for being away was to play magic, I'm actually not a competitive person. I prefer co-operation. I like games like the Lego Star Wars games, where both players are working towards the same goal, rather than ones where I play against someone. It's why I quit chess; I just can't enjoy outwitting or being outwitted enough to dedicate my free time to it.
Though I don't like competition, //kira voice// I don't lose, at least not often. I usually win trivial things at birthday parties, like paintball, go-karting, or laser tag. When I was at school I would usually get the best grades and stuff, which was a combination of talent and hard work. Haha, this makes me sound arrogant. I'm not good at sports and stuff, so I would usually just refuse to participate, lmao.
!! two of wands - https://www.tarot.com/tarot/cards/two-of-wands/rider
Wands, the masculine suit of energy and action. Here we see a man looking to the horizon, wand in hand, and with a small globe in hand - green water and purple continents though, the future capitalists want, perhaps.
I don't buy tarot.com's interpretation of this being a conflict to be resolved. This is rising ambition, planning, and scheming to me. [[Biddy Tarot|https://www.biddytarot.com/tarot-card-meanings/minor-arcana/suit-of-wands/two-of-wands/]] has a closer interpretation, IMO. Maybe it refers to my growing plans with this little toy I'm working on. Another good card.
!! What do you like to do in your free time?
Shitpost, program, read, write, have fun. I like to create things whenever I can, and when I'm not creating, I like to look for inspiration.
!! two of cups - https://www.tarot.com/tarot/cards/two-of-cups/rider
Co-operation. This is the Cups, the feminine suit of empathy and kindness, and the crossing of each character's cups shows their love and respect for one another. Maybe a marriage? I like this particular one.
!! What if your life had been harder or easier? How do you think you'd be different?
I'm very aware of my privileges and unfair advantages; I've had many. However I didn't always have an easy time growing up due to the usual reasons (lgbt anxieties, bullying, etc) so if it was much harder than that, idk if I'd've made it. If I had an easier time (not being lgbt, perhaps, or having an even more privileged upbringing) I don't think I'd very much like the person I'd become. I can't stand ignorant, privileged morons like the type I'd probably become.
I guess the only way to have had an easier time while not changing for the worse was if I was born in the place I'm currently living, lol.
!! the-emperor - https://www.tarot.com/tarot/cards/the-emperor/rider
Here's a masculine and powerful leader. I'm actually strongly against the archetype of the strongman leader; the idea fucked us with royalty, then fucked us with the later totalitarian dictators of the fashy and mao-y flavors. Still the way you can conceptualize your own mind is, maybe, in the sense of a master and subjects - we do call it "executive function" after all.
Leaving aside the political implications, here we see confidence, mastery, and sovereignty. It's probably good to draw this card.
!! What one thing could you invent that would make your life easier?
CHAME'S AUTOMAGIC WORK-GOTO-IZER!
This machine looks exactly like chameleon and goes to her job for her. It fields questions from her boss, pretends to work, takes part in breakroom chatter, and takes the agonizing commute home, while she stays at home drawing dicks on anime girls!
"""
Boss: hey, chame?
~ChameBot 9000: `YES SIR?`
B: did you implement the jenkins automatizer thingy?
C: `YES BOSS. THIS HAS RESULTED IN A PRODUCTIVITY INCREASE OF 0.07%.`
B: Can we get that up to a 0.7?
C: `I WILL SEE.`
"""
Haha. I don't think I could do that, though.
!! the-devil - https://www.tarot.com/tarot/cards/the-devil/rider
HAIL SATAN!
<<<
The Devil Tarot card expresses the realm of the taboo -- the culturally rejected wildness and undigested shadow side that each of us carries in our subconscious. This shadow is actually at the core of our being, which we cannot get rid of and will never succeed in taming. From its earliest versions, which portrayed a vampire-demon, The Devil evoked the church-fueled fear that a person could "lose their soul" to wild and passionate forces.
<<< Tarot.com "The Devil"
This is at the core of satanism - you have your passions, and they cannot be tamed. Of course I do attempt to live virtuously, but I'm a romantic at heart and thus do not always work to completely suppress my passions.
!! When you have a problem who do you talk to? Why?
Usually the hubs. He's my shoulder to cry on and my best friend. I also often talk to Kirbs and the CLUBBERS if I have trouble. I have my family, too - first port of call when it's Adult Trouble™. I think I have a pretty decent support network all things considered.
!! the-chariot - https://www.tarot.com/tarot/cards/the-chariot/rider
Silver chariot! I got that one [[before,|2019.10.25 - SILVER CHARIOTTO]] a month and two days ago.
So, the winds of change. What happened since then? I think the chariot may be more stationary now than it was then, but ever more raring to go. I'm posting forms off to homeland security VERY soon now (literally just waiting on bank stuff) so the winds of change are likely blowing.
Nice! http://www.delta-green.com/2017/01/five-desktop-wallpapers-so-even-your-computer-is-in-character/
My favorite: https://imgur.com/x0dvOqi
"Scientia mors est" - knowledge is death?
Interesting ideas
http://hillcantons.blogspot.com/2012/01/crawling-without-hexes-pointcrawl.html
I just remembered how deep Scott's lore is. Wow.
https://www.youtube.com/playlist?list=PLGPef6lHMHpnxd3lcQFhHPLfdduVoL-oF
Much ink has been spilled by better writers than me for [[OSR HowTo]]!
* http://renfieldscat.blogspot.com/2015/01/advice-for-newly-afflicted.html
* http://lotfp.blogspot.com.au/2008/11/guide-to-adventure-writing.html
* http://basicredrpg.blogspot.com/2015/01/rpg-abcs.html
** I should fill out these form things https://basicredrpg.blogspot.com/2013/11/rpg-person-profile.html
* http://monstersandmanuals.blogspot.com/2019/10/the-greatest-osr-blog-posts-known-to-man.html
* http://jrients.blogspot.com/2019/11/old-school-pc-fragility.html
Now I should sleep instead of playing dnd by myself to figure out how I'm going to use all this stuff.
Short update today; not feeling inspired. Happy Thanksgiving.
!! If you were five years older you would...
Adopt. I am not in a position to do so right now, and my hubby thinks he's too young right now. But give us a few years? Yeah. I think we could do it.
!! queen of wands - https://www.tarot.com/tarot/cards/queen-of-wands/rider
Lovely! haha. Here's a confident and competent leader. A taskmaster, even. Not really me, unless I'm channeling this energy recently?
!! What is your strongest memory, as a child, of your parents and what were you all doing at the time?
I can't really narrow it down to one. I just have snapshots; mom's cooking, dad's fixing everything; either of them reading to me, or helping me with homework, or giving me a shoulder to cry on. I was very lucky with my parents; they're both wonderful people and they've helped me shape myself into the best I can be. I'm thankful every day for their help, and their love.
!! ten of coins - https://www.tarot.com/tarot/cards/ten-of-coins/rider
Here we see a joyful scene, and the ten coins (in the shape of the tree of life) surround it. The implication is obvious; the wealth represented by the coins paid for the scene. It's investment and being a benefactor.
Not much related to me. Broke-ass girl that I am. Haha.
Great video: https://www.youtube.com/watch?v=OiRWBI0JTYQ
The comments range from the strangely insightful:
<<<
I've become disillusioned with rationality lately. As the comments section of any youtube video prove, people of two opposing viewpoints can argue through highly rationalized claims, just to end up going no where. One might as well let the whims of emotion and personal taste govern everything, because people already use rationality and logic to justify those kinds of viewpoints. If I don't like something, I'll simply find ways to argue against it.
<<<
<<<
Romanticism is swimming in an ocean of feels; where the intensities of sadness and madness are so real, they feel as real as the breaking waves and pulling tides. By all means, swim in the ocean; but don't attempt to live in it.
<<<
to the funny maymays:
<<<
"""
On Mondays I'm a calm and resigned stoic.
On Tuesdays I'm a busy capitalist.
On Wednesdays I'm a coldly practical Darwinist.
On Thursdays I'm a wound up nationalist.
On Fridays I'm an energized anarchist.
On weekends I'm a passionate, euphoric romantic.
I am never bored with life.
"""
<<<
to the "ok boomer":
<<<
The funny thing is that the modernity basically paid for romanticism, I mean no one can afford to be a romantic in middle ages, they ware busy doing hard labor to survive or dying due to preventable illness, modernity set men free from hard labor, made him a bit richer so he no longer need to marry to establish relations and can change his view about love, expend his life expectancy so he have time one his hand.
<<<
I'm reminded of our good friend Scheduled Cry Man: https://cdn.discordapp.com/attachments/218090910926372865/650101926792527902/cfslcwk.png
Oh twisted modernity, that I could be free from you!
I went full romantic and fell to the ground, wailing and gnashing my teeth.
These guys were the original emo kids!
!! What is it that you most dislike?
Authoritarians, shitty beds, pretension, stepping on lego... I don't know, lol. I'm not someone that thinks about stuff I dislike that much. I prefer to focus on stuff I do like...
!! queen of cups - https://www.tarot.com/tarot/cards/queen-of-cups/rider
...maybe that makes me the queen of cups! Here's a motherly figure who cares for those she loves. I think I have some of the strengths of the queen (empathy, which I maximize, and compassion) while bringing my own, separate weaknesses.
Hm. Sphygmus expressed interest in meeting penpals/internet friends irl. Kicks mentioned a nice-sounding anecdote. Personally I have actually done this sort of thing before (I met my hubs and an ex on an imageboard, and neither of them murdered me) and so I'd be down for that sort of thing.
The usual advice is to meet at a public place. A con would be my preferred way to do it; that's how I met the other /mai/dens. However, I don't think the others are into anime enough to enjoy such a thing. Then there's also the fact that I'd have to travel to that and buy tickets and persuade the hubs so bluh.
Maybe the cafe is the better idea.
<<list-links "[tag[Daily Tasks]!sortan[]] +[prefix[2019.12]]">>
* I've been quite creative this month, despite having a slow period in the middle
* The thing about being at home and having all the time in the world is that your time ceases to be meaningful
** Maybe in the future I should partition my time better
* Politics and ideology? Interesting.
* Lots of jokes and funny ha-has
* [[Links]]
-----
<<list-links "[prefix[2019.12]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]]">>
>Hey, I can take this as the segue to ask you about net culture. Have you ever hung out in the Places… reddit, tumblr, *chans, etc? Your attitude is too lovely for me to think you have, you’re not irony-poisoned or cynical, but yet you still seem to have the handle on “our” culture that makes me think you must have at least some passing familiarity with those cursed websites.
I need to chasten you here and perhaps move to prevent you from putting me on a pedastal because I am absolutely just as screwed and wrong-headed as anyone you’ve met and I constantly have to fight my own shit-eating grin. Yeah I’ve hung out in all of those places, trolled and gaslit-up in my time, sometimes as “eddie touch” and sometimes as “simply chudder chess” - that’s all buried now, I can’t even find the stuff. This lacks credibility, but it’s true, whatever.
There was once an online forum that I was on where people just loathed me. Almost everyone in my life knows about this - because the forum had a lot of real-life friends - and everyone on the forum had little 64x64 pixel avatars. And there was this one popular user that had an avatar of a little kid’s face - I guess it was kind of iconic within this group. And I started using the avatar as my avatar - and it came to knives. It was rough - because I did it for many weeks and people hated it because they would think it was this other person posting when it was just me and my shit. People were messaging me “I will cut you” or gtfo and I really enjoyed it - but the forum eventually died and now we’re here talking to each other instead.
Things have changed for me since some of my surrounding family members have died - a number of people my age and four children. And this has also led to me meeting other people who have had to go through accidents with multiple deaths. That side of my life eclipses whatever is happening online - I just come here to play and escape. So maybe that helps explain my perspective - the problems of Reddit, imageboards and so on just seem like virtual play by comparison. But it’s much more than that - I just appreciate being alive for today and getting to write you a letter. Every day I feel grateful to breathe and be on this world with whoever happens to be here. So yeah - especially you too!<<ref 1>>
> a realization like this; that the current internet was sick, nothing like it was in my youth
This is a fun description, it’s very true. I don’t think there’s any curing the sickness - life outside the Internet is sick in its own way. I think I like the idea of directories because it doesn’t go head-to-head with Google. I don’t like waging head-on war against the enemy. It’s too straightforward and just seems naive. It alerts the enemy.
I like directories because they’re surreptitious. You’d never notice them. I really think subterfuge and peaceful, lulling work can defeat anything. I’m not saying that directories will win - they’re a total longshot, of course - and head-on attacks have the advantage of alerting your allies, too.
> The “post-searchengine era” has suddenly implanted itself in my brain, like a mind virus (you just lost the Game). If we are to collect hyperlinks, to build a directory of directories or a web of links like Indra’s Net, we could transcend the search engine altogether. The idea of stealing google’s power from right under their noses makes me feel warm and fuzzy inside.
I was anti-search when I started getting into directories. But [[this fragment|https://www.kickscondor.com/comments/directory-features/]] of a conversation with this guy Brad changed my mind a bit. Maybe it’s just that we need balance or something between directories and search. (Like how TiddlyWiki itself is a balance between directories and search.) So I guess you’re right - thinking “post-searchengine era” sets a course that way.
Brad is also starting an old-school forum to talk about directories if you’re interested. Maybe my question for you wikifolk is - it could be enough to just say “my whole wiki is a directory” - but what could a more finely curated directory look like in TiddlyWiki?
> And what’s more, do you have recommendations for “churn” type websites (places with lots of new content I can check daily) that aren’t so cancerous? I experiment with RSS and stuff, but the new content just isn’t forthcoming. I’m forced to look at what Pocket recommends in my phone’s Firefox or to trawl HN for interesting things to read.
Yeah, I should write some thoughts about this - because I have some specific recommendations for link-hunting in 2019 that I think everyone should know. But it also mainly comes down to just surfing. I have a big page of links that list rabbitholes that I haven’t fully explored yet - I usually just pick back up there. (Like - if you just started at philosopher.life and branched outward from there, who knows where you’d end up. Like really - you’re going to find a lot more of the web from that approach than searching on Google for, say, “cool links” or something. Or typing three random words into Google.<<ref 2>>)
I’m still learning how to get around the 2019 web tho. Might be a matter of finding good shit and then working backwards.
Hey, with the group chat - I have a page of ‘springboard’ type prompts that I can throw out at first, but I have a feeling that there’s enough unresolved discussion between us all that I think it’ll reel out of control no probs.
Always honored to hyperchat, chamy. (oh hey - I’m not saavy to the origins of ‘chameleon’ as a nick for you - but it haaaas to do something with the face, right? Triangle head, circle eyes, straight line mouth? Slurpy lil face.)
---
<<footnotes 1 "Have to say - I realize that you are probably taking everything I say as if it were construed - like Kaycee Nicole type shit - and I totally understand that. Which is why I try to minimize my expression of this type of thing and just say it when it’s relevant and get back to leeching and linking.">>
<<footnotes 2 "Just wrote a script to try this. My sample phrases were: “junkie ampitheatre anarchy”, “preempt typing electrostatic”, and “ordination intellectually feminists” - cept I searched with no quotes. It’s interesting to see that Google tries to make sense of these phrases and I usually get shipped off to The Atlantic or JSTOR. Ooo I like this fourth phrase: “cagey gorgonzola admiration”…">>
!! Who is one of the most courageous people you have ever met? Why?
To respond to that I have to deconstruct it, somewhat. What's courage? Is it the same as bravery? The finns have a word, //sisu//, which means courage in the face of adversity; is that how I'd define bravery? The ability to still function in the face of danger, or near-certain death, even?
Sisu is commonly cited as to why such a small country as Finland produces so many great racing drivers (Rosberg Sr, Hakkinen, Raikonen, and Bottas in F1 alone). I've not been able to meet any champion racing drivers or I'd put them first; to go as fast as that, on the edge of all control, is certainly bravery.
Some people claim that soldiers are brave, but I'd not agree with that in modern times. At least they skirt the line between bravery and stupidity. And, personally, I don't agree with any of the wars that the countries I've lived in or visited have gotten into. Maybe the volunteer leftists that fight ISIS.
I would ultimately have to cop out on this question. True bravery is mostly seen in ordinary heroics, I think.
!! eight of coins - https://www.tarot.com/tarot/cards/eight-of-coins/rider
Skill. Artisanship. Here we see a master craftsman working on coins. He's free as can be as a result of his superior skill (probably honed by years at his craft). My own work is a little more sloppy and amateurish... but I'm practicing at it every day.
!! What is a convenience you wouldn't want to do without?
Easy(ish) access to medication. Without it I would literally die! Not to mention my life would, in general, get a lot rougher, even if I could keep access to the medication that sustains my life if not the non-essentials.
If we're to disinclude that and only include things that aren't necessary to keep me alive, probably fast and easy internet access. I don't want to go back to the days of dialup, or even worse, get the connection severed entirely. While time away from the terminal is very important, of course, my livelihood is tied to the internet and I would probably grow deeply bored (and lonely, and depressed) without it.
!! king of wands - https://www.tarot.com/tarot/cards/king-of-wands/rider
[[Previously.|2019.11.02 - astuhesatuh]]
Am I seizing the day? Perhaps. My confidence will never be to the level of the King of Wands, however; but I would like to channel this energy.
I'm gonna stick with green for the wiki color for the forseeable future. It's becoming my brand on kicksy's site, and hey, it looks nice and fits my ideology of green anarchism.
!! I wish I had one... because
( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)
hahaha. JK. I wish I had a car. I need one here in the USA. I used to walk everywhere but that's not feasible here, so if the hubs is out alone, I'm stuck housebound. I've been looking but they're not cheap - the best I seem to be able to do is under 2 grand. I can't be throwing around money like that rn; I need a job first.
!! nine of cups - https://www.tarot.com/tarot/cards/nine-of-cups/rider
One of the trickier cups to interpret. Here we have an innkeeper, apparently, whose happiness comes from his service to the community. I suppose this fits better with the general meaning of the cups as being nurturing, empathy, and kindness.
Maybe because he has so many cups, it is shown that happiness is to contribute to other's well being as much as your own? A generalised, non-discriminating empathy. Much to think on.
https://www.incompetech.com/graphpaper/hexagonal/
!! How would you react if you were to find out you would be the first child in space?
Child in space? Lol! I don't think I'm a child any more, I'm in my mid 20s! Hahaha. I'd still be overjoyed. I would love to go to space some day, but I don't think it's very likely.
!! eight of wands - https://www.tarot.com/tarot/cards/eight-of-wands/rider
Here's an old classic! This one is difficult to read. It could be rising energy, or the winds of change (like the Death or Chariot cards). Perhaps once again this is one about siezing the day.
I don't have much to say today, lol.
!! What kind of trophy would you like to win?
I don't really need prizes for validation. When I was younger I had fantasies of becoming a racing driver, but I'm too old to go down that route now, so I don't think I'm getting that WDC now, lol.
Boomers whine that my generation, the millenials, are too used to getting "participation trophies", but in my experience such a thing does not exist. The only trophy I got from my school days was the academic achievement trophy for getting the best grades in the school, which I had to work for.
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
A restless time. The sitting figure rejects the offered cup - offered kindness and empathy - while he hides away his own emotions from the world. I think this is repression and stagnation.
Tarot.com says:
<<<
The Four of Cups in this position wants you to take a clear look at how stalled or distracted you have become. You may have been bogged down by negativity, hopelessness or a sense of limitation. It is not to your advantage, however, to see the world through such a narrow lens. Cut through some of the forces that undermine you, causing you to feel incapable. Sometimes you have to define what you are "for" by defining what you are "against." Decide that you are not as heavy as the cup of earth, not placid as is the cup of water, not turbulent as is the cup of air. Rather, now may be the time to be as aroused as is the cup of fire. This arousal may constitute liberation from the circumstances that may have brought you here.
<<<
Yes, I feel this is relevant to me rn in many ways. I want to work harder on my creative pursuits.
I've started a new blog for my OSR role-playing thoughts: https://blog.waifu.haus/
First order of business will be to design a [[white mage class.|https://old.reddit.com/r/osr/comments/du0iuj/clerics_vs_white_mages/]]
Other inspos:
* https://jrients.blogspot.com/2011/04/idea-for-geomorphers.html
* https://akraticwizardry.blogspot.com/2009/07/magicians-and-colours-of-magic.html
* http://hillcantons.blogspot.com/2010/11/white-wizard-second-take-on-new-class.html
* http://hillcantons.blogspot.com/2010/04/revised-white-wizard-class.html
Busy yesterday, went to FNM, no time for wiki, unfortunately.
!! How do you feel on the first day of school?
Well, I've long since graduated, but hey. If I was going back in time to school though... I don't think I'd like that. I used to dread going back to school.
!! death - https://www.tarot.com/tarot/cards/death/rider
DEATH 13!! Haha. This is actually not about "death" per se, but change, the end of things. Not really in my life right now, unless this is an omen.
!! What advice would you give a new student?
Read between the lines. Don't get caught up in petty power plays. Skip gym class unless you rip at it. Do as little homework as you can get away with. Remember that school isn't the be-all end-all of life. Be good to your good teachers.
!! the-empress - https://www.tarot.com/tarot/cards/the-empress/rider
I like drawing this card. It's a nurturing, kind card. This is the card of me taking care of my husband and friends, hehe.
!! Do you actively change your habits and behaviors to help the environment? What kinds of things do you do?
I'd like to say I do, but that's become a bit more difficult since moving (I have to get used to new patterns and environments). I used to be quite enthusiastic about recycling, and walking everywhere, but that's less easy where I am now.
!! the-star - https://www.tarot.com/tarot/cards/the-star/rider
[[Previously.|2019.11.15 - star platinum]]
The Star is about spiritual realizations and such. Star Platinum's speed and power represent clarity of purpose, and I think this is why he's such a good solo fighter, too.
Despite its association with a bro-y chapo audience, I really like and definitely identify with the term "dirtbag left". I like the pugilistic style, the spit-on-your-theory punk attitude, the refusal to engage with liberals on their own terms - namely performative civility in the face of evil - and the breaking with the historic problems with the left. I'd ultimately rather stand with a chapo bro or someone like Vaush over a thousand purity-scolding twitter addicts or, worse, ignorant tankie scum.
!! I wish I had a million... Then I would...
If I just randomly won a million bucks (and it wasn't temporary or whatever) I'd probably invest it, lol. I am a leftist, but playing the game to beat the game isn't beneath me. I could use my capital gains to actually do something good in the world; presumably if this million came out of nowhere (like a lottery win or something) I could keep my conscience clear by knowing it didn't come out of exploiting someone. I could use a million to, for example, seed a worker co-operative.
!! the-magician - https://www.tarot.com/tarot/cards/the-magician/rider
[[Previously.|2019.11.01 - carpe diem but monthly]]
The Magician has an inspiration, skilled-ness kind of energy. The Magician is someone who gets shit done. Maybe like I said I'd do with the million.
Oh god, if this is an omen that I actually //will// win a million bucks... I guess I'll be able to test if my praxis is as good as my theory!
https://diyanddragons.blogspot.com/2019/12/roguelike-advice-for-tabletop-games.html
too tired to be too deep here but nice.
analyse, deconstruct, discuss, tomorrow.
!! What would you do if you could hide in your mother's womb?
What the fuck is this question lol. Would I hide? I really don't know. I think that'd be too creepy.
!! seven of wands - https://www.tarot.com/tarot/cards/seven-of-wands/rider
Half balance, half conflict? Looks like ambition and drive.
I can't really give this a real analysis after that incredible prompt. lol.
!! Who was one of your best, or worst, teachers? Describe them.
Had a Spanish teacher, long ago, who was tiny tiny (probably even smaller than Konata) but was super fierce and dangerous. Despite that, she was the best damn teacher I ever had. She had a passion for languages that seeped into me, and she sharpened my wit a lot talking to her. Hey, maybe she was my first [[Senpai]] rather than [[Shedu]]? She very nearly swayed me away from programming and towards linguistics. If I'd had better teachers after her, and less bullshit examinations in my later years, maybe my life would've taken a different course.
!! queen of coins - https://www.tarot.com/tarot/cards/queen-of-coins/rider
She's secure in her possessions (the coin(s)) and is a problem solver and truth teller. Tarot.com rather cheekily and recursively sees her as a Tarot reader. She's there for her loved ones, like me, I suppose. She's definitely a socialist.
!! What do you feel is your greatest success?
I don't know. I've done pretty well in life, but nothing outright amazing. Maybe I could come up with something better if it was earlier in the day.
!! knight of cups - https://www.tarot.com/tarot/cards/knight-of-cups/rider
My first knight! He's the prodigal son, homecoming. He has his cup (empathy and kindness) in hand, symbolizing all he's learned on his journey.
!! Tell about a habit that you picked up from a family member or friend.
Fiddling with things from my brother and father. Both of them are technically minded and good at fixing shit, and a little of that rubbed off on me. I can fix a fair amount of stuff by myself. Course, half the time I'm actually just breaking it further, but still...
!! the-hermit - https://www.tarot.com/tarot/cards/the-hermit/rider
[[Previously.|2019.11.19 - chame said trans rights]]
I'm wont to spend time alone in contemplation. It's why I do so well when I meditate. Still, it's important that I balance my time between being alone and being sociable, or no-one will want to be friends with me!
!! What is your most embarrassing moment and why?
Oh shucks, this changes all the time... I was quite the cringelord growing up so I have all sorts of excruciating teenage memories.
I think the worst is the time when I fucked up my swimwear and exposed myself by mistake. that was pretty bad.
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
[[Previously.|2019.12.05 - trophy]]
"Renounce the circumstances that have brought you to a standstill." says tarot.com. Interesting. A change up of circumstances could provide the inspiration I need, perhaps?
I'm going to start measuring time in terms of coffee
I'm two coffees into the morning rn.
The wiki has been slow recently. I've not been feeling particularly talkative, tbh. I even considered not doing my daily tasks, but I figured that'd be too much. I guess I've had some really bad creative burnout recently. The only good thing I've done is finally mapping out and keying up the map of my fantasy world.
!! When you look at an elderly person's hands what do you see?
Hands that have seen more than I have; have done more than I have; that have watched the coming and going of decades. It's a myth that lefties don't respect our elders. I am indebted to those that came before me, and I bitterly miss those that are no longer with us (pouring one out for you, granny).
!! five of cups - https://www.tarot.com/tarot/cards/five-of-cups/rider
This one is LOSS, and not the fun kind. The main character here is a fucking mourner. Most of his cups have spilled, and he is lamenting this loss. It's on topic for today, I suppose.
The truth is, loss of people I care about really breaks me up; though that doesn't make me any different from anyone else, I suppose. The card somewhat points towards resolution though: the mourner still has two cups left. This teaches us to not see a loss as the end of the world, that we should take the opportunity to appreciate the others around us.
I think [[h0p3]] had something to say to me on this point, but we'll see once he finishes his letter (or at least advances it).
!! Did you grow up with lots of money or very little? How much money (give numbers it makes things interesting)?
Haha, fuck out of here with that flexing shit. I grew up middle class (literally boug) but it wasn't the most comfortable existence ever. Pops lost his job a couple times, making shit tight for us. The truth is, anyone's a worker if they don't own capital, which we didn't.
Growing up was ok materially; I didn't have everything but I had more than some kids. The main issue was that I was socially bankrupt, because we moved around a lot and I never got to put down roots. I guess that's why it was so (relatively) easy for me to emigrate. I feel like Luke Skywalker leaving Tattooine: "there's nothing for me here".
!! three of swords - https://www.tarot.com/tarot/cards/three-of-swords/rider
The meaning here is fairly obvious: heartbreak. It's about separation and clean breaks. I've not separated from anyone recently (well, not in like 4 years, haha). But this is an important one to keep in mind. It's most positive when the separation is from toxic relationships - much as I lament losing the /mai/dens, my relationship with many of them was no fucking good at all and ultimately losing that relationship was most likely healthy in the long run.
https://twitter.com/SunderCR/status/1207132695773380609
The latest in the long saga of "~YouTube continues the war against its own users". It's worth keeping an eye on, as YT is one of the most visible complete and total monopolies in the world today, and an excellent example of what happens with monopolies.
A quick primer: [[https://twitter.com/JosiahEverhart]], a musician, had a ~YouTube channel he used to promote his music. It's pretty nice, acoustic emotional singer/songwriter stuff in the vein of, say, Owen. The YT management [[suspended his account for seemingly no reason|https://twitter.com/JosiahEverhart/status/1207125492467290114]], and now he has no recourse to restore it. This comes from a lot of recent drama in the YT scene about COPPA and channel suspensions, and in the long run is part of the larger problem of YT's inept, incompetent management.
This seems to be the endgame of large tech companies and content silos. If they aren't shut down (ala Geocities or Google+) they are ruthlessly censored and gutted for all their worth. It's way past time we started looking for alternatives.
!! What kinds of activities when on at the kitchen table at home when you grew up (eating doesn't count)?
Homework, dungeons and dragons, arts and crafts, friendly debates about tech and more! You're going to make me miss my family at this rate.
!! justice - https://www.tarot.com/tarot/cards/justice/rider
[[Previously.|2019.11.21 - serve justice]]
"You are seen as a fair-minded party whose opinion matters." - this is definitely 2dl. I'm having to chip in right now on some pretty serious stuff. It's my job as a moderator to see that Justice is served - or in less pretentious terms, that everyone gets on and there isn't a massive problem.
!! What is a secret about you?
Hmm. If I tell you, here, in a public space, it's no longer secret, is it? This is the duality of the wiki; I can tell you things, but therewithal I will be telling the world. I have to think about privacy.
!! ace of swords - https://www.tarot.com/tarot/cards/ace-of-swords/rider
[[Previously|2019.11.20 - tdor]]
I've said all I have to say about the aces in general, but especially this one which I've already seen. I'm milling if I get this one again.
!! How do you think eating junk food affects you?
[[Previously.|2019.10.08 - burger gang gang gang]] I'm still quite chubby. However, today I took my first steps towards being healthy - I've got my gym gear together and I took the inlaws' dog for a walk (and got real tuckered out, haha).
!! six of swords - https://www.tarot.com/tarot/cards/six-of-swords/rider
A classic card. Here we see a navigator, sailing the cloaked figure off to parts unknown. It can also represent the scientific method, the perfection/apotheosis of reason & rationality (the swords).
Taking aside its suit, it can also be interpreted as the process of moving on; a clean slate.
I wrote the following at midnight last night when I was sleep-deprived and manic (the pace of it gives that away; this is definitely the product of racing thoughts!) so don't take it too seriously. Maybe I'll come back to it and clean it up.
It's way too sneery at moralists, for example, for me to want to post it as an article (sorry [[senpai|h0p3]] ''♥'').
---
The monad is, the monad was, the monad will be. Before the first moralist was born, the monad was there. As the moralists of today critique the monad, still it is. Long after the last bone of the last moralist crumbles to dust, still the monad will be.
From the depths of the id and the shadow, the ego dredges the monad up to the superego, filtered through half-scribbled stirner quotes and rumblings and indignant complaints. Still it rises.
* nietzsche - the will to power?
** should the eagle carry off the sheep, he sees no evil in this act, though the sheep may.
The monad is the ego, the non-self, and the will to power wrapped in one. The monad despooks, dematerialises, and deconstructs indiscrimanately.
The monad recognizes neither the boundaries of morality nor good taste. The monad encompasses all, lewd, slimy, and profane. The monad is fetishistic and depraved. The monadic sees this and rejoices, all as the moralist whines "degenerate" from his coddling crib, and soils his diaper.
A monadic act is to roll on the ground in sapphic love, gnashing her teeth at the overpowering sensation of it. The monadic then may, or may not act. Her love is, that is certain; does she need act for that to be true?
C.f. The last waifuist
Monadic time and the eternal reoccurence:
* https://en.m.wikipedia.org/wiki/Kalachakra
* https://en.m.wikipedia.org/wiki/Eternal_return
* https://en.m.wikipedia.org/wiki/Amor_fati
Reading:
* nietzsche
* stirner
* sade
* the moralist plebs
** plato
** kant
The ultimate nihilism is to reject your selfness and your hereness totally, and to submit to some transcendece. The monad is no such thing, and the monadic never shall.
!! Why is it not wise to squander your money?
When you have money coming in, you can be tempted to just spend it willy nilly, because you can always earn more. However, in the future your situation could change, and no longer have any money. Now you'll wish you saved it!
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
[[Previously.|2019.12.15 - chamecringe]] Once again a double draw. I dunno about the randomization, it might be biased.
Still stuck? I dunno about that. I'm starting to feel my creative juices flowing again. [[Monadism]] got pissed out of my sleep-deprived brain; I've started an OSR blog; and my writing ability is starting to flow again. Maybe the meaning of this card coming up now is the "hey, you're ready again. Don't squander (heh) your talents! Let's fucking do this!"
[[Shaun's older video on transphobia|https://www.youtube.com/watch?v=91_5OOmK1TQ]] reminded me today of what I had said before on fediverse about the UK: that the whole country is much, much more right-wing than people let on. This idea was validated by the recent election results (one of the nastiest and most reactionary prime ministers in recent times drew a huge majority). The fact that the US Guardian had to call out the UK Guardian seems particularly pertinent.
I feel like trans people have been talking for years about this.
!! Name a public figure who has inspired you. Why?
F1 drivers mostly. Valterri Bottas, Michael Schumacher, Charles Leclerc. Sisu: bravery in the face of adversity. As kind of a coward and someone who isn't very competitive, they're a counterbalance to my natural personality and I can't help but respect and admire that, even find it inspiring.
!! eight of coins - https://www.tarot.com/tarot/cards/eight-of-coins/rider
[[Previously.|2019.12.01 - courage and work]]
Now I'm working hard on my philosophy and wiki shit. I look forward to seeing what I can build with my fine-honed skills, even if philosophy isn't my strong suit.
https://super.seekrit.club/propaganda/1527382490767.jpg
Who is the monadic here, the unseen human, or the bird? The Monad is crude and tasteless, it destroys and deconstructs. But it is also primitive, primal; it can punch above its weight class. Even ignorant of the meaning of your words and actions, you can be monadic. Perhaps the bird's "really, are you serious?" look is monadic; perhaps both are monadic, the pervert who trolls a bird showing it furry porn, and the disappointed bird.
https://super.seekrit.club/propaganda/atuhetuhetuhetuhetuhethu.jpg
PERFECT! The monadic is obvious here. The one who refuses to do the expected; his vaporwave is a true expression of the Monad. I love this.
https://super.seekrit.club/propaganda/JmgdjGw.jpg
Yes! This is it! The Apotheosis! The monadic may have paid a lot of money for the football ticket, is taking up a seat that would otherwise be taken by an enthusiastic fan. But he rejects this, and selfishly plays Nekopara, an anime titty game. All hail the monadic! He has in one swift move shat on every single person in that stadium.
Make sure you don't go on 4chan's /tg/ board.
Make sure you don't go to the share thread.
Make sure you do not go on re brand dot ell why forward slash ~ShareThread
Make sure you do not download pdfs from there.
!! Explain how to play your favorite game.
Get some 20 sided and regular 6 sided dice. Roll 3d6 in order for your six attributes: STR, DEX, CON, INT, WIS, CHA. Choose fighter, thief, wizard, or cleric. Choose the martial or adventuring equipment. Name your character. Tell me what your character does, and I'll tell you what to roll and what happens.
!! three of cups - https://www.tarot.com/tarot/cards/three-of-cups/rider
Ahh, here's a nice card to draw on Christmas eve! It's the importance of family, and coming together.
Merry Christmas, dear reader!
!! What would you do if you would stay 25 forever?
Well, I actually passed 25 at a recent birthday, so...
Haha. I'd learn lots of languages and use my immortality to guide society in a better direction.
!! queen of swords - https://www.tarot.com/tarot/cards/queen-of-swords/rider
An intelligent and independent woman, holding her sword aloft. She knows her shit and knows what she's doing. A great card to draw, though personally I'm actully rather reliant on my husband ;)
My first top 8 in fnm today! I got 7th! A great sendoff for my red/blue drawing deck. Next week, it's time for the debut of my black/green adventures deck!
Life has been very busy recently. I've not had much time for the wiki.
!! What would happen if you threw a piece of trash on the ground? What if everyone did?
If I did it? Alone? Not a big deal, in TN it'd probably just blow inland or eventually decompose. However, the second part of the question is the important bit. If it's normalized and happens often, the sea fills up with plastic trash and it negatively affects wildlife. It's actually a huge problem already. For example, sea turtles try to eat plastic bags that have made their way to the ocean, because they look like the jellyfish that make up their diet. This in turn kills them.
I think it's important that we do something about this. We live on a very beautiful planet, but we're squandering that and destroying it through our own carelessness.
!! the-hanged-man - https://www.tarot.com/tarot/cards/the-hanged-man/rider
A difficult card to interpret. Check it out: He's tied up, restricted. I look at this a little like blocked chakras. Perhaps it's holding oneself back. Have I been holding myself back? Maybe. I'm a cautious person. Maybe I have to be bolder and more daring.
!! Should there be a dress code in places such as school, restaurants, and places of business? Why or why not?
Fuck no! Wear whatever you want. Don't let the school fascists tell you what you can and can't wear. Come to work with a mohawk. Go to school in a bikini. Dress codes are a remnant of a shitty time in our history and are best left there.
!! the-hermit - https://www.tarot.com/tarot/cards/the-hermit/rider
[[Previously.|2019.12.14 - hermit habits]]
> The challenge of The Hermit card is to be able to recognize a teacher in a humble disguise. This font of mysterious knowledge will not make it easy for the student to acquire his wisdom, as it takes time and long contemplation to fathom what he knows. He often speaks wordlessly, or in ancient and barbaric tongues, communicating with the elements, animals, and nature herself.
We can learn a lot from the weirdos on the fringes of society. Think of gurus and ascetics, madmen and philosophers. This is pertinent to this wiki for sure!
I'm beginning to think the RNG on here is biased; I'll have to think of a way to generate a tarot card with dice.
One of the problems I had with ITTO was that it had a pulpy victorian setting rather than straight fantasy. Well, someone's hacked it to be fantasy instead :D. Check it out.
https://vladar4.github.io/itdr/
Glad I managed to get one in for new year's eve! Here's to an awesome 2020, everyone!
!! When you are angry, how do you look?
I've been told that I'm very scary when I'm angry. Like people are legitimately afraid I'll hurt them. Not likely, I'm a pussy, haha. I just have a really loud voice and a good working knowledge of gutter language!
!! ace of cups - https://www.tarot.com/tarot/cards/ace-of-cups/rider
Had to mill the hanged man for this one. The RNG is definitely busted.
My cup overflows! As we know, the cups represent emotions, especially love, kindness, and empathy. This here is a very good omen for the new year. I'll be spending it in friendship and communion with those I love.
<<list-links "[prefix[2020.]!sortan[]] +[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* This was a terrible year for the outside world and, realistically, a mediocre year for the wiki. However a lot of good stuff happened, including the Trifecta:
*# I got my green card
*# Trump lost
*# I got a job
* I don't know why my motivation to update the wiki has been so low. I've not even been doing [[Wiki Review]]s frequently.
** It might just be the general darkness of the world atm, combined with my natural reclusive nature.
** I'm trying to keep my creative outlets going as much as possible. There's always something I can be doing to push back at the abyss.
*** I've even started writing a new story. My speed at sprintos is back; I even broke my WPM record!
** The break did help.
* "On This Day" is a cool mechanic (stolen, of course, from [[Sphygmus]]).
* I think this year was less about creating and more about incoming stuff, y'know? Reading, fandoms, [[Music]], [[Religion and Spirituality]]...
** That my ability to write fiction has come back could signal that it's time to return to creative endeavors; that this year will be one of creation to contrast with 2020's year of consumption.
** I barely mentioned it on the wiki, but this year I consoomed a lot of teevee:
**# A:TLA rewatch
**#* Ah yes, the pain of Tokka not happening all over again.
**#* ...but I'm more into Sokkla now.
**#* ...and I find myself actually enjoying Zutara, which is weird to me, I never much liked that ship before.
**#** Maybe because of allied ships. The Zutara trifecta was usually Zutara+Taang+Sukka. They underestimated my boi :(
**#* If Sokka could bend he would rule this show. It would become "The Legend of Sokka (and his pal the Avatar)"
**# Community
**#* Really really good show. It's shameful that I wrote this off as "just a sitcom" before.
**# Sabrina
**#* It has the same energy as Buffy. I think I prefer it slightly?
**# FMA:B
**#* Finally. It was interesting seeing the resolution to the metaplots + the many mysteries of the show revealed.
**#* ~GoT shoulda taken notes.
**# TNG
**#* Finally! It was good enough to get Mags hooked as well, so we've been binging both it and DS9. It's better than I remember.
**#* We only watched a handful of s1 & s2 episodes. There are deffo some good ones, but most of them suck hard.
**# DS9
**#* TNG was really just setup for this. The best Trek show bar none.
**# [[Twin Peaks]]
**#* There was a fish. Iiin the perk-uh-latr!
!! Monthly Reviews
<<list-links "[prefix[2020.]!sortan[]] +[tag[Journal Review]]">>
!! Journal Entries
<<list-links "[prefix[2020.]!sortan[]] +[tag[Journal]] -[tag[Journal Review]]">>
<<list-links "[tag[Daily Tasks]!sort[title]] +[prefix[2020.01]]">>
* Didn't get around to doing my [[h0p3-work|2020.01.15 - h0p3-work]] yet
** I have never in my life done homework on time ;)
** [[Senpai]] ≠ sensei ;) ;)
* Lovely to see my wiki evolve over time. [[Monadism]] is getting there.
* [[Deconstruction Obligates Reconstruction]] - slowly understanding this and applying it.
* I really do listen to chill music now I guess
* Nobu and Zodai both are lovely cuties
** I actually do have an FTO page: [[Cute, fun, interesting, etc.]]
* Monadism has interesting implications for [[Waifuism]]. Watch this space.
* [[2020.01.18 - Hypertext reading]] and [[2020.01.04 - these might interest readers of my wiki]] are worth checking back on
---
<<list-links "[prefix[2020.01]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]]">>
!! If I could change one thing about my spouse/lover, what would I change?
[[Konata]] or [[The Abyssal]]? :P
I wish my husband would do more chores, but considering I'm home alone atm it's probably fair for me to do most of them. I wish I could help him more with his mental health; I'm supportive but I'd like to really push that over the edge to "cured" for him. I'm not sure I can do this for him, sadly; my own mental health has only improved through my own pushing, despite the support of other people. So I'll have to support him, but ultimately becoming stable will have to come from within for him. That being said, it's gotten wayyyyyy better since we've started dating. He used to be too shy to even come on VC or turn his camera on.
!! ace of wands - https://www.tarot.com/tarot/cards/ace-of-wands/rider
[[Previously.|2019.11.05 - heroes]]
Another ace, and a great start to the new year!
> An Ace of this suit in this position symbolizes a pivotal act, or fateful step, that will set loose a chain of events leading toward your desired goal. It refers to a birth or new beginning, the inauguration of an endeavor, and the building of the necessary commitment to see a project or plan through. It personifies an aroused Will that is totally focused, aiming at the bulls-eye.
Yeah, this is a badass start to the new decade. This is a new dawn and a new start. I'm glad I didn't draw the Tower or something!
Could throw myself even further down this rabbithole by building my own... https://keyboard.help14.com/
!! What are a few qualities you dislike in other people, and why?
!! temperance - https://www.tarot.com/tarot/cards/temperance/rider
* https://www.buzzfeednews.com/article/katherinemiller/the-2010s-have-broken-our-sense-of-time
* https://www.buzzfeednews.com/article/katienotopoulos/how-we-killed-the-old-internet
Maybe [[kickscondor]]?
!! In your opinion, is Global Warming real? If so what is causing it? If not why is everyone so hyped up about it?
There's no "opinion" about it, there's just being incorrect. Climate change is real, an existential threat, and is caused by human action.
!! page of coins - https://www.tarot.com/tarot/cards/page-of-coins/rider
I think this is my first Page. Usually it's a kouhai or has some kind of learner energy? And with the coins suit, this is learning about either money or labor.
Maybe I need to study some more economic theory? Or just learn to balance my books, haha.
Looks fun
* https://wiki.srb2.org/wiki/SRB2Kart
* https://hyuu.cc/
* https://www.youtube.com/watch?v=l_yPxmcfdOI
I really haven't been feeling up to doing these recently. I'm feeling a drain on my creative energies from some as-yet-unknown source.
!! Why do you think the rules you must follow are good or bad?
Some of them are good. I don't feel the need to, for example, murder or sexually assault anyone, so I'm going to follow those rules for the rest of my life. Some of them are bad. Copyright is morally indefensible and nothing but a force for stagnation in the world, and thus I don't respect your "property".
!! judgement - https://www.tarot.com/tarot/cards/judgement/rider
I very, very rarely draw this card. In fact, for a second then I forgot it existed.
<<<
The Judgement card, sometimes called "Resurrection," represents the great reunion that the ancients believed would happen once in every age. This was the time when souls are harvested and taken home to their place of origin, outside the solar system. Then the world is seeded with a batch of new souls and the process starts over.
From a modern point of view, this great reunion -- which includes every personality that you have ever been and every soul that you have done deep work with -- reunites to consciously complete the process. In a way, we symbolically celebrate this returning to center every year on our birthday.
In personal terms, the Judgment Tarot card points to freedom from inner conflicts, and so clear a channel, that the buried talents and gifts of past incarnations can come through an individual in this lifetime. This card counsels you to trust the process of opening yourself, because what emerges is of consistently high quality. You can effortlessly manifest as a multi-dimensional being, and assist in evoking that response from others.
<<<
Hmm. Some kind of spiritual reunion, then? Or freedom from inner conflicts, hum hum... Maybe this refers to "unblocking the chakras", so to speak, the idea that some internal limitation has been lifted and that salvation is near. This is one to think on and come back to.
Stretching the definition of the word "Daily" here.
!! Where would you go to relax and why?
Usually, a comfy chair or sofa, somewhere quiet where I can read or write in peace. I would like to have a cool PC-free office like old-school political figures to do that sort of thing!
Much as I don't really agree with his politics (vulgar leninism) I think Trotsky had the office game down pat: https://demerjee.files.wordpress.com/2016/09/i-wn96wc5-2562x1708.jpg it looks comfy but productive.
!! queen of coins - https://www.tarot.com/tarot/cards/queen-of-coins/rider
[[Previously.|2019.12.12 - teach and share]]
Relevant to the discussions the husband and I have been having about work. The queen of coins, matriarch of the worldly Coins suit, here raises and cares for her coin. This is what I must do. I will keep WorkFor in mind to have something to... well, work for.
!! How do you feel when you're leaving home on vacation?
Hmm. Depends where I'm going. I went on a vacation to Morocco once and really didn't like it; I had huge culture shock and couldn't relax, and was eager to get home. But contrast that with going to Portugal, when I was eager to head out there and very reluctant to return.
!! the-lovers - https://www.tarot.com/tarot/cards/the-lovers/rider
This is obviously about sex and relationships. My husband and I have been working together on things recently and I feel like our marriage has grown stronger as a result.
Got my updated resume done. It desperately needed it, since the last version is from early 2016! If I'm going to be part of the capitalist hellscape, I might as well put the effort in.
!! How do you make ice cream?
What a strange question. I'm sure Wikipedia has your answer there ;)
Now, "how do I ''serve'' ice cream" is a more interesting question! I love sundaes so I will often be found serving ice cream with a dash of strawberry sauce and some marshmallows & candy. I also love milkshakes and make my own at home; it's pretty easy, just blend a few scoops of ice cream with a cup of milk.
Ice cream is a great dessert because it's easy to serve and even easier to store. It's why many restaurants often only serve ice cream for dessert.
!! seven of swords - https://www.tarot.com/tarot/cards/seven-of-swords/rider
Smarter, not harder. You can mentally prep yourself in an underhanded way, like this clever chappy stealing the swords (logic and mind). Preparation helps here, but there's something to be said for the power of improvisation and winging it. I'm pretty good at this sort of thing :)
If you roll dice over each other, e.g. d66, but DON'T care about the order of dice, the number of possible outcomes is the triangular number, i.e. 1+2+3+4…N where N is the number of sides. So for 6 it is 21.
https://en.wikipedia.org/wiki/Triangular_number
!! What does "holds water? mean to you?What is your first memory?
Well, I guess it means an idea is solid enough. Like "watertight". Speaking of, I discovered as a child that Lego is //not// watertight when trying to build boats or submarines.
!! two of wands - https://www.tarot.com/tarot/cards/two-of-wands/rider
Patience and observance. Making decisions.
The wands often have the least to do with what the suit actually represents, afaict. But here it's an obvious connotation of action and adventure. Can I find my way through this difficult world? I need to plan what happens next; I need to be patient.
I'm sure it's been fun for those that watch my wiki carefully to watch one of the oldest, and most core, tiddlers evolve. [[The Last Waifuist]] is perhaps unique. It started out as just that title. The idea fascinated me. I thought about it, and some of what is now written in the article came to me, and was crystallized. The article has been grown organically. As far as I recall:
# "Is ten years long enough to say you have a Waifu" is the oldest part. This paragraph is (probably) what lead [[h0p3]] to create the chameleon-dialectic art that has adorned my [[Root]] tiddler ever since.
# "Ahh, but there's an elephant, is there not?" was (probably) written later. I think this was after I talked to my husband, or possibly [[Zodai]], about it. I wanted to get across that despite the aggressive name and nature of the article (I am pretty much saying, on the surface, that I am the only real waifuist, hahaha!) that it's a razor, a tool. It's not a literal claim to being the last one, but a reflection on the limits of trust online and off, a realization that my waifuism will likely be unlike anyone else's.
# I think I wrote "It is possibly a given that the waifu community will always attract the insincere;" afterwards. This plays on the theme of insincerity (called "casual" by waifuists) that the piece riffs on.
# Today I responded to gpt2. I've nothing much more to say than what was said in the article itself.
The main other area of my wiki as fascinating as this is the [[Monadism]] section, and that's pretty quiet right now. It will likely similarly evolve. Perhaps tellingly, I decided [[The Last Waifuist]] belonged there.
Maybe these thoughts belong on the article. It's ergodic literature, really. It needs footnotes and commentaries. If I could find a waifuist with a brain and a drive to think like h0p3's (or the man himself, if he could) then it would rule to have them comment on it.
https://bimlas.gitlab.io/tw5-kin-filter/
```
h0p3Today at 11:32 PM
Homework time for you then: https://bimlas.gitlab.io/tw5-kin-filter/
I think that is the beginning of something quite powerful (doing the gelbooru thing and more!).
h0p3Today at 11:33 PM
I don't see anyone else using it, and I don't know why (maybe you have to have enough tags to see why it's amazing or something?).
I'd love to see you explore and build your wiki in virtue of it (perhaps even pointing out how that tool needs to evolve. I know bimlas would listen very carefully.)
```
Related tags! Now this I can get behind!
Perhaps ({Dreams}) I can see
* Overall [[Development Levels]] for various [[TOC]] tiddlers
* Categories/tags that are mostly the same (merge candidates)?
* Where links will need to be strengthened/weakened
Either way, my homework ([[h0p3]]-work) has been set!
!! If you won a million dollars but had to give it all away, who would you give it to and why?
Mermaids, to flex on glinner. Like hbomb on speed.
!! two of wands - https://www.tarot.com/tarot/cards/two-of-wands/rider
Twice in a row. It really wants me to talk more about this card!
I've written a program to sort waifu directories. It's still under heavy development, but you'll soon be able to find it at my sourcehut: https://git.sr.ht/~japanoise/waifusort
I've been humming and harring about how to learn imguis for a while now. This seems like the perfect opportunity!
So a delinquent girl is called "sukeban", hmm hmm~
!! What do you think should be done to keep people who are under the influence of alcohol off the road?
Do I look like a cop to you!? I don't know. I don't know what the thought process is. I don't know whether some kind of punishment-based deterrent would work. People often assume they won't get caught.
I suppose the best way would be some way to deter the act before it happens, by removing the motivating factors that override the knowledge that it's dangerous. Things such as having a designated driver in your party or staying at a hotel or whatever.
!! six of wands - https://www.tarot.com/tarot/cards/six-of-wands/rider
Is the wiki applauding me for getting waifusort into a working state? Haha, I wish. Nah, this is just a classic card for victory and the likes, as well as respect and acknowledgement. Probably I have that in 2dl.
I finally got round to putting her reply on the wiki, after asking permission to post it: [[2019.08.17 - Nobu's reply]]. No real title since it was plaintext rather than hypertext. It's a lovely letter, though.
Writing letters and receiving them is wonderful. I noticed that Austin Mcconell, a youtuber I watch religously, [[has opened a PO box|https://www.youtube.com/watch?v=CXRdlSasBQM]] and is accepting letters. I should write him. That would likely be more private than here on the wiki, though, unless maybe I got him hooked on wikispace too =w=.
I should also find some email correspondents. Long ago I used to send big, junky emails to my close friends which were part stupid narrative, part fandom joy, part good ol' having fun. They're probably long since lost to time, but I might still have them buried in the depths of my old personal email account.
Man, I'm thinking I need my own FTO page now. Hahaha. I have [[People]] but that's just various folx, including fictional characters and the semi-mythical Buddha.
!! Look at yourself in the mirror and describe what you see.
My face. A slightly chubby young woman with long, dark, wavy hair. I have a scar slicing through one of my thick eyebrows, and big brown eyes. My nose is a little too large but I really like my smile. I have a very round face!
!! ten of wands - https://www.tarot.com/tarot/cards/ten-of-wands/rider
[[Previously.|2019.11.03 - kamehameha]]
The ten of the suit is often the unbalanced one. He's struggling with the staves here. Is this a warning not to take too much on? But all the same, it looks as if he's going to reach the castle with his staves. Perhaps I can do more than I currently do. Perhaps there's more going on than I realize.
I just got back into writing today, and I already have reading homework to do!
* https://hackernoon.com/guidelines-for-future-hypertext-systems-647b6a10f7dd
* https://hackernoon.com/an-engineers-guide-to-the-docuverse-d080cdbb73a6
!! Have you, or your family, ever been effected by war? Describe how.
One of my paternal great-grandfathers (we called him the Big Cheese) was in the British army in the tail end of the war. He had all sorts of tall tales from his time there. On the maternal side, my grandfather narrowly escaped being blown up by a V2 rocket when he was on a train during the war.
We've been lucky ever since then. WW3 (mercifully) didn't come yet, and none of my family has joined the armed forces since WW2.
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
NO! I WON'T TAKE THE CUP!
I think this is about refusing help/empathy, actually. It's a good card, haha. Maybe it's scolding me for not going to pre-release 2: electric boogaloo.
!! Tell about a time when someone made you feel bad about yourself. What did they do and how did you react?
I had a lot thinner skin as a kid. I got mocked for the usual reasons - I was an awkward kid. I really didn't want to go to school as a result. I had a period when I was 7 or so where I feigned illness every day because I couldn't bear to go to school.
I am glad those days are gone. I don't put stock in people like that and their opinions any more.
!! justice - https://www.tarot.com/tarot/cards/justice/rider
[[Previously.|2019.12.18 - watch out, here it comes]]
Someone has shown up in 2dl who is older and more balanced than me. Maybe I have something to learn myself in this situation. Calming forces. I'm still mercurial and immature sometimes. I will all the same always strive to bring justice and a calming influence to my friends.
(exit stage left: [[2020.01.20 - the endless fuckwaltz of the humble chameleon]])
"""
Minorin: OK what just happened!?
Ai-chan: I don't know, but somehow I think it'll be us clearing up the boss' mess. Again. Tsk. //She pets her crow.//
Kaho: C-Cheer up everyone! I'm sure the Mistress didn't //mean// to make a mess?
Minorin: Mean or no mean, it's us who has to clean it up!
Kaho: I don't think she's mean!
Minorin: That's not what I mean!
Kaho: Wah! Stop calling people mean!
//Minorin pinches the bridge of her nose.//
Minorin: Look, let's just clear up here and go, alright? If the Mistress notices us chattering again...
Ai-chan: Hey, lookie here! I found me a penny!
Minorin: A penny?
Kaho: Penny for your thoughts?
Ai-chan: Nah, I just found it. You ain't gettin' it. It's lucky, see?
Kaho: Lucky for who?
Ai-chan: For me, I hope!
//Noire the crow looks fascinated by the shiny penny. Ai-chan puts it in her beak.//
Ai-chan: Anyways, back to work!
!! If you could take home any animal from the zoo, which would it be, and what would you do with it?
Maybe a cute goat from the petting zoo. I could be like that guy from Nichijou.
"Don't mind the goat. Is there anything I can help you with?" (the goat starts chewing on the interlocutor's possessions)
I thought I might keep goats if everything went pete-tong and I needed a way to stay alive in the world.
!! the-sun - https://www.tarot.com/tarot/cards/the-sun/rider
This is good-ness and self-actualization. A good card to draw.
Lately I've been getting back into my creative stuff. It feels good. Like I'm still alive and I'm still able to do the things I care about.
* dumb shit gets posted
* dumb shit gets passed around
* dumb shit gets dissected
* dumb shit gets called dumb
* dumb dumb retracts dumb shit
* chameleon [[alone|Monadism]] recognizes the genius in madness
* the cycle continues
!! Should people be prohibited from smoking in certain places?
Both back home and here in the USA, there are laws preventing you from smoking in most places. I broadly agree with these. Being near smokers in a restaurant is never pleasant. There's also the issue of places where smoking would be actively dangerous, like around fuel or other flammable substances.
I don't smoke any more. I did, for the period of about a year. It helped me relax when I was with the ex; so I quit shortly after leaving her.
!! nine of coins - https://www.tarot.com/tarot/cards/nine-of-coins/rider
Living comfortably. This is one of the enduring images from the rider/waite tarot cards. The bushes of the woman's cozy retirement home are buttressed by coins, representing material wealth. We can obviously read this in a leftish framework; this is the fruits of privilege. Notice that she's wearing a glove to allow the bird to sit on her hand - this is no disney princess, but a falconer with a hawk on her glove. Another mark of great riches. Falconry is not a hobby for the masses.
To be sure, I'd prefer all of us to live in relative security and luxury. Could we? Maybe. That's a deep topic, far too deep for a simple one-card tarot reading. Read Das Kapital and the Bread Book.
!! What has been the most fun activity at school so far?
I graduated from school, and university, long ago. I struggle to remember what I enjoyed the most - probably practical experiments in science class, making things in Art and Shop class, free computer time (even basic programming) in high school or the practical programming tests in university. These were fun, but I'd've much rather been at home, or out having fun with my friends. I treasure what I did learn at school and the experiences I had, but I'm glad it's over.
!! the-tower - https://www.tarot.com/tarot/cards/the-tower/rider
Speaking of things being over... The blasted Tower is one of the most dynamic, destructive cards in the Tarot deck. This signifies the end of something, destruction, even death.
In my own life, it's been a sign of rebirth and renewal before. It's a good card to draw to signify the end of things. I hope this isn't a bad omen :/
I figured I might as well ask the man himself. He's pointed this gap out to me before, so I started to take it seriously. I'm going to build on this.
----
"""
[[chameleon]] Today at 10:55 PM
I want to understand [[DOR|https://philosopher.life/#Deconstruction%20Obligates%20Reconstruction]], have you written anything specifically on the topic or is it something I'll have to figure out?
[[h0p3]] Today at 11:05 PM
I have nothing production ready.
chameleon Today at 11:05 PM
hmm
fair enough
h0p3 Today at 11:05 PM
There's plenty in the wiki to reason about on the topic.
What draws you to that one?
chameleon Today at 11:06 PM
I deconstruct a lot
but I don't seem to reconstruct much :wink:
h0p3 Today at 11:07 PM
I think that is a fair assessment.
This is one of my problems with postmodernism. It takes the modernist's pursuit of certainty and perfects it, taking those principles to the Nth degree, leaving nothing.
Buddhism, particularly the Shock Koan approach, has that disintegration too.
You sometimes joke about Saint Kant with respect to his moral philosophy, but many consider his epistemology to be the Copernican Revolution in philosophy (where we are all now forced to respond). What comes after Kant is continually optimized deconstruction. No one seems to be able to stop speaking about what is called the ineffable or attempting to experience or reason about the noumena. Deconstruction of metaphysics (sometimes couched as The Linguistic Turn) is the popular approach since Kant.
Metamodernism is hoped to be the fitting response to the dialectic between modernism and postmodernism (which seems to cycle again and again in historical discourses).
I take that {[[axiom]]} to be a metamodern one, a [[hope]]ful one (it might actually be deduced and not an axiom itself, but I'm playing it safe for now).
It tends to be much easier to destroy something than to create. A lot of academic philosophers just do that with their work. Even their creations are just sequences for self-destructing.
This problem runs deep. If you are going to be fair and thorough in deconstruction, you don't even get back to reality. It's functionally no different than truth relativism. It's not easy to put down tentpegs which survive the desert storms.
chameleon Today at 11:24 PM
damn, lots to think about here
I think I need to kopipe this to my wiki ...
more and more I'm like "y'know, if I'm not careful, I'm just going to be replicating h0p3 here"
I thought about doing a [[Find The Others]], even!
h0p3 Today at 11:25 PM
I saw that.
To be fair though, even I am replicating the work of others. [[FTO]] is an extremely ancient idea. I'm ripping that straight out of hospitality norms, cultures, and moral reasoning.
I think our work is unique but mostly unoriginal (and, I'm proud of the fact that my work isn't original: standing on the shoulders of giants).
chameleon Today at 11:28 PM
hehe, I wrote [[Guestright]] about hospitality
partially it's to explain to the Abyssal why I bow my head respectfully when my relatives pray, despite my not-so-private disdain for christianity
h0p3 Today at 11:29 PM
Yes, I think [[Guestright]] is pointing directly to it! I like that one a lot.
I totally see that too. I would even argue that you extend that exceptional hospitality to me many times.
I always want to reach out and tell you how much disdain I have for those who call themselves Christians as well. Even most of those who call themselves Christian in my life do not discuss the topic with me often. The novel-letter to [[DeathOfRobinhood]] has been an important marker. I am, of course, interested in your thoughts on it.
chameleon Today at 11:39 PM
it's intimidating! I've only skimmed a skimming of it
h0p3 Today at 11:44 PM
I do my best not to push you hard here, btw. I don't know if you know that. I'm merciless with most people in this space, but I respect that you actually have the courage to wade into the deep end here so openly, publicly, and vulnerably. Even when I disagree with you, I hope to kindle your fire because I respect your method. I wish everyone did it; it's so fucking hard to do.
chameleon Today at 11:47 PM
there's the risk with something constructed autodidactically, that if it's pushed too hard at an early stage, the whole thing will collapse
maybe I need to work on my foundations :wink:
(thank you by the way. I am honored to call you senpai)
h0p3 Today at 11:50 PM
I can appreciate that problem, I would argue. I cannot say that my own foundations are well-developed (mine sit in shambles, imho). Idealists hold themselves to a high standard (often into skepticism), and we both are going to have structures collapse and experiments fail. This is why [[DOR]] is so important. Don't give up.
Sometimes, I think [[DOR]] is related to: [[Do It For Her]].
chameleon Today at 11:52 PM
it may well be, interesting connection!
do it for her is existential, in some sense
"""
!! What are some examples of prejudice?
Transmisia, homophobia, sexism, racism - the usual suspects. Also worth pointing out that among LG people that should know better, biphobia is often a thing - look out for such treasures as "fucking bisluts".
Prejudice is all around us, but I don't believe the myth of its inevitability. People are more malleable than the biotroofs gang like to make us seem. I wouldn't listen to them.
!! judgement - https://www.tarot.com/tarot/cards/judgement/rider
As opposed to the Justice card, this is a biblical final Judgement.
> Let go of your past. The future welcomes you with a bounty of growth and change.
That's a comforting thought. To me this is what it's like to have moved to America - I have a new beginning and a new life here. I've left behind the painful legacy of back home. I'm starting to really get settled here, though I still have to get my paperwork sorted and get a job!
The Virgin Christianity: [["Sex is for married heterosexual couples only," says Church of England.|https://www.theguardian.com/world/2020/jan/23/sex-married-heterosexual-couples-church-of-england-christians]]
The Chad Buddhism: [[Tanzan and the Buddha]]
!! What is something you are optimistic about?
I'm optimistic for the future in general - I reckon I'll be able to get a job pretty easily once my green card/work permit comes in; my life is going pretty nicely in general with plenty to look forward to. Can't really give much more specific of a reason than that, haha.
!! the-world - https://www.tarot.com/tarot/cards/the-world/rider
Despite naming a previous [[Daily Tasks]] entry "za warudo" I haven't actually drawn this card yet.
<<<
The goddess of The World card invites us into cosmic citizenship -- once we come to realize our soul's potential for it. It announces the awakening of the soul's immortal being, accomplished without the necessity of dying.
This card, like the Sun, is reputed to have no negative meaning no matter where or how it appears. If the Hermetic axiom is "Know Thyself", this image represents what becomes known when the true nature of self is followed to creative freedom and its ultimate realization.
<<<
Lacking anything negative makes this card actually pretty boring, if a good one to draw. Probably a great omen for the future, at least.
The virgin 2010s [[chameleon]]: harsh noise, heavy metal, free jazz, grind
The chad 2020s chill-chame: city pop, lofi, anime OSTs, 80s love songs
!! Describe a fair, parade, or festival you have attended.
Dad and I went to the fair when I was younger. We got hot donuts, watched the fireworks, and chatted about stuff. It's a very early memory so it's kinda fuzzy, but it's one of my happiest memories of back then, haha.
!! the-hermit - https://www.tarot.com/tarot/cards/the-hermit/rider
[[Previously.|2019.12.30 - hermit dress]]
Yeah the rng is definitely giving me this one a lot!
> Give yourself time for contemplation. Don't allow others to stand in your way.
Isn't that the nature of the wiki? I could use it in total isolation if I wished to. I use it in public to allow like-minded folx to learn from me and think alongside me.
!! Which talent would you most like to have?
Drawing! I wish I could just y'know, draw now, without spending 10 years practicing. I don't care about it enough to actually practice and draw thousands of shit pictures before I can draw good ones, so I guess I'll never learn. It sucks, but it's whatever, I have other talents, and I have friends who can draw instead. Now that the internet is a thing, I can even commission artists to draw all the anime-style bullshit I could ever want anyway.
!! the-devil - https://www.tarot.com/tarot/cards/the-devil/rider
So the devil is all about taboo and the breaking thereof. My very existence is transgressive, so I have to become familiar with this side of life. I'm actually pretty chill with regards to most things - I don't use drugs, but I'm not a narc.
The devil, the left-hand-path, is the ideology of freedom rather than the restrictive norms of Christianity. That's certainly up my alley.
!! Who did I run in to today that I would like to spend more time with?
Bit of an FTO question, this, eh?
I wish [[Zodai]] and I had more time to chat about stuff. She's been very busy recently. New VN coming out and all that.
[[h0p3]] has been busy recently. He's moved to a new state, which is a pretty big deal (not as big a deal as crossing the atlantic ;) but he does have a family to care for) and thus letter writing and stuff seems to have stalled on his wiki. That's understandable. He'll get back to it when he's ready.
!! queen of coins - https://www.tarot.com/tarot/cards/queen-of-coins/rider
[[Previously.|2019.12.12 - teach and share]]
> Be confident that if you express your truth, you will not have to worry about the consequences. You will remain safe and sound.
Speaking the truth (especially speaking truth to power) can be dangerous. It's only relatively recently that free speech protections came in, and even in countries like the US with very strong such protections, leftists are regularly harassed and attacked for speaking truth.
The whole "free speech" thing is very misunderstood, too. You don't have to publish everything that everyone says if you're a website. Much as I hate Twitter, Facebook, et al, they're well within their rights to remove hate speech. The slightly libertarian proviso that "if you don't like it, make your own website" is, for once, fantastic advice. The nazis eventually gave up their disingenuous free speech defense (show them the evidence that their pet racial theories are a load of bullshit and see how much they care about free speech then) and instead moved to platforms like Gab, where even odious little shits like Milo Yabbadabbadoopolis don't dare to tread.
https://todon.nl/@policeinchains/103546191276692225
<<<
"""
There aren't many more futile projects than being an atheist rationalist. Rationalism, as a philosophy supporting objective validity of rationally made statements or of human understanding, is
a) literal nothing without belief in god, it would stay in cogito ergo sum and would not escape solipsism and nihilism because unconditional certainty is not empirical, it must be supra-empirical and it is for literally every philosopher of this school from descartes to hegel hence the "reason" of rationalism,
b) let's say that's not what these fuckers mean by rationalism and they actually imply the opposite school and they implied Empiricism (which they also sometimes use to describe themselves), then this whole scientific absolutism schtick wouldn't hold because from Locke to Hume they weren't averse to relativity as if it was plague.
c) What they actually support is a mixture of Cult of Science of early positivists and science-as-mirror-of-world of logical positivism.
"""
<<<
I decided to just copy senpai and add a [[New]] tab to the sidebar. It works pretty nicely. Maybe I should also change the macro to the cool clicky version he has.
!! In what ways do you sometimes wish to act to be a better friend, but don't? Why do you find yourself unable to do these things?
Reaching out and talking to people, i.e. initiating the conversation. This is very hard for me over the internet. I tend to keep relationships fine if I can see them every day (like school or work) but lose them very quickly if I can't see them. I'm shy and worried about bothering people or turning them off me by being annoying. Part of being friends with [[h0p3]], and indeed [[Nobu]] before him, has been learning how to do this.
!! four of coins - https://www.tarot.com/tarot/cards/four-of-coins/rider
[[Previously.|2019.10.21 - æ]]
<<<
A Four in this suit has been used to express the paradoxical aspect of material security -- the two-edged sword of having been well supported and protected. It sounds completely idyllic until one investigates the real demands that prosperity places upon people -- the pressure of big decisions, responsibilities toward dependents or employees, and even tougher decisions in times of insecurity.
<<<
The Sword of Damocles... it's the burden that, (supposedly) in a world in which money is a function of power, is bestowed on the rich and powerful. Well, yeah, being an ancient or mediæval monarch would be burdonsome; being able to kill thousands with an idle word is some burden. Still, is the burden of difficult decisions worth it, to live a materially deeply comfortable life? I think most of us would say yes.
A frequent, misunderstanding criticism of anarchism is that there will be no hierarchies at all and no authority of any kind and thus that everything will fall apart. I don't think this understands the anarchist mind. Remember, anarchists are against //unjustified// hierarchies.
[[Zodai]] and I have a fluid approach to hierarchies. I jokingly call Zo "boss" when it comes to moderation duties, since she's more even-minded and patient than I am. But to Zo, I'm the senpai when it comes to waifu stuff, since I've been a waifuist for about twice as long. That's the kind of hierarchy that's justified.
Kicks linked to a few I already knew about, and some I didn't:
* https://txt.fyi/
* https://rwtxt.com/rwtxt/about
I actually run my own (find it on my domain for the epic prize of "I might chuckle slightly") and have played with others like https://termbin.com and dpaste.
!! What do you think courage means?
Doing the right thing in the face of (seemingly) insurmountable danger. Ordinary heroes are my best answer to this; the pilots of [[US Airways Flight 1549|https://en.wikipedia.org/wiki/US_Airways_Flight_1549]], who saved over 150 lives through their actions, are a good example. They even got [[a synthwave song|https://www.youtube.com/watch?v=-DSVDcw6iW8]] written [[about them|https://en.wikipedia.org/wiki/A_Real_Hero]]. Stories like this are inspirational and give me hope for this planet.
!! queen of cups - https://www.tarot.com/tarot/cards/queen-of-cups/rider
[[Previously.|2019.11.30 - dislike]]
> Traditionally, representing the energy of a Queen, this card traditionally portrays a sensitive, vulnerable, omniscient woman who offers unconditional love. She is supremely empathic -- sometimes to a fault. Her caring nature exposes her to everybody else's emotions and needs.
This is a bit flattering to actually apply, haha. I may try to be a good friend and all, but I'm hardly omniscient. Right now I already have a problem of not communicating with [[Sphygmus]] enough, which I'm going to have to do something about ;;
http://theanarchistlibrary.org/library/jason-mcquinn-demoralizing-moralism-the-futility-of-fetishized-values
<<<
Only by developing and maintaining a self-critical understanding of oneself and one’s world can people make comprehensively rational decisions about what their most genuine interests are and how to pursue them (rather than making narrowly or partially rationalized decisions which won’t accurately reflect themselves or their overall context). In the 19th century language of Max Stirner, this kind of critical self-understanding was termed “self-conscious egoism,” but today it makes more sense to jettison this outdated, pre-Freudian term in favor of “self-theory.”
Critical self-understanding involves the simultaneous development of a finite ethics, a set of values consistent with what are considered and felt to be one’s most important interests, that are expressed in everyday life activities. These values are organic expressions of one’s radical subjectivity, of one’s self-possession, self-understanding and self-activity. They don’t originate outside of one’s life, demanding one’s subjection, because they originate from one’s own direct life-experiences and serve one’s own interests.
<<<
Is this perhaps, an answer, or a hint at an answer, to [[Deconstruction Obligates Reconstruction]]?
!! How do you feel when you do something wrong?
Guilty and eager to do better. Making mistakes is part of growing up, part of [[Monadism]]. You must make mistakes in order to learn from them.
!! six of wands - https://www.tarot.com/tarot/cards/six-of-wands/rider
[[Previously.|2020.01.16 - drink and drive - d&d]] I ended up doing exactly that, and sorting my waifu folder pretty nicely! An empty sortme is a pretty sight.
> Fearlessly act on your convictions and others will be inspired to support your ideals.
The family motto: "Fortune favors the brave". I hope people will be inspired by me and what I get up to, haha. My convictions lead me to write about my take on morality. I have started the reconstruction of [[Deconstruction Obligates Reconstruction]]. A lifetime of laughing at, ripping to shreds, and peeing on other people's pleb philosophies has lead me to work on my own ;)
Thunder strikes. A challenger appears. h0p3 has noticed:
<<<
my wrestling style is violent, and I don't think that's what <[[Sphygmus]]> needs (conversely, that's precisely where chameleon and I are going, and I think it will be useful to her)
<<< [[2020.01.28 - Wiki Review: Big, Fat, White, Nasty Smellin', Fat Bitch|https://philosopher.life/#2020.01.28%20-%20Wiki%20Review%3A%20Big%2C%20Fat%2C%20White%2C%20Nasty%20Smellin'%2C%20Fat%20Bitch]]
I imagine a [[Real Philosopher|Real Waifuists]] is going to tear my muddy, autodidactic shit to shreds. He already found holes in [[another Senpai's|David Chapman]] (I thought) compelling writing. Such is life. I'm not a trained philosopher and never will be. I can't make my shit stand up to that kind of critical eye. I just hope that somewhere in the ass-reaming [[Monadism]] is about to get, something constructive can be added to it ;)
!! What is your favorite book and what do you like most about it?
Bruh. This is actually pretty hard. Maybe the Hobbit? I've reread that a bunch of times. Or Catch-22? The most a book has made me both laugh //and// think.
!! knight of swords - https://www.tarot.com/tarot/cards/knight-of-swords/rider
I don't often seem to draw knights, so my associations with them need some building on (pages and knights both are my weakest cards; even more than e.g. the Sun or ZA WARUDO).
<<<
This card is traditionally entitled The Knight, but in some modern decks appears as The Prince. Traditionally, this card portrays the restless mind, aroused by thoughts of offense and defense, storming around searching for a target to pounce on. He often feels slighted, has a chip on his shoulder and bristles with a hostile attitude. His usual method is to look for someone to blame for his irritation.
<<<
The knight here is restless and ready for action. Remember that the sword in the tarot deck is logic and mental prowess. So in brandishing his sword, this knight screams of a restless mind - an agitated mind. It's me in the last few days, smacking down hundreds of words! However, my ends are constructive whereas this knight seems more combative, even destructive. Still, the advice is worth taking on board. If I'm active in mind, I should also beware of the ends to which my mind is being put.
Breathtaking. A must-watch. https://www.youtube.com/watch?v=5FcNYFtZhnI
As always, don't read the comments. In this case they're full of butthurt tankies and assorted other MLs failing to see the point of the video and not liking that their braindead ideology is crumbling around them.
<<list-links "[tag[Daily Tasks]!sort[title]] +[prefix[2020.02]]">>
* Wiki rice this month
** Sphygmus helped me with colored links, and I ~~stole~~ borrowed the rest from h0p3.
** Looks glorious. I love it.
* [[Monadism]] crystalized and making sense.
** ToDo: reread der Einzige
* Lots of VC and other fun this month.
** I said to SaltyFox that my life has basically been about learning how to be a good friend.
* Need to take better physical care of myself. Go to gym more, get a daily walking habit going, cook healthier, etc.
* Wiki review daily task is great. Cool to comment on my wiki as it takes shape.
* Tech thoughts and [[dadgum]] on the backburner
** I wonder if I should speak to all my [[Senpai]].
*** I wonder if [[David Chapman]] would speak to me over emails/wiki. We're working on some of the same things.
* DeathOfRobinhood went well, but I stalled on the book tour.
** Just got so much to do recently.
---
<<list-links "[prefix[2020.02]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
!! Should students be required to learn a second language?
Yup, and what's more, they should get a free choice (within reason). Here's some good candidates:
* Spanish, for "communicate with lots of people" appeal, and ease of learning from English.
* German, ease again, and also because it's a good language to think in.
* Japanese because I'm a weeb (as are many children & teens)
* Mandarin in case the Chinese empire expands even further
* Latin or Ancient Greek to sate the classicists (also because they're beautiful and important languages)
* Farsi so that [[Shedu]] doesn't scold me
Learning a second language has many many benefits. It helps you to understand that other people may think differently (perhaps very differently) to you; it gives you a sense of perspective on your own language; and it opens you to a new media landscape (knowing Spanish, I can read Spanish news, translate Spanish fiction, and watch Spanish movies). It's also fun to curse in another language, especially since your parents won't understand ;)
!!! ''¡¡¡HIJOS DE PUTA!!!''
!! page of wands - https://www.tarot.com/tarot/cards/page-of-wands/rider
Alright, we drew a page! This energetic young man seems to be looking forward to his new adventures. He's looking to the future and what he has potential to become. He's independent, charismatic, and adventurous. He will be a great leader once he's gotten his experience and skills together.
This will likely take multiple hours.
# take down all services. Warn users.
#* bnc
#* irc bridge
#* nginx
#* pastebin
#* bots
#* mc
#
```
sudo -i
tmux
cd /
tar cvzf ~/backup-$(date +%s).tgz /var /etc /home
^B D
```
# Come back in several hours
# scp down the archive
# Complete migration (see email)
#* Remember to either set up users as before, or keep old user shit around for migration.
# Note: IP addr may change. You may need to fix your dns (hover) and your ssh aliases.
# Probably want to restore backups piecemeal (remember, fstab is in /etc). Untar them in ~ and move stuff in as necessary.
!! I wish there were no more.....
I guess the stuff from "Imagine" works pretty nicely here. No more religion? No more wars? No more sodding //money?// That'd be great. I guess we're working on one of them at least (the decline in religion is comforting to watch) but we don't seem to be much closer with the others. That sucks. I'll oppose war at every turn, and hey, maybe some day we can do away with the structures that govern our life and make us all miserable, maybe??
!! the-tower - https://www.tarot.com/tarot/cards/the-tower/rider
[[Previously.|2020.01.22 - the end]]
The disaster of this fucking tower seems to be OVH. Give me my new VPS already fuckers! (Yes, it kind of is the end of things with them. At least for my classic VPS. Thanks for 5 years of faithful service :) )
> You are the one to serve as a catalyst for change.
I HAVE THE POWER TO CHANGE THE FUTURE
Pretty confident about my [[quick primer.|A Quick Primer]] I've marked it LevelTwo now, the heap of "it's done, but it's not ready" articles =w=.
Thinking and writing about monadism has made me very happy, actually. It's like when I first read meaningness, but it's actually got a conclusion to it, it's wrapped up within the article, rather than percolating over a period of years. I'm happy with that much.
I might write him over on letter.wiki to talk about it.
I'm really not sure what I've got to gain from reading ~DeathOfRobinhood's correspondence with h0p3. He says a lot of things I just find cringeworthy. If anything, I have to catch myself to not allow my baseline of contempt for Christians and Christianity to turn into a full-throated hatred.
Still, Senpai thinks I'll get something from it, so here I stand.
!! What is your opinion of someone who has bad manners?
It depends. There are many different interpretations to the phrase "bad manners". Some are just ridiculous - there's nothing wrong with slurping your food imho, it's even considered polite (shows you're enjoying it) in some Asian cultures. I also sometimes appreciate someone who's willing to tell it how it is; I hate the tippy-tappy around things like having your fly undone or having something on your face. It's much better for someone to tell you outright than to imply it or ignore it and make you look stupid all day.
I do think there's some situations, however, where manners are important. See [[Guestright]].
!! two of swords - https://www.tarot.com/tarot/cards/two-of-swords/rider
The image here is actually close to a traditional view of Justice. Much like Justice, this is about being careful before taking decisions.
<<<
The Two in this suit usually represents conflicting ideas or visions. These must be reconciled by communication in order to arrive in a harmonious place or to complete strategic negotiations. Mixed signals prevail.
While they may be appearing to try to communicate, opposite sides are missing each other entirely, with possibly drastic consequences. In the best case, a frank discussion would clear the air and serve both sides, but one cannot expect that in every instance where this card appears.
<<<
I like this interpretation. This is what I meant about "the marketplace of ideas" in my DeathOfRobinhood thoughts.
!! Where do you think you will be in five years?
~~relaxing on the beach~~ I don't know. Lots could change in the next few years. I hope to get a job this year so with any luck I'll have a bit more money than I do now.
My dream is to live off the grid, but that's going to take some time (and some convincing to my husband, haha).
!! the-fool - https://www.tarot.com/tarot/cards/the-fool/rider
The fool! Yes! It's the first time drawing this classic card, apparently.
I love this one. It's one of the most evocative and famous images in the entire Rider-Waite deck, if not Tarot in general.
It represents new beginnings and positive change. Though, watch out! There could still be trouble if you're not careful - observe the fool being dangerously close to the ledge!
!! What is most important to you in a friend?loyalty, generosity, honesty?why?
Honesty. I mentioned before about how I like it when people's manners are bad enough to say "There's food on your face".
!! eight of coins - https://www.tarot.com/tarot/cards/eight-of-coins/rider
[[Previously.|2019.12.23 - inspiration unknown]]
> The Eight of Coins in this position recommends that you focus on your main project and produce as much as you can, while staying healthy. This is an important time for meeting goals. However, do not work so hard that quality suffers.
ATM I'm working on forum software. I want the waifuists to have somewhere safe to post stuff and talk asynchronously. I could use imageboard software, especially since such a thing as a database-free imageboard already exists; however, I'm having a lot of fun implementing a slightly more traditional forum instead. The trick will be hardening it. It's bash-cgi at the moment, which is a very kooky way to do a webapp in 2020, but it works! Even if it can't stand up to a production load, I could always scratch it and use a dockerized modern solution (several exist).
c.f. nihilism, existential angst, depression, "miserabalism", loneliness, Doomers.
https://www.psypost.org/2019/09/study-existential-isolation-linked-to-increased-death-thought-accessibility-54347
Hello [[h0p3]],
Thought I'd send a quick reply to your [[@]] and clarify a few things.
> I appreciate that you are so thoroughly and charitably considering my correspondence with DeathOfRobinhood. I'm sorry if it makes you sad or angry.
Eh, sadness and anger are fleeting. They pass in time. Part of learning to live with my mercurial self (I feel things very strongly and often very loudly!) is not hanging onto them too long. That's one of the things [[The Buddha]] has taught me and which I cherish to this day. I cannot seem to stop myself feeling things strongly, but I can stop myself from hanging onto them and ruining my day. So, there's no need to apologize.
> I totally get how it feels alien (I think I'm often an alien speaking with aliens). I'm grateful that you would spend so much energy digesting it; if it turns out not to be fruitful in our relationship, I apologize.
I feel there's some pearls here I hadn't seen when I wrote that journal entry. I think I made a snap judgement at too early a phase. Consider it venting to myself ;)
I'm soldiering on with it, cracking jokes and having fun. I think I'll get to the chickenscratch next, but I'll save actually doing it for the weekend when I have more time for wiki-ing. In the meantime, don't worry about this little chameleon, I'm more resilient than I look!
"""
Your friend,
~ chame
"""
!! If you could return in time to a set time to relive it, but not change anything, what would you choose and why?
Time is a flat circle, eh?
I don't know. This is probably the hardest and most interesting prompt I've seen so far.
I have many regrets in my life; but many happy memories as well. Maybe summer 2017? University?
Or can this be outside of my life? Could I go to say, the 70s and see the Dead live at their prime? The Paris Commune? What a fascinating question.
!! the-devil - https://www.tarot.com/tarot/cards/the-devil/rider
[[Previously.|2020.01.26 - drawing the devil]]
Hail Satan again! I mentioned on DeathOfRobinhood's page that I'd yelled at street preachers before. One of the things I yell is "HAIL SATAN".
> The Devil Tarot card expresses the realm of the taboo -- the culturally rejected wildness and undigested shadow side that each of us carries in our subconscious. This shadow is actually at the core of our being, which we cannot get rid of and will never succeed in taming. From its earliest versions, which portrayed a vampire-demon, The Devil evoked the church-fueled fear that a person could "lose their soul" to wild and passionate forces.
Such is the problem in these religions. You can't excise the part of your personality that wants to embrace the things you're told not to do. [[We are all monsters.|https://buddhism-for-vampires.com/we-are-all-monsters]]
!! What's your most treasured memory from high school?
I don't have that many. Like many geeky women, my high school experience left a lot to be desired. Probably getting my final results and graduating (straight As, like all my compulsory education).
!! page of cups - https://www.tarot.com/tarot/cards/page-of-cups/rider
Our second page - another feminine one. This one is an emotional, sensitive person prone to flights of fancy; perhaps it's me? I'm very emotional and mercurial.
!! If you were to die today what would like people to say about you?
I don't know. Other people are eternally unknowable. I can only guess.
I imagine my [[People]] would be sad; maybe my wiki would be taken as a document of my life by my correspondents. They can say about me "at least she died satisfied with her life" or something like that.
!! nine of cups - https://www.tarot.com/tarot/cards/nine-of-cups/rider
[[Previously.|2019.12.03 - lenny]]
<<<
The Nine of this suit is sometimes titled Happiness, but it is also known as Victory. The image on several versions of this card often shows an innkeeper doing a brisk business and feeling very happy about it all.
The rewards of high achievement are not all monetary, however. This happiness also refers to the feelings of fulfillment that come from good service to the community and support of one's family, as well as gratitude for all the blessings in one's life.
<<<
This card, when I think more on it, isn't as deep as it's made out to be. It is community service; it is satisfaction with what you've been gifted with. I think I'll mill if I get this card again. I have nothing to add.
!! Tell about a friend you have with a different national background.
I mean, I'm from a different anglo country than the US but most of my friends are from the US... but that's a little boring. [[Shedu]] is from Iran, now that's a different culture. It's not what you might think though; there's plenty of wild stuff that goes on there. For example, homosexuality is considered a sin, but gender transition is not.
!! the-magician - https://www.tarot.com/tarot/cards/the-magician/rider
[[Previously.|2019.12.10 - magician's money]]
> Waite's image of The Magician as the solitary ritualist communing with the spirits of the elements -- with its formal arrangement of symbols -- is a token of the freedom we have in modern times to declare our spiritual politics without fear of reprisal. The older cards were never so explicit about what The Magician was doing. It's best to keep your imagination open with this card. Visualize yourself manifesting something unique, guided by evolutionary forces that emerge spontaneously from within your soul.
I love the bullshit aura of magic that the Tarot cards have, even if actual tarot users say "yeah it's basically a Rorschach test - I mean, 'mirror of the soul'".
I tell people I read Tarot cards and they look at me like I'm a wizard, even though it's mostly just a kick-off point for cold reading.
My magical talent is my mind, I guess.
!! Wiki Review
* [[kopipe]]
** Maybe I should make this a category.
* [[the chickenscratch confession booktour]]
** This will take me a while. I have so much more to do today...
* [[2020.02.08 - happiness in victory]]
** Boring card with nothing to work on.
*** I think lacking context, most tarot cards struggle to be meaningful.
** I will eventually have to just pick tarot cards that I've not seen, or even do three-card readings
*** This is having the desired effect of making me better at doing readings.
** I could start doing questions or discussions with [[2D]] folx using Tarot cards
I think I'm going to steal from Senpai and start doing a wiki review daily task.
This hits the spot for me. It's like my life, spent datahoarding and collecting information.
https://www.youtube.com/watch?v=MjY8Fp-SCVk
!! What would you do if you could stop time?
` ←- TO BE CONTINUED `
Well, putting aside lewd things...
Haha. I could become a wizard. I could do magic shows but without actually having to practice. Like pulling a rabbit out of a hat - I'd show my empty hat, turn it upside down, ZA WARUDO, put my rabbit in the hat, RESUME TIME, remove the rabbit from the hat. Amaze.
I could stop time from passing and practice something during the non-time. I could have a lie-in even on ~~school~~ work nights. I could get ridiculously good at sports like soccer by fucking with the other players.
Stopping time is pretty much the best superpower, let's face it.
!! page of wands - https://www.tarot.com/tarot/cards/page-of-wands/rider
[[Previously.|2020.02.01 - fils de pute]]
> This card is traditionally entitled the Page, but in some modern decks appears as a Princess. This archetype is that of a unique individual, a nonconformist, often something of a bohemian, definitely independent by nature. He or she requires little in the way of affirmation or approval. Perhaps a mischief-maker, often an innovator or inventor, the energy represented by this card will only serve others until he or she figures out how to get others to serve him/her.
A public self modeler? He exists in defiance of what he's told to do. He doesn't want to be a part of this society. He's [[going underground|https://www.youtube.com/watch?v=AE1ct5yEuVY]]. I like this.
!! Wiki Review
* [[Programming Resources]]
** "Fucking function pointers" is great. 10/10 resource.
* [[Wiki Review]]
** Just [[kopipe]]'d h0p3's template. I'm sure I could do better, but that's enough for now.
* [[2020.02.09 - wiki review]]
** Pretty fun. Wish I'd done this a while ago.
* [[2020.02.09 - rorschach]]
** Reading tarot is fun and exciting. I might've made it sound a little less amazing than I think it is.
I've got a nasty cold rn. I can't be doing with life.
!! Describe your father's personality in a short journal entry.
Dad is computationally extremely intelligent - much more than me, and most other people I've met. He's calm and focused; he rarely loses his temper or raises his voice. He's had a huge influence on my life, from my work in [[computing|Computing]] to my love of [[music.|Music]]
I look up to the ol' man a lot.
!! king of cups - https://www.tarot.com/tarot/cards/king-of-cups/rider
> Support others with your strength and wisdom.
That sounds an awful lot like my father.
!! Wiki Review
* [[2020.02.10 - The Soul of a Library]]
** Wonderful video. Probably worth a rewatch.
* [[2020.02.10 - ZA WARUDO!!!!!]]
** Much shorter tarot analysis recently. I blame my cold.
!! Which person would you like to see more often than you do now?
My various [[Senpai]], but especially [[Nobu]] and [[Shedu]]. Both are very important to me and it's a shame I don't speak to them more often.
!! the-world - https://www.tarot.com/tarot/cards/the-world/rider
[[Previously.|2020.01.24 - optimism]]
Let's continue this tradition by not naming this one za warudo ;) I did that several days ago with not-the-world so why not.
Much like the last entry, I'm feeling optimistic in general, despite my ill health and still being on the hook with regards to my green card.
> Be serene in knowing you are succeeding in your goal.
Maybe my programming. It's going so well that I'm going to send a Windoze build to SaltyFox today, if the last feature implementation goes well.
!! wiki review
* [[2020.02.11 - cold]]
** Still feel like shit, but at least I get to be pampered by my husband <3
** As a result of the cold I got into bed at a somewhat reasonable time, but still slept in until the afternoon, lol. Second shift life~
* [[2020.02.11 - pops]]
** I look forward to the next time I can speak to Dad. Truly I need his wisdom right now.
I've been working on my game (tentatively going to leave a dead link here: [[Alibi]]) and really getting into the bones of it; throwing away conventional wisdom as I do.
Conventional wisdom says to use a modern build system; mine is built using a plain Makefile.
Conventional wisdom says there's no need to spin your own engine; I have done just that.
Conventional wisdom says C++, or Lua, or C#, is the language to use for gamedev: I'm using plain ordinary garden-variety C.
There's something meditative about writing C headers; I love their terse explanation of what's to come:
```c
#ifndef _OVERWORLD_H
#define _OVERWORLD_H
#include "state.h"
#include "sdl.h"
void setupOverworld(gameState *state);
void overworldDraw(SDL_Renderer* rend, int x, int y, gameState* state);
SDL_bool overworldEvents(SDL_Renderer* rend, SDL_Event* event, gameState* state);
#endif
```
My only external dependency is SDL; otherwise it's all single-header libraries and hand-hacking. I wrote a shell script to translate Tiled's exported CSV maps to a header-*.c file pair. I love it. THIS is programming. Spinning up a humongous studio program and tweaking little C# nuts and bolts? If it works for you, great, but I'm a ''programmer'', and I work best when I'm ''programming.''
!! What is your most treasured possession?
My wiki, my waifu folder, my laptop, my HDD...
Computer shit.
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
[[Previously|2020.01.18 - the Big Cheese]]
> A Four in this suit refers to a restless time, where a person may have become dissatisfied with life, and emotionally uncomfortable. Feeling stagnated, longing for change, the heart ponders its options ... as it should.
I'm stagnated with my fucking cold rn. I dunno about anything besides that.
!! Wiki Review
* [[2020.02.12 - i miss you]]
** Only one yesterday. The cold sucks.
** SaltyFox really liked the demo
** I really do miss my senpai </3
```
_____ _
| __ \ | |
| | | | ___ __ _ _ __ | | __ _ _ __ ___ ___ ___
| | | |/ _ \/ _` | '__| _ | |/ _` | '_ ` _ \ / _ \/ __|
| |__| | __/ (_| | | | |__| | (_| | | | | | | __/\__ \_
|_____/ \___|\__,_|_| \____/ \__,_|_| |_| |_|\___||___( )
|/
```
I hope this email finds you well; sorry to email you at what I assume is a private account, but I felt obliged to thank you for the writing you did at your blog. I've thanked you previously, using a now-deleted twitter account. I imagine you don't remember it, but you did give me a like, which made my day somewhat (pathetic, I know). Anyways I'd like to get this out in a more permanent form: thank you for prog21. It's both said things I've been thinking for years, and really helped me to re-imagine what I should be doing when I sit down to program. Nowadays, instead of just starting projects randomly, I've been identifying actual issues I have and making programs to solve them. I can't thank you enough. I found your blog just when I needed it the most.
* sorry to mail you, etc.
* phones/tablets
* games
One question I have; since prog21 finished, one of the sites you held up as a positive example, flickr, seems to have been struggling. Is there still a community there, or are you exploring new places to post your photography?
I have a website of my own, https://wiki.waifu.haus/ , but it's not currently open to the public due to some forum drama. Please let me know if you'd like a password to access it and I can send you one.
"""
Thank you,
chameleon
"""
P.S. A copy of this email with hideous ASCII art and esoteric footnotes can be found on my wiki.
!! Should junk food be banned from schools?
Nah. Don't ban things: put a tax on them.
Sure you can have a burger - 10 bucks. The salad is 3 bucks. That way, it's win-win - the path of least resistance will be to take the salad, but if they don't, you can profit off the burger and spend it on extra gym classes or something.
!! nine of coins - https://www.tarot.com/tarot/cards/nine-of-coins/rider
[[Previously.|2020.01.21 - no smoking]]
> This fortunate individual has turned a historical accident into a personal opportunity. This is one who has the vision and strength of character to hold onto gains against all odds. Do not be fooled at the apparent ease displayed on this card -- the person pictured is at the tail end of a long and stressful process of winning the right to be taken seriously. All of this grace has been paid for several times over.
Pure ideology. The bourgeois ideal of the man/woman that uses their wealth for good. I guess like the old Victorian scientist-gentleman. These days being privileged still gives you a leg up in life, but there's less actual landed gentry around; and the ideal of the scientist-gentleman is instead personified by ruthless capitalists that donate to charity, like Musk and Gates. [[The video.|https://www.youtube.com/watch?v=5gnlhmaM-dM]]
!! wiki review
* [[How to program in C]]
** I'm hardly the first person to try, but with any luck, I'll be able to help newbies better than the others
** Explaining pointers will be fun.
* [[2020.02.13 - channeling the spirit of prog21]]
** Going against the grain with my programming is a kind of praxis to me, haha.
** The dirty little secret is that you //have// to ignore programming advice if you're to ever get anywhere.
* [[2020.02.13 - computer shit]]
** I'm really not very materialistic, haha. It'd really suck if I lost my waifu folder though.
** Now I'm lead to think about backups again. I don't think I'll use tarsnap again; while it was very secure and useful for storing stuff between the mahakala->sadhu transition from moving, I didn't think much of the billing scheme in the end, and it was a pain in the ass to use.
*** I really need to get a stinkin' job so I can afford to build that NAS.
Reading [[prog21|https://prog21.dadgum.com/84.html]] yesterday reminded me of [[2019.09.01 - another madnifesto]] and the aborted revolution that was the iphone. Now a mere content-delivery machine, far from the second microcomputer revolution we were promised. I really need to write an article about the failure of the phone to replace the desktop as anything other than a facebook/insta/twitter machine
!! What was/is something that your father considered/considers very important?
Pops cares about a lot of stuff. He's big on working both hard AND smart; he gets deeply into fixing things; but the thing that sticks out to me is testing. He's huge on automated testing like unit tests. When I tell him about a new programming project, tests are the first thing he asks about! I'd love for him to tell [[Lofty]] about why unit tests are important =w=.
<<<
Wow, your dad... he's... actually a decent person?
<<< [[Lofty]]
Lofty poo-poo'd my use of unit tests in writing my chess engine, which has something like 98% coverage (and which Pops was chuffed about).
!! four of coins - https://www.tarot.com/tarot/cards/four-of-coins/rider
[[Previously.|2020.01.28 - being a better friend]]
> An immature person thrust into such a position would lack the perspective to sensibly assess risks and rewards, would be vulnerable to bad advice or surprise developments, and could even put the livelihoods of loyal assistants at risk. This card also can refer to the subtler dependencies that comfort encourages, allowing laxness and self-indulgence to quietly degrade one's reserve of will.
They do say that hardship builds character. I'm not sure; some hardships scar you and leave you damaged. I think people could do without hardships such as bullying and abuse.
!! wiki review
* [[2020.02.14 - dadgum: fanmail]]
** It might just go straight into his spam folder, but goddaminit, I have to do it. Prog21 is too important to me not to thank him properly.
*** A stupid little tweet on stupid little [[Shitter]] doesn't count.
** I might use my gmail and sign off the email proper using my PowerWord. It reduces the power differential a little.
** I will also offer to delete the letter in case he cares about privacy.
* [[dadgum]]
** Can't believe adding him as a [[Senpai]] didn't occur to me sooner.
* [[2020.02.14 - the revolution that wasn't]]
** Knowledge hub [[made a video|https://www.youtube.com/watch?v=6-7FMjYWqqg]] about Apple that's very revealing. I hadn't heard of Jobs' email.
*** Jobs was a piece of shit.
**** Tech Daddy tier list: Musk > Gates > Bezos > Jack > Jobs > the Zucc
**** They say (not unfounded) that the man exuded a reality distortion field. He's [[Charles Manson,|https://www.youtube.com/watch?v=tcJYGJL7zXA]] if Manson went into business rather than cults.
**** His skills were in finding smart people and convincing them to slave under him, while taking all the credit. It's bizarre that only Linux users and the rare breadpilled normie see through his shit.
**** "I'm not glad he's dead, but I'm glad that he's gone." - rms
**** Compare him very unfavorably to the Woz; a hacker's hacker and probably the nicest man in computer science. He doesn't even hold it against Jobs that the scumbag screwed him.
** h0p3 had some interesting thoughts on this, see his [[@]]
*** `/wave` :)
* [[2020.02.14 - taxation is a diet]]
** Another option is to serve appealing, but healthy, food. The chicken sandwich at my 6th form cafeteria was a juicy grilled breast in a bap.
** I really don't like that nine of coins, do I?
*** The ideology written into the tarot is an interesting subject.
** I NEED A JOB
*** Or at least some form of income. If only I was hot, I could shake my ass on camera for a few bucks.
I beat Universal Paperclips. I turned the universe into 30 septendecillion paperclips.
!! What makes you laugh?
The absurd, in both senses of the word. Making references that other people don't get (especially to my internet trash - bonus points if it's since disappeared off the net!) and injokes between myself and friends that aren't present. I love puns & wordplay, limericks, gallows humor, and punching up.
!! the-emperor - https://www.tarot.com/tarot/cards/the-emperor/rider
[[Previously.|2019.11.25 - power & privilege]]
<<<
In the most practical terms, The Emperor Tarot card represents the highest leadership, a head of state, or the most exemplary and powerful person in the realm. This archetypal ruler is responsible for the affairs of a society or community, which are directly proportional to his well being and happiness.
The more enlightenment and cosmic perspective this energy brings, the better life is for all. The Emperor archetype masters the world of matter and physical manifestation. When you apply this card to your situation, acknowledge your potentials for mastery. Reinforce a sense of sovereignty within yourself, despite any self-limiting beliefs, habits, or appearances to the contrary.
<<<
He could be a patriarch, but we're postfeminist: he could also be an authoritative woman as well. However, the analysis given here is less so; we're asked to see the Emperor as mastery within ourself rather than of the outside world.
Tarot cards are probably more interesting when analyzed thus; they're the mirror of the soul, after all.
I have started to achieve mastery over myself - I can control my emotions without forcing myself not to feel them, I can understand how my mind is working on things, I can be calm even if there's not much to be calm about. I'm resuming my meditation habit starting today so that I can continue to develop in this direction.
!! Wiki Review
* [[2020.02.15 - Universal Paperclips]]
** So glad to be free of that stupid game, haha.
** I ended up choosing the refuse ending; it's kind of like the genocide ending in Undertale in that it poisons your savegame. So be it. The game could only be fun once.
* [[2020.02.15 - fuck steve jobs]]
** Maybe my longest wiki review yet?
** I had some Thoughts about Jobs. haha.
** There's definitely enough material to write about the promised death of the PC
!! Meditation
I meditated for five minutes unguided using Insight Timer at about 3:15.
I wonder how [[Sphygmus]] gets her category links to be colored in New and Recent. I'm jealous. I'll have to ask her.
I livestreamed my [[Daily Tasks]] to [[h0p3]]. We had a fun convo about the wiki and stuff as I did so. I talked a little about my life and what I've been up to. It was great fun. I'd like to do it again.
!! What do you think makes a good friend?
Different friends do different things for me. For example my [[Senpai]] teach me, whereas I have kohai that I mostly teach. Some, like my husband, have a two-way teach-learn relationship with me. Some have nothing to do with learning at all, but just people I'm comfortable being with, or who make me laugh, or that I care about in some way.
This is probably the hardest question in the list.
!! three of wands - https://www.tarot.com/tarot/cards/three-of-wands/rider
Looks like the famous [[Sea of Fog|https://en.wikipedia.org/wiki/Wanderer_above_the_Sea_of_Fog]].
Similarly:
> Go with your intuition. This is the time to make your move.
is a Romantic sentiment.
I'm Romantic. I feel things very strongly; I follow my heart. Not to the self-destructive level of the Romantic heroes, of course, but I think in some ways it's important to be in tune with that side of myself.
!! wiki review
* [[Breakfast Sandwich]]
** did i mention that it was dry
* [[Snarf]]
** Probably my favourite hacker word
** [[h0p3]] says it reminds him of pinky and the brain. NARF
* [[2020.02.16 - snarf-gmus]]
** https://sphygm.us/#200217%20%E2%80%93%20wiki%3A%20colored%20titles%20%26%20icons%20in%20sidebar%20tabs
** `/wave` :)
* [[2020.02.16 - self-mastery]]
** Good to be meditating again. [[Insight Timer|https://insighttimer.com/]] is great.
** It's interesting how feasible [[Monadism]] has become since I started meditating. I'm able to think on a meta level about what I'm up to. It's a wild insight.
*** CF [[David Chapman]]
!! Meditation
Five minutes after lunch.
!! What are some rules you have to follow at home?
Don't play guitar too late or too loud. Same goes for VCing at late hours. Try to relax on the cursing when something doesn't go your way. Wash your hands. The usual stuff.
I follow [[Guestright]] when visiting other people.
!! ace of coins - https://www.tarot.com/tarot/cards/ace-of-coins/rider
I hate the aces!
> The Ace of this suit is usually pictured with a garden or agricultural backdrop, and symbolizes a seed. If this "talent" is planted and tended carefully, it will sprout and reward you with a good harvest. Think of it as a seed of your future fulfillment. An Ace represents the first step to a goal, and if that step is repeated, it will cover great distances. Generally, the suit of Coins are referring to the tangible realities in daily life, but in the case of the Ace, it could be symbolizing a winning idea, game plan or blueprint for eventual materialization.
At least tarot.com is being very helpful here.
I've just planted a seed for the future of waifuism by starting my own community. I'm putting my theory into practice.
I'll have to think of the aces as seeds and new beginnings from now on.
!! wiki review
* [[2020.02.17 - livestream first]]
** Livestreaming was exciting, and [[Senpai]] seemed to enjoy it too :)
** It was good to hear his voice. It was a lot higher than I expected. He's very approachable over voice.
** It was very kind of him to reciprocate show me his computer (invite me into his home)
** I learned about his CDR process, too, though he didn't livestream that part to me =w=.
** Apparently an antipleonasm is something said as concisely as possible without losing meaning
** And apparently it's no sweat off my back that I don't understand his page on the Good ;)
* [[2020.02.17 - livestreamed DT]]
** Very very tricky prompt.
** Ahh, the Romantics :)
*** https://www.youtube.com/watch?v=OiRWBI0JTYQ
*** https://www.youtube.com/watch?v=jltM5qYn25w
!! Meditation
Ten minutes at 4:15
How did I not know this existed? https://www.youtube.com/watch?v=4Dr6KLoC8aA
* Putting the mask on and hiding your face actually allows you to show your true self
* On civility and vulgarity - the alt-right have appropriated the old left's vulgarity.
** We are the true moral majority
* The only political battle is within the democratic party
** Similar to "the battle isn't between liberals and the left; it's between social democracy and fascism"
** Not too big on incrementalism, but maybe it could work here.
* It's better to make fun of Trump when he's serious than when he's silly
* Bernie can take Trump's votes
* Trump made the current Sanders surge possible
* "Any average prosecutor can find a guilty man guilty. It takes a great prosecutor to find an innocent man guilty."
** Deliciously evil.
!! What is the quality you like most in a man?
Humor, intelligence, good looks? haha. Above all, being [[The Abyssal]], my beloved <3
!! temperance - https://www.tarot.com/tarot/cards/temperance/rider
[[Previously|2019.11.11 - Kill your TV]], [[not done previously.|2020.01.02 - other people]]
> Identify and acquire the ingredients that will most help you complete your mission and leave the rest behind.
I like this prescription ;)
My own temperance is a controlling of my emotions towards ends that I desire, I suppose.
!! Wiki Review
* [[2020.02.18 - zizek goes on chapo]]
** Lots to learn from Zizek-senpai
* [[2020.02.18 - da rulez]]
** Today and yesterday were quiet on the wiki front. I've been doing programming and other stuff instead, unfortunately.
** I will write about [[Alibi]] soon, when it's ready for public alpha release.
*** It's amazing how far through the development process it already is.
!! Meditation
10 minutes after breakfast.
Thanks [[Sphygmus]], now my timelines are fruity pebbles~
[[Here's the guide,|200217 – wiki: colored titles & icons in sidebar tabs]] for those of you reading this.
!! What is the quality you like most in a woman?
[[Blue hair, green eyes, mischievous streak, joie-de-vivre...|Konata]]
Goes together nicely with the qualities I like most in a man from the other day ;) I'm pansexual as fuck.
!!five of wands - https://www.tarot.com/tarot/cards/five-of-wands/rider
[[Previously.|2019.11.13 - za warudo]]
> Identify your passions and build your mission around them.
This is "passions" in the sense of things you care about, rather than the Hume-ish "emotions" sense. The conflicting nature of the five of wands (in this case self-conflict) can be thus put towards the ends you wish to see fulfilled. It's a rare case of a resolution to a problem being built into a card.
!! Wiki Review
* [[2020.02.19 - squeezed in before midnight]]
** Just about got it done. I almost feel like apologizing to my readers for being so quiet recently ;)
!! Meditation
10 minutes after 5pm. I struggled a little today; tail end of the cold has me coughing up catarrh. Gross. Made it hard to concentrate.
!! If you were to write a book, would it be fiction or non-fiction? What would the subject be? Who is your target audience?
I've written both before, though only book (novel) length with a single story, whose target audience was... me!
I could do either, but in particular, once I get a bit better at this whole philosophy thing I'd like to outline my worldview. Probably in a nine-volume opus, haha.
I've written fiction that's appealed to other people before; maybe I could write a book to market to geeks like me, with some horribly cliché story about cute anime girls or something.
!! ace of swords - https://www.tarot.com/tarot/cards/ace-of-swords/rider
[[Previously.|2019.12.19 - secret secret]]
<<<
In the image of this Ace, a single upraised sword represents your prime motive or guiding ideal -- the vision that guides you through life's changing fortunes with single-minded clarity.
The sword is sometimes shown piercing a silver and/or laurel crown, a symbol of optimism implying evolution, progress, a sense of hope and victory. It is occasionally shown pointed downwards -- a darker message, which refers to sacrifice, challenges and a critical environment.
<<<
With the sense of beginning that the Ace implies, perhaps this is the start of sharpening the mind towards one's goals. I like that thought.
!! wiki review
* [[2020.02.20 - Colored links]]
** really good. I love it. The timeline looks lovely now.
* [[2020.02.20 - koff koff]]
** Had difficulties again today, because I needed the bathroom :(
** Funny how these "ideal qualities in a man/woman" questions seem to line up with my partner ;)
!! Meditation
5 minutes at 4:05
!! What do you think makes a good friend?
[[Previously.|2020.02.17 - livestreamed DT]]
I'm thinking as well as what I said before: willingness to reach out, to comfort you when you're feeling down; and of course, you are expected to reciprocate.
!! the-moon - https://www.tarot.com/tarot/cards/the-moon/rider
[[Previously.|2019.11.14 - ghosts]] This last one had lots of Kona in it. How lovely~
<<<
The Moon card refers to a deep state of sensitivity and imaginative impressionability, developed within a womb of deep relaxation. Here we dream and go into trance, have visions and receive insights, wash in and out with the psychic tides, and experience deep mystical and/or terrifying realities beyond our ordinary senses. In a state of expanded consciousness, we cannot always control what happens. The Moon card represents the ultimate test of a soul's integrity, where the membrane between the self and the unknown is removed, and the drop of individuality re-enters the ocean of being. What transpires next is between a soul and its maker.
<<<
So this reads a little like meditation. You could take the Moon's expression to be deep in contemplative thought; the barking of the dogs actually being the noise of life around her, but in meditation she becomes isolated from the noise and chaos of daily life.
> Listen to the body and its unique wisdom. Rely upon your inner resources as your best source of support and security.
Little bit woo (surprise surprise for tarot cards) but still good advice. Sometimes introspection is the right way to go. Compare with the Hermit.
!! Wiki Review
* [[2020.02.21 - chameleon's book]]
** Did pretty OK with this Ace.
** Bookie bookie! I could earn a small amount of money on the side writing naughty stories.
** All my readers seem to love the colored links, including h0p3 and YM.
* [[McMindfulness™]]
** Pretty fashionable topic for [["buddh"ists|The Myth of Buddhism]] to talk about. Needs doing :P I feel like I'm qualified to talk on it; I had an ambivalent (somewhat positive, even) experience with a ~McMindfulness™ teacher.
!! Meditation
Ten minutes at 6-ish
* Might've overpaid tax, file a return (PAYE assumes full working year)
** P45 from previous employers?
** Dad thinks I can do it online
* Parents might have a long-form BC for sending to USCIS
!! If you could build a soundtrack to your life, who would be on it?
Brian Eno in full Ambient King mode. Various city pop and lofi artists. Midwest emos, math rockers, and shred guitarists. Just rifle through [[Music]] and tell me if you see anything!
!!queen of swords - https://www.tarot.com/tarot/cards/queen-of-swords/rider
[[Previously.|2019.12.26 - forever 25]]
> Make your own decisions. Exercise as much independence as you know you can handle.
I'm trying, mom! haha. It does feel like a "hurry up and move out" kinda thing. I already did move out though? I'm projecting weird sentiments onto this question because it's late!
!! Wiki review
* [[Magic_the_gathering_small_pentagon.svg]]
** Pretty crappy, but the best MTG svg I have at the mo. Plus, I don't think it's trademarked (I found this on wikiped)
* [[2020.02.22 - moonyditation]]
** Haven't had the most time ever for wiki recently. Sorry, readers ;)
* [[Commander Deck Checklist]]
** MTG goldfish is great. He's so enthusiastic. It's infectious.
* [[Deck: Sac-so-phone]]
** I love this deck so far. I just need to finish it...
* [[Magic: The Gathering]]
** And so it begins.
* [[2020.02.22 - fun with prompts]]
** This is worth a good laugh or two.
!! Meditation
Ten minutes at 5:54 pm
!! How do you feel during a thunderstorm?
i feel scare and cry. many hug [[hubby|The Abyssal]]. big cry do a stop when hug hubby can.
Yeah I'm terrified of storms. My buddy almost died in one (it blasted the house and left a hole in the wall). My husband isn't, though, so usually what I do is hug him until the storm goes away. He makes me feel safe.
!! the-emperor - https://www.tarot.com/tarot/cards/the-emperor/rider
[[Previously.|2020.02.16 - self-mastery]]
> Draw upon the capable inner resources you possess to get the task completed.
Keeping in mind the self-mastery interpretation we're trying to do for Tarot cards in this cycle, the Emperor is indeed executive function and the focused self.
If I am to do half of the stuff I want to do, I have to focus on it; I have to apply my resources to it. The funny thing is, despite how long our lives may seem, we have a finite time on this earth and a finite (smaller, thanks to capitalism) time to do things we care about. That means I have to approach some things with discipline and focus if I'm to ever hope to get them done, or even to an MVP state.
!! wiki review
* [[2020.02.23 - chame the ost]]
** I think that's the latest I've ever completed my [[Daily Tasks]]. I just had so much going on yesterday.
* [[2020.02.23 - call with parents]]
** Always good to see their faces again.
** I have so much shit to take care of. It's doing my head in x.x
** Birth certificate seems to be OK though.
!! Meditation
Ten minutes. It was intense.
!! What was your first favorite TV show?
I think it was Thunderbirds. Nowadays I'd be like, "pfft, pure ideology" but in my defense I was no older than four at the time.
When you look back at it, it's very Randian. It's the private entrepreneur saving the world through his own volition, rather than through government. I remember hearing in a documentary that it was sexist, as well, but it's been so long since I've seen any episodes that I can't really comment on that through any current lens I have.
Of course, back when I watched it, I didn't care about that. I just thought Thunderbird 2 was the coolest thing I'd ever seen.
!! ace of coins - https://www.tarot.com/tarot/cards/ace-of-coins/rider
[[Previously.|2020.02.18 - da rulez]]
Planting seeds eh?
Well, my seed has started to sprout. We have a little community going, and at peak times it's more active than 2dl. It'd be interesting to go back and compare how active it is with the old #8/mai/ irc channel.
It's interesting to think back to what was going on back then personally. Over the last five years I've evolved from just being another anon to being a linchpin in a lot of these places. I wonder if it's going to reach the point where my theories will be used enough to call a sect of them "konataists" or "chameleonites" or something ;) I prefer that people call themselves [[Monads.|Monadism]]
It will be interesting to see how the seeds I've planted through the last six months of wiki-ing will grow in time.
!! Wiki Review
* [[2020.02.24 - Thunderstruck]]
** I told [[The Abyssal]] about this one when he was feeling down. I think he appreciated it.
*** It's wonderful how we're able to support each other. This is what relationships should be.
* [[One Table to Rule Them All]]
** Glad I found this again. I'm going to cling onto it hard now that I have!
** I thought the pattern was symmetrical but actually I don't think it is. It's still pretty straightforward to remember "6-8 okay, 12 amazing, 2 abysmal"
!! meditation
Five at five-ish. Really helped deal with my tax return stress.
!! Why is important to have good manners?
[[Previously.|2019.11.16 - manners & hard work]]
> Haha. No, it's so that folx know you're trying to be kind, I think.
It's a performative thing. By putting the effort into having good manners (which some people don't bother with, because it's tedious) you show the other person you're willing to restrain yourself for their comfort.
It's pretty good for getting along with strangers. However, as you get closer to someone, you drop the pretense of manners and turn more into your authentic self.
OK now I'm going down the Zizek/Masks rabbithole. New Tiddler Time!
!! ace of swords - https://www.tarot.com/tarot/cards/ace-of-swords/rider
[[Previously.|2020.02.21 - chameleon's book]]
Lots of aces recently. Might mill if I get another one.
> Stay focused and resolute, for you are about to reach your objective.
This is an interesting summary. It seems almost to contradict the sense of seeds/new beginnings that the aces have, by being about //completion// or //achievment// rather than a new start.
If we take it via my own interpretation, considering the sword suit, it's about starting something new that requires (or is made possible) by mental faculties, logic, etc. I do start a lot of projects. Actually finishing them is quite the challenge ;)
If we take it as the tarot.com interpretation, we're literally after the objective, the completion. These contrasts could be a good sign. I wonder if I can finish some of these things I'm working on.
!! Wiki review
* [[2020.02.25 - seeds]]
** Just this one yesterday, but it was quite long.
** Hahaha, this one has Thunderbirds, and the previous was Thunderstruck.
** Monads, or Monadists? I've used the latter elsewhere.
*** Reminds me, DeathOfRobinhood sent me a quick email, telling me not to worry. `/wavefunctioncollapse`.
!! Meditation
5 mins at 4:15-ish. Embarrassing memories bubbling to the top.
I've tweaked the timeline tiddler even more, grabbing some innovations from h0p3's; specifically clicky date links and Unicode decoration. Thanks, j3d1h! Someday I'll pay you back for all this stuff [[=w=.]]
I cloned it, just in case I need to revert it to a previous working state, but for now, I think it looks amazing.
* https://www.lacan.com/zizchemicalbeats.html
* https://old.reddit.com/r/zizek/comments/345mfb/what_does_zizek_mean_when_talks_about_masks/
* https://old.reddit.com/r/zizek/comments/ejcbpd/writings_about_masks/
* https://old.reddit.com/r/zizek/comments/7ixdvr/im_having_trouble_with_a_passage_from_sublime/
* I went to France and went to exchange my USD for EUR. They gave me a huge bag of [[chips|https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fstatic.flickr.com%2F83%2F247371999_08c2ea1fe4.jpg&f=1&nofb=1]] instead.
* My friend drove me around in a rally car.
* It was sunny, then snowing, then possibly sunny again?
* In the snow, in the rally car, we went past a bunch of like, soviet-style brutalist buildings at breakneck speed.
* I was in the army with a bunch of meatheads in Mass Effect-style armor.
* I think I met my family and got the cheap flights (easyjet) home.
** I don't think easyjet does transatlantic flights...
I fixed it! h0p3 gave me a hint, in that j3d1h and he had designed it to only work for the last seven days. That was the key. I removed the sections such as `+[days:$dateField$[-7]!nsort[$dateField$]first[]]` and that seems to have done the trick.
h0p3 and I had another great chat together today over VC. We talked about socialism, the rule of law, cultural differences between here and there, M:TG, and where his name comes from. It had me close to tears, honestly. He's become rather important to me. The thought of him being in a dark place isn't one I want to dwell on. I hope I can be around for h0p3!
!! What was your last dream about?
The last one I remember was weird.
{{2020.02.27 - Chips in France}}
!! three of wands - https://www.tarot.com/tarot/cards/three-of-wands/rider
[[Previously.|2020.02.17 - livestreamed DT]] Only ten days ago! I should call [[Senpai|h0p3]] again.
<<<
This suit, most often called "Wands" and sometimes called "Rods" or "Staves," represents initiative, ambition, drive and desire. This is the suit of enterprise and risk-taking.
A Three in this suit symbolizes an inner balance that allows you to feel more optimistic about new endeavors you are committed to, or want to commit to. In the illustrated Tarots, the human character is standing on his balcony, watching ships leave the harbor, loaded with his goods for far-off ports, dreaming of the fortune he will reap if all goes well. Summon the optimism within you.
<<<
It's interesting how much of my cards recently seem to be about new endeavors and new projects. That's mostly what I'm looking at these days.
I have some stuff to finish (I have to build a new [[Alibi]] demo and send it off to [[SaltyFox]], for example) but I think I'm doing a good job at carpe-diem-ing and getting into the thick of things.
My husband recently expressed envy at all the quote-unquote "cool hobbies" I have =w=. Almost flattered. He has talents I don't, such as songwriting. I've had envy expressed from more than one person about my improvisational skills, but it's the curse of autodidactism that I struggle to compose or to play other people's songs.
Gosh, I'm going off-topic and talking about [[Music]] here, haha. I haven't written any tiddlers in there for a while, but I recently learned a new song. Not sure if I want to wiki about it since I'll likely record a demo.
!! Today's Wiki Review
* [[2020.02.26 - wiki: timeline rice maximization]]
** Timeline is so slick now. I love it.
** Bit of a bug: if you scroll back a few weeks in the history, it doesn't work. Not sure why, and I don't really care to fix it rn. Maybe one of my [[Senpai]] can debug it.
* [[clone of $:/core/macros/timeline]]
** Just a backup.
* [[LambdaMuRinpoche]]
** First contact is way too intense for the wiki, at least until I can untangle it some. Watch this space.
** I know you're reading, precious one.
* [[2020.02.26 - Zizek on masks]]
** Chatted about it with [[h0p3]] some.
** There are times I understand Zizek exactly; this is not necessarily one of those times.
** C.F. [[2020.02.18 - zizek goes on chapo]]
* [[2020.02.26 - completion]]
** Leaving this incomplete as a statement of some kind.
!! Meditation
5:52 for five minutes. Out of body experience.
!! Tell about a time you slept outdoors.
I don't think I ever have! Well, ok, I did sleep in a large tent in France once on a family holiday, but that's not really outside-outside.
Some day I'll answer the call of the wild, I think. Most Buddhists enjoy their time outside; the Buddha himself became enlightened by sitting under a tree, and I've often thought about doing the same. The problem is a mild phobia of insects; many trees have ants and other creepy-crawlies surrounding them.
When I was younger, my then-lover offered to go innawoods together so we could have sex and tell ghost stories out in the wild. I'm unsure of why that never happened. My ex also expressed interest in having sex outdoors in the wild. Perhaps that'd be fun, even exciting. The thought certainly is!
!! seven of swords - https://www.tarot.com/tarot/cards/seven-of-swords/rider
Milled the Ace of Swords.
[[Previously.|2020.01.13 - ice cream]] [[Previous to previously (and relevant to h0p3's and my convo yesterday)|2019.10.24 - money add then multiply]]
> Discipline yourself to stay focused on the desired outcome and you will make your way past all competing circumstances.
Here we see a warrior stealing swords. Careful and sly. Remember that the swords are all about intellectual prowess and the likes; so here we have him passing challenges to succeed with his logic.
Focus is important; important especially for me who's often divided in what she's interested in.
!! Today's Wiki Review
* [[2020.02.27 - holding onto h0p3]]
** The loneliest people are the kindest, etc.
** [[Sliding Scale of Tankism]]
* [[2020.02.27 - fixed!]]
** Never count me out! Haha.
* [[Links: Buddhism]]
** Might be the way to sort my [[Links]]. Waiting on time to have to do a remodeling (not today, FNM).
* [[2020.02.27 - Chips in France]]
** Weird fucking dream.
* [[2020.02.27 - music and chips]]
** We ended up calling :)
** The out-of-body shit is supposedly fine, even good. I'm sceptical.
*** Too much information about meditation online is woo or bullshit from people that have never been taught properly.
*** You also have to consider that buddhism in English has classically been watered down and tinged with protestantism in order to appeal to a mid-century Western palate. It's best, in many cases, to stick to recent translations of original sources.
* [[New Daily Task]]
** Works pretty nicely. Sucks if you have to mill, though =w=.
* [[Chicken Nuggets]]
** I will make these when I have time to experiment and the ingredients
** Mom lost the original recipe, unfortunately, but what she told me should be enough to reverse-engineer them.
!! Meditation
Quick 2mins at fnm.
I played Commander for the first time with [[my own deck|Deck: Sac-so-phone]]. It was great fun! We had copious banter over the table as we played a four-person game. I got owned hard both times (I think I kept mediocre hands, which is a no-no in a format with free mulligans!) but it didn't matter since I had fun.
!! What do you think about the amount of violence on T.V.?
[[Previously.|2019.08.29 - im trying to go to the embassy, but my documents are dummy thicc]]
The apathy has grown. I do not care.
Reminder to Karen to screen what her kids watch.
!! six of coins - https://www.tarot.com/tarot/cards/six-of-coins/rider
> Think of yourself as someone who can assist others in refining their skills and talents and using them successfully.
This is my [[Senpai]]-ness, perhaps? I don't so much act as a senpai when it comes to teaching people how to make the best of their talents; rather, I'm more like a guru or even a therapist, in my experience. My advice seems to help people to feel better about things, be at peace with the world. It's a superpower I'm glad I spent cumulative hours in meditation for :)
SaltyFox was just telling me yesterday that I've helped him to be more calm, and that he'd be flipping tables if he'd had the same conversation with [[Zodai]] yesterday a week ago instead. I'm glad I'm having an influence on him. C.f. [[2020.02.27 - holding onto h0p3]].
!! Today's Wiki Review
* [[Sliding Scale of Tankism]]
** [[h0p3]] doesn't seem to adhere to Leninism proper (or he'd call me an imperialist bougie shitlib anarkiddy) so at worst he's a pseudotankie.
*** I've not seen his political prescriptions except as higher-level (meta-ideological) thoughts. In some ways it's difficult, at first, to come across his political positions (c.f. quotes from my reddit account in his first letter)
*** He doesn't really need to worry about me sneering at him (well, ok, I will sneer at AI, but that's because I know how to program and know that that whole scene is mostly smoke and mirrors).
* [[2020.02.28 - always against the consensus]]
** I will need to use my time more wisely in future, and make time for meditating in the process.
** I really had fun at FNM. My new commander deck rules.
!! Meditation
5 minutes while [[The Abyssal]] got his meds.
<<<
Roughly speaking, for Stirner (and many other philosophers,) morality is ultimately both a religious and social set of principles that is forced upon us over thousands of years that weaves its way into law, valuing, social scripts/norms, the State etc. etc. It is herd mentality in it's highest form.
Over time, religion has moved from a God almighty > to the spirit of God in all things > to all humans are now the embodiment of the spirit of God > and with the enlightenment era, the death of God - man is now God. Only this era is actually still a worship of a mythical, non existent/'always in the future' ideal of what the Human is or what we should be, and it's these thoughts that shape our current morality, our current laws, our current States and social norms (which refuse to deviate from this fixed morality - Liberalism in a nutshell.)
It's also worth mentioning that if we look back on the history of humankind, morality has never been fixed - it's always been changing and if we put a limit on anything, make it static, no form of progress will be made.
The person above you said "rejection" of systems and that's not quite right, it's more that these things do not actually exist unless you desire them to do so, to make them your own property, and to use them for your own individual self. It's not just a rejection, but a creation too.
<<< [[/u/FatCapsAndBackpacks|https://old.reddit.com/r/COMPLETEANARCHY/comments/fawldl/extremely_low_effort_neme/fj25ybl/]]
Someone explaining der Einzige convincingly, concisely, and correctly, and to a relatively hostile crowd, underneath a meme post? Sometimes I think reddit might be okay.
<<list-links "[prefix[2020.03]!sortan[]] +[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* I wasn't able to predict Corona-chan - apparently GRRM has been locked indoors (good for him) working hard on twow. I could, joyfully, be proven wrong.
** Sucks that hundreds of thousands, maybe even millions, will have to die though ._. much worse than "my stupid knights might get an ending" is good.
*** As people have said, there's no way the ending will ever be good enough for the hype. If twow ever does come out, people will hate it.
*** It's not even the ending, either. He still has ANOTHER sodding doorstop to write.
* NFSH has been a constant companion. I got all the ultimate(+) parts!
* I finished BGE at last this month. I'm thinking on what I want to read next.
** I found my nice bookmark!
* Not sure what kicks is onto. Honestly, I feel like I talk past him and he talks past me (I like him, though).
* Jealous of the de-googler.
* Finally deleted my reddit account. I'm hoping it's for good this time. I hate that website.
* SaltyFox is fast becoming one of my best and closest friends.
* It looks like, as expected, the "post-modernists" have a lot more interesting things to say than their internet strawmans have you believe.
* Wish I could have more contact with h0p3. Maybe I should vc him again.
----
<<list-links "[prefix[2020.03]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
<<<
I'll always vote for the most leftist thing on the ballot, but I'm not really out here doing any serious praxis. I just can't right now.
<<<
I get that you are limited in what you can do. I think of you as being in a survival mode, biding your time waiting for all the paperwork to eventually go through, still setting up a life with your hubby. You have quite a bit on your plate, no doubt.
I would argue that you do have non-trivial praxis though. For example, I think you visit the digital shut-ins and the weirdos^^tm^^. That's leftist praxis. You have a good ear for many people in the world who are dismissed, persecuted, and profoundly atypical. You thrive with the weird. I think your Discord servers (and other mediums) demonstrate you really do care about a lot of people who don't seem to have many others who care about them. [[That|https://wiki.waifu.haus/#2020.02.29%20-%20karen]] is non-trivially serving people.
<<<
* I'm starting to get more previously-s in my prompts. I wonder if this is the point where I'll have to rethink having the prompt there.
<<<
I'd be sad to see them go. I am interested in the kinds of initial objects or prompts which pull us onto our screens well enough. It's a place for experimentation. Maybe you need a wider variety of prompts?
<<<
* I could start doing an Antipleonasm Analysis-type thing. I would like to have more and different things to talk about.
** My wrestling depends greatly on my opponent. I don't enjoy trying to get into other people's headspaces/systems as much as h0p3 seems to, since it's so hard for me to do. This is the great flaw with e.g. my DeathOfRobinhood page.
<<<
I think [[Antipleonasm Analysis]] gives that unique wrestler-dependent feel when you need it (though I often generalize to have no specific speaker). It does open up what one talks about. It picks out things. I think it's a very expensive log to write (even if it doesn't look it).
I often enjoy trying to understand other people, but not always. Sometimes I do it because I think I should, even if it's not enjoyable. I don't think I'm any better at it than you though. I would argue that we all have groups of people that are easier for us to understand than others. Moreover, you obviously have taken the time to think about many perspectives; it's an expensive thing to do. It seems to me that you also spend a significant portion of your time coming to understand people who would not otherwise be well understood. You give "degenerates" the time of day with consistency.
<<<
With the wiki review, I'm wondering if I should split up the tiddlers the same as h0p3 and Sphygmus do. I'm writing more and more in these tiddlers, and I might be starting to really get into it.
<<<
I have no idea how to atomize and molecularize structures in the wiki well enough. I like being able to search more effectively (in a couple ways), the directness of auditing, and the ability to see which processes are taking up the most computational resources. This can easily be taken too far, and perhaps mine is too atomized. I just don't know. My assumption is that the fitting arrangement is heavily particularized to each person here.
!! I wish there were no more.....
[[Previously.|2020.02.02 - imagine no change]]
~~sodding aces for me to pull~~
I liked the answer I wrote before. This world is sick, and symptoms of its sickness manifest in many ways. The sickness is capitalism. The cure we do not know; much argumentation has occurred over the years on this front, and I'm unsure it's going anywhere. The hope is that Bernie will win so that we can get some gradualism going, since the likelihood of an actual radical movement in the West isn't very high - that's where the third-worldists come from, I suppose.
I almost don't want to care about politics any more, but that's not possible; as Vaush says, "politics is dumb but very important". I've reached an introspective point in my life. I'll always vote for the most leftist thing on the ballot, but I'm not really out here doing any serious praxis. I just can't right now.
!! ace of cups - https://www.tarot.com/tarot/cards/ace-of-cups/rider
[[Previously.|2019.12.31 - nye cups]] [[Previously to previously.|2019.10.22 - material girl?]]
> Remembering that each person and event may possess a precious gem hidden inside. Make a conscious effort to find it.
It's a sweet sentiment, maybe saccharine. In our last VC h0p3 talked about how he used to have pacifist motivations, but that some people are evil and must be fought. c.f. Rorschach, who I've been thinking about recently: he took the view that there is good, and there is evil, and evil must be fought and punished. It's reflected in the Doctor, but Rorschach's view of good and evil actually includes nationalist ideas; this is something that I believe should be fought, due to my leftism, see [[Ideology]].
It's true that friendships can be gained, and lessons learned, in the strangest of places. I met h0p3 in sneerclub; I met SaltyFox in 2dl; and my husband in the old waifu community. [[Oh, messy life.|https://www.youtube.com/watch?v=cI7Hb1HJECA]]
!! Today's Wiki Review
* [[2020.02.29 - karen]]
** I'm starting to get more previously-s in my prompts. I wonder if this is the point where I'll have to rethink having the prompt there.
*** h0p3's reason for having these is because they help him to actually write something. I wonder how much that's actually necessary for me, especially when I've got the tarot cards to talk about.
** I could start doing an Antipleonasm Analysis-type thing. I would like to have more and different things to talk about.
*** My wrestling depends greatly on my opponent. I don't enjoy trying to get into other people's headspaces/systems as much as h0p3 seems to, since it's so hard for me to do. This is the great flaw with e.g. my DeathOfRobinhood page.
** With the wiki review, I'm wondering if I should split up the tiddlers the same as h0p3 and [[Sphygmus]] do. I'm writing more and more in these tiddlers, and I might be starting to really get into it.
*** I could also add a Carpe Diem/Carpe Tempus Segmuntum section there.
* [[Theory of Reddit]]
** Writing down some of the thoughts I had during my last VC with [[h0p3]].
* [[2020.02.29 - quick summary of der Einzige]]
** Incredible summary. Really, shit like this is what makes me think Reddit could possibly be saved.
* [[2020.02.29 - Commander first]]
** I will probably play again next week. I think it depends on whether T is there and what B is doing.
** At the same time, sticking with Standard to play with [[The Abyssal]] is an idea.
!! Meditation
Ten minutes at 5:15-ish
The surroundings of philosophies, especially religions, are not the thing in itself. The story of the Buddha, for example, is not the philosophy of Buddhism. These things are trappings - "cultural nonsense". But it's not that there is one truth; it's that to convey a philosophy, an idea, a method, you need to convey it in a way you can understand without already understanding the thing in itself.
!! What is your favorite journey?
[[Previously.|2019.08.22 - Quiet Stroll]]
I think the answer I gave then was the correct one; I really like quiet strolls through areas with pleasant natural surroundings. I like meeting dogs (and their owners) and parents; I like enjoying the fresh air; I like maybe taking my skateboard for a spin.
Ahhhh, spring can't come soon enough!
!! justice - https://www.tarot.com/tarot/cards/justice/rider
[[Previously.|2020.01.19 - bbbbb]]
> The Justice Tarot card has to do with moral sensitivity and that which gives rise to empathy, compassion, and a sense of fairness. Since the time of Solomon, this image has represented a standard for the humane and fair-minded treatment of other beings.
I wonder about Justice and moral sensitivity. I've drawn it many times, but I have an ''a''moral streak; or at least a negation of moral philosophies. My senpai watches me like a hawk here. I joked that my wiki will make me look like Muke "One Book" Xexizy here - with my One Book being der Einzige.
I seem to have drawn this card a lot. I think this speaks to my long-standing path (past decade) of wrestling with moral hypotheses and structures.
!! Today's Wiki Review
* [[2020.02 Daily Tasks]]
** This series is really just a silo for old DTs. I wonder if I should exclude it from wiki review.
** I've done well with them this month; and I've expanded them to more than two tasks - four now, and thinking about a fifth!
* [[2020.02 Journal Review]]
** Talk about one book...
*** As of yesterday evening, my reading of the moment is actually Beyond Good and Evil. Nietzsche is insanely good; and the interrelation between him and Stirner has been commented on before
**** [[Monadism]] is a master morality.
** Should get back to the chickenscratches.
* [[2020.03.01 - trappings]]
** I'm sure there was a youtube video about this (most likely that slippery devil sadhguru) with the phrase "cultural nonsense".
* [[2020.03.01 - introspective]]
** h0p3 sent me a note about this one, but me being an idiot, I forgot to import it; now I've lost it in the flood of IM updates. Oof.
** I suppose the question is (as h0p3 said) about atomization. Do I want my daily tasks all in one place, or do I want them spread across the
* [[this community is afraid of me]]
** A funny shitpost.
** I should make one about the waifu community.
!! Meditation
Ten minutes at 5-ish.
* [[Bitter Wokescold CALLS CHAPO BOYS NAZIS in Unhinged 120-Tweet Tantrum (COINTELPRO Approved)|https://www.youtube.com/watch?v=Z2kK8C8qIAc]]
** Love Vaush and his clickbait titles
** These types would absolutely hate me; even if I do tick a lot of boxes.
** Some rude asshole basically turned her into this
*** If things worked like this, I would become a mgtow useful idiot whenever some girl was rude to me
*** And has nothing to do with Chapo lol
** This is twitter-brain at its wildest.
** "This is what it looks like when politics is all aesthetics to you."
* https://drjordanbpeterson.ca/the-anti-social-science-of-jbp/
** Found on Sneer Club. To read.
!! What is an unusual form of transportation you have used?
I like to skateboard from place to place when the weather's good enough. I've used an off-road Segway and know how to pilot a kayak (I haven't in a while, but I'd love to do so again).
When he was younger and rode a motorbike everywhere, my father talked to me about getting a sidecar fitted so I could ride with him, but he never got round to it before he quit motorcycles.
I'd thought of (back when I lived near London) commuting along the Thames. I could use a hovercraft or a speedboat or something; that'd be expensive, but it'd be great fun!
One time at university, I was eating a pear and listening to Neutral Milk Hotel when a chap in a bowler hat unicycled past me. I thought at that moment that I definitely live in a bad indie movie.
!! the-tower - https://www.tarot.com/tarot/cards/the-tower/rider
[[Previously.|2020.02.02 - imagine no change]]
> With the Tower card, think of yourself as an agent of transformation. This self-sacrificing role is likely to create stressful situations. Your vision shows you that a radical change has already been unleashed by forces much larger than mere mortals, and therefore you are no longer resisting.
In [[his most recent note|2020.03.01 - h0p3: Thinkin']], [[h0p3]] said that to some degree, helping people out is my praxis; being there for the weirdos that no-one else is there for. That was really touching, and really inspiring. I want to take what he said and use it as an inspiration to continue to do good.
!! Today's Wiki Review
* [[2020.03.02 - delicious OC]]
** This is just my favorite. Thank you so much, SaltyFox
* [[2020.03.02 - Journey to Justice]]
** Really really can't wait for spring.
** "Yeah, hawk is probably a fair word, hopefully the good kind!"
*** Definitely the good kind :)
*** Looking forward to hopefully make good on my promises of praxis, senpai!
** I kinda like both having them in one place AND the idea of moving them to separate tiddlers. I'll leave it as-is for now.
!! Meditation
5 minutes at 5-ish.
I feel like replying would be the wrong thing to do. is acking the post wrong? Konata help me out here!
!! I wish everyone had.....
Access to free healthcare. A warm bed to sleep in with a roof over their head. Satisfaction with their occupation and lot in life. What a filthy commie I am ;)
Win, Bernie, win!
!! the-star - https://www.tarot.com/tarot/cards/the-star/rider
[[Previously.|2019.12.09 - star platinum za warudo]]
> Your time is better spent in reflection and spiritual pursuit.
I've spent a long time in reflection and spiritual pursuit! It's a piece of good advice, I guess? If I hadn't done so, I'd still be out of control, lead around by the violence of my mercurial emotions, destroying endlessly. [[Ahimsa]]. The inspiration first of esotericism, then of Jainism, then of [[Buddhism]], have served my spirit and me well.
!! Today's Wiki Review
* [[2020.03.04 - this space intentionally left blank]]
** yer killin' me.
* [[2020.03.04 - clean break]]
** I was kinda upset yesterday, feeling a lot better today thanks to SaltyFox, [[The Abyssal]], and [[Zodai]]'s efforts. I'm so privileged to have such wonderful friends.
** I'm not going to take yesterday's draw so seriously. 2dl is still a wonderful place, warts and all.
** [[Solipsism]] is going to be another long-running article I gradually add to, isn't it? c.f. [[The Last Waifuist]]
!! Meditation
10 minutes at sixish.
!! Why do some people choose to dress differently?
I don't know! Ask them!
I could think of some theories, and maybe relate back my teenage years, but it's ultimately just guesswork. Talk to a punk or a cybergoth or whatever the kids are dressing at these days and just ask them. The answers may surprise you.
I'm big on talking to unusual people and weirdos. I love my outsiders. We have to stick together in the late capitalist hellscape (I almost wrote post-capitalist then. If only!)
!! six of cups - https://www.tarot.com/tarot/cards/six-of-cups/rider
[[Previously|2019.10.31 - shoppe]].
> Look at your past as a repository of wisdom to be applied judiciously in the present.
Another Romantic sentiment (and there's a lot of these in the deck) is the innocence, sweetness, and precocious wisdom of children. I was not a wise child; an intelligent one maybe, but not wise, and not charismatic. I'm glad to have grown up; I've learned more, and become way wiser than I was.
!! Today's Wiki Review
* [[w-what]]
** I love the CLUBBERs.
** This makes me think Alex should have an article. Why not. [[Pause Break]].
* [[Exploring Alternate Social Networks]]
** Good fun.
** No others found quite yet, but interesting people reached-out to.
* [[2020.03.05 - SBNRBAR]]
** Spiritual, but not religious, but actually religious.
!! Meditation
5 minutes at 3ish.
!! What is your favorite family dinner?
My pasta sauce is good, but I'd honestly pick chili or curry over that, when my parents make it it's divine. I need to learn how.
I always like Mexican food for dining in; my husband loves my quesadillas.
!! ten of wands - https://www.tarot.com/tarot/cards/ten-of-wands/rider
[[Previously.|2020.01.17 - I break mirrors with my face in the USA]]
> Rediscover the idealism and optimism of your youth to reinvigorate your vision.
<<<
The Ten of this suit represents an all-out effort, an obsessive commitment to a task which demands everything you've got. The person shown in decks with pictures is in no position to rest until he makes it inside the stout walls of the well-defended castle in the distance. If he fails, he will become prey for the highway robbers after dark.
<<<
So the positive takeaway here is vigor and energy; getting the task done no matter what. If there's anything I actually admire about the ideology in the tarot cards (and in general about the neoliberal worldview) it's that hard work does actually pay off; of course, I believe in working smart, not hard, and that there's always a way to get the task done without breaking your mind or your body at it.
!! Today's Wiki Review
* [[Pause Break]]
** He's needed an article for a while.
* [[2020.03.06 - dress-up]]
** I got a reply from one email. A good start!
* [[pdftk]]
** Very useful tool, just a bit of a pain to get installed.
** It used to be gcj compiled to native code!
!! Meditation
5 minutes at 10-ish.
* https://fanlore.org/wiki/Your_Kink_Is_Not_My_Kink
* https://ao3commentoftheday.tumblr.com/post/190846127143/youve-heard-of-lemons-and-the-citrus-scale-well
* [[Infinite diversity in infinite combinations|https://fanlore.org/wiki/IDIC_(glossary_term)]]
> KINKTOMATO is an important concept in fandom. It’s a humourous re-spelling of YKINMKATO - Your Kink Is Not My Kink (And That’s OK). This is the idea that if you don’t like a particular kink or ship etc, that’s fine but you don’t need to attack or shame the people who do. Just leave them alone to enjoy their fics and art in peace and ask that they do the same in return.
I wish the culture at large (including the internet of shit as it exists today) would learn from fandom. Sentiments like this are really needed.
I recall reading about how conservatives (social conservatives) use disgust as their standard line of argumentation against things (now that it's finally falling out of fashion to say "it's immoral") and it's interesting how that's become reproduced in certain circles #online™ to refer to cringe - social disgust - as a tacit way of saying something shouldn't exist.
!! Why do you think some people smoke/drink?
Because it feels good. Very Cersei, I know, but hey.
I used to smoke, quit in 2015. It used to REALLY relax me. Like, I could be walking outside in a loud city at night, but if I had a smoke, I'd feel like I was sitting in front of the fire with a cat in my lap and a good book open.
!! the-hanged-man - https://www.tarot.com/tarot/cards/the-hanged-man/rider
[[Previously.|2019.12.29 - trash]]
> Accept the consequences of your decisions. Go through it, get it over with, and free yourself up for new pursuits.
Yeah, it's kinda like living with yourself; not feeling trapped by your decisions. Living with no regrets, even?
!! Today's Wiki Review
* [[Livedrafting]]
** The process by which I compose articles when I don't have a particular outline in mind. They will struggle to reach even LevelThree.
** I think a tag is in order here.
* [[2020.03.07 - idic/kinktomato]]
** more people need to think on this
* [[2020.03.07 - dindins]]
** I could go for some 'dillas.
!! Meditation
5 minutes at 5ish.
!! What is your favorite room in your home and why?
What an enigmatic question! I like all of them for different reasons.
# The bedroom is the coziest and cuddliest. It's lovely! My reading chair is there.
# I spend most of my time in the study, that's where I am now. It's a utilitarian room. It's well lit during the day, which makes it pleasant to spend the first few hours of the day here.
# The general living area (open plan) is nice too. I like the kitchen because I enjoy preparing food; I like the sofa because it's comfy; I like the dining table because working on a clear surface is productive!
# Having a shower is nice. It can be meditative.
!! ace of coins - https://www.tarot.com/tarot/cards/ace-of-coins/rider
[[Previously.|2020.02.25 - seeds]]
> Take small, steady steps toward your long-term goal and you will accumulate magnificent results.
I was reminded of Laozi recently: "A journey of a thousand miles begins with a single step". Good shit.
If you chip away at something, you will reach your goal eventually. You might need to retry, you might need to throw shit away sometimes. But persevere, and you'll get there.
!! Today's Wiki Review
* [[2020.03.08 - cigarettes and alcohol]]
** I'm such a pleb for liking Oasis
*** https://www.youtube.com/watch?v=zimbLqJozuk
*** https://www.youtube.com/watch?v=4fLR3FRaFsQ
*** I guess they're just chill and have that classic British rock feel.
*** The Kinks were still better. They said trans rights in the fucking seventies.
*** "Is it worth the aggravation/To find yourself a job when there's nothing worth working for?" is still the most lit line in rock history.
**** I'm recitent to talk about it but I don't give a shit about any possible job and I will always be a cyberloafer.
*** Noel was the talent, but Liam will always be the better brother.
**** He looked stupid with that beard in the [[champagne supernova video|https://www.youtube.com/watch?v=-cJauX_q6wI]] though.
** I still find myself craving a smoke every now and again, but I a) don't have any cigs b) don't have a way to get them c) am worried about upsetting the hubs.
** I forgot to mention my own drinking, though...
** Very quiet day yesterday.
!! Meditation
5 minutes at about 5:30
!! What is something you are optimistic about?
My own self.
The world is pretty fucked; I've no idea what to do about the future except VOTE FOR FUCKING BERNIE. That's the thing though, I can't yet vote in elections, I need my paperwork sorted first. So I'm pretty powerless to do anything about the situation we find ourselves in.
However, me personally, I'm doing better than I've ever done. I've struggled with depression my whole life, but in 2017 I beat it. A bad day used to ruin my whole week, maybe even my month; but lately, I had a bad day on Sunday and I got over it. I've reached a point of balance; I'm wiser than I was when I was young; I'm satisfied with who I am and who I've become.
!! ace of cups - https://www.tarot.com/tarot/cards/ace-of-cups/rider
Aces high... [[Previously.|2020.03.01 - introspective]]
Depressing to see in [[2019.10.22 - material girl?]] that I was still waiting, four months ago, for USCIS to get their thumbs out of their asses.
And yet...
> This card represents an unfailing source of balm for body, heart and soul. It suggests that you can relax into a safety net of love, support and communion.
I have those that care for me; I have family, friends, and a husband. This shit can't hurt me for long.
!! Today's Wiki Review
* [[Tommy]]
** Absolutely legendary piece of s.c lore
** The reason I don't own an Amiga =w=.
* [[/mai/: from my memories]]
** I don't know what it is that will draw a line between me and /mai/. It's wild to think that it was only a year, maybe two. I've been on 2dl for a lot longer, and yet I don't have these same pangs of longing for what was.
*** Saudade, perhaps.
** /mai/dens reading this: It was my board as much as yours. You may want for it to be #based and #redpilled but I'm afraid to say that it was inclusive and diverse from day one.
*** I came up with the term /mai/dens, so suck my tranny dick.
* [[An Open Letter to Hobbyists]]
** Classic mostly as a piece of enemy propaganda!
** The naked commercialization of what should be and what should have been a hobbyist's space continues into today.
*** I'm reminded also of the BSD types who hate the GPL and advocate instead for MIT/BSD licenses; those types tend mostly to be libertarians and capitalist-bootlickers arguing for the commercialization of CS. Fuck 'em.
* [[Lore]]
** I like the idea of this category. History needs to be recorded, even if it's just trivial internet/computer-toucher bullshit.
* [[2020.03.09 - liam rules]]
** Waxing lyrical about Oasis reminded me of [[Tommy]], ahaha.
!! Meditation
5 minutes at 5.
> There are strong reasons we should favor destroying IP as it exists in Western legal systems altogether
100% agree. I'm on the Stallman position here that IP should not exist at all - even further! - I posit that IP is a framework for private property and that thus it must be destroyed. IP delenda est!
The GPL is a very clever hack, that could only come out of a mind as twisted (in a good way) as rms'. You could presumably extend it [[as you suggested.|https://philosopher.life/#2019.03.30%20-%20%2Fb%2F]]. I remember on mastodon seeing some work done on making a software license that //deliberately// excludes itself from corporate use; and also one that can only be used by companies with a zero carbon footprint. Interesting stuff!
Keep me abreast of any developments here.
"""
Your friend,
- chameleon
"""
!! What's the first step you can take to making a difference in the world today? Would you try to feed the hungry, improve the environment, promote peace? How would you start?
Agitate for socialist causes. Hug a sad person. Help a homeless person. Even engaging in some self-care can help; restore your spoons. My praxis is in taking care of the forgotten and the downtrodden. If I can stop someone from becoming an incel or falling down the reactionary pipeline, well, that's a good start.
!! two of coins - https://www.tarot.com/tarot/cards/two-of-coins/rider
[[Previously.|2019.10.27 - helluva catch, that catch-22]]
> Do not allow yourself to be coaxed into premature decisions or actions.
''DON'T BUY A CAR JUST YET!''
I can afford one. I could get a Civic or something. However, with no income coming in, I shouldn't do that just quite yet.
God I really want to, though.
!! Today's Wiki Review
* [[2020.03.10 - optimism]]
** Such a productive day the day before - but yesterday, I played NFS Heat all day =w=.
** https://imgur.com/a/EOqx61U
!! Meditation
5 minutes at 5-ish.
I would like to read the Song of Ice and Fire books; however, it's been apparent for years that Winds isn't coming out anytime soon, and I really don't want to read the books only to not know what happens next (I hate that; I only like [[NoEnding]]s when they're //intentional//).
The question is whether or not a) GRRM //can// finish the books b) GRRM //will// finish the books. A question of ability, and a question of willpower. I know that he wants to finish them, and he's quite dismissive of fans who're worried about his health as it pertains to him being able to continue writing. However, his writing pace has evidently slowed to a crawl; either he's reached another difficult plot snafu, as he did before, or he's just getting old and losing his writing chops.
We have to consider the very real possibility that either Winds won't come out, or it will and will be the last book in the series.
----
Some optimistic fan theories have been debunked:
# He wasn't waiting for the show to end (it's been over for a while now, with no sign of Winds).
# He isn't writing ADoS at the same time (he said as much in interviews).
# He's very unwilling to let someone else finish for him in the event of his untimely death. And even if he was willing, finding someone to do so is no easy task.
#* Brandon Sanderson himself said he wouldn't do it, as he did for WoT, since it's broadly not compatible with his religion and personal philosophy.
#* Who else besides Sanderson could do it? Maybe Steven King? But he's not known for the strength of his endings...
I can add some predictions of my own, but they're all bleak, I'm afraid.
# He won't have it done by Worldcon. He won't have it done by his next three deadlines, either.
# Winds, if it is released, will come in 2025 at the soonest.
# ADoS will never come out. Either he'll die, or completely lose interest and procrastinate for another ten years.
He has said himself that "My career is littered with the corpses of dead series." He joked in the 70s (iirc) that he was going to write a sword-and-sorcery series and never finish it.
I'm hardly the only one to take this particular view:
* https://www.gizmodo.com.au/2017/05/reminder-george-r-r-martin-is-probably-never-going-to-finish-a-song-of-ice-and-fire/
* https://www.theatlantic.com/entertainment/archive/2019/05/george-r-r-martin-song-of-ice-and-fire-books-game-of-thrones-ending/589903/
* https://www.newsweek.com/grrm-will-never-finish-asoiaf-winds-winter-delay-game-thrones-dreams-spring-907706
* https://www.forbes.com/sites/erikkain/2018/02/20/its-time-to-accept-the-fact-that-george-r-r-martin-may-not-finish-game-of-thrones/#2de4a35a59db
Micro C libraries (sometimes just a few functions exported!)
* https://github.com/clibs/clib/wiki/Packages
* https://github.com/clibs/clib
!! What is your greatest fear and how often do you think about it?
Facing violent bigotry is probably my greatest fear. I think about it often. Thankfully I don't spend nearly as much time in public, unsafe environments as I used to (I used to use public transport every day through East London. You could hear football lads on the train using slurs against my minority group, though afaict it wasn't directed at me at the time). In actuality, I've been lucky; the one time someone used a slur when I was part of a conversation, they were mortified and apologized profusely when I called them out on it.
!! judgement - https://www.tarot.com/tarot/cards/judgement/rider
[[Previously|2020.01.23 - tabula rasa]], [[previously to previously.|2020.01.09 - return]]
Read the link! This is probably the deck at its most "woah dude".
> In personal terms, the Judgment Tarot card points to freedom from inner conflicts, and so clear a channel, that the buried talents and gifts of past incarnations can come through an individual in this lifetime. This card counsels you to trust the process of opening yourself, because what emerges is of consistently high quality. You can effortlessly manifest as a multi-dimensional being, and assist in evoking that response from others.
MULTI DIMENSIONAL BEING!
I'm reminded of spirit science.
!! Today's Wiki Review
* [[IANAL]]
** Stupid idea I had while sitting on the sofa
** I need this to write my possible meditation guide/buddhism HOWTO
* [[2020.03.11 - h0p3: subversive software licenses]]
** h0p3 has some cool ideas in this sphere. todo: import the reply
* [[2020.03.11 - the asoiaf blackpill]]
** I really want to read the books. I dearly hope I'm wrong and that they get released soon, but I'm extremely pessimistic right now.
* [[2020.03.11 - still emo in 2020]]
** and I'll still be emo in 2021, and 2022, and...
!! meditation
5 minutes.
!! What is a scary dream that I remember from my past?
I met the grim reaper in one dream. It was pretty scary for a second, but I ended up just laughing at it.
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
[[Previously.|2020.02.13 - computer shit]]
No more cold, but now we're worried about the coronavirus. Global pandemic~
> Renounce the circumstances that have brought you to a standstill.
My circumstances are as they are. I can't do too much about them just quite yet. I am working at stuff to get it done, though. My lawyer has the paperwork; now all we need is //time.//
!! Today's Wiki Review
* [[2020.03.12 - woah dude]]
** I didn't really interpret the card after seeing that; my new-age woo detector went crazy.
** Looking back, I've been extremely lucky with dealing with bigotry.
* [[2020.03.12 - clibs]]
** Good find. Useful stuff here.
!! Meditation
5 minutes at 3:30ish.
https://www.youtube.com/watch?v=H0tnHr2dqTs
> I know this is supposed to be a summary of Derrida and his work, but it is very, very off the mark. For example, this idea that deconstruction involves showing that an idea "is confused and riddled with defects" is completely unfounded in Derrida's work. Deconstruction is not simply about showing how the opposite of an idea has merit or demonstrating how our cherished ideas are actually pretty questionable. Both of those actions require evaluating, which in turn requires precisely a privileging of values. Deconstruction, rather, has to do with opening up a text or concept to the possibility of a different interpretation. For example, it's not the case, for Derrida, that we privilege speech over writing (consider, for example, that the basis for our knowledge and culture today is almost entirely based on writing - the sciences, poetry, novels, businesses, government, laws, websites, humanities, etc.). The problem for Derrida is that the relationship between writing and speech reveals an interpretation (logocentrism) that we have firmly held onto for millenia: that language ("logos") can somehow reveal the truth ("logos"), the true meaning, about life. This interpretation, Derrida says, produces an anxiety around writing, since writing is something that can last throughout history (it doesn't die off as soon as it is expressed, like speech does) and thus can afford many different interpretations and translations, depending on the different cultural and historical forces at play. For Derrida, the anxiety we have about writing offers up an opportunity to interpret language (text) differently - not as a "source" (center) of meaning, but as a field of socio-historico-economic forces in which many different significations can be produced. I know this comment is long, but I just had to address this very critical issue I see with your interpretation of Derrida.
Nothing like a long comment when it comes to Derrida.
This is a really interesting idea, look into it.
(I'm such a sucker for the Continentals)
Too tired to keep my eyes open, let alone get a handle on French philosophy right now, but https://www.youtube.com/watch?v=HKJlSY0DBBA comes up in related videos. Stuff to check out tomorrow.
----
It seems Derrida says pretty much exactly what I often say!
The reading order given in the then&now video is:
# Introducing Derrida: A Graphic Guide (I have a similar one for Jung that [[Nobu]] gave me) - https://goo.gl/XKaJMJ
# 'Structure Sign and Play' in Writing and Difference (I have a pdf) - https://goo.gl/szZ6JC
# Différance - (dead link)
# Of Grammatology - https://goo.gl/e8SDv4
----
It's funny how, in searching Google for thinkers such as Derrida, you run into conservatives trying (and failing) to dismiss them.
!! How would you feel if you were going to be on TV? Why?
Nervous and self-conscious. My appearance is rather strange, and TV viewers are very image-focused. I hope that at least some would take on my ideas rather than my flesh-prison.
Of course, my emotions thereof will also depend on what kind of TV program I'm on. A drama? A debate? A news report? How am I being framed?
* Wiki jockey
* Buddhism expert
* Programmer
* Philosopher
* Mystic
* Local madwoman
!! four of swords - https://www.tarot.com/tarot/cards/four-of-swords/rider
[[Previously.|2019.11.17 - donuts]]
> Concentrate less on the opinions and biases of others. Be open to intuition and insight from a deeper source.
Introspection rather than public debate; investigation. I guess this is a theory that it seems one can only find one's own truth by oneself?
!! Today's Wiki Review
* [[2020.03.13 - scary dreams]]
** Didn't have much time to do stuff yesterday, so I'm delaying doing this until today.
!! Meditation
5 minutes.
I wonder if leaving Reddit would be good for my mental health. It's certainly helped for me to delete my twitter and stop using Facebook, so leaving Reddit might help too.
I just get angry at the stupid tankies on there and how the place is full of reactionaries and other shitheads.
There is good content on reddit, but you have to hunt for it.
!! Why is exercise important to someone your age?
To someone in their twenties? I guess because people are shallow, lol. And furthermore, because you want to set a good basis for your health going forward.
I don't know. I don't exercise much, except for skateboarding. It just doesn't interest me. I have so much more I want to do instead.
!! six of swords - https://www.tarot.com/tarot/cards/six-of-swords/rider
> Others will be grateful that you responded quickly to the need for immediate action.
Knowledge of the skills that lead out of danger (the finger that points the Way) is both important and appreciated by those that need my help. The card shows someone in a boat, rowing a cloaked figure to safety.
I've spoken before in my [[Daily Tasks]] that being there for the downtrodden, the weird, and the forgotten is my best attempt at praxis given my current situation. It's difficult. The hardest thing with regards to depression is how the only real way to beat it is all on you; it's hard because in the grip of the depths of depression, it's all you can do to get out of bed every day. I would know; I've been through that hell myself. So, I can really only point the way; try as I might, I can't fix everyone. It's all I can do to say [["hello, how are you?"|https://www.youtube.com/watch?v=fNB8VRwCPTM]] I hope that for at least one of my kouhai, my support will be the boat that leads them through dark waters and out the other side, alive and well.
!! Today's Wiki Review
* [[Deck: Izzet Drawshit]]
** Similar to my standard deck.
** Looks like it'll be great fun.
** I've sent it to [[The Abyssal]] so that he can finish it off for me.
* [[2020.03.14 - flesh-prison spectacle]]
** I'm such an insufferable hipster, lol. "i dOn'T oWn A tEeVeE"
** Public debate: [[2019.07.31 - Me irl]]. I'll leave that shit to those that enjoy it, like Vaush.
* [[2020.03.14 - explain fucking derrida to me]]
** h0p3 chimed in over discord:
*** "Also, I don't know if Derrida is something you would be interested in speaking with me on. I am not as allergic to that man as many analytic philosophers tend to be. I'm a huge fan of (even in disagreement with) Husserl and Hegel, so Derrida and I have that in common."
*** "I'm a sucker for some of the Continentals too. It is one place where I push hard back against the analytics I know; they unacceptably underappreciate Continental philosophy for considering themselves people in pursuit of wisdom."
*** Interesting. I would've expected his opposition to pomo to extend to the Continentals themselves.
** I need to finish my current Nietzsche romp first.
!! Meditation
10 minutes at 6. I went all out. I turned the lights out. I was wearing nothing but my prayer beads. I chanted 108 repetitions of [[Mahakala]]'s mantra. It helped.
!! What would you do if you could hide in your mother's womb?
[[Previously.|2019.12.11 - what the fuck]] I even named the DT tiddler "what the fuck".
I'm definitely taking this shitty question out of the library, lol.
[[h0p3]]'s [[response|https://philosopher.life/#2019.01.11%20-%20Prompted%20Introspection%3A%20Mother's%20Womb]] was the same level of confusion as mine:
> [Jesus H. Butt-Fucking Christ], what kind of question is this, Samwise?
I'm asking [[LambdaMuRinpoche]] this kuso question; maybe that way I'll get a response that makes sense, in some kind of moon-logic way.
!! the-sun - https://www.tarot.com/tarot/cards/the-sun/rider
[[Previously.|2020.01.20 - pet and sun]]
> Let your light shine. Be confident in the sacred power of your original nature.
Now of course I don't believe in a True Original Self. Have you heard of //anatman//?
There are many concepts that are paralyzing to our thinking; spooks that need to be excised. I think true self is one of these. The self that you have (or lack thereof) is perfectly fine. You can do well with that one. You don't need to go on a spiritual quest or meditate under a waterfal or sit in a cave growing moss on your beard to be a good person. Loveliness - what Nietzsche and others have pointed to as "nobility" - can be found in the most humbling of places, from the most otherwise-unremarkable people.
The Tarot deck is full of interesting, but wrong sentiments. I hope I can be around for a long time to spot these and comment on them.
!! Today's Wiki Review
* [[Firefox Extensions]]
** It's so easy to lose good extensions. Need to keep this one updated.
* [[2020.03.15 - rebbit dot coom]]
** I left in the end. Life is too short to use this shit website.
* [[2020.03.15 - ハロ/ハワユ]]
** I didn't get round to telling h0p3: Hell yes let's think about this shit together :)
** That meditation session was awesome.
** Wonder if I should make a [[Vaush]] article.
*** He's just the right leftist figure for me and people like me, I think. He does a great job pissing off the usual suspects; the right, the liberal "left", and the tankie "left".
* [[MTG Color Names]]
** Going to have to remember all the silly ones like "bant".
** It's good to have this information to hand, for when I'm discussing the game with other magic-heads.
* [[What makes a good Commander hand?]]
** Good tip from the hubby here.
** I'm very bad about keeping shitty hands; hopefully I can kick that habit in EDH.
*** I once kept 2 islands, 1 mountain, and a Nadir Kraken (it was the third mulligan and that seemed to be the closest I was going to get to a playable hand).
!! Meditation
5 minutes at 4:10. Then I napped for like two hours.
!! If you were five years older you would...
Be much the same as I am now? I suspect this question is for people much younger than me. In your twenties five years isn't as big a deal as it would be when you're younger than 20.
I suppose in five years time things will be different. I'll (hopefully) have gotten my green card by then. I might even be on my way to citizenship. I imagine I'll have a car, a job, all the stuff I should really have now but don't because I'm a teenager pretending to be an adult ;)
!! justice - https://www.tarot.com/tarot/cards/justice/rider
[[Previously.|2020.03.02 - Journey to Justice]]
We're circling the drain of cards here.
<<<
Often including the image of a fulcrum or scale which helps to balance competing needs against the greater good, and a two-edged sword to symbolize the precision needed to make clear judgments, this card reminds us to be careful to attend to important details. It's a mistake to overlook or minimize anything where this card is concerned. The law of karma is represented here -- what goes around comes around.
<<<
I could take this advice practically. I'm dredging something up from the abyss of nothingness right now - something that might fail horribly if I don't pay attention to the small details. I will pay close attention.
!! Today's Wiki Review
* [[2020.03.16 - jhbfc]]
** I did take it out of the library.
*** Senpai: "無"
!! Meditation
5 minutes at half-four-ish.
!! When you were a child, how did you imagine your adult life? How is it similar or different to what you imagined?
I don't remember what I imagined. Maybe nothing at all. I've never been the type to live in the future. I guess there was the "yeah well I'll have a good job and then I'll be laughing" thing I said to bullies, lol, which turned out to be pretty true.
!! death - https://www.tarot.com/tarot/cards/death/rider
[[Previously.|2019.12.07 - ☠️☠️☠️☠️☠️]]
> Free yourself from a past that no longer serves you well and proceed toward the future.
Yeah I guess that goes well with both today's question and the last one, doesn't it?
School's over now. I graduated from university years ago. I don't really need to be dwelling on it.
I'm moving on.
!! Today's Wiki Review
* [[2020.03.17 - five years time]]
** The past, the future, all garbage. Only the present means anything to me.
** My programming is going good, at least.
!! Meditation
5 minutes at 5-ish.
!! What occupation do you think would be fascinating?
When I was a kid I wanted to drive a formula 1 car, but that was never going to happen, haha. That'd certainly be interesting, but ultimately fairly repetitive?
An actor's life seems fun, but if you're struggling for work, not so much.
!! knight of cups - https://www.tarot.com/tarot/cards/knight-of-cups/rider
[[Previously.|2019.12.13 - knights]]
> This is the moment to apply yourself fully.
Strike while the iron is hot! A sign, perhaps, that I should finish what I was working on? Maybe.
!! Today's Wiki Review
* [[2020.03.18 - death of school]]
** The last couple days have been quiet.
*** I'm focusing on my programming and socializing (online).
!!meditation
Five minutes at 6ish.
Any kind of time manipulation; time-stop would be my preferred option. I can just stop time and then smack my opponents about, then resume time and they'll fall down. If I didn't make it obvious, no-one would even know what my power was.
As for the most overrated hero, either Wolverine or Batman. Batman is the least interesting Batman character; all the villains and side characters are much more interesting and less Randian. Wolverine is just a boring invincible chump with a whack superpower and a toxic personality.
!! the-tower - https://www.tarot.com/tarot/cards/the-tower/rider
[[Previously.|2020.03.03 - tower transport]]
I almost wish for some change. The coronavirus shit has everyone in a tizzy right now.
!! Today's Wiki Review
* [[2020.03.19 - fastntng]]
** Would still like to race cars someday.
!! Meditation
Two minutes on the road.
!! What does "Clothes make the person" mean to you?
It's a platitude. It speaks to the vanity of this age; the image-obsessed //Spectacle//. I'll wear whatever the fuck I want and the short-haired wimps will get over it.
!! the-emperor - https://www.tarot.com/tarot/cards/the-emperor/rider
[[Previously.|2020.02.24 - Thunderstruck]]
> Reinforce a sense of sovereignty within yourself, despite any self-limiting beliefs, habits, or appearances to the contrary.
A Nietzschean will-to-power, perhaps? By taking control of life; by living in a way that if there's an eternal occurrence, you'd be happy to do it all again - that is a hell of a way to live!
This is the energy of the Emperor, seizing both the day and his own destiny.
I like to say to people "don't attach any karma to it" when they're getting upset over things they can't control. I'm not sure where I picked it up from, but it seems to help some of my kouhais.
!! Today's Wiki Review
* [[2020.03.20 - Superpower]]
** Ol' Rorschach is better than Batman. He's Batman but with the ideological underpinning more apparent, there for analysis.
** Za Warudo!
** The virus can go fuck itself.
* [[Magic Card Size]]
** Pre-emptive with the LevelOne there, I think. Proxy I printed for Counterspell came out too small.
!! Meditation
5 minutes at 7ish.
https://www.reddit.com/r/needforspeed/comments/dvo3s7/high_heat_races_an_ultimate_parts_guide/
Quick summary:
* There are HL3 and HL5 races.
* You need rep level 50 to get Ultimate parts. Otherwise, high heat races will just net you Elite(+) parts.
* Level 3s net you Ultimate parts; level 5s Ultimate+ parts.
* The first time you win a part, you get a free one; but not the second time.
* Winning the race once is enough to unlock the ability to buy the Ultimate(+) items.
* You need to have an ante to enter the race; apparently having 30k on you is enough.
* You don't need to win the race, but you (seem to) need to be in the top 5.
* Race for the 11 ultimates and 5 ultimate+s.
Update from the blogposter: https://kevq.uk/de-googling-my-life-2-years-on/
Breaking free of Google is important. I've been using ddg myself for a little while now. I used to use searx, but they fucked that up.
He's right that there's no alternative to ~YouTube (for example, ad-free music is a trivial problem - ~YouTube + ublock origin) but I wonder about snarfing songs I like and going back to using an old-school music client. I'm mostly working off playlists anyways. I could get a FOSS winamp clone for that retro flair ;) Video streaming proper is just so hard to break free of their monopoly. ALL the creators are on there, now that blip is dead.
Firefox is a no-brainer. It's better than Chrome in every way that matters. I can't take FOSS people that don't use Firefox seriously.
Analytics are a stupid problem. Just don't use them. YAGNI.
Gmail is tricky. I've been using Zoho too, but that's for my personal correspondence. I still have a gmail for professional purposes or for the occasional site that refuses all emails except one of the botnet providers.
I'm still stuck on Android. Apple is only marginally better. I wonder about just having a dumbphone, or forgoing a mobile altogether.
Brave browser has been booster'd recently by your usual crowd of hacker news types and clueless non-technical rubes. I'd like to throw my $0.02 in here: Don't fucking use it, don't fucking recommend it to anyone, don't contribute to it in any way.
https://github.com/brave/brave-browser/issues/8793
!! What do you think is the greatest invention? Why?
Plumbing. Why? Because I don't have to go to the well for water, and I don't have to go to a horrible outhouse and mulch my poop. The invention of plumbing is almost worth the horrors of industrial capitalism - it has quite literally saved lives.
!! page of wands - https://www.tarot.com/tarot/cards/page-of-wands/rider
[[Previously.|2020.02.10 - ZA WARUDO!!!!!]]
> Quietly gather information that will help you direct a situation to unity.
The work, perhaps, of the philosopher or public intellectual. I love David Mitchell's [["just what the hell is going on"|https://www.youtube.com/watch?v=n2L4TMQRzac]]. This is obviously a piece of comedy, but it hits on a tension we have in this age.
The page of wands is [[The Monad]]. He knows truths are like assholes. He sees the futility in speaking straight and being misunderstood. He seeks in the desert, wanders the earth, fusing his own Monad. Trailblazer.
!! Today's Wiki Review
* [[2020.03.21 - nfsh: high heat races]]
** The wiki as knowledge dump.
* [[2020.03.21 - the de-googler]]
** Yeah, I should step up my de-googling game. I think it's probably OK to use gmail for now, so long as the scope doesn't extend out of "official shit with my real name on it".
* [[The Monad]]
** Giving oneself a title or nickname is fraught ;) beware!
* [[2020.03.21 - je refuse le Spectacle!]]
** I've pretty much always thought this way. It's cool that some people enjoy looking nice and peacocking, but personally I don't really care to. I have so much to else that I care about that I don't really have time to think about my appearance.
** Still need to finish BGE. And read the others.
*** Chapman actually dis-recommends Zarathustra. I'll have to go back and see why.
**** https://meaningness.com/further-reading
**** He says it's because the thinking is muddled.
**** He recs twilight of the idols the most. That was one I was thinking of reading next. I have BGE and ~BoT physically.
**** «Because it’s highly condensed, it may be incomprehensible without some knowledge of the tradition. One key to understanding is that “Königsbergian” is a reference to Kant specifically. The supposed “true world” of Nietzsche’s stage 3 is Kant’s //ding an sich//, “the thing in itself.” That is the inaccessible “noumenon,” or true reality, as opposed to the defective “phenomenon” that appears to the senses. This is a catastrophically bad idea, which leads straight to nihilism.»
*** I love how he chops stuff up into sections. It makes it easier to read, which is desperately needed when you're being a hardcore German.
**** Wonder if I should learn German to read Nietzsche and Stirner in the original language. Guess I could do Kant, Hegel, Goethe, etc. too if I did.
!! Meditation
Five minutes at 5.
!! What is your fondest memory of an animal or pet you once had?
Penny the cat ;w; She was the first cat to be very friendly to me. She was often a very scared girl, but deep down she really loved people. She would let you pet her and would cuddle with you. I loved her very much. Unfortunately she and the dog didn't get on, so she had to find a new home. Very sad.
Her energy lives on in my inlaws' cats, especially miss Precious. She loves to sit in my lap cuddling and getting pets. She purrs loudly, which is something Penny didn't do (afair).
!! three of cups - https://www.tarot.com/tarot/cards/three-of-cups/rider
[[Previously.|2019.12.24 - Christmas!]]
Amazing that I managed to get this done on Christmas, but can't do shit on Friday due to FNM ;)
> Call your family together to support you and trust that the results will be just what you need.
In difficult times like we face right now, family is more important than ever.
[[Love you, mom.|https://www.youtube.com/watch?v=Yq6jemERSQs]]
!! Today's Wiki Review
* [[2020.03.22 - on brave browser]]
** Please don't use it.
** Something for browser nerds: it adds to google's monopoly if you do use it. chrome is the new ie.
* [[2020.03.22 - plumbing]]
** Have started to work on the Chapman reading list. I have the Guru Papers and Finding Our Sea-Legs. tGP is really good so far.
*** It's pretty funny that he includes his own work on the reading list, in the form of his AI research.
**** He seems to share my opinion that AGI is a spook.
*** I should work on my own [[Reading List]]. Right now it's book I am going to/have been told to read; but some day it'd be nice to cultivate a recs section.
!! Meditation
5 minutes at 6.
!! What would you do if you woke up in another country and no one could understand you?
Die, probably ;)
I'd go looking for the embassy; either the American or British embassy should be able to help me get home.
That reminds me, going to the American embassy back home was terrifying. It's a huge huge building with enormous crowds. They make you drink anything you bring with you.
!! ten of cups - https://www.tarot.com/tarot/cards/ten-of-cups/rider
> The Ten of this suit traditionally signifies family and community, often showing a celebratory scene including many generations, crowned by a rainbow signifying the end of hard times.
An addendum to yesterday, perhaps?
I'm sure if we all stick together we can see these hard times through.
[[Dear Reader]], I wish you safety and security. Please let me know if there's anything I can do to help you through these dark times.
!! Today's Wiki Review
* [[2020.03.23 - family forever]]
** We miss you Penny.
** tGP is great. Should've started it years ago.
*** It sounds like the a-theist analysis we //should've// had - attacking the //patterns of thinking//, not the individual set-dressing of religions.
** Third reminder not to use Brave browser.
** Probably no FNM for a while ;w;
!! Meditation
Five minutes at 5:40.
!! Tell a story that you have had with one of your aunts.
My aunts, eh? Well, I have several; how about my mother's elder sister? She's a doctor, doing lots of clever work to do with safety and the likes. I don't doubt her work has saved lives.
She and I sometimes talk for a while at family gatherings. She's not in the same line of work as me, of course, but she's much much smarter than me, so she can easily understand what I'm talking about. I really respect her.
!! the-high-priestess - https://www.tarot.com/tarot/cards/the-high-priestess/rider
A feminine teacher figure; I see the Oracle in her. It's something to strive for, I suppose - to be such a senpai to those I care about and want to see succeed.
Kind of like my aunt, I guess!
!! Today's Wiki Review
* [[2020.03.24 - so much for my happy ending]]
** I hope I never have to go to an embassy again. They're scary places.
** Meditation is getting later, because my sleep schedule has been so fucked the last few days. Gonna do my best to reset it.
** Friendship and unity has been a common theme in my Tarot draws recently.
* [[DBG]]
** For stuff that I want to store on my wiki for later.
* [[C: DBG]]
** I've needed this for years, hahaha. I can never remember function sigs.
** In C, 0 is `false`; in shell, 0 is `true`. Very weird, considering how they're unix's core components.
!! Meditation
5 minutes at 6ish.
I remember [[h0p3]] saying he'd never learned calculus. That's wild to me. I don't use it very often, but it's the closest I (as a layperson) have ever come to experiencing beauty in mathematics.
Unfortunately, I'm not much of a math teacher. I apologise for my babble. Maybe h0p3 or j3d1h can reverse-engineer what I'm talking about.
Differentiation - the formula of the gradient of the slope at X. The //rate of change//. https://www.intmath.com/differentiation/differentiation-intro.php
If you're using the f(x) notation (eff of ecks) then the differential is f'(x) (eff prime of ecks).
Think of it as the difference between acceleration and velocity.
```
( '^' - to the power of )
f(x) = nx^m
f'(x) = mnx^(m-1)
```
Integration is "differentiation in reverse"; i.e. finding f(x) from f'(x).
!! If you could do whatever you wanted to right now, what would you do?
~~do the nasty with Konata~~
I don't know. I don't know what I most want to do, or what I'm more in the mood for than what I'm doing right now. Sleeping, perhaps? Eh. Editing my wiki is fine for now.
!! nine of coins - https://www.tarot.com/tarot/cards/nine-of-coins/rider
[[Previously.|2020.02.14 - taxation is a diet]]
Hello again, my old friend.
As we know, this one is ideologically saturated. We could read it on a different level, as prescribing something to myself (reader's-self), however - I have come so far, and been so lucky, that giving back to those I care about, those that have helped me along the way.
It's being a caring senpai to my kouhai. It relates to yesterday's card, the ideal of the High Priestess.
So many of the feminine cards in the deck have a motherly aspect to them. It's interesting. Feminist tarot decks exist too, but they're mostly of the "divine feminine" woo that I can't really get behind.
!! Today's Wiki Review
* [[2020.03.25 - Aunt Senpai]]
** First day of waking up at more reasonable a time - tired already. Maybe I'll nap later.
** [[DBG]] is a good idea. I should've done it before!
*** I suppose it's analagous to several sections of h0p3's wiki which are collections of information, almost guides.
!! Meditation
5 minutes at 5.
!! Families are important because?
They say blood is thicker than water. Family (should) look after family.
!! page of coins - https://www.tarot.com/tarot/cards/page-of-coins/rider
[[Previously.|2020.01.05 - page of coins]]
> The open-minded novice can look at a situation with fresh eyes and get down to the essentials with confidence.
Sometimes called "beginner's mind". It's important to keep this in mind (heh).
In Zen, it's called [[Shoshin|https://en.wikipedia.org/wiki/Shoshin]]:
<<<
It refers to having an attitude of openness, eagerness, and lack of preconceptions when studying a subject, even when studying at an advanced level, just as a beginner would…
Suzuki outlines the framework behind shoshin, noting "in the beginner's mind there are many possibilities, in the expert's mind there are few."
<<<
!! Today's Wiki Review
* [[2020.03.26 - calculus]]
** I don't think he knew what I was going on about, which sucks, because neither did I.
** I wish my teachers were still around to explain shit better.
* [[Forth: DBG]]
** Stack notation makes a lot more sense for me now.
** This new category works great!
* [[2020.03.26 - rather]]
** Intersectional feminist analysis of the Tarot when?
** Couldn't sleep last night... looks like I'm having a hard reset of my sleep schedule.
!! Meditation
5 minutes at 3.
* https://docutils.sourceforge.io/docs/user/rst/quickref.html
* https://docutils.sourceforge.io/README.html#installation
!! What's the first step you can take to making a difference in the world today? Would you try to feed the hungry, improve the environment, promote peace? How would you start?
[[2020.03.11 - still emo in 2020]] was only a few days ago (between a fortnight and three weeks), but I've already helped some folks even since such a short time ago. I rescued a friend from the alt-right pipeline, in their own words. That's good. This friend is very intelligent, and so they're not the type of person we want on the alt-right.
!! page of wands - https://www.tarot.com/tarot/cards/page-of-wands/rider
[[Previously.|2020.03.22 - plumbing]] Only a week ago. This task is circling the drain.
Beginner's mind from yesterday.
Last time I talked about how people are in fear of uncertainty, by linking to the David Mitchell sketch. It's the Guru Papers, and Meaningness at large, too. We know now that figuring out what the hell is going on is harder than has previously been suggested. Submitting to someone else's interpretation is undesirable - I've no doubt they're wrong too; see the numerous failures and contradictions/tensions evident in all these (to use Chapman's jargon) "eternalist" interpretations. They're looking for land on Waterworld. There is no eternal ordering principle; sorry about that.
[[The Monad]] remains the trailblazer.
!! Today's Wiki Review
* [[2020.03.27 - beginner's mind]]
** Very short answers due to tiredness. Absolutely incredible that I was able to meditate without sleeping!
*** I've reset my sleep schedule through a nice sleep. 9-4, then 5-1. Second shift is a weird place to be.
* [[2020.03.27 - RST]]
** Better than markdown? Maybe. It has more features and seems more extensible. It's more comparable to WikiText.
!! Meditation
Not yet.
!! What do you think makes a happy family?
I don't think they're all alike, as (iirc) Tolstoy said. People are different and diverse; the whole world is full of all sorts of wacky combinations. I refuse to believe there's only one way to be happy; that idea is proven wrong by how miserable the people who preach it are.
With that in mind, quantifying the happy family becomes a nebulous task. Some families can be outwardly very similar but inwardly very different in how happy or unhappy they are.
Similarly, happiness is not a permanent state. The moment it was pointed out to me that it's just another fleeting emotion really helped me. Happiness can be found in all sorts of places and circumstances.
!! eight of coins - https://www.tarot.com/tarot/cards/eight-of-coins/rider
[[Previously.|2020.02.05 - honest work]]
Ahhh, bashedbb. That was a fun little exercise. I think it turned out nicely, though I just ended up using flaskbb instead.
> When you dedicate yourself to producing quality work, you will gain greater freedom all the way around.
We can't really do that with COVID-19 on the scene, crapitalism!
This is another ideological one; working hard won't do shit unless it's something you care about. I don't care about anything I can be paid for.
!! Today's Wiki Review
* [[Vision Creation Newsun]]
** At times this album is so deep I wonder if it contains the meaning of life.
** NEEEEEEEEEWWWWWW SUUUUUUUUUUN… SUUUUUUUUUUUUUUUUN… SUUUUUU''UUUUUUUUN''!!!
* [[2020.03.28 - 10k]]
** I've started backing it up on Mega. Hopefully that's a safe place to put it.
* [[2020.03.28 - throw a rope to my homies in the undertow]]
** Wonder if I could do that "rescuing people from the alt-right pipeline" thing like Vaush and co, but for my true weirdos that turn other lefties off. Vaush does the job fine for edgelords.
** Submitting passively to someone else's ideas is undesirable; see [[The Quote Mines]]. I want to wrestle with their ideas, man!
!! Meditation
5 minutes at 3-ish.
!! What is your perfect weekend?
Pizza, beer, anime, naughty times with the husband ;)
Well, that's a Saturday evening. The daytime is variable. I like different things depending on how my life is going. So for example, right now I'd like to go on a nature walk with my beloved.
!! queen of coins - https://www.tarot.com/tarot/cards/queen-of-coins/rider
[[Previously.|2020.01.27 - fto & freeze peach]]
> In every case, she does not see the benefits that exist in her life as belonging solely to her. She feels the needs of her people and will spend freely of her time, energy, skills, money to see that nobody is left out. For this, and because she likes to work in an atmosphere of beauty, enjoyment and abundance, she is sometimes accused of being extravagant. But she works hard, and she sees no reason to deny herself the rewards of a job well done. Everyone who comes in contact with her feels enriched by her enjoyment in living.
Praxis? Sounds like it.
!! Today's Wiki Review
* [[2020.03.29 - crapitalism]]
** Having the password gate up lets me let loose with my "fuck work" sentiments ;)
*** suckers idolizing mediocre professions :^)
** It was Tolstoy. I should read him.
** Happiness is an interesting topic. I should deconstruct it.
!! Meditation
5 minutes at 5:30. Actually went out into nature, which was fun.
https://rugnetta.com/2020/01/15/canon-is-an-abyss/
h0p3 is posting some interesting stuff about beliefs: https://philosopher.life/#Belief
* https://teachinginmind.com/articles-teacher-thinking.php
* https://teachinginmind.com/introduction-to-beliefs.php
This might need to be a section on my own wiki.
One core aspect of [[Monadism]] is not confusing your (fleeting) beliefs with objective fact.
!! How have you adjusted your eating habits to be healthier?
Bit more fruit, bit less sweeties and cake. We've been making healthier choices for dinner recently; turkey burgers are delicious (maybe better than I've been doing for Real Burgers™ honestly).
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
[[Previously.|2020.03.13 - scary dreams]]
I seem to draw this card more than any other.
The pandemic isn't going anywhere any time soon. Estimates like "18 months until the vaccine" terrify me. We might have to build a socialist system from the ruins of the capitalist one; I knew the capitalist system was unsustainable, but I didn't expect utter collapse to come so quickly.
We look to be on the cusp of post-capitalism now; in the UK the //Conservative government renationalised the railway.// And bojo pronounced from his bunker that there is such a thing as society! Meanwhile, literal government handouts are happening under Trump; we (my family) stand to benefit from trumpbux soon. What a bizarre world the virus has created.
!! Today's Wiki Review
* [[2020.03.30 - canon is an abyss]]
** Great, very interesting article.
* [[2020.03.30 - analphabetapolothology]]
** Written some stuff off-wiki about some of this. I'm going to import what I wrote about [[McMindfulness™]].
!! Meditation
5 minutes at 4:30
<<list-links "[prefix[2020.04]!sortan[]] +[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* Toki Pona!
* Daily tasks were shitty this month.
* Had a lot of fun with [[Animal Crossing: New Horizons]] which seems to have been eating into wiki time.
* And as always, Thurs and Fri are busy as hell.
* Confucius is pretty cool.
---
<<list-links "[prefix[2020.04]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
!! What is your opinion about the amount of violence on T.V.?
[[Previously.|2020.02.29 - karen]]
Karen, watch your fucking kids!
Violence is an interesting area of moral/ethical philosophy. My personal view is that it's a tool; a means, not an end. Omnidirectional violence is of course wrong; but there are places where violence is necessary. Maybe I'll talk about this more in [[Philosophy]] or [[Monadism]] in future.
!! seven of wands - https://www.tarot.com/tarot/cards/seven-of-wands/rider
[[Previously.|2019.12.11 - what the fuck]]
Last time I got super weirded out by the "mother's womb" question, so let's do this properly this time, haha.
Depending on how you read the character's expression, you can see this in multiple different ways.
If you read his expression as determined and sure, he's using his staff - his own energy and drive - to fight of those of others. He's a determined risk-taker who fights against adversity and wins!
If you read his expression as worried or concerned, however, it becomes more about balance and the likes. He's assaulted on all sides by conflicting energies, and has to buckle down to take it.
Just another place where the tarot cards are a mirror of the soul - tarot.com reads it in its usual capitalistic fashion, whereas I read it more as a personal, innerworld struggle.
!! Today's Wiki Review
* [[2020.03.31 - belief]]
** Funnily enough, we learned this in school (in the form of objective VS subjective) but I don't think it sunk in.
* [[2020.03.31 - we live in a society]]
** Adjusted my eating habits again today. Sandwich for brekkie.
** Four of cups is getting hard to respond to. Might have to mill it if I get it again.
!! Meditation
5 minutes at 5:30
He seems to get up at roundabout the same time as me.
Anything before 10pm is mostly family time.
Most active in the night, 10pm-2am (during hubby time).
Yikes. When are we going to get time to call!
!! Why do you think some people take advantage of others?
Pretty soon after being born, we learn that we can get people to do things for us. Part of growing up is to realize that other people are their own people, so to speak, with their own desires, needs, etc. but we retain the knowledge that we can manipulate people into doing what we want (theoretically).
The "golden" circumstances are:
* Need or want for something
* The presence of someone that can get you what you need or want
* The ability to manipulate that person into getting what you want
* The lack of scruples/ethics/"morality" to go through with the manipulation.
"Taking advantage" implies a specific case of this - using someone to satisfy a craving for power or sex (everything is about sex, except sex - sex is about power).
So, people take advantage of others when all four of the above priors align, when the need or want is for power or sex in particular.
!! the-magician - https://www.tarot.com/tarot/cards/the-magician/rider
[[Previously.|2020.02.09 - rorschach]]
> Trust your inspiration. You are smarter than you think.
Oh dear! I think I'm very stupid, so I guess I'm only mostly stupid ;)
I've had a long history of wrestling both with the idea of intelligence and the nature of my own "intelligence". When I was growing up I often had people praising my intelligence (as I'm sure many geeky kids that got good grades did) but I never fully believed them. Even at the age of about 9 I didn't believe myself to be above and beyond my peers - many of them, despite seeming outward stupidity, were either incredibly clever or very wise. I still don't fully believe in the idea of intelligence - I certainly don't believe in the pseudoscientific (and racist) myth of IQ.
Inspiration can come from all sorts of places. Something as subtle as a scene from a movie, or a few chords, can inspire great works of art. Conversely, even the most soaring works of human achievment can inspire in someone nothing greater than simple bragging rights (those American Exceptionalists who take the moon landing, my personal crowning moment for the entire human race, as evidence that "we're" better than "them", for example).
[[LambdaMuRinpoche]] says: Think deeply on both these things, little [[chameleon]].
!! Today's Wiki Review
* [[2019 Daily Tasks]]
** Should've done this a while back!
* [[2020.03 Journal Review]]
** Wonder if I should just give up on high fantasy and check out other realms of genre trash instead. Indeed, I could start writing some trash of my own.
** h0p3 and I are trying to work out how we're going to go about VCing.
** gushing about my dear friend SaltyFox almost directly to his face.
** NFSH has been great this last month. I'm wondering about modding.
** Once my money comes through I hope to get Animal Crossing. Me and [[Sphygmus]] should have something to talk about there :)
* [[2020.03 Daily Tasks]]
** Think I managed every day this month.
* [[2020.04.01 - snarf title]]
** Struggled to title it
** Should talk about [[Violence]]. Let's make it an empty page.
* [[Sourdough]]
** Looks like an incredible rabbithole. I could probably work on my sourdough for the rest of my life, and pass the starter down to my (atm hypothetical) children.
!! Meditation
5 minutes at about 5:30.
[[The Abyssal]] and I are a little tight for money right now. I had to dig through my savings and pay out the last of it. I'm running on fumes right now. I can't afford even to return to the UK if it all goes tits-up.
With any luck I should be getting some money from Gramps soon. I really hope so. He was loaded because of clever investments. However, this is indeterminate and I'm not sure exactly how much I'll be getting.
I sorely hope that the virus passes and I'm able to get a job soon, or shit will really get tight.
!! How do you feel when you sleep at some one's house?
Well it depends who it is. Are they someone I know? :P
I used to love staying at my grandparent's house. If I got bored there was so much to do. That was when I was a little kid and more easily amused, though.
I haven't slept round at a friend's for a while. I think the last time I did that sort of thing was when I was sleeping WITH people... The last time I did that was when I visited my hubby for the final time before we got married, around Christmas of 2018. He visited a while later, and then not too long after that my visa came through and we were married. It was wonderful staying with him - though not as wonderful as LIVING with him is!
!! the-fool - https://www.tarot.com/tarot/cards/the-fool/rider
[[Previously|2020.02.04 - the fool]]
[[I'M BOO BOO THE FOOL!|https://cdn.discordapp.com/attachments/679151440001892353/693620039655489546/800px-Jan_Matejko2C_StaC584czyk.png]]
> Let go of preconceived ideas and remain open to change.
The Fool is one of the few cards in the deck (that I tend to draw) that has no particularly capitalistic interpretation on tarot.com ;)
I jest. It's a card about change and new beginnings, as I've said before - a little like a positive version of those two major change cards, the Tower and Death.
!! Today's Wiki Review
* [[2020.04.02 - trouble]]
** Really troubling. I'm hardly the only one.
* [[Violence]]
** Let's get this party started.
* [[2020.04.02 - the magic of the wizard's dream]]
** IQ is a myth. Intelligence is a joke. We are all pawns, controlled by something greater: MEMES. The DNA of the soul.
** Need scales and shit for my [[Sourdough]].
* [[Kaomiji]]
** Gotta keep this lying around!
** SingleFile is gorgeous.
* [[2020.04.02 - h0p3's timings]]
** We managed to call today. It was nice.
** His timings are really something.
!! Meditation
Ad-hoc timing at 10:20ish.
!! Tell about a time when someone made you feel welcomed or accepted. What did they do and how did it make you feel?
[[Zodai]] always does hir best to make me feel welcome. Gives me the warm fuzzies.
[[h0p3]] aims to do you justice. I love this sentiment. I've stolen it for my own wiki.
!! five of coins - https://www.tarot.com/tarot/cards/five-of-coins/rider
[[Previously|2019.11.09 - uh oh, stingy]], [[previously to previously|2019.10.20 - eyes wide open]].
> Pooling resources allows you to make bolder moves and larger investments in future projects.
I hate you, tarot.com! Pure fucking ideology.
As discussed previously, this shows poverty and hypocrisy. The focus could be on the church or the poor, but the meaning is the same - wealth is gathered by those in power at the expense of all the rest of us. This card stresses the importance of charity and speaks against hoarding - messages direly needed in a post-corona-chan world!
!! Today's Wiki Review
* [[SingleFile]]
** Great extension. Add it to the list.
* [[2020.04.03 - foolish girl!]]
** I'll sleep anywhere if I'm tired enough.
!! Meditation
5 minutes at 5:30.
Ok, I love this. https://www.thegamecrafter.com/games/super-8-bit-tarot
http://tokipona.net/tp/janpije/okamasona3.php
!! Nouns
* ''jan'' - person
* ''mi'' - me, I
* ''sina'' - you
* ''suli'' - big, tall important
* ''suno'' - sun, light
* ''telo'' - water/liquid
!! Verbs/Adjectives
* ''moku'' - eat, drink
* ''pona'' - good, simple
!! Grammar
* no hard line between verbs and nouns - moku can also be food.
* no tenses. mi moku - I eat, was eating, will eat, etc.
* ''li'' - separate subject from verb (not pronouns)
** e.g. jan li moku - the people were eating, but sina moku - you ate.
[[http://tokipona.net/tp/janpije/okamasona4.php]]
!! Nouns
* ilo - tool or machine
* kili - any fruit or vegetable
* ni - this/that
* ona - he, she, it (3p pronoun)
* pipi - bug, insect, spider
* ma - land, country, outside area
* ijo - something, stuff, thing
!! Verbs
* jo - to have; ownership, possesion
* lukin - to see, look at; vision
* pakala - mess up, destroy; accident
* unpa - have sex with; intercourse
* wile - want, must; will (Germanic sense)
!! Grammar
* Correction from last time - ''li'' is used for all subjects except ''mi'' and ''sina'', //including// ''ona''. ona li wile pakala e pipi - he wants to squish the bug
* ''e'' introduces direct object - mi moku e kili - I ate fruit.
!! When did you first realize you would someday be old or someday die?
Grappling with one's own mortality is a lifelong thing. It's always been a distant thing for me. I'm only in my mid-late twenties right now, so it's still a little far away (maybe it'll seem closer at 30). Of course, I could die when I'm young in a stupid car accident or something, like Camus.
I had a suicidal period. At the time I wanted to go out in a blaze of glory, like a hero of mine, Gilles Villeneuve. I don't think I'd really thought through what death means or what the consequences would be for my loved ones if such a thing happened.
~TheraminTrees did some really good videos on death:
* https://www.youtube.com/watch?v=syNVg8V4EQU
* https://www.youtube.com/watch?v=RBEE8Yfr3AM
!! wheel-of-fortune - https://www.tarot.com/tarot/cards/wheel-of-fortune/rider
I've never pulled this as part of my wiki review process, but I pulled it in a reading I did for SaltyFox a little while ago.
> Fundamental change is imminent. The positive benefits you gain during this period could last a long time.
It's immanent rather than imminent. The world is being broken down and remade in corona-chan's image. I'm not sure I'll get very much that's positive from this, unless we get to build socialism from the ashes of the old status quo. Ahhh, but a girl can dream.
The Wheel weaves as the Wheel wills. Note the letters spell out TARO, i.e. TAROT. I think the Hebrew letters read JHVH, and iirc the arrows represent the four elements, i.e. the four tarot suits:
* Water - cups
* Fire - wands
* Earth - coins/pentacles
* Wind - swords
The symbolism should be obvious.
!! Today's Wiki Review
* [[Links: Toki Pona]]
** The web presence is a bit wonky here. Some of the previously-active spaces are dead/down now, such as their wiki.
* [[Toki Pona]]
** Have wanted to learn it ever since I saw a discussion of it in a conlanging article.
*** TP would be a good basis for a conlang - start by translating all the words, then disambiguate them.
* [[Languages]]
** A lifelong passion.
* [[2020.04.04 - WHAT ARE YOU DOING]]
** Shouldn't start it so late. But, I was busy yesterday.
!! Meditation
5 minutes at 5:40
!! What is your least favorite chore and why?
Cleaning out kitty litter. The smell makes me retch hard.
While I'm sad that we haven't got cats living with us right now, I'm not sad about not having to clean up after them.
!! strength - https://www.tarot.com/tarot/cards/strength/rider
The first time this one has come up on the wiki!
The "strength" of this card is soft power - power that comes not from garden-variety might but from influence. Yes, it's [[Kanye West's Power|https://www.youtube.com/watch?v=SUtf9Ajlno4]], for us to hinge on his words even if he's (in terms of raw force) just a man.
My relationship with Kanye is more complicated than just my appreciation for his early work or disgust at his more recent actions. He cuts an outsized figure compared to his actual skill, in my opinion; his mental instability covered by the tabloids, his unraveling happening live at prime time.
Obviously, as a white Brit, whose background is in heavy metal and hardcore punk rather than hip-hop, I'm sure Ye couldn't give less of a shit about what I have to say. I've always wondered what would happen between us if I, too, was a famous musician. Would he collab with me? Depends on the type of music I make, maybe?
Regardless, the lesson to be taken from this card: power is more than physical force. Do with that what you will.
!! Today's Wiki Review
Lots of stuff yesterday!
* [[Devils & Devilry]]
** Embrace, extend, but don't extinguish your monstrosity.
* [[Chapman's Critics]]
** Silly, but maybe enlightening, idea.
* [[A-Theism: A Given]]
** Collecting some of TheraminTrees' arguments would be a good start.
* [[Monadism Book]]
** Came to me not in a dream, but in the fuzz of pre-sleep. Had to write a bunch of it down before I forgot about it.
* [[2020.04.05 - 8-bit tarot]]
** Cute deck.
* [[2020.04.05 - WHAT ARE YOU SAYING]]
** Yes, the last two day's titles were from koans.
* [[Toki Pona: Dictionary]]
** Took me a while, but now I have them on hand when I need them.
* [[Japanese]]
** A beautiful language my tongue is unfit to speak.
* [[2020.04.05 - Toki Pona 1]]
** This is the real first lesson. I'd advise starting here to anyone thinking of following me.
* [[2020.04.05 - Toki Pona 2]]
** jan Pije's tutorials are good, even if he's a subpar human. I might have to get the book, though.
* [[Toki Pona: Words I Suck At]]
** Singling them out seems to help.
* [[Toki Pona: Pronunciation]]
** It's really easy (designed that way).
!! Meditation
5 minutes at 5:30.
http://tokipona.net/tp/janpije/okamasona5.php
With these words, I've apparently learned over a quarter of the words in the language!
!! Nouns and verbs
* len - clothing; clothe
* tomo - house, building
* jaki - trash; dirty, nasty
* lawa - main, leading; head; to lead
* utala - war, battle; to fight
* sewi - sky; high, superior
!! Adjectives
* lili - little
* mute - many
* ike - bad, evil, complicated
* seli - warm, hot
* nasa - crazy, stupid, silly, weird
!! Grammar
* Combine things to make new words. ''jan pona'' - friend (good person).
* You can use ''li'' several times to introduce more things that the subject is doing/is. For example: "ona li pona li lili." - it is good, and it is small.
http://tokipona.net/tp/janpije/okamasona6.php
!! Vocabulary
* kama - to come, to happen, to cause
* pana - to give, to send, to release, to emit
* kepeken - to use; with, using
* poki - container, bowl, glass, cup, box, etc.
* kiwen - stone, rock; hard like a rock
* toki - language; to talk, to speak
* kon - air, atmosphere, spirit, wind
* tawa - to go to, to move; to, for
* lon - to be in/at/on, to exist; in, at, on
!! Grammar
* lon is used ''without e'' to be a bit like estar in Spanish - existing at a place.
** mi lon tomo mi - I'm in my room
** mi telo e mi lon tomo telo - I'm washing myself in the bathroom
** kili li lon poki - the fruit is in the basket
* lon used with e means something like "bring into existence"
** mi lon e wile mi - I'm making my dreams come true
* similarly, use tawa ''without e'' to mean go somewhere.
** mi tawa tomo mi - I'm going home.
** ona li tawa tomo jan Hope - the bug is going to h0p3's house
* and use tawa with e to mean moving an object:
** mi tawa e kiwen - I'm moving the rock
* kepeken can be used as a preposition to mean "with"; tawa to mean "towards, to, for".
** mi pona e ilo suno kepeken ilo lili - I fixed the torch with a small screwdriver
** mi toki tawa sina - I talk to you.
* Toki Pona doesn't use relative clauses. (If you don't know what a relative clause is: In the sentence, "I know that he likes me," the phrase "that he likes me" is a relative clause.) Toki Pona instead splits such sentences in two using e ni:. Here's an example: ''sina toki e ni tawa mi: sina moku.'' - You told me that you are eating.
!! What is your grandfather or grandmother's middle name?
OK hacker. Trying to dox me are you? Get fucked!
~~I actually don't know~~
I dreamed my grandma was alive again. I gave her a big ol' hug and started crying.
!! five of wands - https://www.tarot.com/tarot/cards/five-of-wands/rider
[[Previously.|2020.02.20 - koff koff]]
> The Five of this suit symbolizes struggles caused by ambitious maneuvering and a competitive urge. This could be about someone who is pushing his or her agenda forward at the expense of others.
!! Today's Wiki Review
* [[Iced Coffee]]
** Yummy. Careful not to put it in the coldest part of the fridge - just because it's //iced// doesn't mean you want it to be //ice//.
* [[TheraminTrees]]
** This will take a while to fill out.
* [[2020.04.06 - kanyedere]]
** Title from something stupid Glass used to say.
** Lots and lots of pages created!
** Daily prompts have been shit lately.
* [[2020.04.06 - Toki Pona 3]]
** Probably the last "easy" lesson, since it's mostly vocab.
* [[2020.04.06 - Toki Pona 4]]
** This took me a while. I think I'm definitely going to stick to one a day from now on, if all the subsequent lessons contain so much grammar.
!! Meditation
5 mins at 5:30.
http://tokipona.net/tp/janpije/okamasona7.php
!! Nouns, verbs, adjectives
* anpa - ground; low; deep; to lower, to defeat
* insa - inside, stomach
* monsi - rear, back, behind
* sewi - high, above roof, top, sky
!! Prepositions
* sama - same, similar
* tan - reason, cause; because of
* lon poka - beside, nearby, with. By itself, ''poka'' means "side".
!! Grammar
* anpa, insa, monsi, poka, sewi can be used as prepositions by using lon.
** ona li lon sewi mi - he's above me
** moku li lon insa mi - the food is inside me
** sina wile lon monsi mi - you should stand behind me
* sama works in various places.
** jan ni li sama mi - that person is like me
** ona li lukin sama pipi - he looks like a bug
** sama li pona - equality is good
** jan sama - sibling
* tan tends to mean "because of" or "from".
** mi moku tan ni: mi wile moku - I eat because I'm hungry.
** mi tan ma ike - I'm from a bad country
[[Sphygmus]], very very kindly, bought me Animal Crossing and a year of Nintendo Online! I can't thank her enough. See me online, folx~
http://tokipona.net/tp/janpije/okamasona8.php
!! Vocab
* ala - no, nothing
* ale/ali - all, everything
* ken - can, be able to; possibility
* lape - to sleep; sleep
* musi - to have fun, amuse (oneself); fun things, games
* pali - to do, to make; activity, work
* sona - to know; wisdom
* wawa - strong, intense, energy, power
!! Grammar
* Negate things with ''ala'':
** mi lape ala - I'm not sleeping
** mi musi ala - I'm not having fun
** mi wile ala tawa musi - I don't want to dance
** ala li ike - nothing's wrong
* Everything-ise things with ''ali'':
** jan ali li wile sona - everyone craves knowledge
** ali li pona - everything will be fine
* Ask yes/no questions by affirming then negating:
** sina pona ala pona? - are you ok?
** ona li lon ala lon tomo? - is he at home?
* Answer questions by repeating the verb if yes, the negation of the verb if no.
** """jan Jon: sina wile ala wile moku?
jan Pipa: wile.
"""
** """jan Pipa: sina wile ala wile moku?
jan Matu: wile ala.
"""
** """jan Nise: sina sona ala sona e toki mi?
jan akesi kule: sona ala.
"""
* tan can also be used as a noun, to mean "reason".
** mi sona ala e tan - I don't know why (I don't know the reason).
!! What extinct animal would you bring back, if you could?
I mean, all of the ones that have gone extinct from human activity, maybe?
I wish I could prevent poachers from stealing ivory from elephants and rhinos. I guess we'd need to outlaw traditional Chinese medicine to kill the demand... bruh.
Joke answer: Woolly mammoths, so I could ride around on one all day to flex on people.
!! eight of swords - https://www.tarot.com/tarot/cards/eight-of-swords/rider
[[Previously|2019.11.18 - age of lies, will you open your eyes?]], [[previously to previously.|2019.10.26 - the mind prison]]
> Rise to the occasion with confidence in your talent and ability.
I guess this is the Harry Houdini aspect of this card, eh? He looks like he's going to escape, even if it's a seemingly hopeless situation. That's the lesson we have to take from people with talents like Houdini's - no matter how hopeless the situation looks, there's always a way out.
!! Today's Wiki Review
* [[2020.04.07 - Toki Pona 5]]
** It's going pretty well. I can read a lot of TP now.
* [[2020.04.07 - denpa kei]]
** Couldn't be arsed to do the tarot reading yesterday.
!! Meditation
5 mins at 5:25.
!! What do we mean when we say, "You can catch more flies with honey than with vinegar"?
On a practical level, catching flies with honey is the way to go, since flies like sugar. On an allegorical level, it's reminding us that sometimes, sweetness (i.e. kindness and empathy) is a more effective way to persuade people to see our point of view.
https://en.wikipedia.org/wiki/Vinegar_tasters
!! the-empress - https://www.tarot.com/tarot/cards/the-empress/rider
[[Previously|2019.12.08 - students]], [[previously to previously|2019.11.07 - bax]], [[previously to previously to previously.|2019.10.29 - good vibes]]
> Rather than being tough on yourself for not measuring up, know that your positive influence has facilitated favorable outcomes.
This is one of my fave cards for this reason - while I might not always succeed in my own right, I want to take care of my friends so they can do everything to the best of their abilities. It's my praxis. I'm a real mama bear, haha.
!! Today's Wiki Review
* [[2020.04.08 - Animal Crossing]]
** Fun so far, but I'm still waiting for the day to tick over so I can get my house and the means to explore the rest of the island...
* [[2020.04.08 - Toki Pona 6]]
** Spoke too soon; here's another easy one.
* [[NATO Phonetic Alphabet]]
** More useful than the "ay bee see" phonetic alphabet (no need to say "bee for brother" or the likes - you'll never confuse Bravo with Delta or Tango). Kids should learn this in school, imho.
* [[2020.04.08 - woolly mammoths]]
** Lots of awesome rare tropical birds (not just the dodo) went extinct during the Age of Exploration.
!! Meditation
5 at 5ish.
!! Language studies
Started toki pona Anki. Added words from lesson 1.
http://tokipona.net/tp/janpije/okamasona9.php
!! Vocab
* a - ahh, ha!, umm, hmm, ooh, etc.
* awen - to wait, to pause, to stay; remaining
* mama - parent
* mije - man, husband, boyfriend, male
* meli - woman, wife, girlfriend, female
* mu - woof, meow, moo, any animal sound
* nimi - name, word
* o - used for vocative and imperative
* pona - yay!, cool, good
* toki - language; hey!
!! Grammar
* Loanwords: pona-ize them, then prefix them with what they are:
** jan Hope - [[h0p3]] (person Hope)
** jan Supi - [[Sphygmus]] (person Supi)
** toki Inli - English (language Inli)
** moku Lasana - Lasagna (food Lasana)
** ma Era - Ireland (Eire) (area/country Era)
** ma tomo Lantan - London (built-up area Lantan)
* Address people with ''o'' after their name.
** jan Hope o, sina sitelen ala sitelen e lipu? - [[h0p3]], are you going to write a letter?
** jan Tepani o, sina ike tawa mi. - Stephany, I don't like you.
** jan Epi o a! - Oh, Abbie!
* ''o'' before a verb expresses a command.
** o tawa! - Get out of here!
** o kama sona toki pona - Learn toki pona.
* Express gender with ''meli'' and ''mije'', since toki pona has no grammatical gender.
** jan meli - A lady
** jan mije - A bloke
** mama mije mi moku mute - My dad eats a lot
* TP has some interjections:
** toki! - Hello!
** pona! - Yay!
** ike! - Oh no!
** jaki! - Gross!
** pakala! - Fuck's sake!
** mu - animal noises, grr, meow, woof, etc.
** a - Errrm...
** a a a! - hahahaha!
* And salutations:
** suno pona - good day!
** lape pona - sleep tight!
** moku pona - enjoy your meal! //itadakimasu!//
** mi tawa - I'm off. See ya!
** tawa pona - Have a safe journey!
** kama pona - Welcome!
** musi pona - Have fun!
!! What would you invent to make life better?
Instant perk-up-o-matic! Shitty night's sleep? Have to be at work or fix your sleep schedule? One sip and it'll be like you're responsible about your sleep!
Influenced by the fact that I feel like shit right now and need sleep but it's too early.
!! the-moon - https://www.tarot.com/tarot/cards/the-moon/rider
[[Previously.|2020.02.22 - moonyditation]]
!! Today's Wiki Review
* [[Dosbox]]
** A classic program.
* [[2020.04.09 - Toki Pona 7]]
** I think the only tricky grammar thing I have left is ''la''.
* [[2020.04.09 - honey and vinegar]]
** We'll see how long I can stick at anki this time. Hopefully the wiki keeps me honest.
!! Meditation
3 mins at 7ish
!! Languages
Added toki pona 2 vocab to anki deck. Did anki deck.
http://tokipona.net/tp/janpije/okamasona10.php
!! Vocab
* olin - to love (a person)
* seme - what, which
* sin - new, another, more
* supa - furniture (as in sofa); surface
* suwi - sweet, cute; candy, cookie
!! Grammar
* Use ''seme'' to answer questions about the subject or object of a sentence:
** seme li utala e sina? - What attacked you?
** sina moku e seme? - What are you eating?
* ''seme'' can also be used to say why - ''tan seme'' - because-of what.
** sina ike tan seme? - Why are you bad?
!! Vocab examples
* mi wile e suwi sin! - I want another cookie!
* mi olin e sina - I love you.
!! What situation has caused you to confront your ethics recently?
Rather a confusing question. [[Senpai senpais here.|https://philosopher.life/#2018.07.15%20-%20Prompted%20Introspection%3A%20Confronting%20My%20Ethics]]
I take almost the opposite view; I think in truth, ethical quandries are the exception rather than the rule. That's why shitty ethical/moral systems last so well; they're rarely tested. Once you've bootstrapped basic empathy and basic systemic understanding (c.f. Kegan) then things stupid people cause fusses over become trivial to solve.
Let's also not remember that for some definitions, I'm actually //a//moral. I don't have a system, rather [[a meta-system|Monadism]].
!! seven of swords - https://www.tarot.com/tarot/cards/seven-of-swords/rider
[[Previously.|2020.02.28 - always against the consensus]]
> Discipline yourself to stay focused on the desired outcome and you will make your way past all competing circumstances.
Focus is ridonkulously important in both creative and non-creative work. You have to stay on target and keep the finished item in mind.
!! Today's Wiki Review
* [[2020.04.10 - aw yeah... N!]]
** Glad I rested well. I ended up going to sleep much earlier than usual. I also woke up earlier, thanks mom.
** Couldn't be arsed to do the card. Maybe tomorrow (today).
* [[2020.04.10 - Toki Pona 8]]
** One of the easiest grammar-wise. Vocab not hard either.
!! Meditation
5 minutes at 5:00.
!! Languages
TBD.
!! What or who is the greatest love of your life?
Oh, don't ask me this tricky question ;)
"Who" is easy, though it's a tie. [[Konata]] and [[The Abyssal]]. I don't really believe in ranking love; that seems to defeat the purpose.
As for "what", I guess [[Computing]] and [[Music]] are the only things I've been consistently into since I was very very smol.
Two each; I'm such a slut [[=w=.]]
!! the-high-priestess - https://www.tarot.com/tarot/cards/the-high-priestess/rider
[[Previously.|2020.03.25 - Aunt Senpai]]
> Put self-cultivation at the top of your daily priority list.
Almost like meditating every day? Haha.
The wiki is a self-cultivation machine. Doing this every day is incredibly helpful for me. I love having that record to look back on.
!! Today's Wiki Review
* [[Desu's Ideology]]
** I wonder what he's up to these days.
** This shit endures hard. I have to comfort SaltyFox about it.
* [[2020.04.11 - ethics]]
** Ended up not doing the language stuff.
* [[Yesterday's Money]]
** He asked where his wiki page was =w=.
!! Meditation
5 at 5
!! Languages
Added lesson 3 vocab. Did a review.
http://tokipona.net/tp/janpije/okamasona11.php
!! Vocab
* pi - essentially means "of"; see notes below
* kalama - sound, noise; to make noise, to play an instrument
* kulupu - group, community, society
* nasin - road, way, doctrine, method
!! Grammar
* ''pi'' separates a noun from another noun that has an adjective.
** (noun 1) pi (noun 2) (an adjective that modifies noun 2 but NOT noun 1)
** kili pi jan Susan - Susan's fruit
** lili pi jan Kawen - Karen's kid
* pi and ala combine to make opposites:
** jan wawa - strong person
** jan ''pi'' wawa ''ala'' - person of no strength i.e. weak person
* ''nasin'' can be used to mean how:
** sina pali e ni kepeken nasin seme? - "You made this using what method?" i.e. "How did you make this?"
Something interesting I did not know.
"Vir" is Latin for man. The English word "virtue" is derived from this via Latin "virtus", per Wikipedia: "It carries connotations of valor, manliness, excellence, courage, character, and worth, perceived as masculine strengths". So it's closer to "manliness" (otoko) than general ethical/moral characteristics.
"Virile" and "virility" come from the same root "vir" - [[https://en.wiktionary.org/wiki/virilis#Latin]].
This opens up new avenues for feminist exploration.
Yes, //that// Confucius.
This might seem a little out of my ballpark. However, as someone that's been a chinaboo my entire adult life, he's honestly easier to approach than the likes of Kant for me.
* https://www.gradesaver.com/the-analects-of-confucius/study-guide/summary
* https://www.youtube.com/watch?v=-hsXpskVkBU and https://www.youtube.com/watch?v=MnuQB7TYRuk
** Seems to be an underappreciated channel. I enjoyed his explanations. I think he's a teacher of comparative religion at university or something? His manner of speech and use of a slide deck made me feel like I was back in university.
*** If I was [[senpai|h0p3]] I'd immediately reach out (academics can be rather more approachable than the general public) but I'm not sure I'm ready quite yet.
** I listened in the shower, on a whim, so I'll need to rewatch these.
* School of Life has a take, too - https://www.youtube.com/watch?v=tUhGRh4vdb8
** These videos are a very popcorn take on philosophy, afaict. Some concepts seem simplified. They do a good job getting an introduction down.
* "The Analects" is the most famous primary source. There are numerous commentaries in Chinese, traditional and otherwise.
** "Confucius is traditionally credited with having authored or edited many of the Chinese classic texts including all of the Five Classics, but modern scholars are cautious of attributing specific assertions to Confucius himself. Aphorisms concerning his teachings were compiled in the Analects, but only many years after his death." - [[Wikipedia|https://en.wikipedia.org/wiki/Confucius]]
* Confucius lived during [[the Warring States period|https://en.wikipedia.org/wiki/Warring_States_period]]. This is a few hundred years before the Three Kingdoms period.
** Prof G's video made me think about how our turbulent times may need a thinker such as ol' Confucius.
* He is famous for advocating for the golden rule. Senpai seems to think highly of the Konigsberg formation. I wonder why it's not more influential. I feel like there might be a clue in this direction.
** Kant's CI is too easy to abuse in my opinion. You can make it say stupid things are moral, and minor infractions immoral in all cases.
** Dig deeper later.
My husband has given me flowers on a few occasions. It's lovely. It shows that he cares.
!! the-world - https://www.tarot.com/tarot/cards/the-world/rider
[[Previously.|2020.02.12 - i miss you]]
> The goddess of The World card invites us into cosmic citizenship -- once we come to realize our soul's potential for it. It announces the awakening of the soul's immortal being, accomplished without the necessity of dying.
`slaps, slaps, and slaps again`
There's no soul! Stop spreading harmful lies like this!
People start believing in souls, they start thinking there's something wrong with them, they start to get flushed down the depressive spiral. Fuck that. You're fine as you are. You don't need to take your "soul" to a garage to have tweaks performed on it.
!! Today's Wiki Review
* [[2020.04.12 - Toki Pona 9]]
** Easiest yet.
* [[2020.04.12 - key change!]]
** How I love my hubby and my waifu~
!! Meditation
4 at 10.
!! Languages
Anki revision.
I napped for two hours at 5pm today. Not sure what's happening there. Is [[Nobu]]'s influence turning me into the second cutest narcoleptic?
* Alice posts long, thoughtful articles at most 5 times a year. Bob posts something fun every day.
* I want to read all Alice's posts, and occasionally want to read items from Bob's feed.
* A "flood gate" has Alice completely overwhelmed by Bob.
* Interlacing the posts has two-day-old Bob-posts alongside several-month-old Alice posts.
* Seperating the feeds leaves me with the same issue as just having an "interesting sites" bookmark folder or tabs to check every morning.
What's a [[chameleon]] to do?
I'm going to start titletagging my daily tasks so they don't get overwritten if I've not titled them yet.
!! Describe the ocean to a person who is blind.
Interesting question. Surely blind people don't have much of a problem with understanding "a large body of water that covers most of the planet"? Eh. I'll try anyway.
Water. It's everywhere. The water continues on and on and on, seemingly forever. The sand underfoot is bisected by a neverending abyss of water. If you were to sail out into this void - and not die - it'd take weeks to reach whatever is on the other side of it. It covers most of our planet. There are areas in the Pacific ocean which, if you look on the other side of the Earth, you will only find more Pacific ocean. Practically the entire Southern Hemisphere is covered in the stuff. Out in the deep ocean there are humongous waves called rogue waves, said by observers to be "walls of water". They reach up to the size of large buildings. There are areas on the seafloor where if you put Mount Everest down, it'd not even reach the surface. A shotput dropped into the Mariana Trench won't reach the bottom in half an hour.
The oceans are terrifying, endless voids and it's no wonder they've claimed so many lives over the years.
!! two of cups - https://www.tarot.com/tarot/cards/two-of-cups/rider
[[Previously|2019.11.24 - create]].
> Express the caring that you feel. Reach out to those you hold in your heart, so that they know you are thinking of them.
Genuinely good advice. That's what friends are for, as they say.
I decided to reach out to SaltyFox, since he's been having a tough time recently. I'll try to talk to [[Zodai]] later as well. I was lucky enough today to get to voice call with Creepy Bear and Jasper; it was great fun.
Friendship is wonderful. I guess all those cheesy cartoons we watched as kids were right!
!! Today's Wiki Review
* [[2020.04.13 - titletagging]]
** I now understand better why [[h0p3]] uses them so extensively.
* [[2020.04.13 - "vir"tues]]
** Interesting connection I'd never made before. "Vir" is not used in the romance languages I know.
* [[2020.04.13 - Daily Tasks: no soul]]
** First titletag - I actually lost this one when it was half done and had to snarf it from backups.
* [[2020.04.13 - napping]]
** Avoided the temptation to do it again today. I was sleepy even during my meditation.
* [[2020.04.13 - Confucius]]
** Reading a totally legally obtained copy of [[https://www.amazon.com/Analects-Selections-Traditional-Commentaries-Classics/dp/0872206351]]. He's a fascinating figure.
** I don't think he's nearly as conservative as people make him out to be. He's not interested in the past for the past's sake as reactionaries are; he wants a good environment to raise people in. Some of his thought can definitely be read in a leftist way, too.
* [[2020.04.13 - the feed problem]]
** I'm sure kicks is working hard on this for fraidycat, but the performance was too poor for me to want to use it.
!! Meditation
5ish at 5ish
!! Languages
Added lesson 4 vocab & did anki.
!! What do you think about people polluting the environment?
Fuck them. They can go fellate a cactus. How the fuck do you expect us to live in the future? Morons.
!! king of cups - https://www.tarot.com/tarot/cards/king-of-cups/rider
[[Previously.|2020.02.11 - pops]]
Last time I talked about the old man, and how he's a King of Cups himself - the Cups being the suit of empathy and feelings, and Kings being father figures. Well, okay, I only touched on it briefly; but that's how I feel.
I'm very lucky when it comes to my parents. Dad is an intelligent, wise, kind renaissance man; mum is empathetic, sweet, and honest when she needs to be. I'd be dead without them (even if we don't include the part where they gave birth to me).
Considering what I've been studying, I should talk about Prof G's account of a Confucian self - not a self as an individual being, but embedded within a web of relationships. You are yourself, but also your relationships with those around you - you are a mother, a younger sister, an aunt, etc. The social landscape. The King of Cups' position is of //responsibility//. The part a [[Senpai]] has to play is to teach his/her kouhai well.
!! Today's Wiki Review
* [[Analects]]
** Chose the right edition, judging by the Amazon reviews.
* [[Confucius]]
** Let's see how this goes.
* [[2020.04.14 - Daily Task: i wuv my fwends]]
** I really do.
** Managed to scare myself. I have a mild thalassaphobia. I could never sail out into deep water.
!! Meditation
5ish at 3ish.
!! Languages
No Anki revision needed today. Did another lesson. Added lesson 5 vocab.
https://imperfectbuddha.com/2020/04/11/dr-ashley-frawley-on-happiness-the-present/
Interesting stuff. Speaks against the cultivation of the "self". c.f. [[McMindfulness™]], self-help books.
Thanks again, [[David Chapman]]-senpai.
http://tokipona.net/tp/janpije/okamasona12.php
!! Vocab
* ante - other, different
* anu - or
* en - and
* kin - indeed, still, too
* lete - cold, to freeze
* lipu - paper, sheet, page, ticket, etc.
* mani - money, currency
* pilin - feel, think
* taso - but, only
!! Grammar
* Only three conjunctions in toki pona - anu, en, taso. Each different.
* ''anu'' can make questions.
** jan Susan anu jan Lisa li moku e suwi? - Did Susan or Lisa eat the cookies?
** sina toki tawa mi anu ona? - are you talking to me, or her?
** sina toki pi mama anu jan lili? - are you talking about the mother, or the child?
* ''anu'' can also make "…or what?" questions.
** sina kama anu seme? - so are you coming, or not?
** sina wile moku anu seme? - Do you want to eat or what?
* ''en'' means and. Join nouns together with it.
** mi en sina li jan pona - you and I are friends.
** jan lili en jan suli li toki - the adult and child are talking.
* Don't use ''en'' to join direct objects. Use multiple ''e'':
** mi wile e moku e telo - I want to eat and drink.
* Don't use ''en'' to conjoin whole sentences. This doesn't work in toki pona. Just use two sentences.
* You can use ''en'' with ''pi'' if two people own something together:
** tomo pi jan Keli en mije ona li suli. - The house of Keli and her husband is big.
* ''taso'' can be used as an adjective or a conjunction.
** As conjunction: end the sentence, start the "but" sentence with ''taso'':
*** mi wile moku. taso mi jo ala e moku - I want to eat, but I don't have any food.
*** mi pona. taso meli li pakala - I'm okay, but my wife is injured.
** As an adjective, it goes after the noun, like all others, and means "only".
*** jan Lisa taso li kama - Only Lisa came.
*** mi sona e ni taso - That's all I know.
* ''kin'' means also or still.
** """jan Jon: mi tawa ma elopa. - Jon: I went to Europe.
jan Masu: pona! mi tawa kin. - Matthew: Cool! I went too."""
** """jan Jon: mi mute o tawa. - Jon: Let's go.
jan Masu: mi ken ala. mi moku kin. - Matthew: I can't. I'm still eating."""
!! Describe your first boyfriend or girlfriend.
(assuming you mean [[3D]]. If not, [[Konata]] was the first).
It depends how you define it. I messed around with a lot of folx before my first real relationship. My first real relationship was with a Finn who treated me like shit and made me miserable; sucks that I gave them my virginity. It's no wonder that I've been less willing to date people that I don't already know really well since then.
Haha, you made me demisexual.
!! knight of cups - https://www.tarot.com/tarot/cards/knight-of-cups/rider
[[Previously.|2020.03.19 - fastntng]]
> His taste for adventure is exhausted -- there is no more romanticizing of battles or travel in strange lands. Now he wants to go where he will be recognized, wanted and welcome -- where he doesn't have to fight at every turn. He has the attitude of one who has become older and wiser, the prodigal son.
Youth has an adventurous aspect to it. I suspect over time your thirst for adventure gets quenched. Though, it's not like older folx don't occasionally think "damn, I could go for some adventure".
This got me thinking about asoiaf again. Wonder if, in the covid panic, my boy has been able to reach near-finishing.
!! Today's Wiki Review
* [[jpdfbookmarks]]
** Useful tool. Marked up my copy of the Analects.
* [[2020.04.15 - imperfect buddha 67]]
** Will have to listen to more episodes.
** In this age, a lot of information is locked up in podcasts.
* [[2020.04.15 - Toki Pona 10]]
** Mostly conjunctions.
* [[2020.04.15 - Daily Task: fellate a cactus]]
** Title sounds like it's my daily task to fellate a cactus.
** Pops again.
** Much more linguistic fun. I'm reaching the end of the TP course.
!! Meditation
Yes.
!! Languages
Anki added lesson 6 + studied.
!! What medium would your life best be shown as? A movie? A television series? A cartoon? What genre would a movie about your life fall under? Comedy? Romance?
This is two questions in one! I don't mind.
Obviously a manga. A slice of life. A Lucky Star spinoff ;) Romantic comedy with a bumbling chameleon with a heart of gold and an open third eye.
I don't know enough about movies to say for sure.
!! the-devil - https://www.tarot.com/tarot/cards/the-devil/rider
[[Previously.|2020.02.06 - hail satan again]]
> Let go of inhibitions. Allow yourself to express all of who you are.
The truth is that you are always "being yourself"; that's very bad advice, who else are you going to be?
The cult of self is in dire need of some deconstruction!
!! Today's Wiki Review
* [[2020.04.16 - Daily Task: fuj]]
** Just up to my usual bullshit.
!! Meditation
Late, but I did it.
!! Languages
Did my anki.
* I won't get a teacher
* I won't prostrate myself to some larger tradition or take any vows I don't believe in
* I won't get myself ordained in some bullshit tradition
Lineages and shit can fuck off.
---
In modern times a great deal of nonsense is talked about masters and disciples, and about the inheritance of a master's teaching by favorite pupils, entitling them to pass the truth on to their adherents. Of course Zen should be imparted in this way, from heart to heart, and in the past it was really accomplished. Silence and humility reigned rather than profession and assertion. The one who received such a teaching kept the matter hidden even after twenty years. Not until another discovered through his own need that a real master was at hand was it learned hat the teaching had been imparted, and even then the occasion arose quite naturally and the teaching made its way in its own right. Under no circumstances did the teacher even claim "I am the successor of So-and-so." Such a claim would prove quite the contrary.
The Zen master Mu-nan had only one successor. His name was Shoju. After Shoju had completed his study of Zen, Mu-nan called him into his room. "I am getting old," he said, "and as far as I know, Shoju, you are the only one who will carry on this teaching. Here is a book. It has been passed down from master to master for seven generations. I also have added many points according to my understanding. The book is very valuable, and I am giving it to you to represent your successorship."
"If the book is such an important thing, you had better keep it," Shoju replied. "I received your Zen without writing and am satisfied with it as it is."
"I know that," said Mu-nan. "Even so, this work has been carried from master to master for seven generations, so you may keep it as a symbol of having received the teaching. Here."
The two happened to be talking before a brazier. The instant Shoju felt the book in his hands he thrust it into the flaming coals. He had no lust for possessions.
Mu-nan, who never had been angry before, yelled: "What are you doing!"
Shoju shouted back: "What are you saying!"
My æsthetic at this point is of a zen monk that lives on top of the mountain. When someone comes to me I ask them to tell me the sound of one hand clapping; if they get it wrong, I whack them on the head and slam the door. Then I go back to my gyaruge.
I thought I was just going to [[@]] or write a note. It turned out longer. Surprise! Lol.
<<<
reading books on a monitor is unpleasant
<<<
My wife hates reading books on a monitor too. Her e-reader+Calibre seems to work for her. It's hard to beat paper sometimes. I'm trying to taper off paper, but it's not been working out, lol.
<<<
The reason I'm not into private trackers is because of the elitist community (you have to take a fucking exam to get into some of them) and the fetishism around ratios (I can almost never get a good ratio, because I only go on private trackers for obscure shit, and can't afford to seed 24/7).
<<<
I don't think the purpose of the community is to merely serve itself, so I have a problem with that elitism too. The wrong infrastructure is being built (and I continue to see elite piracy communities and institutions disappear over the years that could have survived had they different motivations).
You could hit ratio just fine on some trackers; it helps if it's something you gamify (not everyone's cup of tea). It's hard to capture intention, and some do it better than others. I'm a fan of public trackers too.
<<<
I'm sorry if I seem a bit aloof about some conversation topics. I'm trying to I guess, invite you to say the first word on the topic? Maybe I'm just really bad at communicating :) Don't take my silence on something as boredom or dislike of the topic. If I don't want to talk about something, I'll be clear on it - like you with saying "that's evil" I am not shy about saying "that's boring" or "that makes me uncomfortable" `^^`
<<<
No need to be sorry. I believe I hear ya. I know you aren't shy in many respects. That's a good thing too. Something has been off though. I feel like I've been circling a concern: what should we wrestle about? I'm still thinking about how to address the unspoken here (and you should tell me I'm way off base, please). I will do my best to gently break silences. Maybe this is the ackable letter of confirmation you have been waiting or whispering for (if at all). It's my honor to hand you a special card that my closest family share with me, your very own shiny, holofoil "[[STFU, h0p3|Family: Battle Language]]" card. It's all yours. Play it at-will.
As you know, I am your retarded hawk friend, and I am every bit as bizarre as you are. That continues to be part of what is so fucking great about us; also, you are super chill, intelligent, open, hilarious, and somehow also down to urf wit me. I hope to die as your friend many decades from now.
Painfully, in some crucial sense, I don't have to describe alienation to or with you; you already know it quite well, and vv. Unfortunately, so often, confronting alienation is where the test of justice begins. Despite perhaps claiming not to really believe in such a thing to some [[dok]], you are often extremely just and moral. You also often reason wisely about your feelings of disgust and distrust. Further, I think you understand how much I respect your vulnerability and [[nakedness]]. We both walk that line (and I would argue you do it better than I do). I aim to keep it that way, to give you space, to hold back, and to be grateful to know you. I cherish being friendly with you, and I'm also honored to be your friend. I have aimed to protect you from and attenuate the [[arrogant]] asshole inside me with integrity as best I can knowing that you see it full well. I see bright hedgeable lines in your form.
For [[fff]] minds, philosophy, in at least some contexts, will always be an irreducible kind of wrestling. Some part of the equation is a unique problem for everyone in this way. I also hold my stance in the wrestling pocket where many people will not, a commitment that appears crazy, and I'm willing to accountably light people on fire for it. Obviously, I think you affectively and cognitively know that, and we both read each other well enough to know that the contours and gaps of our bridge are non-trivially complex to cross without risking burning it down. I am not convinced I should wrestle hard with you. I am doing so uncomfortably with you here because I think it's my duty.
We're talking past each other pretty often. This may be the best option right now. If you are going to wrestle me, be prepared to wrestle everywhere, even when you don't want to. Mortal Kombat is often an uncomfortable commitment. Gotdamn, [[chameleon]], I am a brutal, throat-slitting, holier-than-thou, table-flipping person in some spaces, and, [[ITS]], I despise even the thought of the possibility of hurting you. Dude, you already have enough pressures in your life; I'd rather just be positive support for you until you are made of steel.
I like and [[love]] you, and it's not clear to me that you will find it worth your time to directly wrestle with me just yet (obviously, I think it is the fastest way to transmit [[salient]] knowledge in many contexts). We have an ongoing lossy yet high-bandwidth implicit, indirect exchange, and I aim to be a useful tool to the combination of our conceptions of [[The Good]] (a kind of cooperation that I hold in high regard). At the moment, I can do this by reading what you have to say (which is a joy for me) and pointing to places that might be worthwhile to you given what I understand of your beliefs and desires.
Unfortunately, I can be a costly man to explicitly speak with about crucial topics; there is a price to pay for directly looking in the distorting mirrors with each other. Part of the reason my writing can be electrifying (when it is, which is rare, and I think there are more important things to pursue), is that I have a killer instinct and a conviction that I have a moral right to force some people to wrestle, even when they don't want to. Yes, I can be intimidating in person and in writing (and, that's part of my vocation). Sometimes I fight when it don't make no sense to lots of people too.
Unfortunately, the risk-assessed price for admission to engaging in philosophy with me when you sometimes seem to aim to deny the concept of philosophy in your current work is pretty darn high (speaking in contradictions or inconsistencies can be very expensive even where necessary), and I think you should hold me to a similarly high standard. I suggest that crucial parts of me are exactly what you despise, and rightfully so, to some extent, if my guesses about your experiences and point of view are correct. I think it's a good thing that we have had time and distance to ponder and weigh our differences, asymmetries, and inconsistencies while still having so much access to [[The Other]]. Our relationship has been a gift, and, yes, I aim to be [[intimate]] with you. I do not want to hypocritically or justifiably knick you without a surgeon's qualified hands though; some of my wrestling throws and pins are unsophisticated, mean, and disgusting caveman speak.
I'm a zealot of one book no one seems to have written well enough. I paranoically interpret each object and subject of the world in two ways given the best measurements of each I can muster: as though they are evil, and as though they are good. It is my experience that the truth tends to be somewhere in between in most contexts. It is the virtuously virtuous agent's job to find the fitting dimensions of the golden mean ([[WINTCIS]]).
I am interested in verifying that we understand the analytic concept of fundamental disagreement and know how to engage in it wisely together. [[Sir GB]] knows I think he's been dead wrong his entire life in some crucial places in philosophy and vv., and there are some places we just don't wrestle much because there's no use to it. Sometimes there's a nod between two wrestlers who both love each other and the game, a high-five of sportsmanship when a particular move was way cool, a bow of deference in particular cases, a charitable handicap in practice, sometimes an ass-kicking in both directions with both aiming for a draw, and a hug at the end. It takes a long time to develop a trust in interpretation, especially since we seem to have so many non-starters in our discussion (I am, of course, willing to disagree again and again).
It is, has been, and will be important to me that we can prove our empathy. You do! Thank you. I [[hope]] to live up to it. I also continue to [[fff]]ingly try to build social capital with you, trust, reasons for you to know I aim to be family with you even when I'm mean. As you know, some of my literal enemies hold similar memeplexes to yours (it's a crucial prejudiced empirical signal to me), and you must say the same of me. You have been worried before about how you engage in discourse; you want to be a particular kind of person in dialectics. I see it (though I do not claim to be able to put it into words well enough for you). It's why you are "The Good Kind" to me, [[chameleon]].
When I teach Philosophy of Religion in a standard classroom, I teach it as a skeptic that tells both sides of the story. It's a safe style and an attempt to be fair in a hard place. Regardless, many of the theists and atheists become quiet or enraged, and many of the agnostics never cared. Saint [[Oliver Sensen]]'s gentle advice to me was to hold my positions and ground instead (unless, ofc, it disagrees with his ;P); he knew exactly how humble I meant to be, and he knew exactly what it meant to teach from a particular point of view given all the entailed commitments. As usual, he was right to some [[dok]]. This wiki moves toward owning my position. I look at your stance and style and I am not convinced you would really appreciate wrestling with me everywhere just yet.
Also, I will remind you that you always have the ability to interrogate me anonymously. Many have the chance to poke and prod me mercilessly without much accountability, which is why I hold back far less with those who live private lives. With these, I get to assume their intentions are closer to the average while still trying to come correct to preserve the innocent.
I am going to keep saying it: I adore that you do real philosophical wrestling and spelunking in your wiki. You take some [[beautiful]] and fascinating routes. You are still evolving considerably. If you are looking to negate me to some [[dok]], I'm trying to give you the best ammo I can. I take you to either not know what you are saying or to not mean what you say. I aim to be [[Straussian]] about you, [[chameleon]], and I don't want to learn you are evil (which is what I learn about almost everyone I meet). I will if I must. I just don't believe you are evil, and I prefer not to question it more than I must.
<<<
> I wonder if she will ever surface again to go public.
I imagine I will, eventually. The KF thread in mind is so shit it'll eventually get locked (it's already just a drama channel for waifuists, and the most active guy there is a huge a-log) and then I can move back into public without worrying about being a source of ridicule.
<<<
Worse comes to even worse, you can transplant the wiki to another domain+server with a restrictive [[robots.txt|https://philosopher.life/robots.txt]]. It would be hard to find even in plainsight. Though, if your work became well-known enough, it might not be a reasonable possibility.
<<<
> I'm doing a shit job of VCing with her.
I think the fault is mine as much as yours :) My schedule is weird and hard to work around. Sorry about that.
<<<
Naw, please don't worry about it. We'll get there. I appreciate that you give me so much leeway in my life, including how long I take to respond, lol. Feel free to just call me up randomly like my brothers do. I can't always pick up for them either, but I will try. I think our schedules for the past half-year have been in absurd flux, just like the world.
<<<
Also: yes make an edh deck!
<<<
So, I've got this: [[MTG Deck: EDH - Flash Hulk]]. Kinda thinking about a pauper or $-limit (pegged to some index) sub-format. It reminds me of frugality as being a part of your leetness with your computer; it requires some real creativity to make it work.
I'd probably have more fun just making decks than playing in the end, lol.
Also, I've not chatted with The Abyssal yet. I should bother him.
<<<
> I should ask her about a bunch of sources for anime memes.
They're common enough in group chats/discord servers. I get mine from there, and I also have a huge stash from my chan days.
<<<
What servers do you recommend?
<<<
> I wonder if she would be interested in meeting K and L. Weebweb.
Always ;) Of course, us waifuists are considered weird even among weebs, so I hope I wouldn't weird them out too much `^^`
<<<
Cool. I'll ask.
They seem pretty cool with a wide variety of people (including me with my own weirdness). If your waifuitry somehow weirded them out too much, I would not be quiet about it with them. I aim to protect your weirdness, and I predict they would too.
<<<
> I thought she would like that philosopher more. Seems to have plenty in common.
Stupidly, I haven't been reading her. The website is actually too wide for my laptop, so I can't read it comfortably (reader mode isn't available for it, either).
I've not got that background in heavy leftist theory (yet). My theory knowledge is mostly limited to turn-of-the-century anarchists, and later the primmies/post-left.
<<<
Yeah, I can see how it's not easy to read her site. One more thing for the reading list. There's so much space to crawl in this world, lol. I'll be on the look out for more.
[[Love]],
[[h0p3]]
!! Who or what has had a strong influence in your life?
My various [[Senpai]]. Pops. The Buddha and the various "buddh"-ists inspired by him. Fiction. My school teachers and school friends. The music I love and have loved.
Really, everyone and everything you interact with influences you in some small way.
!! the-fool - https://www.tarot.com/tarot/cards/the-fool/rider
[[Previously.|2020.04.03 - foolish girl!]]
Only two weeks ago. Are you trying to say something, wiki?
There's an interesting historical digression linked on tarot.com. The idea of the fallen mankind (with respect to decadance) is quite common in Abrahamic religion; from the Garden of Eden through the fall of Jerusalem. I guess it was repeated outside of the Old Testament with the fall of Rome, and I'm sure there are similar narratives in the Islamic world. This narrative seems to be missing in Asian sources; even Confucius' longing for the rituals of old is rational rather than moralizing.
!! Today's Wiki Review
* [[2020.04.17 - Daily Task: just b urself xd]]
** I'm no incel, but I can see how someone would become one if the best advice they get is "b urself"
** While tarot.com does provide a jumping-off point, I [[shudder to think|https://www.youtube.com/watch?v=4dl5l6KU9iA]] that people are getting their understanding of the tarot from it.
*** The mirror of the soul at work.
* [[2020.04.17 - no-guru]]
** The last thing I want is to be either a part of or a founder of some stuffy tradition. Think of me like Bodhidharma. [[https://en.wikipedia.org/wiki/Bodhidharma#Huike_cuts_off_his_arm]]
!! Meditation
7ish at 7ish.
!! Languages
Added lesson 7 vocab (heh, 777) and studied anki.
!! What advice would you give a new student?
Student of?
If it's someone just starting university/college - have fun, don't stress out too much, make friends, and pursue what you love.
If they're a student of //me//, c.f. [[2020.04.18 - æsthete]], lol.
!! king of wands - https://www.tarot.com/tarot/cards/king-of-wands/rider
[[Previously.|2019.12.02 - convenience]]
> Traditionally representing the energy of a dynamic King, this card represents the classic conquering hero. He's a charismatic leader, entrepreneurial and ambitious, always creating new adventures. He does this because he doesn't like to stay home or to have to "mind the store" -- he gets to feeling restless and bored with the predictable. If you need a crusader, or someone to take on a big challenge, he's your man. He needs a big assignment, and would rather lead than follow.
Yeah this is a classic masculine archetype. The types of heroes Captain Kirk is following the lead of. Maybe a bit of Bond in there.
You could also c.f. the adventurous young'un in [[2020.04.16 - Daily Task: fuj]]; the Knight of Cups. I suppose the King of Wands is what he grows up to be.
!! Today's Wiki Review
* [[2020.04.18 - Daily Task: influential]]
** Meditation is happening too late recently. Get back on track, [[chameleon]]!
** Bodhidharma was a lad.
* [[2020.04.18 - æsthete]]
** Still just a shitpost. But many a truth spoken in jest.
!! Meditation
5 minutes at 7ish.
!! Languages
Added lesson 8 vocab and did anki.
!! How do you feel about politicians openly sharing their religious beliefs?
Ranging from plain cringy to actually shut the fuck up boomer. Religion is a personal matter.
I especially love out-and-proud Christians; doesn't your own religion [[tell you to shut the fuck up?|https://www.biblestudytools.com/matthew/passage/?q=matthew+6:1-4]] But, thanks to gerrymandering, I guess you have to appeal to some psychos on the fringes of society who demand you be a Christian. Ugh. The end of faith can't come soon enough.
!! nine of swords - https://www.tarot.com/tarot/cards/nine-of-swords/rider
To me, this one looks like being kept up at night - and the swords suggest overthinking is the culprit.
Often when I can't sleep, I get up, write down whatever it is I'm thinking about, go to the bathroom, then get back into bed. Usually works pretty well.
!! Today's Wiki Review
* [[The Big Picture]]
** Nothing yet, but having it there should hopefully inspire me to add to it.
* [[2020.04.19 - Daily Task: captain, my captain]]
** "bodhidharma was a lad" is an extremely in-character quote from me [[=w=.]]
** I'm not much of a teacher, but I have been a [[Senpai]].
!! Meditation
5 minutes at 6ish. Hey, it's getting earlier again.
!! Languages
Added lesson 9 vocab & studied.
The original "Super Size Me" was brainlet enough - wow it turns out eating nothing but fast food makes you fat, WHO WOULDA THUNK IT, but now since apparently the people behind it have nothing better to do they've made a sequel where he eats fried chicken instead of burgers. And what's more, ~YouTube thinks I really want to pay $2 or whatever to watch it.
Mate I already know what's going to happen.
Fuck you Klaus.
You look like your Twitter avatar is a Roman statue.
If you weren't an animal you'd have a neckbeard.
That fake-ass German accent isn't fooling anyone.
Neoreactionary wanker.
Non-degenerates like you belong against a wall.
!! If you had to describe yourself as a colour, which would you choose?
I don't know. I see myself in lots of colors. I like forest green and pure red the best, though. My flag is a grey field with a black scorpion on it who says "I'll fucking sting you".
!! knight of coins - https://www.tarot.com/tarot/cards/knight-of-coins/rider
Lot of royalty lately. Here's the first Knight of Coins.
> Seeing the bigger picture, like a farmer planning for the future, he doesn't allow momentary fads or fancies to distract him, and he doesn't take seriously those who do. One can feel his stability and dedication -- he is totally responsible and even somewhat predictable when it comes to his projects. He is earthy and gentle, as simple and deep as the soil he tills and the flowers he loves.
A man of the land; salt of the earth. Everyone knows or has known a man like this. Someone uncomplicated, WYSIWYG, but not in a bad way. I wonder if my kids (should I have any) will end up like this guy?
!! Today's Wiki Review
* [[2020.04.20 - super size me 3: wow it turns out eating junk food makes you fat]]
** https://www.youtube.com/watch?v=Jelo4bliA1Y - it turns out a lot of it is lies anyway. lol.
* [[Former Friends]]
** Some day we'll meet again. Some day.
* [[Test: Kin Filter]]
** Looks interesting.
* [[2020.04.20 - Daily Task: and no sleep tonight]]
** Nothing special.
* [[2020.04.18 - chameleon: Whispering]]
** Great letter, thanks [[senpai|h0p3]]
** I wonder if he expects a reply?
!! Meditation
5 at 5.
!! Languages
Nothing done.
I'm going to get back into drawing. I'd like to finally explore the 80s style. I've created an inspo directory and I plan to make a pdf document of my inspo pictures. In the meantime, I found lots of links to look into!
* Something I've noticed about the subtitles - the text is yellow; the drop shadow (which surrounds the letters in black) has no holes in it. So, it's like a diffused version of the letters themselves, but with the inner holes filled in. Not sure exactly what this effect is called or how to get it.
* Shows, movies, OVAs that would make good reference pics
** Maison Ikkoku
** Bubblegum Crisis
** Kimagure Orange Road
** Urusei Yatsura
** Ranma ½
** Project A-ko
** Early Ghibli films
** Outlanders OVA
** Usually the manga are quite good too. Takahashi still draws in a very 80s style; even her Inuyasha or Rin-ne work could be mashed up with r½ or uy: [[Inuyasha|https://3.bp.blogspot.com/-fJbRIEJXewg/V55diQA7yNI/AAAAAAAAC-A/iLOg09MG64w50TF-Tj6zL7Bf5qMdokm9QCLcB/s1600/017_01.jpg]] [[Rin-ne|https://cdn.animenewsnetwork.com/thumbnails/max500x600/encyc/A10772-2517478968.1318745343.jpg]]
* (nsfw) Danbooru's `1980s_(style)` tag: https://danbooru.donmai.us/posts?tags=1980s_%28style%29
** (very nsfw) this animator recreates the style so well you could probably even fool no-lifers if you gave the characters Japanese voices: https://danbooru.donmai.us/posts?tags=bluethebone
* Videos
** A general look at the stylistic evolution of anime (includes many must-watch titles): https://www.youtube.com/watch?v=dwj2ahYnci4
** Handsome fellow teaches you how to fake an 80s anime æsthetic https://www.youtube.com/watch?v=HT3qyRM4PIc
** Animator speaking about the style https://www.youtube.com/watch?v=220jGbdjUYo&feature=youtu.be
* Someone exploring 3d printing 80s girls helpfully dumps a bunch of reference pics on us. https://blenderartists.org/t/80s-anime-hair-advice-lots-of-reference-pics/651840
* And, apropros of nothing and as a bonus, let's get an exploration of the history of gyarus: http://neojaponisme.com/2012/02/28/the-history-of-the-gyaru-part-one/
** And a picture of some girls who are absolutely KILLING it at the æsthetic: https://i.imgur.com/drbntyc.jpg
!! Tell a memory that you have with one of your grandmothers.
You trying to make me cry, wiki?
My maternal grandmother was a badass country lady. She lived in the backwoods of Devon, near [[Hay Tor|https://en.wikipedia.org/wiki/Haytor]]. She didn't go to church, because she felt they were a bunch of hypocrites. She had a gun. She drove around in a turbo-charged Mini Cooper, whose engine sound could be heard from miles away - she used to take it rallying.
I have lots of memories of her. She taught me how to have fun outside, which was valuable to me as a very indoorsy kid. Holidays to Devon were much more about enjoying the countryside - which was lovely when it wasn't raining - and playing outdoors rather than indoors. It was very winnie the pooh. I imagine if I was a kid again but got to bring our tech, I wouldn't enjoy it as much; I'd be glued to my phone.
Listen to me, I sound like a boomer [[=w=.]]
!! the-devil - https://www.tarot.com/tarot/cards/the-devil/rider
[[Previously.|2020.04.17 - Daily Task: just b urself xd]] The wiki is punishing me for my lazy interpretation last time.
Ok, so inhibitions. They're useful in many ways. They can also limit the human experience and narrow your horizons to the point you might hate living. The Devil's inhibition-breaking message is useful to many a stuffy moralist. For someone as free-spirited as myself, however, maybe the advice I need is to become a bit more contained ;)
!! Today's Wiki Review
* [[2020.04.21 - Daily Task: the very lazy chameleon]]
** Barely done. Will have to go back and finish.
* [[2020.04.21 - acnh: klaus]]
** Klaus reads Mencius Moldbug and uses PUA tactics to hit on 16 year olds.
* [[acnh: Puns that took me a while to get]]
** Dissecting humor is like dissecting a frog...
* [[acnh: Notes on Time]]
** I think I'm going to TitleTag these.
*** Yeah. Going to update the links.
* [[acnh: Best Villagers]]
** Most of the villagers are great (except Klaus).
* [[Animal Crossing: New Horizons]]
** It reminds me a little of Harvest Moon, which I also love.
* [[Video Games]]
** This has been a large part of my life, but varying at different times.
* [[2020.04.21 - Stylistic explorations]]
** Fun exercise. Will have to actually compile my reference pictures and print them out.
!! Meditation
5 at 6:30ish
!! Languages
Added lesson 10 vocab and did anki. Now anki is caught up.
!! What do we mean when we say, "The grass is always greener on the other side of the fence"?
Looking at other people from the outside, their lives may seem far better than ours. However, all we see is what they present to us. It's discouraged in life to wear your pain and troubles on your sleeve; so what we see is the best parts of their life. We don't know what's going on with them behind the scenes.
!! six of wands - https://www.tarot.com/tarot/cards/six-of-wands/rider
[[Previously.|2020.01.30 - wrong, learn]]
> Fearlessly act on your convictions and others will be inspired to support your ideals.
Really, this is "be the change you want to see in the world" said by (I think) Gandhi. It's very true; people like to be lead when it comes to these ideas, and they'll be gravitated towards someone that lives their principles (they are even when those principles suck).
!! Today's Wiki Review
* [[TitleTag]]
** Useful concept.
* [[2020.04.22 - Daily Task: the rally queen of Devon]]
** Late, but done.
!! Meditation
5 at 6:30ish
!! Languages
Studied anki.
!! What is your most marked characteristic?
I really don't know. You'd have to ask someone else. Some say my kindness; my love of humor; my sarcasm; I can't choose for myself. It's other people's choice how they want to define me. I don't like to think of myself in terms of characteristics, since as far as I'm concerned, they are malleable.
!! the-empress - https://www.tarot.com/tarot/cards/the-empress/rider
[[Previously.|2020.04.09 - honey and vinegar]]
> The Empress advises you to trust in the good sense you have shown up to this point. Recognize your good intentions in carrying out your responsibilities as a compassionate human. You are capable of demonstrating the finest aspects of your personality.
Well, the deck is just plain buttering me up here.
It fits with the previous readings' themes of compassion and love for others, I think. I will continue to cultivate compassion and loving kindness.
!! Today's Wiki Review
* [[2020.04.23 - Daily Task: Lead, and you shall gain followers]]
** If not, how then are religions founded?
!! Meditation
5 mins (guided) at 8:30
!! Languages
Did anki.
* `M-o M-s` - center line
* `M-o M-S` - center paragraph
!! Describe a fair, parade, or festival you have attended.
[[Previously.|2020.01.25 - parade]]
Again, when I was younger, I remember (probably) the first time I was allowed to roam by myself, at a fair. We probably wouldn't be able to do stuff like that any more (this is the late 90s, before Dateline NBC and pedo hysteria). I had to pay to go on a merry-go-round but I didn't have any money, so I went back to my parents to grab some. That's about all I remember.
!! ace of coins - https://www.tarot.com/tarot/cards/ace-of-coins/rider
[[Previously.|2020.03.09 - liam rules]] Here's a version of ciggies and alcy that still works: https://www.youtube.com/watch?v=SaeLKhRnkhQ
Going back to the seed that I planted: it's grown very nicely. I'm absolutely a gardener at this point, only needing to make small adjustments here and there. It is the best waifu community that exists.
And on that theme of steady steps... it's as true as ever. Hashtag Laozi was right!
!! Today's Wiki Review
* [[Emo Jams 2: FUCK YOUR EMOTIONAL BULLSHIT]]
** Great youtube playlist.
* [[2020.04.24 - More Emacs fuckery]]
** Already used this for my t-files. Lovely feature.
* [[Text Editors: joe]]
** It's definitely useful for large files. Wonder how it works - mmap?
* [[Text Editors]]
** An obsession.
* [[2020.04.24 - Daily Task: marked]]
** Talking about "my self" as a solidified entity is dangerous. I'm a process, not a state.
!! Meditation
5 at 7.
!! Languages
Anki done.
!! Tell about something that you and your siblings do together now.
First you make me sad, wiki, and now you make me guilty. Bugger off!
Alright. Me and my siblings still talk on voice. I'm in my sister's discord server but I don't use it that often because I'm sure those zoomers don't want a 26-year-old boomer like me coming in there to ruin their fun.
We used to play Team Fortress 2 together. And watch [[YouTube Poops|https://en.wikipedia.org/wiki/YouTube_Poop]]. And all kinds of other mischief.
I miss them.
!! nine of wands - https://www.tarot.com/tarot/cards/nine-of-wands/rider
So in this card, the subject is resting. Judging by the large collection of wands he has, he's won for now; but he's injured and tired. He needs to rest if he's going into battle again.
After you've fought and won, the resting and recuperating afterwards is every bit as important. Why win if you can't enjoy the victory?
!! Today's Wiki Review
* [[Text Editors: Leafpad]]
** It's really not a very good text editor. But being able to print things out makes it useful.
* [[2020.04.25 - Daily Task: fyeb, seed boy]]
** Another quiet day yesterday. I had trouble with fatigue. At least I got my dailies done.
** Wonder why the daily questions are repeating so much? I can't have done much more than a hundred, but there are a thousand in the list... I guess that one-in-ten chance is biting?
*** [[h0p3]] just does them linearly nowadays. A good idea.
!! Meditation
5 at 5.
!! Languages
Studied anki.
TiddlyWiki allows us a platform to spit out all the churn of daily life, but in usability terms I actually find it rather lacking.
# Interface is crappy. I had to use a pile of hacks to make it look OK, and I'm still not entirely satisfied with it. It's a rice trap. I will, I imagine, want to rice it again in future (I'm still not entirely happy with purewhite-on-pureblack, but it's better than nothing).
# It's the worst type of Javashit; it doesn't work at all unless you have a JS-capable browser. For fun, open it in Dillo, Links, or `curl|less`.
# Extending it is ruthlessly arcane. The documentation is bad. Trial-and-error is the name of the game.
I use Emacs on a day-to-day basis. It's my daily driver for programming and text editing (though, 3 years later, I'm still weaning myself off the vi workflow of heavy terminal use + `vim file`) and I would like to use it for more of the stuff I use tiddlywiki for, but for in private rather than [[chameleon's wiki|https://wiki.waifu.haus/]] public (pseudo public atm). Creating a new wiki doesn't seem like a good idea; as great as tiddlywiki is, and as much as I like the interlinked thoughts, it seems a bit silly to replicate the pile of hacks that is this site again; and I'm perpetually worried that some day I'll have to break free of the modern browser infrastructure and will be left with no wiki.
A perennial fascination, from my time reading LoperOS, is the [[Canon Cat|https://en.wikipedia.org/wiki/Canon_Cat]] computer. An idea ahead of its time, I think; and ruined by execs twice (first by Steve-il Jobs, then by Canon). Jef Raskin wrote [[The Humane Interface|https://en.wikipedia.org/wiki/The_Humane_Interface]] which I have a copy of in, of all formats, `chm`, which outlines a lot of his user interface ideas.
The search for the brain-amplifier continues.
Link dump for this adventure:
* http://www.greenarraychips.com/
* https://en.wikipedia.org/wiki/Canon_Cat
* https://en.wikipedia.org/wiki/Archy
Perennial warning that LoperOS makes some good points, but his conclusions are incomplete, and he will never write any code; it's also trivial to find instances of bigotry that show that he's a shallow thinker with one good idea.
* https://opensource.com/article/17/3/rss-feed-readers
** https://tt-rss.org/
** https://github.com/miniflux/miniflux
* There's always fraidycat...
!! What quality do you like about yourself–creativity, personality, appearance–why?
!! eight of swords - https://www.tarot.com/tarot/cards/eight-of-swords/rider
!! Today's Wiki Review
* [[2020.04.26 - Daily Task: winning]]
**
* [[Wikipedia's Rabbitholes]]
**
* [[2020.04.26 - rss reader]]
**
* [[Sauerkraut]]
**
* [[2020.04.26 - humane interface]]
**
!! Meditation
5 at 5
!! Languages
!! How do you feel on Thanksgiving? What are you thankful for?
Pretty decent... but it's unusual for me. For (fairly obvious) reasons I never celebrated the holiday until I moved in with my hubby. So for me, I'm mostly thankful that I can be with him, that we can spend our lives together, all that good stuff.
!! page of cups - https://www.tarot.com/tarot/cards/page-of-cups/rider
[[Previously.|2020.02.07 - cups and memories]]
>Make yourself fully available for whatever is needed.
??? Like, whatever other people need? I'm sure I do a lot of that already. I think I might need to spend more time on //myself//, to be perfectly honest?
Oh whatever. This isn't a very good summary.
> This card is traditionally entitled the Page, but in some modern decks appears as a Princess. In this suit this card represents a poetic, mystical, emotionally open young person, still tender and idealistic, given to flights of imaginative fantasy.
Well, that does sound like me, though I'm not very poetic (I prefer to use beige prose along with lots of dialog).
!! Today's Wiki Review
* [[2020.04.27 - Daily Task:]]
** Barely even started. Didn't help that I lost a half-finished draft.
!! Meditation
5 minutes at some point.
!! Languages
Gonna drop this section for now.
!! When were you the happiest this year?
Yeesh, 2020 has been pretty lame so far. I've still made some good memories. I got to have a puppy in my lap, and my inlaw's other animals are as friendly as always.
My friends have been as awesome as ever, too. I just got done roleplaying with Kirby and the others, which is always great fun. Plan for the same time next week!
All in all, I'm happy in general, but moments of extreme happiness have been a little scattered. There was [[Sphygmus]] buying me Animal Crossing, I suppose - that made me very, very happy.
!! justice - https://www.tarot.com/tarot/cards/justice/rider
[[Previously.|2020.03.17 - five years time]]
https://www.thetarotguide.com/justice
> The Justice Tarot card relates to karmic justice, legal matters and cause and effect. In a general context Justice is showing you that all actions have consequences.
Interesting getting cause and effect involved. I hadn't examined Justice from this angle before.
The idea of karma (an [[Eternal Ordering Principle|https://meaningness.com/no-cosmic-plan]]) getting involved is also evoked. You can classify Justice to mean that - cosmic justice. Of course, I don't believe in such a thing.
!! Today's Wiki Review
* [[@: Talita]]
** `/wave` :)
* [[Talita]]
** We've been emailing back and forth for a while, so that's worth a [[People]] page. She's definitely a reader.
* [[Essential Principles of Malleable Software and Systems]]
** New. Promising stuff going on at source.
* [[GNU: Four Essential Freedoms]]
** An old classic.
* [[LoperOS: Seven Laws of Sane Personal Computing]]
** Laws, but they're much more like desiderata.
** "Eat shit Stanislav" is my view of most of his work in the last few years - and as a person, he's an odious (probably odorous) reactionary.
* [[Principles, Laws, and Software Freedoms]]
** A good category. Might write some of my own.
* [[2020.04.28 - Daily Task: imagine no cups]]
** Was tired yesterday due to the hard reset, so this one was a bit shit.
!! Meditation
Short sesh in the evening.
!! What do you think about students having to wear school uniforms?
On the one hand it's pretty sucky. Uniforms are often uncomfortable, ridiculous-looking, and expensive. On the other, there are some pretty good arguments in favor - creating a uniform (heh) look for students means that there won't be any flexing over who's wearing Gucci and who's wearing graphic tees and cargos. Of course, school children are school children, and they can always find a new vector for bullying.
!! knight of coins - https://www.tarot.com/tarot/cards/knight-of-coins/rider
!! Today's Wiki Review
* [[D Programming Language]]
** Looks cool. Maybe I'll have to write a [[Gemini|https://gemini.circumlunar.space/]] client in it or something.
* [[2020.04.29 - Daily Task: consequences will never be the same]]
** [[Sphygmus]] really did [[make my day|2020.04.08 - Animal Crossing]]
!! Meditation
<<list-links "[prefix[2020.05]!sortan[]] +[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* Bit of a slow month. Corona fatigue setting in.
* [[Roleplaying]] has been a major topic this month.
* At least there was only //one// power cut :/
* [[2020.05.14 - untitled]] is a gem. Stealing "agreevote".
** Have managed to mostly stop using reddit. Good. It's a shit website.
------
<<list-links "[prefix[2020.05]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
!! When are you happiest?
When those I love are the happiest.
!! knight of swords - https://www.tarot.com/tarot/cards/knight-of-swords/rider
[[Previously.|2020.01.31 - fave books, za maindo]]
> Refine your communication and negotiation skills so you are at peak effectiveness.
One place mental prowess shines, eh? If you think clearly, you can see through the mental skirmishes of negotiation better; unlike our very-good-brained dear leader, you can come out of negotiation on top while making the other guy think he screwed you; rather than the other way around.
!! Today's Wiki Review
* [[2020.04.30 - Daily Task:]]
** I did meditate, but forgot when.
** CBA with the tarot prompt sometimes.
!! Meditation
5 at 5.
!! What has been the most fun activity at school so far?
[[Previously|2020.01.22 - the end]]. Pruning this question.
My answer from last time stands. I most enjoyed non-school stuff, haha.
Students need more time to just explore learning that interests them; or indeed should be taught the subject, rather than how to pass the test. Standardized testing is the bane of education.
I imagine this is why [[h0p3]]'s children, who are homeschooled, are so much more intelligent, balanced people than I was at the same age.
!! six of coins - https://www.tarot.com/tarot/cards/six-of-coins/rider
[[Previously.|2020.02.29 - karen]]
<<<
The Six of this suit is the card of patronage -- generosity with strings attached. The picture shows a rich man giving alms, his reputation enhanced from his giving, but without having helped anybody really better him or herself. Sometimes there is an inference that the giver will be expecting something back for his giving, perhaps sexual favors.
<<<
Oof. Contrast this with my own senpai-ness. The only thing I'd expect back from people I've helped is their friendship; never payment, sexual or otherwise.<<footnote "ms" "I'm quite monosexual. I'm only really interested in my husband and my waifu.">>
The card's interpretation on tarot.com displays one of the many issues with philanthropy; people don't give money away for nothing. Whether it's feeling good about themselves (their moral ego being stroked) or having a reputation bump, no-one does charity out of the goodness of their heart. Charity can't ever be a substitute for social welfare.
!! Today's Wiki Review
* [[2020.04 Daily Tasks]]
** Mostly completed, but there were some holes.
* [[2020.05.01 - Daily Task: happiest]]
** Didn't do a daily task yesterday, so I'm adding this to today's review instead.
** Thursdays and Fridays are so fricking busy. I really need to find some way of slowing down to take care of my long-running tasks on those days.
* [[2020.04 Journal Review]]
** As above.
** I love having archives of what I've been doing over the last month.
!! Meditation
I've been playing with the Android app "[[Kanji Tree|https://play.google.com/store/apps/details?id=com.asji.kanjitree&hl=en_US]]" ha-ha-only-serious-ly. It seems to be a good balance between //recognizing// the kanji (like classic rote-learning methods), //reading// the kanji in context (like the Japanese do), and //writing// them (like Heisig).
If this app can do the impossible, and push me towards finally, finally nutting up and actually learning nihongo, then it'll be a strong six-star rec from me.
The power has completely gone out. This may be my last journal entry for a while.
!! Tell about a time you slept outdoors.
[[Previously.|2020.02.28 - always against the consensus]]
Nothing much has changed since then. I at least hope power cuts won't lead to me living in a tent ;)
Taking this one out for now. I can always add it back in if I ever do go sleep outside.
!! five of swords - https://www.tarot.com/tarot/cards/five-of-swords/rider
This one has competing interpretations. Some people identify as the smug figure in the center, victorious and gathering his vanquished foes' swords. Others identify instead as those vanquished foes, slinking off.
In general it can be said to be about losing battles; the battle but not the war; etc.
Fives have an imbalanced quality.
!! Today's Wiki Review
* [[2020.05.03 - power cut]]
** Very scary. Still picking up the pieces.
* [[Which Language Should I Learn?]]
** Verdict: Japanese.
* [[2020.05.03 - kanji tree]]
** Great app. Using it every day.
* [[2020.05.03 - Daily Task: WANTED: tech daddies to give me lots of money for nothing in return]]
** Interrupted by the power cut.
* [[Solitaire RPG]]
** Killed an hour or two in the dark, by candlelight.
* [[Character: Kondo Rin]]
** She's lovely.
* [[Game: Nest]]
** Love this game. Thanks, kirbs.
* Candles make really shitty light
** Maybe we should get some oil lamps or something
* Not having the internet feels like being dropped back into the stone age
* Need more of my lite RPGs in physical form
* Solitaire not quite ready for the prime-time
* Need some way to protect the fridge/freezer from power outages
** There was a really good one on HN. Find it.
!! Where would you prefer to be right now–mountains, desert, beach–and why?
Depends on the context! If it's "you're moored out in the Wild" then I'd say mountains. While it'd be cold, I think they're most likely to be near civilization (ski resorts, alpine towns, lodges, etc) than the desert (which, if you go in the wrong direction, goes on pretty much forever) or the beach (which could mean "the beach on a deserted island").
If it's "where would you like to visit" (i.e. in safety) I'd like to see the desert. I've never seen a desert in the flesh (except the outskirts in Morocco). Nature is beautiful.
Some day I might have to turn into a dead-hard desert nomad bastard
!! queen of coins - https://www.tarot.com/tarot/cards/queen-of-coins/rider
[[Previously.|2020.03.30 - analphabetapolothology]]
Drawn this enough that I'm having to go to Biddy Tarot: https://www.biddytarot.com/tarot-card-meanings/minor-arcana/suit-of-pentacles/queen-of-pentacles/
<<<
* ''UPRIGHT:'' Nurturing, practical, providing financially, a working parent.
* ''REVERSED:'' Financial independence, self-care, work-home conflict.
<<<
This is what we discussed in the previous readings; the ~QoC provides for those she cares about. In a reversed position it's interesting too - she's having to balance her work and her home life, to take care of herself instead of pouring her entire self into working (c.f. Asuka's story in Evangelion).
!! Today's Wiki Review
* [[2020.05.04 - lessons learned from the power cut]]
** It solidifies my desire to get some kind of off-grid setup going. Now that my inheritance has come in, we have less to worry about money-wise for the time being; it's enough to tide us over until I get a job. Then we can start saving for a mortgage. Once I actually //own// the house, I can do more extensive modifications.
* [[2020.05.04 - Daily Task: wow I'm glad to have power again]]
** Yeah power cuts suck.
** Excited for tomorrow's game!
* http://www.jasonpym.com/stuff/2019/03/14/a-review-of-the-troika-rpg/
* pdf on the samsung drive
* 2d6 under Skill (stat) + Advanced Skill (actual skill)
!! What is your favorite occupation?
I've only had one occupation my whole life: ~~computer toucher~~ IT professional. What do I think of it? It's a job. I'm sure all jobs suck in one way or another, but at least it's not backbreaking labor or some kind of dangerous situation where lives are on the line. I'm fine at it.
Unless [[you|Dear Reader]] are a prospective employer, in which case I love it and it's all I think about all day and night. I eagerly turn up to work on time every day and never slack off, work on side projects, or listen to YT videos while pretending to work.
!! ten of swords - https://www.tarot.com/tarot/cards/ten-of-swords/rider
The darkest sword card. This poor chappy looks like he's been stabbed to death by the swords. Remember that swords are mental prowess and logic. Perhaps overthinking something has got him in a bind. He needs to start afresh; the linked article says as much, saying that this card represents finality and the need for a clean break.
[[You were good son, real good, maybe even the best|https://www.youtube.com/watch?v=jaQnQ17s4AQ]].
!! Today's Wiki Review
* [[2020.05.05 - Daily Task: read desert by anonymous]]
** Do it, you pussy!
** I would love to see the desert some day. I've had enough of the beach to last a lifetime, though I'm likely to go to Miami once [[The Abyssal]] and I have had our Real Ceremony™
** Weird to go back to Biddy Tarot. I remember the old design. She used to use RW cards, but it's a whole different card set now (most likely a proprietary one).
** Excitement was well-placed. Kirbs ran another great game.
* [[2020.05.05 - troika!]]
** Awesome looking game.
!! If you could give any gift in the world, what would you give and to whom?
This is a hard question. I guess I'd give the gift of socialism to the world's population? lol.
!! king of swords - https://www.tarot.com/tarot/cards/king-of-swords/rider
> Listen to the inner wisdom offered by the wise elder that dwells inside of you.
Your internal [[Senpai]], your super-ego? Haha.
It's important to trust yourself - and to trust your gut. You'd be surprised how often hunches are either true or lead to the truth.
!! Today's Wiki Review
* [[Cosmological Distances]]
** Need to do the same order of magnitude visual display. Really drives home how large the numbers are.
** Need that picture where it zooms out from Earth to the observable universe, then jesus saying "dont masturbate"
*** [[lol|https://i.imgur.com/e9DJjCo.jpg]]
* [[Deep Time]]
** Makes you feel small, don't it?
* [[TBP Workshop]]
** Good idea. Constructing an important article from particles.
* [[2020.05.06 - Daily Task: rip soldier's va ;_;7]]
** Troika! makes me want to check out ([[advanced|https://en.wikipedia.org/wiki/Advanced_Fighting_Fantasy]]) [[fighting fantasy|https://en.wikipedia.org/wiki/Fighting_Fantasy]], on which it's based.
*** 2d6 systems are way better than 1d20 ones. The math works out such that a +1 is a great boon rather than just a small help.
* [[Comparative Mythology]]
** Some wild stuff with the earth mother and sky father below the surface. Maybe I should re-read the Campbell book.
```
·▄▄▄▄ ▄▄▄ . ▄▄▄· ▄▄▄ ▄▄▄▄▄ ▄▄▄· ▄▄▌ ▪ ▄▄▄▄▄ ▄▄▄·
██▪ ██ ▀▄.▀·▐█ ▀█ ▀▄ █· •██ ▐█ ▀█ ██• ██ •██ ▐█ ▀█
▐█· ▐█▌▐▀▀▪▄▄█▀▀█ ▐▀▀▄ ▐█.▪▄█▀▀█ ██▪ ▐█· ▐█.▪▄█▀▀█
██. ██ ▐█▄▄▌▐█ ▪▐▌▐█•█▌ ▐█▌·▐█ ▪▐▌▐█▌▐▌▐█▌ ▐█▌·▐█ ▪▐▌
▀▀▀▀▀• ▀▀▀ ▀ ▀ .▀ ▀ ▀▀▀ ▀ ▀ .▀▀▀ ▀▀▀ ▀▀▀ ▀ ▀ ▄█
```
Thank you once again for your email. It's fast becoming the second best way to reach me (unlike when poor [[Sphygmus]] was left hanging for a week or two until [[h0p3]] pointed out that she was talking to me [[=w=.]]) since I've been checking it every day. The best remains Discord, which I'm on pretty much whenever and wherever I have an internet connection... but I like email too. If anything, email is a little better, since we can think hard about what is to be written (or in my case, draft for ages...)
If you've ever watched me or another TiddlyWiki user draft a letter, you'll know that this might be a bit of a long process. I know you said don't worry about it, but all the same I feel a duty to say sorry in advance if I leave you hanging for a while :) When the letter is "sent", I will move it from LevelFour to LevelZero.
<<<
Wow, crazy two weeks have gone by already. I've been deep in wikis and 'personal knowledge management systems' and whatnot throughout this time, but it's all making me very confused, hence not writing you back for so long. Yes, I am shy too, and while recently I've been making more of an effort to reach out to interesting people online and start exchanges and express my ideas more, it's all very nerve-wrecking and I'm uncovering a deep-seated fear of saying something stupid, that wasn't so apparent when I just read endlessly and wrote only to myself (in journals I then avoided revisiting out of fear of having said something stupid, I'm scared of even my own judgement)
<<<
Ach, I know that feeling of judgement. The wiki is private at the moment because of danger from a certain sphere of the internet... and my notebooks are permanently private. I used to get really scared when I was clearing up with my parents that they'd stumble across some old poem or story or artwork and I'd have to both cringe at it myself and get embarrassed in front of them.
The wiki alleviates that though. Idk, something about having effectively a WIP draft thingy at the top - [[Development Levels]] - assures me that people should be able to tell I'm still researching and thinking about it. I guess the other thing is that after a year or two of being in creative communities<<ref "ff">> I put out far cringier stuff to eager audiences, so I worry far less about embarrassing myself!
From what you've talked about with me so far you don't come across as stupid at all, so I don't see any reason for you to be embarrassed or anxious. Just be yourself, as the old advice goes.
<<<
That's the main thing I'm dealing with right now. But it feels paralysing and that can't be good. So I'll start from somewhere maybe arbitrary and we can go from there. I'm really enjoying reading through your wiki. It was seamless and pleasant on the initial levels, when I went systematically through the links on your [[Root]], About, [[Ideology]], etc. etc. pages. The waifuist stuff was some of the first I read, I'll be honest, because I had never heard of it before and wanted to understand. [[Waifuism as Interaction]] is a great bit of writing. It all gets me thinking about the nature of love and how in a sense we all "appropriate" everything in the world, not necessarily for our benefit, just because of how physical senses and understanding work. I don't think I want to get too into that right now, though. It's too easy to fall into solipsist commonplaces and they're not very interesting to me. It want to be with the tension: The world is real, whatever that means, and my only point of contact with it is my own limited perception. I think that's something I really liked about your articles on waifuism, they're not cynical. The idea of an interactive and mutual relationship with the world is very different from "It's all in our heads, so anything we believe is real is real but also nothing is really real, boom, the end". I like the weight of a concept like love, and the axiom that this love is serious and for something outside of ourselves, to think about questions such as what is real and how much do we create reality.
You have [[an article about solipsism|Solipsism]] where you say you're not really an adherent so I thought I'd ask you why not? I'm not sure if you'll agree with what I said about the distinction between solipsism and some of the ideas you've written about. I do want to make clear I'm not trying to put words in your mouth! But I'll tone down the insecurity now.
You asked about the "paths through the wiki", beyond those pages that seem fundamental I've taken a more free-flowing approach to the more ephemeral entries, mainly the [[Journal]] entries. Clicking through those is a box of chocolates. The titles don't say as much, then sometimes they're just a link or a quote and sometimes they're much more dense. But I actually like this a lot, the not really knowing what's going to be behind each click. It's another theme that's been prevalent in my own thoughts, how a certain amount of - not sure what the word is - disorderliness, in the sense of things not being immediately identifiable or findable within a system, can be very desirable as it facilitates forms of discovery that are different in kind to mere "finding". This feels quite crucial, so if you have any thoughts on this, I'd be very interested in hearing them.
<<<
<<<
I don't want to ramble on, but I'm interested in having a conversation, whatever that means and however one is supposed to do it. The other question I really wanted to ask you is: Did you ever start an Islandpunk project?
<<<
I've started songwriting. I have some ideas (mostly one or two chord vamps with some sweet melodies over the top, typical NEU!-inspired krautrock/spacerock stuff) but I suspect to really do rock songwriting you need a band, and the boyfe is ambivalent about making music at the moment. I'm searching for some voice samples of Austronesian languages (I speak a little Bahasa) but it's tricky. I guess I'll need to get really into SE Asian Cinema or something. Pour a Mai Tai out for me ;)
<<<
Oh, and I had never heard of ergodic literature. Very cool Wikipedia article. I had House of Leaves lying around for ages but never read it. I think Jack took it back to his parents' house. There is certainly a narrative/literary aspect to navigating through someone's wiki, gradually and non-linearly assembling bits of information about them. I think that's what I meant by ARG-esque, actually. It relates to what I wrote about different forms of discovery. And it was a compliment!
Poof, okay. I don't mind drafts & letters in public if you want to write letters on the wiki, I think I would like that. And really don't worry about responding "in time", I know I can often take ages and ages to do something and still want to do it eventually.
Eek, okay I'm sending this :)
Talita x
<<<
---
<<footnotes "ff" "Specifically the fanfic community, in the form of some Discords. They're lovely. LMK in private if you want to read some lgbtq+ fics, ha ha.">>
!! How do you feel on the first day of school?
[[Previously.|2019.12.07 - ☠️☠️☠️☠️☠️]]
Despair! Death and destruction! Fuck school. I agree with Foucault ;) And more generally with kids that understand how bullshit school is in general.
!! knight of coins - https://www.tarot.com/tarot/cards/knight-of-coins/rider
[[Previously.|2020.04.21 - Daily Task: the very lazy chameleon]] There was also [[an uncompleted one.|2020.04.30 - Daily Task:]]
> Your resources will enhance an endeavor significantly and you can reap many blessings as a result of your participation.
Like being a patron of something? Interesting sentiment.
Idk, I'm not sure. I've yet to really understand how the knights work.
!! Today's Wiki Review
* [[2020.05.07 - Talita:]]
** Good to have a new reader and new correspondent!
* [[2020.05.07 - Daily Task: your internal senpai]]
** AFF rules. Will talk more tomorrow (today) ;)
* https://phenixxgaming.com/2019/08/28/the-shrieking-shack-a-critical-harry-potter-podcast/
* https://player.fm/series/the-shrieking-shack
* https://twitter.com/shriekcast
I'm up to episode 3.
HP and their criticisms thereof reminds me a lot of both Star Wars and the "Hobbit-sequel" aspect of LOTR; wasted potential, started taking itself too seriously and lost the whimsy and fun of the setting and characters.
!! What does "You can't take it with you" mean?
??? You can't... have it where we're going? It's too big to take on the journey? It's not the sort of thing that works portably?
I have no idea with this question, lol.
!! the-chariot - https://www.tarot.com/tarot/cards/the-chariot/rider
[[Previously.|2019.11.27 - change again]]
I still don't have that job... and the green card is taking a little while. Patience, [[chameleon]]!
> Look upon the movements of change as full of promise and adventure.
Change is one of life's most important aspects; they say that nothing is permanent but change. Instead of fearing change, learn to embrace it, and to see the good side of it. This, too, shall pass!
!! Today's Wiki Review
* [[2020.05.08 - Daily Task: groundhog first day of school]]
** When I was younger, I begged my parents to homeschool me, because I hated school so much. Never worked. Haha. Just had to put up with bullying and shit.
* [[Advanced Fighting Fantasy]]
** Looks like a super fun game; easy to keep in your head, too.
** Might use this as my solo system. It's easy enough to remember and doesn't need loads of tables.
* [[2020.05.08 - shrieking shack podcast]]
** Great podcast.
Never really got into this show... except tamers. Well, someone made an rpg out of it and it's apparently good.
* https://1d4chan.org/wiki/Digimon:_Digital_Adventures
* https://digimon-digital-adventures.tumblr.com/handbooks
I joined the discord because fuck it more isn't going to hurt me. We'll see if I'm going to want to run it sometime.
<<<
It can work if it's done the way you describe. Digimon Digital Adventures - my current favorite system - uses it in extreme situations, such as watching someone die. A failure nets you a new Torment - things that are part of your character that you can be forced to roll against whenever the situation tied to it arises. It's a way of making it so that the negative qualities of your character (human anyway) have a mechanical impact.
Example, billy watches his older brother timmy get squashed by a Machinedramon (giant metal dinosaur). He makes a sanity check. He fails. Now he has a Terrible torment of fearing that someone close to him could die, so when someone else he's close to in the party is in mortal danger he has to make the Torment check (3d6-uncheckd Torment boxes, 10 for a Terrible torment). he fails, now he's freaking the fuck out and going unresponsive at the worst possible moment because he's watching his brother die all over again and is having vietnam fucking flashbacks and it's probably going to get his friend killed too.
This is an extreme example of course; you could easily get a Minor torment from being taken and shoved into a small box for long enough or frequently enough, but it's closer to what you describe. It's giving them a psychological punishment in-character for failing to keep their head after witnessing something fucked. And yes, such an example COULD happen in a digimon game; digimon is actually really, REALLY fucked up when you look at it closely.
----
>Never got into digimon, where do I start?
The new reboot (Digimon Adventure: / PSY/PSI/Colon/2020) is currently airing and is pretty good, but it's a reboot. I'd say at least watch the first three seasons (Digimon Adventure, digimon adventure 02, and digimon tamers) and then watch Digimon Savers because it's my favorite. Frontier is divisive, it's very much like super sentai/power rangers/kamen rider. If you like those, you'll probably like it.
Or you can just browse wikimon.net
The game itself is called Digimon Digital Adventures.
The current "Finished" build is 1.3, found here:
https://drive.google.com/drive/folders/0BwgTPexfebTbb2JZc1ZjRWw4b1E?usp=sharing
It lacks Roll20 sheets, but I've got sheets for 1.3 you can import to Roll20 approved by the devs themselves which you can find here:
https://drive.google.com/drive/folders/1V6JXj7PSom7IOzt5PlGFaYuv5AsOeIvr?usp=sharing
They also have a Google docs version which you can find here. Click File > Make a copy if you want to edit your own:
https://docs.google.com/spreadsheets/d/1z3SiO4cmDnAklN36lxj76jXrfq_n2aaBcIcs7AqgCRU/edit?usp=sharing
There's also this:
https://taurusversant.github.io/DDABuilder/
The devs describe DDA as starting as a mix of Shadowrun and Fate mechanically, but it's become its own thing since it started.
<<< Anon on /tg/ thread 72479791
https://web.hypothes.is/
Looks really cool. Maybe I should make a hypertext 2020 group!
---
This gave me a funny thought:
<<<
* Teachers and Students - Deepen teaching and learning by embedding discussion directly in texts. Education
* Scholars and Scientists - Take notes anywhere, collaborate with anyone and discover new information. Research
* Publishers - Bring scholarship alive: enrich your content and engage your readers. Publishing
* Journalists and Editors - Fact check the news, collaborate on investigations and enhance your reporting. Journalism
<<<
Which one am I? Or am I a new category - wiki nerd! ;)
Got to episode 6. Gonna have to think of a way to track this. I think the next episode will be the end of book one.
!! Who is the best laundry folder in the family?
Hahahaha. There's only two of us! Probably [[The Abyssal]]. He's better at it than me, anyways.
That's unless you count our non-live-in families; in which case it'd probably be one of our mothers. Mmm, not a very feminist thought - but growing up, mom was a housewife, so I guess that's where I get that mental image from.
!! page of swords - https://www.tarot.com/tarot/cards/page-of-swords/rider
> This person is acting as the eyes and ears of her patron, and so she is sometimes referred to as The Watchman. Even kings are powerless if this messenger chooses to use her access to sensitive information for her own gain, as is implied by her other name, The Spy.
Interesting interpretation.
!! Today's Wiki Review
* [[2020.05.09 - digimon digital adventures]]
** Looks very cool.
* [[Shrieking Shack Podcast]]
** Good listen while I'm up to other things
** https://cdn.discordapp.com/attachments/633130470975995914/709210301605609472/turns.png
* [[2020.05.09 - hypothesis - web notes]]
** This looks cool. Maybe the type of thing [[kicks|kickscondor]] would be into?
* [[2020.05.09 - Daily Task: takeaway]]
** Weird question.
* [[2020.05.09 - Shrieking Shack 2]]
** Ended up getting hooked!
!! If you could live anywhere in the world, where would it be?
[[Previously.|2019.11.13 - za warudo]]
I'm still fine where I am. It's great here.
!! three of wands - https://www.tarot.com/tarot/cards/three-of-wands/rider
[[Previously.|2020.02.27 - music and chips]]
And today, I called with [[h0p3]]!
I haven't been meditating recently. Maybe I should continue, but it's a Thing to set time aside to do stuff.
<<<
A Three in this suit symbolizes an inner balance that allows you to feel more optimistic about new endeavors you are committed to, or want to commit to. In the illustrated Tarots, the human character is standing on his balcony, watching ships leave the harbor, loaded with his goods for far-off ports, dreaming of the fortune he will reap if all goes well. Summon the optimism within you.
<<<
Yeah, I'm balanced and happy right now. I have to be strong for my hubby, who's struggling with health issues right now.
!! Today's Wiki Review
* [[2020.05.10 - Daily Task: The best laundry folder in the West]]
** https://www.youtube.com/watch?v=8e1xvyTdBZI
** Got lots of cool stuff both here and on the horizon.
https://theoutline.com/post/7295/buckle-up-twitter-is-cancelled?zd=2&zi=2elpixgw
Article worth a sensible chuckle
!! What would you do if you promised to feed your pet and you didn't?
Feed them right away! Haha. I've never had pets that will quietly let you not feed them. When the kitties lived here they would yowl at their bowls, and my parent's dog would //scream// if she needed food. Even my sister's hamster would nibble the bars.
Feeding them is one of the responsibilities of having a pet, so go on, feed them!
!! the-tower - https://www.tarot.com/tarot/cards/the-tower/rider
[[Previously.|2020.03.20 - Superpower]]
> I almost wish for some change. The coronavirus shit has everyone in a tizzy right now.
That's a mood if anything.
The tower is a shitty omen. I really hope both [[The Abyssal]] and I are healthy and well over the next few weeks.
!! Today's Wiki Review
* [[2020.05.11 - Daily Task: i wanna be famous before I turn 29, it's too bad I've wasted my life on computer time]]
** Lazy yesterday. Nice title though.
* [[Troika!]]
** 2d6 under, 2d6 opposed!
** Apparently part of [[SWORD*DREAM|WTF is SWORD*DREAM?]]
* [[WTF is SWORD*DREAM?]]
** It's shaped up into more of a thing, I guess? When it first started in mid-2019 I had no idea what it was, but now it seems it's become a Thing.
** I definitely legally obtained a copy of Macchiato Monsters, and I printed out my Maze Rats booklet.
Print with the option "Short edge (flip)" if the pages are all the same orientation in the PDF (i.e. all facing up/down).
!! Look at yourself in the mirror and describe what you see.
[[Previously|2020.01.17 - I break mirrors with my face in the USA]].
A smily young lady. She has bags under her eyes, but it doesn't seem to make her any less happy-looking.
I'm feeling pretty good.
!! five of swords - https://www.tarot.com/tarot/cards/five-of-swords/rider
[[Previously.|2020.05.04 - Daily Task: wow I'm glad to have power again]]
> Challenge the pessimism of others around you by evoking their higher nature.
What the heck is a "higher nature"? I really can't be doing with tarot.com's ideology.
Anyways. I suppose it refers to the battle-but-not-the-war aspect here. People have it in them to pick themselves back up after a defeat. Of course, they may need a hand up to do so. That's where I - and folx like me - come in handy. Still, you do need to help yourself to some extent. We can't beat depression for you, unfortunately.
!! Today's Wiki Review
* [[Alternate Fantasy Races]]
** Some more takes were had on discord, but nothing jumped out.
* [[Worldbuilding]]
** Category I've needed for a while. [[h0p3]] mentioned on call that TiddlyWiki would be good for RPing.
* [[2020.05.12 - zine printing notes]]
** Gotta waste some paper to figure it out, eh?
* [[2020.05.12 - Daily Task: GIVE ME FOOD]]
** GIVE IT
** Been roleplaying hard recently.
* [[2020.05.12 - "Buckle Up" Twitter]]
** Great article. I forgot how much I love The Outline.
* [[bitsavers.org]]
** Finally found that ~WordStar manual.
!! If you could participate in an Olympic event, which one would you choose and why?
[[Previously.|2019.08.18 - skate or die?]]
Ahhh man, that was a while ago. Early wiki. Back when I was still doing a todo list every day!
I would still like to learn to snowboard. If I could have magic powers to be good at any sport, I'd pick one of the Run Ones™ because those seem to be the fastest route to getting recognized as a good talent.
!! ace of cups - https://www.tarot.com/tarot/cards/ace-of-cups/rider
[[Previously.|2020.03.10 - optimism]]
Family and love is important in these difficult times. Also a shoutout to my friends: both my Others, and my discord pals. Y'all make life worth living.
!! Today's Wiki Review
* [[2020.05.13 - Daily Task: no bootstraps, but an outstretched hand]]
** I should find some time to do things away from the computer, too. It's hard when you're unemployed.
* [[Various RPG Links]]
** Should be a good place to dump things I find
A chap called "Dr Ed Morphius". Thoughts on Reddit as a community.
* https://old.reddit.com/r/dredmorbius/comments/dt527o/no_this_subreddit_is_not_fully_dead_yet_but/
* https://old.reddit.com/r/dredmorbius/comments/20yhxc/reddit_and_community_what_works_what_raises_flags/
Maybe a people page candidate. I should doorknock.
* https://old.reddit.com/r/dredmorbius/
* Fediverse: https://toot.cat/@dredmorbius
** Old: https://mastodon.cloud/@dredmorbius
* https://joindiaspora.com/u/dredmorbius
* https://gitlab.com/dredmorbius
It's very difficult to find a full party of quality players - that is to say people who take the game at least a little seriously (rather than as chame's sex-and-violence sandbox) and are flexible enough to enjoy playing at the world together. I do wonder if this is something I can fix by playing solo instead.
[[HHOS]]ly: "players were a mistake" - DA & EGG
Found on /lit/. No idea if they're any good.
* image
** psychedelic shamanism
** the master game
** prometheus rising
* the ego tunnel
* programming and metaprogramming the human biocomputer
* roberto unger
** the self awakened
** the religion of the future
** the singular universe and the reality of time
[[Man, the motte culture wars thread has really condensed into the absolute worst.|https://www.reddit.com/r/SneerClub/comments/gjkqhb/man_the_motte_culture_wars_thread_has_really/]] (sneer club)
<<<
Don't have anything really smart or new to say about it, but thought maybe some other people would like to commiserate about it.
I know that the trend has been recognized here as basically done and beyond redemption, but looking at it over the last few weeks the sheer callousness and inhumanity of the people there is just beyond belief. I honestly only manage to read it for a couple minutes at a time and it feels like some kind of toxin running through my veins.
In a world where maybe now the majority of people are screaming in despair as the crumbling system turns the thumb screws tighter, those people just going: "Hah, its capitalism baby, too bad, I like it!!" is just... I really can't tell. Does not compute.
I will also add that I really liked the cw thread a few years ago when it was more balanced ideologically. I think marxist-adjacent frameworks really have the best grip on reality currently, but I still think there were a lot of genuinely great aha moments and ways of looking at things in the rationalist sphere. I also still really enjoy reading ribbonfarm, Venkatesh Rao really seems genuinely apolitical in the most blunt, pessimist, naked-realist way, instead of this so obvious motivated reasoning of the current motte.
So in my observation over the last years, I dont think its really that inherent to the rationalist ideology. A few years ago you had a significant left-wing presence and it was genuinely a good read. But the psychopaths really just drove everybody else out and now its just... this. Pure fucking evil.
Fuck, man.
<<<
<<<
This is a feature of not just Rationalism but of Reddit in general. The agreevote system makes it clear to everyone which side is more popular, so in any subreddit that debates the same controversies frequently, people in the majority will gradually follow the incentive for low-effort circlejerking and people in the minority will get angry and shrill or more likely they'll just leave, which exacerbates the problem. So every subreddit with a recurring debate will eventually become an echo chamber for whichever side happened to be in the majority at first. The same thing happens in narrowly focused subreddits about things like specific TV shows and video games. Reddit is an engine for finding people who think the same way as you.
The question is, why keep reading those threads?
<<<
!! I wish I didn't have to eat...... I don't like this food because.....
Carrots and similar vegetables, like sweet potatoes. They taste gross and have a horrible mushy texture. I'd like to never eat them again ><
!! the-world - https://www.tarot.com/tarot/cards/the-world/rider
[[Previously.|2020.04.13 - Daily Tasks: no soul]]
Let's play with reversed cards when we get deep repetition, like this card.
<<<
<span style="font-weight: bold">In the Reversed Position</span>
The World card is one of only two cards that have no reverse meaning. Nevertheless, it could indicate a slight slowdown in the flow of events or the need for more introspection as events unfold.
Practice trusting and relaxing into the nurturing support of the Great Mother Goddess, while things sort themselves out.
<<<
The [["Great Mother Goddess"|https://en.wikipedia.org/wiki/Mother_goddess]] is, presumably, the Earth Mother, consort of the Sky Father. That's a concept I should explore on the wiki, haha ([[Comparative Mythology]]).
Introspection is a personal vice ;) I don't think I need more of that.
!! Today's Wiki Review
* [[2020.05.14 - dreddit]]
** Has some great takes. Posts on HN too.
* [[2020.05.14 - Random new-age books]]
** Reminds me of /fringe/. Wonder where those lads are now.
* [[2020.05.14 - untitled]]
** "The agreevote system" sums reddit up nicely.
* [[2020.05.14 - Daily Task: *snap* yep. that's going in my epic compilation]]
** I love you, [[Dear Reader]].
** [[POST THE RUN ONE|https://imgur.com/94PpaNC]]
* [[HHOS]]
** Use this a lot. Should've [[Terminology]]'d sooner.
* [[2020.05.14 - player quality]]
** Hehehehe.
!! If you were lost in the woods and it got dark, what would you do?
Get my phone out.
!! ace of coins - https://www.tarot.com/tarot/cards/ace-of-coins/rider
[[Previously.|2020.04.25 - Daily Task: fyeb, seed boy]]
<<<
Occult tradition sometimes interpreted this Ace as representing the alchemist's gold -- the light within matter, the 3rd eye of the energy-body. This recommends meditating upon the light within, and pointing oneself toward the archetype of humanity enlightened. By practicing such a meditation, one eventually gains enough control of the celestial radiance to heal the body, untangle the emotions and complete the growth of the soul.
<<<
Woah dude!
Haha. Meditation where you visualise a light growing inside or the likes is quite common. You can be taught it by a real lama, or a [[McMindfulness™]] teacher. Essentially the sphere of light fills up your entire body, then permeates your body to engulf the room, the building, the neighbourhood, the state, the country, the world, the solar system, the galaxy, the supercluster, then the entire universe. Wild stuff.
While it's a little insensitive and not a very nuanced view, people aren't lying when they say that Eastern religions are deeper; being aware of your place in the vast universe is rather a bit better than submitting to a Cosmic Plan™ or Eternal Ordering Principle™ (big-G God).
!! Today's Wiki Review
* [[The Anti-Mac User Interface]]
** Good link. We desperately need new approaches to UI.
* [[2020.05.15 - Daily Task: dlrow eht]]
** Reversing the cards is a good idea. I'll have to do this next time I have a card I'm not sure what to do about.
** Introspective...
* [[Dataspace]]
** Good article series. I should really be reading these when I'm not dead tired ;)
!! I wish I had one? because
[[Previously.|2019.12.03 - lenny]]
Let's skip the immature double-entendre this time.
I'll be getting a job soon™ (my permit is on the way), and with that should come the money to get myself a car & some driving lessons. I'm very excited, though I don't imagine I'll get much of a car at first (some rustbucket that I can just throw around will work). It's going well.
!! nine of wands - https://www.tarot.com/tarot/cards/nine-of-wands/rider
[[Previously.|2020.04.26 - Daily Task: winning]]
> The Nine of this suit usually indicates a need for rest; some time out to mend wounds and savor victories. Although it may be hard to do, this card would have you leave the field to fresher teammates for now. Release any attachment you may feel to being in a leadership role for now.
Important sometimes to engage in self-care. Rest, recover, and recuperate.
Obviously being a leader can be quite draining; so if you're getting tired, it's fine to delegate. You'll make worse decisions if you're tired.
!! Today's Wiki Review
* [[2020.05.16 - Daily Task: woah dude]]
** Such a new-ager.
** Shitty question, shitty answer
** Bit lazy recently.
!! What was your first favorite TV show?
[[Previously.|2020.02.25 - seeds]]
Yeah Thunderbirds was rad. Very scary for such a young child. Lots of death and destruction, haha.
I still remember the killer crocodile episode. That one scared the pants off me as a kid. There was a bank job episode that I remember too.
!! eight of coins - https://www.tarot.com/tarot/cards/eight-of-coins/rider
[[Previously.|2020.03.29 - crapitalism]]
<<<
The Eight of Coins reversed asks that you not mistake your work for your identity. It is a common error to overly identify with one's livelihood.
This card reversed indicates that you are in danger of losing your self to your work. This would be a big mistake. Refuse to accept such a limited definition of who you are.
<<<
Remember Asuka. When piloting the Eva was no longer an option for her, she lost her very self to depression and loneliness. This can also be our fate if we mistake our own self with our work.
Remember not to become a workaholic. Balance your work with your life and don't get the two confused - or capitalism will eat you alive.
!! Today's Wiki Review
* [["Three Pounds of Flax"]]
** Already shown this one to [[Lofty]].
* [[2020.05.17 - Daily Task: just drive]]
** Driving an electric car around here is probably worse for the environment in the long run.
** Still lazy.
* [[Worldbuilding: Names]]
** Tricky problem. Should make some tables to roll on for this.
!! What is your most treasured possession?
[[Previously.|2020.02.13 - computer shit]]
Yeah I'm not much of a material girl, am I?
I think I'd have to actually say my guitars, though. My Ibanez was a reward for getting a 2:1 at university, and me and my dad made my Chimera together from parts. I'd be very sad if I lost them.
!! ten of coins - https://www.tarot.com/tarot/cards/ten-of-coins/rider
[[Previouly.|2019.11.29 - growing up]]
> You have the potential power to be a benefactor.
Oh, I am a huge sugar mommy. If I had an income stream rn I'd be buying presents for all my cute pals. I don't even ask for sex, ahaha. I just like making my friends happy.
!! Today's Wiki Review
* [[2020.05.18 - Daily Task: if you work, you lose]]
** As my shirt says.
** Reversals continue.
!! How do you feel when you do something wrong?
[[Previously.|2020.01.30 - wrong, learn]]
I hinted at the answer last time; per [[A Quick Primer]]:
> learn from your mistakes; build upon your pre-existing knowledge; try to do better
When I fuck up, I try to follow a simple process: I apologize, explain why I did what I did, explain why I now understand why it was wrong, and promise to do better. I'll then go away and internalize everything that's happened and update things accordingly.
!! ten of wands - https://www.tarot.com/tarot/cards/ten-of-wands/rider
[[Previously.|2020.03.07 - dindins]]
A ten yesterday, too. Interesting to contrast them.
> It doesn't matter that he's overloaded and underfed. With this card, you have to do whatever it takes to get to completion -- nothing can be allowed to interfere.
This hints at the reversal reading, and of course what I said in a [[previous reading|2020.05.18 - Daily Task: if you work, you lose]] of a different card about work/life balance.
While it's admirable that some folks are willing to work themselves to the bone to solve something, it's important that they don't forget that there's more to life than working. And, in my own words, it's better to work smart than hard.
!! Today's Wiki Review
* [[Bim Bom]]
** Probably my favorite bossa song
* [[2020.05.19 - Daily Task: boots mcsnarf]]
** I love my geetars
** Talking about reversals and blocked energy is going to be a theme with these cards that I've seen several times.
** Apropos of nothing, I'm reminded of that copypasta about how out-of-touch Billie Eilish really is. I've never met any of her fans though.
*** There is something to be said for the misogyny of those that hate teen girl's favorite artists just because teen girls like them, but I'm no pop feminist.
* [[When Darkness Falls]]
** Both my brother and Alex have offered to digitize it, but that'd require posting it to England.
* [[Tapes]]
** Important tips!
!! I wish I had a million... Then I would...
[[Previously.|2019.12.10 - magician's money]]
I figure my answer would be the same now, lol. I almost wrote down the exact same thing again. [[This|2020.01.15 - imgui]] is also a good answer.
!! ten of swords - https://www.tarot.com/tarot/cards/ten-of-swords/rider
[[Previously.|2020.05.06 - Daily Task: rip soldier's va ;_;7]]
Last one was at the start of the month; this one is near the end.
> Protect yourself while the storm rages and focus on rebuilding after it passes.
Seems like a message about the virus, which has been dominating the news cycle and life at large. We're not out of the woods yet, not by a long shot. We still have a while to go - things will get worse before they get better.
!! Today's Wiki Review
* [[2020.05.20 - Daily Task: wrong & hard]]
** "pop feminist" is obviously a pun on both the term and about the feminist analysis of pop music/culture
* [[On Piracy]]
** yar har fiddle de dee
** I imagine senpai would agree with many of these points
!! Consider some of the parents others had growing up. What type of person would you be if you had those situations?
I'm lucky to have the parents I did. They may not have been the richest or the coolest, but they were good to me. I know a lot of people had parents that were separated or extremely strict parents or absent (always working or partying) parents. I'm very lucky.
!! five of coins - https://www.tarot.com/tarot/cards/five-of-coins/rider
[[Previously.|2020.04.04 - WHAT ARE YOU DOING]]
Tarot.com got it wrong, or rather used a different interpretation entirely. Let's try [[Biddy Tarot|https://www.biddytarot.com/tarot-card-meanings/minor-arcana/suit-of-pentacles/five-of-pentacles/]].
<<<
In the Five of Pentacles, two people walk through the icy wind and snow; both are destitute and living in poverty. One man is injured and on crutches, while the other is barefoot and has only a thin blanket to protect him from the bleak winter weather. Behind them sits a church with its lit up and exuding warmth, a symbol of hope, faith and spiritual support. However, because the two people are so focused on their plight, they fail to see that help is available to them and continue on in their desperate journey.
<<<
Here's a slightly different interpretation of the church/beggar relationship; in this one the beggars are too caught up in their own innerworld to take the church's help. We must remember that the tarot cards are often not supposed to be taken literally, and in this case could refer rather to the beggar's refusing of help rather than the church's failing to give it.
It's important when you're hurting to accept offered help. Too often has help been refused and good people lost in a spiral of destruction.
!! Today's Wiki Review
* [[2020.05.21 - Daily Task: mi-mi-million, mili-run-run]]
** I ended up wanting to write a taxonomy of feminism, lol, with a contrast between the intersectional, good side, and the shallow pop, capitalist, TERF elements.
https://i.postimg.cc/Bv487QJd/Gurm-1554246186311.jpg
I wonder if the recent keemstar/h3h3 drama could kill the idea of these types of youtubers getting sponsored and potentially even end this sordid little sector of the platform for good. I sure hope so. Leafy sits back with a glass of wine and a cigar, chuckling softly as his old enemies burn the platform down.
!! Are you competitive? Tell about a competition that you participated in.
[[Previously.|2019.11.23 - return; ambition]] Coincidentally, another day where the day before I didn't get round to doing my daily task.
Can't believe I didn't mention RPGs before as a good example of a collaborative rather than competitive experience. As you can probably tell: [[Roleplaying]] is important to me.
!! three of wands - https://www.tarot.com/tarot/cards/three-of-wands/rider
[[Previously.|2020.02.27 - music and chips]]
> A Three in this suit symbolizes an inner balance that allows you to feel more optimistic about new endeavors you are committed to, or want to commit to. In the illustrated Tarots, the human character is standing on his balcony, watching ships leave the harbor, loaded with his goods for far-off ports, dreaming of the fortune he will reap if all goes well. Summon the optimism within you.
On the cusp of something... a major discovery or new way of seeing things.
IMO, this is my music recently. I feel like I've passed a major barrier I had. I understand what musicality is - and more importantly, I'm growing a sense of it myself.
!! Today's Wiki Review
I forgot to do my daily tasks yesterday, so here's a belated yesterday-review.
* [[2020.05.22 - hehehehe]]
** Gurm claims to have been writing...
* [[2020.05.22 - the end of youtube sponsorship]]
** That whole sphere of influence needs to die.
* [[2020.05.22 - Daily Task: parents]]
** Don't tell Pops I said all this.
** I actually called them today, it was nice to "see" them again.
!! What does "You can't take it with you" mean?
[[Previously.|2020.05.09 - Daily Task: takeaway]]
This really isn't an introspective question, I'm taking it out.
Unless we're to reify it in some way, put it in a (Zen) [[Buddhist|Buddhism]] context, maybe. "No, no. You're not allowed that pesky Self through here. Leave it behind". I like that better. Haha.
<<<
Tewi had her followers build a great temple. She stood at the entrance guarding it against those that tried to enter. When people approached, she said "no, you can't take that in here".
One day, an ascetic arrived. "I have left it behind," said he. Tewi nodded. "And you can't take it with you when you enter." The ascetic was allowed past. On the other side, he discovered the temple was a facade, that just lead out to the outside world. In that moment, he was enlightened.
<<<
!! wheel-of-fortune - https://www.tarot.com/tarot/cards/wheel-of-fortune/rider
[[Previously.|2020.04.05 - WHAT ARE YOU SAYING]]
<<<
The central theme of The Wheel of Fortune card is cyclical change. The wheel keeps on rolling, churning events in a ceaseless progression of ups and downs, either way freeing us from the past. No one can escape its cyclical action, which can feel somewhat terrifying -- no matter whether we are rising or falling. When one is balanced on top of the wheel, there is a moment of crystal clarity. However, the only part of the wheel that's actually not going up and down is the hub, which represents your eternal self.
<<<
This interpretation reveals the cyclical nature. C.f. kalachakra, and time being a flat circle. https://www.youtube.com/watch?v=wJtFXTIEwYQ You could also compare it with samsara, the cycle of death and rebirth.
This feels very advaita vedanta, since it's talking about a true self along with the cyclical nature of time. My own interpretation is that there's no self, nothing true and eternal about you. All that is eternal is change. You are not a noun, but a verb.
!! Today's Wiki Review
* [[2020.05.24 - Daily Task: dobeedo-be-do-ba-da]]
** https://www.youtube.com/watch?v=krDxhnaKD7Q
** Having loving parents seems to be a serious blessing in this day and age.
```
$ cd
$ du -sh * | sort -h
4.0K cgi-bin
4.0K Desktop
4.0K fixed
4.0K include
4.0K Konata
4.0K lib
4.0K nohup.out
4.0K Public
4.0K sbin
4.0K sec.key
4.0K Templates
4.0K workbench
4.0K Yuugi
8.0K blushy
8.0K etc
8.0K rules.htm
16K Passwords.kdbx
16K var
24K sfxr
24K tfiles
28K Mail
32K Steam
36K hima.zip
44K GPUCache
64K waifus.json
68K wtf-guide.pdf
72K weechat.share.tgz
104K roms
108K share
168K fastfood.txt
172K 2020-05-10-200719_1280x800_scrot.png
184K rubygate.zip
196K rubygate
244K 2020-04-03-170040_1280x800_scrot.png
672K solitaire
944K finalfantasy
1.2M dos
2.4M gnu-keyring.gpg
3.1M dragonquest
3.9M gamedev
4.2M PixelVision8
5.9M blog
6.1M Emulation
8.3M writing
8.6M output.pdf
12M repos
17M AndroidStudioProjects
60M Cellar
84M VirtualBox VMs
98M opt
131M bin
397M Videos
400M archive
558M doujin
569M devel
1.4G Documents
1.9G Pictures
3.8G Android
4.2G konata-backup
4.4G Music
5.0G Qt5.13.1
6.9G mahakala-backup
7.7G builds
9.7G anubis-bak
12G rpgs
28G Downloads
```
!! What time period you would like to be born in?
I mean, the obvious answer would be when I was actually born (the early 90s) because my life would be so different and potentially worse otherwise. Of course, I could also just say the 60s, so I could be a young adult in the 80s and 90s, when it was relatively easy - with the caveat that I'd be born in the USA rather than the UK, because the UK kinda sucked back then (haha implying it doesn't suck now).
!! death - https://www.tarot.com/tarot/cards/death/rider
[[Previously.|2020.03.18 - death of school]]
Also connotations of harvest. The scythe kills the plants, but dead cereal crops feed us, don't they?
!! Today's Wiki Review
* [[Breakfast Burrito]]
** Yummy, and easy to make
* [[2020.05.25 - Daily Task: eternal reoccurence ramblin']]
** I can for sure see why it's so difficult to point directly to.
* [[Rough Guide to RPG Editions]]
** The guide I would've liked to read, before I had to do the research to write it.
* [[2020.05.25 - Laptop space report]]
** I guess the last few items are the ones that add up. But to 100 GB? Weird.
!! What is your favorite movie of all time?
Blast, I dunno. The original cut of Star Wars, probably (Star Wars is and should be a campy 70s sci-fi adventure about the seed of greatness being in ordinary people, not the incest bloodline 9-film mess it turned into). I also really like the two Blade Runner movies (especially the second one) and anything with Tom Hardy in it.
I'm not a big movie person. I don't think too heavily about fiction in the moment, I feel like it ruins the experience. My golden rule of how to enjoy almost any movie is to turn your brain off and experience it like a kid would.
!! two of coins - https://www.tarot.com/tarot/cards/two-of-coins/rider
[[Previously.|2020.03.11 - still emo in 2020]]
Ahhhh, I really want that sodding car. Haha.
<<<
The Two in this suit generally features a youth juggling, with two coins juggled in figure-eight fashion, or just the coins without the youth -- one heads up, the other tails -- both flipping in the air. It is clear that until one or the other coin drops, the final call can not be made; there is more to learn before a decision can be made about appropriate action.
<<<
In general this card suggests to me the idea of things being in the balance, not quite ready to have the hammer drop.
!! Today's Wiki Review
* [[2020.05.26 - Daily Task: harvest]]
** Such a little nostalgia boner.
** Much more active day before yesterday. Not likely to be much different today than yesterday, since I'm up so late.
First crpgs - pokemon series, then later Oblivion. Played an elf sorcerer (Disinthe) rising to power. Did the mage's guild quests & main quest, as well as tonnes of side quests & the dlc. Read the strategy guide until it fell apart. Captivated by a gameworld with (seemingly) endless possibilities. PC Format review mentioned quest where you sleep at a boat inn and wake up at sea fighting pirates - inspired me. Wanted my own adventures like this.
Tried Rogue. Read OSRIC out of interest in implementing combat (for my own roguelike). Got the 4e books at some point & ran a campaign. Always wanted to play Disinthe in a more open setting. Loved dungeon bashing. Fave part of pokemon was exploring and adventuring.
!! What are you most grateful for?
The dead ;)
I jest. Being able to live in America with the love of my life.
!! seven of swords - https://www.tarot.com/tarot/cards/seven-of-swords/rider
[[Previously.|2020.04.11 - ethics]]
<<<
Putting it in modern terms, one who draws this card needs to work smarter, not harder. Think long and deep, study all the angles and put yourself in the shoes of your competition. As a result, you will have such a thorough grasp of the whole situation that there will be no surprises -- and no excuses for anything but success. Skillful preparation justifies the optimism of the natural winner.
<<<
"Work smarter, not harder" is an old classic of mine. I value learning how my computer tools work inside-out, so that I can spend less time fiddling with them and more time getting my shit done. For that reason I value tools that work transparently (like Emacs) over tools that do everything but are hard to learn and confusing (like IDEs).
My father says "measure twice, cut once"; which is to say, study the territory before you go charging into it and get lost. It's often literal; he says this a lot when he's woodworking.
!! Today's Wiki Review
* [[2020.05.27 - how I got into RPGs]]
** Couldn't sleep, wrote this up.
* [[2020.05.27 - Daily Task: george lucas made one good movie and it was largely because of his (now ex) wife's editing chops]]
** 4 > 6 > 5, I think. The sequels had some of the old magic, but for the most part weren't good. The prequels sucked, and it's only our nostalgia that makes them watchable.
!! Which person would you like to see more often than you do now?
[[Previously.|2020.02.12 - i miss you]]
[[Sphygmus]] for sure (update dat wiki ;w;) and [[Talita]]. I should play animal crossing with Sphygmus again. And figure out something with T. Maybe there's a way we could IM? Not sure.
!! ace of swords - https://www.tarot.com/tarot/cards/ace-of-swords/rider
[[Previously.|2020.02.26 - completion]]
<<<
This suit represents the rational mind and its ability to discriminate. Swords cut through things in order to pierce illusion, to differentiate between fantasy and reality.
In the image of this Ace, a single upraised sword represents your prime motive or guiding ideal -- the vision that guides you through life's changing fortunes with single-minded clarity.
The sword is sometimes shown piercing a silver and/or laurel crown, a symbol of optimism implying evolution, progress, a sense of hope and victory. It is occasionally shown pointed downwards -- a darker message, which refers to sacrifice, challenges and a critical environment.
<<<
Having a driving goal helps you to situate yourself in life. This is probably why people stick with Christianity, despite the fact that [[God obviously doesn't exist|A-Theism: A Given]]; it gives their life meaning.
Being part of something bigger than yourself is hugely important and I understand why systems like this are so seductive. It's just that I've seen the harm they do, I've seen the people they kick to the gutter, the evil that their book preaches. I can't join them in good conscience, especially when [[there's something better|Buddhism]].
!! Today's Wiki Review
* [[2020.05.28 - Daily Task: smart, not hard]]
** Completed.
How can I see the world when I'm always staring at my feet? What makes me so tired also keeps me far from falling asleep. Another nervous nail-bitter. Another nervous unwanted all-nighter.
-----
<<<
"""
The spider web noticed by the light
Twinkle wind chimes
"""
<<<
"""
水の跡 見た 四日間
プラス 大気 四日間
見えない糸 切れたら その瞬間
水の跡 見た 四日間
水の跡 見た 四日間
見えない糸 切れたら その瞬間
楽しかったんだと思うと きっとね
楽しかったんだと思うと きっとね
つまり 大気圏 静かな体験
浮かんでる 身に有る 重さも無くて
悪天 関係ないから バック転
光で気付いた 蜘蛛の巣
きらきらと輝く 風鈴 草履
光で気付いた 蜘蛛の巣
きらきらと輝く 風鈴 草履
サプライズをちょうだい
浮かんでいたいから
サプライズをちょうだい
浮かんでいたいよね
ストレッチ ほぐして 123
ねんねん ころり
うとうと してると
ちゃぽんと入る スパって行こう
結構適当 考えてるけど
心はここにあらずだから
雲の動きは無意識 全部 演技
天気すらも 分かりきったような
散歩帰りの犬の顔
散歩帰りの犬の顔
散歩帰りの犬の顔
散歩帰りの犬の顔
散歩帰りの犬の顔
サプライズをちょうだい
サプライズをちょうだい
光で気付いた蜘蛛の巣
きらきらと輝く 風鈴 草履
光で気付いた蜘蛛の巣
きらきらと輝く 風鈴 草履
風鈴 草履
足から飛びたいな
足から飛びたいな
足から飛びたいな
足から飛びたいな
時 忘れたいよね
時 忘れたいよね
時 忘れたいよね
ね ね
時 忘れたいよね
時 忘れたいよね
ね ね
Let's go, let's go swimming time
Let's go, let's go swimming time
Let's go, let's go swimming time
Let's go, let's go swimming time
Let's go, let's go
Let's go, let's go
Let's go, let's go
"""
!! What special talent do you have?
~~I'm a stand user~~ jk, or am I?
I can write - fiction or no. I've always been pretty decent at expressing myself through words. I was writing short stories at 9 years old. I got into the habit of carrying around a notebook when I was in university (I still have the first one, which is full of sketches and notes).
I'm good at computers. There's a photograph of me at the tender age of about 12 months, playing on a computer. Pops and I can have discussions about computers you need a degree to understand.
!! judgement - https://www.tarot.com/tarot/cards/judgement/rider
[[Previously.|2020.03.12 - woah dude]]
Haha, the last one had some big WOAH DUDE energy.
I noted in the first reading that it seemed to be about lifting one's own limitations. That's what the previous one (the tarot.com quote, anywho) was trying to say. I've talked about this in previous tarot readings. We put all sorts of limits on ourselves and breaking them is how we grow.
!! Today's Wiki Review
* [[2020.05.29 - Daily Task: sphyg-friend]]
** Yeah, it'd be good to talk more.
** Have disney+ now, thanks to my FIL. Could watch some THTAW WAWS (or marathon the Avengers movies)
** "Work smarter, not harder" is one of three adages that have shaped me. Another is a silly one: "We'll cross that bridge when we come to it" - which reminds me not to overthink the future too much - and the third is serious: "this too shall pass".
!! What's one job you would never want to do?
!! page of swords - https://www.tarot.com/tarot/cards/page-of-swords/rider
[[Previously.|2020.05.10 - Daily Task: The best laundry folder in the West]]
!! Today's Wiki Review
* [[2020.05.30 - Daily Task: this too shall pass]]
**
* [[2020.05.30 - blue\\青い]]
**
<<list-links "[prefix[2020.06]!sortan[]] +[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* Only doing the review is pretty comfy.
* Should really do some "anti-reviews". Has been on my mind. Just not really playing much atm (only ~AnCro)
* 2020 has been very, very shitty so far. Remember the ww3 scares? Shit has been wild.
* SSC deleted; several reactionary spaces banned; a silver lining could be that this is the point in time we finally start winning.
** Maybe we need to get the cultural territory where we've mostly been successful lately and use that to our political ends. Bernie got close, but he was hardly perfect, and not close enough. Bernie 2.0 is coming, and he or she is going to have to be even better.
*** Maybe "she" is a better idea. The chuds would never vote for a blue candidate anyway, and this way we could get the more👏female👏ceos libs on board.
* Bruh I forgot how great A:TLA was.
* Computing tidyup went great. Tag is nice and clean now with separate rabbitholes.
* Chris Hemsworth is the chad's chad
** The virgin's chad is Tom Hardy... nah jk. I love them both. I should watch Venom. Tom Hardy as a hot bisexual mess seems right up my alleyway.
** Chris was a great James Hunt in Rush. Can't wait for Rush 2 :^)
* Interesting to make [[The Good]]. It'll almost definitely be different to h0p3's, but that's okay. That's why we run two different wikis!
* SaltyFox is my lovely kou-sen-hai-pai.
* This month, remember to [[do what you love, capitalism be damned|2020.06.26 - transcribed good image]].
** On the same note: "The demands of industry have been disastrous for our hobby." ([[2020.06.15 - Wiki Review: HOLY SHIT SHE BE WRITING]]) Yes. This. c.f. [[An Open Letter to Hobbyists]]
----
<<list-links "[prefix[2020.06]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
!! What is your most indispensable possession and why?
My passport, lol. I need it to get my green card! And I've been through hell to get this far, so it's not like I'd give anything else up but that.
Man, what a boring answer, eh? And my second choice was my employment card!
!! the-moon - https://www.tarot.com/tarot/cards/the-moon/rider
[[Previously|2020.04.10 - aw yeah... N!]] (not done).
Oh I'm so lazy. Well, I know at least that the moon has themes of confusion and disorientation. It's obviously associated with rabbits (thanks Japan). [[I talked about that way back when I first read this card|2019.11.14 - ghosts]]. Oh Tewi, teach us something.
!! Today's Wiki Review
* [[2020.05.31 - Daily Task:]]
** Coulda sworn I did this. Oh well. Too tired to do it now.
!! Should cellphones be allowed in school?
[[Previously.|2019.10.24 - money add then multiply]]
I very much agree with my previous answer and don't see this changing much in future, lol. I'm going to take this one out.
!! ten of swords - https://www.tarot.com/tarot/cards/ten-of-swords/rider
[[Previously.|2020.05.21 - Daily Task: mi-mi-million, mili-run-run]] Not even a fortnight, I don't think. I'll have to mill this one if I get it again.
Shit's got even worse since then. Now we have to deal with curfews and the likes. Boiling point. Police brutality must end.
!! Today's Wiki Review
* [[2020.06.01 - Daily Task: indispensable]]
** Tewi smiles: "Not yet."
Slate Star Codex is the latest in a long line of conservative intellectuals that talk authoritatively and intelligently to make themselves seem like they have all the answers, but are actually mostly just talking out of their arses. It's a fake-it-til-you-make-it style of public intellectualism.
See also Jordan Peterson, Ben Shapiro, etc.
!! Tell about a friend you have with a different national background.
[[Previously.|2020.02.09 - rorschach]]
Honestly... as I said back then, pretty much all of my friends these days have a different background, except for a handful of the CLUBBERs.
!! strength - https://www.tarot.com/tarot/cards/strength/rider
[[Previously.|2020.04.06 - kanyedere]]
> The Strength Tarot card represents nature, which, however wild in its primal form, is tamed by our subtler, finer self -- our feminine side, our inner self. The will and passion of our instinctive nature does not need to be broken, but refined and brought to consciousness, so that all levels of creation may come into harmony.
Despite the woo, this is an interesting take. It's advice that's good for me, someone who's mercurial and fiery by nature, to temper and focus my wild side.
!! Today's Wiki Review
* [[2020.06.02 - why i hate SSC]]
** Just thought I needed this written down somewhere.
** Less interesting reason: Scott is boring as fuck and his articles never last longer than a paragraph before I close the tab to avoid falling asleep.
* [[2020.06.02 - Daily Task: miller lite]]
** Proud of this silly pun.
https://www.youtube.com/watch?v=nQY9-86-mPQ
!! What's your favorite part of being you?
That's an impossible question. My talents, maybe.
!! the-hermit - https://www.tarot.com/tarot/cards/the-hermit/rider
[[Previously.|2020.01.25 - parade]]
> I could use it in total isolation if I wished to.
Ouch. Yeah, this is me now. Shit's been chaotic since the coronavirus boiled over. I have to keep it locked down until the virgin brigade finds something other than waifu stuff to sneer at. Lol.
!! Today's Wiki Review
* [[2020.06.03 - more on post-modern conservatism]]
** Good video. Poor TS
* [[2020.06.03 - Daily Task: foo bar baz qux snarf blurt]]
** Daily tasks have been getting shorter, too.
*** Not sure what to do. Writing has been hard recently. Life is draining. I don't like being in front of my computer.
!! What is your favorite journey?
[[Previously.|2020.03.02 - Journey to Justice]]
Jokey answer I missed back when I was still working: home! the journey back from work!
The truth is, I'm very much a rooted person. I like to stay in one place.
!! four of cups - https://www.tarot.com/tarot/cards/four-of-cups/rider
[[Previously.|2020.03.31 - we live in a society]]
> I seem to draw this card more than any other.
Very true!
Found https://teachmetarot.com/part-1-minor-arcana/lesson-6-the-four-twos/three-of-cups/four-iv-of-cups/ - a better resource, maybe?
> As this card is also known as the Daydream Card, the figure may be away with the faeries or on another planet, dreaming of the ideal life, romance and wishing he was somewhere else. Lacking the energy to motivate himself into action, he may prefer to live in a fantasy world rather than face the harshness of reality.
Absolutely me. I am a daydreamer and an escapist. Not quite to the level of [[Tommy Westphall|https://www.youtube.com/watch?v=zjtpFV4i-54]], maybe, but I'm still quite the innerworld-type.
Tarot cards are definitely a Rorschach test, and in this I see myself.
!! Today's Wiki Review
* [[2020.06.04 - Daily Task: me me me. me too]]
** Completed. Not much to say.
* [[2020.05 Journal Review]]
** Late, but done.
* [[2020.05 Daily Tasks]]
** Ditto
!! Tell a story that you have had with one of your aunts.
[[Previously.|2020.03.25 - Aunt Senpai]]
I wonder if this is from an Asian cultural source, where large extended families are more of the norm. I have a large family for a Westerner, but I still don't have that many aunts and still don't see them that often.
My father's brother's (uncle's) wife (my aunt) is lovely. She's not the type of person I'd normally meet and interact with, but we get on really well. She's the mother of my cousins (unsurprisingly) who are sweet little kids, an elder girl and a younger boy. They both seem to really like me. I taught the girl how to count in binary and showed her my old gameboy (since she loves videogames and is rarely torn away from Minecraft and Roblox on her tablet). Teaching children about the world and being a good role model for them is good for the soul.
The one thing that sucks about being in America is that I don't get to interact with that side of my family. Only my in-laws are close enough for me to see them often.
!! the-hanged-man - https://www.tarot.com/tarot/cards/the-hanged-man/rider
[[Previously.|2020.03.08 - cigarettes and alcohol]]
Three months ago, good spread, I guess! Let's check out the new site on this card: https://teachmetarot.com/part-iii-major-arcana/lesson-5/the-hanged-man-xii-upright/
<<<
The Hanged Man is a card that deals with surrender and sacrifice. We must not take an understanding of his meanings at first glance for they are often multi-layered. After all the activity of the Upright Wheel of Fortune, the positive change in circumstances, life and opportunities flowing with abundance, there now comes a time when all the having, getting and doing grinds to a halt. Life appears to be suspended or on hold.
<<<
This reflects our contemporary feeling of a world gone mad; we're trapped indoors as our town centers burn, our elders die of disease, and we lose ourselves in the prisons of our own mind, or regress endlessly to teenagehood, to escape the world.
...It gets dark.
!! Today's Wiki Review
* [[2020.06.05 - Daily Task: journey not the destination]]
** "The journey not the destination" is honestly a good saying, but not literally - actual journeys are no good, but metaphorical journeys (like reading a book) //are// more important than the destination.
I grew up watching this guy, haha. My interest in wrestling was basically congruent with the wrestling content on his channel. I was a pretty loyal fan back in the day, but I didn't really like his newer, live-riffing content. Now a lot of this content is lost, but at least we have a retrospective.
https://www.youtube.com/watch?v=EwT2NsRk808
Nowadays the old rant community has been largely replaced by youtube's commentary community; think of h3h3 or pyrocynical. While they occasionally call to light some good shit like [[this video on "influencers" in the protests|https://www.youtube.com/watch?v=XcVaJtKLaZc]] they're mostly a bunch of leeches and, honestly, Leafy is right to shit on them.
!! What is your greatest extravagance?
h0p3 says the wiki! That's a good one. I suppose it is pretty extravagant. I'm essentially mapping out my life. Wild stuff!
Of course, there's stuff that doesn't go onto the wiki (mostly sexual stuff) because it's a semi-public space (will be fully public when shit calms down a bit).
!! the-chariot - https://www.tarot.com/tarot/cards/the-chariot/rider
[[Previously.|2020.05.09 - Daily Task: takeaway]]
Tarot.com warns about hubris and attentiveness. With great power comes great responsibility. Pride comes before a fall. Etc.
!! Today's Wiki Review
* [[2020.06.06 - Mues retrospective]]
** Going back to it, I found I didn't enjoy his content as much as I used to. Probably just grown older and less interested in hearing someone complain about stuff.
** Leafy had another good take in his imalexx video: don't come to youtube expecting quality. It's entertainment, and it's going to be mostly shitposts.
* [[2020.06.06 - Daily Task: ...and cousin kohai!]]
** I do miss my little cousins.
* [[Quotes by chameleon]]
** Always found it a bit vain to collect my own quotes, but I liked these.
* [[Mu]]
** Unask the question.
* [[Jazz Slang]]
** Maybe it's so much Adam Neely. I totally talk like this irl.
* [[Shamus Young's Mass Effect Retrospective]]
** The last word on this once-great series.
* [[Mass Effect 3]]
** Fuck that game.
I'm glad to see her posting a little again, even if it isn't much. I can totally understand not wanting to due to current circumstances (it's the same with me).
!! What would you invent to make life better?
A phone that doesn't suck! Futureproofed, with good features (including a headphone jack, physical buttons, and not a large section of the screen cut out) and free software running on it. It can still make calls. Stretch goal: it has an Android compat layer to run all those botnet apps.
Oh I'd be so happy to have such a phone.
!! three of coins - https://www.tarot.com/tarot/cards/three-of-coins/rider
Huh, is this really the first time I've seen this one? Wild, considering how many repeats I've had. Wonder if this is the last one I've never seen before.
> The Three is traditionally the card of genius. Here we usually see a master craftsman conferring with his masons on the installation of a beautiful stained-glass window in the cathedral. This designer is often likened to Leonardo da Vinci or Michelangelo, a multi-talented visionary who has no peers in talent or productivity.
I'm no genius; at best I'm an above-average intelligence. My main asset is my curiosity, which leads me to teach myself new things on a regular basis. I'm certainly not a visionary on the level of the Renaissance Masters!
Leadership might be a better interpretation for us mere mortals. Can I learn to be a good leader? I could use such skills to become a manager or team lead in my career... but that's for another day.
!! Today's Wiki Review
* [[Counter-Strike]]
** [[I AM THE ONE AND ONLY|https://www.youtube.com/watch?v=AYaPBogH5X8]]
** The one game to have an esports scene that isn't totally ruined by it
* [[2020.06.07 - the return of sphyg-friend]]
** Always good to see a pal again.
* [[2020.06.07 - Daily Task: extravagance and hubris]]
** Hand-in-hand?
** Funny that it's been however many years and I still haven't forgiven Bioware (and I only very tentatively look at other EA properties such as the Sims or Need For Speed; I do more than my due diligence in research).
!! What does "Clothes make the person" mean to you?
[[Previously.|2020.03.21 - je refuse le Spectacle!]]
[[Madness and stupidity!|https://www.youtube.com/watch?v=_rBe4bm1WFY]]
Today though, I'll take an alternative route. When you dress smartly, you feel empowered (c.f. the 80s power suit; shoulder pads are BACK baybee!) and more confident; and it will show in your demeanor.
!! knight of coins - https://www.tarot.com/tarot/cards/knight-of-coins/rider
[[Previously.|2020.05.08 - Daily Task: groundhog first day of school]]
<<<
Seeing the bigger picture, like a farmer planning for the future, he doesn't allow momentary fads or fancies to distract him, and he doesn't take seriously those who do. One can feel his stability and dedication -- he is totally responsible and even somewhat predictable when it comes to his projects. He is earthy and gentle, as simple and deep as the soil he tills and the flowers he loves.
<<<
I think I mentioned this is the kinda kid I'd like to raise, haha. I was somewhat of this person as a kid, but I was also a big worrier. But planting seeds and watching them grow - that's a lifelong project.
!! Today's Wiki Review
* [[2020.06.08 - Daily Task: master inventor chame]]
** Oh to be so much less lazy!
I lost it in a computer crash. Annoying.
I will still be using the wiki for the forseeable future. However, I'm wondering (c.f. frustration in [[2020.06.10 - no daily task for now]]) if I should drop the daily tasks for now, or just boil it down to review for now. Much as when h0p3 removed AA from his regular lineup, I'm not feeling it with the tasks I have; I think it's becoming more of a chore than something I look forward to, and it's not providing a springboard for creativity any more.
I'm pretty sure I've seen all the tarot cards, and that means it's increasingly harder to think of something to say in the DT tarot cards. It's fine though, as I already have nearly a year of DT backlog which has said most of what needs to be said.
Some thoughts on alternatives:
* Just a wiki review. That way I can merge the wiki review + monthly journal review thing into a mega review at the end of the month. I like this idea.
* Create a roleplaying wiki, and use randomization to provide random events (a la mythic GME) and have a living campaign world. I could do the "a day passes in reality, a day passes there" thing.
* [[2020 Daily Tasks]]
** Early archive, to keep them in place.
* [[2020.06 Daily Tasks]]
** Ditto
* [[Daily Tarot Wrap-up]]
** More than expected, but still only four of them.
* [[Tarot Daily Review Hyper-Archive]]
** Thanks to Emacs, I got this done in only about twenty minutes.
* [[2020.06.10 - Wiki future]]
** Let's see how this goes. The wiki is endlessly malleable, so I can always restore it to a previous state.
* [[2020.06.10 - no daily task for now]]
** This has gotten so frustrating and it's really been draining my creative energy.
* [[Pokemon]]
** Periodic obsession
* [[2020.06.11 - Wiki Review: Changing of the guard]]
** Creative energy is already coming back!
* [[Retired Wiki Mechanics]]
** Wonder how populated this will get.
* [[Journal: Wiki Review]]
** woah, meta
* [[2020.06.12 - Wiki Review: mostly meta]]
** Yeah it's going to be a bit meta. At least today it's been more about my interests.
* [[Pokemon: Cuties]]
** Aren't they cute?
* [[Pokemon: Best Music]]
** The series has always had great music.
* [[Pokemon TTRPG Ideas]]
** These have developed into a kernel of a game...
* [[Pokemon: Gen 1]]
** So many [[childhood memories|https://www.youtube.com/watch?v=Fg1a0QXhYQE]]. I miss this game if I don't play it for a while, lol
Something stupid - when watching the [[Joseph Campbell]] video there was a clip where he was in front of a computer. Instead of listening to what he was saying, I paused the video, ID'd it as an IBM XT, and verified that yes indeed it was an XT. Where did this fucking superpower come from lol.
"Review" something by just talking about it. No ratings, no recommendations, just talk about what you liked and didn't like, the story of you and the game/movie/book/etc. Do it late. don't be a journalist or a Professional Video Games Man. SHUT UP AND WRITE
* https://www.tumblr.com/tagged/generalists
* https://itsafunnyaccord.tumblr.com/post/6642409614/generalists-versus-specialists
* https://frankchimero.com/blog/2014/designing-in-the-borderlands/
The [[Computing]] tag is getting cluttered. I need to audit what's there and split it up.
Post midnight, I had a manic episode or something and did a bunch of stuff. So this is a quiet moment before tomorrow's HOLY SHIT SHE BE WRITING
* [[Joseph Campbell]]
** I've read the hero with a thousand faces. But I feel like I still haven't really gotten into his work. I'll have to give him the due attention.
* [[2020.06.13 - Wiki Review: MANSTAHS???]]
** Activity is coming back. The wiki is back, baybee!
* [[Capsule Monsters]]
** Some ideas that didn't pan out, some that did. Fascinating. Hopefully someday we get the full binder.
* [[2020.06.14 - Wiki Review: calm before the storm]]
** Yeah, it's nice to be alive again.
* [[2020.06.14 - anti-reviews]]
** Possible new mechanism. I'm thinking I'll do a deep dive on Sword & Shield.
* [[2020.06.14 - more rabbitholes from kicks]]
** Consistently find good stuff just by scrolling through his blog. That's probably his intention ;)
* [[Dream Wiki]]
** I can run this myself. I might. Watch for [[http://dreams.seekrit.club]]~
* [[2020.06.14 - ?????]]
** Seriously though?? My family didn't even have an IBM XT, afaik. I'll have to ask Dad about his computing history.
* [[2020.06.14 - need a computing audit]]
** Really do. [[Audit]]
* [[The Code It Yourself Manifesto]]
** Would rather it said "program" rather than "code" but it's an interesting take. I know there's some things we need to collaborate on (cryptography is the big one) but there's some where, arguably, it'd be better if people sat down and did it properly. Though, there's not much appetite for that, probably due to capitalism. The demands of industry have been disastrous for our hobby.
* [[Programming: Case Styles]]
** Have needed this information in one place for a while now!
* [[RETRO Forth]]
** A vm-Forth! It's very interesting and fixes a lot of... not problems, but quirks Forth has. I'll be looking into this.
* [[Computing: Misc]]
** This ended up being needed as I got towards the end. Like, the last four or five were just none of the other categories.
* [[Computing: Shitpost]]
** Easiest apart from the journal one.
* [[Computing: Tools, Guides, and Tricks]]
** Yeah it's best that they live in a category, or they'll get lost.
* [[Computing: Languages and Programming]]
** A big pile.
* [[Computing: Setup]]
** The category which needs the most work, I think.
* [[Computing: Rants/Moaning]]
** I promised myself I'd keep these to a minimum :P
* [[Computing: Sortme]]
** Got it down to zero. Gotta keep an eye on this. Reminds me that TagMe needs some work.
* [[Computing: Journal]]
** Yeah as above. This was the easiest to do. Just toss all the journal shit in a big pile.
* [[Computing: Subcategories]]
** Great idea.
* [[Tag Audit: Links]]
** Not yet done.
* [[Tag Audit: Computing]]
** Successful.
* [[Audit]]
** Let's see if I need any more.
* [[2020.06.15 - Wiki Review: HOLY SHIT SHE BE WRITING]]
** she do be writin doe 😳
** http://dreams.seekrit.club/ is live, but doesn't have anything rn.
* [[2020.06.16 - waifu time]]
** Interesting thought.
* [[2020.06.16 - Wiki Review: categorization pornography]]
** Most of the activity yesterday was further categorization.
Thinking about how to help some of my best friends, the [[CLUBBER]]s, through these hard times.
* [[2020.06.17 - Wiki Review: the worst is over, you can have the best of me]]
** Gotta keep this up, even if we're just checking in every day. The wiki must go on!
* [[Henry Darger]]
** when did I say I "should" do this? lol.
* [[2020.06.18 - Wiki Review: back to slow]]
** Helping my friends: it's important, but it's hard.
http://www.swans.com/library/art9/mparen01.html
It's not much of a surprise. I knew that disobeying the lamas was a fast track to an eye-gouging. I didn't realize it was within living memory - not much further out than segregation. Still, seeing it described in such visceral terms, with such specific details of how the serfs were treated, has lead me to question our thoughts on Buddhism's place as the one good religion.
The emperor has no clothes. All religions really are as bad as each other. I feel like now I'll have to go on a journey to craft the syncretism of a non-religious spiritual path. I think it's absolutely right to call me a post-Buddhist now.
There is absolutely a depth to Buddhism that there isn't in Christianity. Abrahamic religion is absolutely worse. But what's the point if it leads to the same evils?
LambdaMuRinpoche, you were right.
I don't think I need to be a perfect person. I just need to try and live up to Granny, to be the person she would be proud of. If I can help people through loving kindness and make them smile, then I've succeeded, even if only a little.
<<<
"""
I'm not sure if leaving it aside is the necessary choice, though.
I can't imagine any group or idea being completely devoid of any mistake or wrongdoing.
What matters is what you can bring to it, how you shape your own piece of the faith.
"""
<<<
* [[2020.06.19 - Wiki Review: realms of the unreal]]
** A great senpai.
** Perhaps I should help myself before I help others. Life is confusing.
* [[2020.06.20 - untitled]]
** Resolution.
* [[Pancakes]]
** Yummy. Made the hubby smile.
* [[2020.06.20 - Wiki Review: aaaaaaaaa]]
** Shout out to my [[Zodai]]~
* [[2020.06.20 - tibet]]
** Mini existential crisis trigger. But SaltyFox and I talked about it and I feel better now.
* https://philosopher.life/#PT%3A%20Mackie
* https://en.wikipedia.org/wiki/J._L._Mackie
* Some good shit. Why isn't he more well known?
<<<
Concerning religion, he was well known for vigorously defending atheism, and also arguing that the problem of evil made untenable the main monotheistic religions.[12] His criticisms of the free will defence are particularly significant. He argued that the idea of human free will is no defense for those who wish to believe in an omnicompetent being in the face of evil and suffering, as such a being could have given us both free will and moral perfection, thus resulting in us choosing the good in every situation. In 1955 he published "Evil and Omnipotence" which summarized his view that belief in the existence of evil and an all-powerful, all-knowing and all-good God be "positively irrational".[13]
<<< https://en.wikipedia.org/wiki/J._L._Mackie#Philosophical_work
Absolute king.
* [[Avatar: TLA]]
** Love this show so much.
* [[2020.06.21 - Wiki Review: disciples of tewi]]
** SaltyFox is absolutely a disciple of Tewi now, haha. He changed his pfp and everything.
*** A cult the power of which may yet surpass the Elitist Superstructure of seekrit.club
** I feel a lot better now. Existential crisis over.
* [[2020.06.22 - mackie]]
** He looks cool. Should check him out.
* [[What is Karma?]]
** Hard question.
* [[The Good]]
** A cornerstone of [[h0p3]]'s. Likely won't be a //cornerstone// for me. But I feel it's probably not right to not have it.
* [[2020.06.22 - Wiki Review: Happy with what she has]]
** Life goes on.
What are we going to remember of this year?
Judging by the historical record, even crazy bad pandemics in modernity haven't had the cultural impact we living through coronavirus would expect. Two separate pandemics have been mentioned: Spanish flu and polio, in the interwar years and 50s respectively. The only well-remembered plague is the Black Death, and as deadly as corona has been I don't think it's that bad.<<ref "yt">>
I imagine the elections will be more held in memory. This could be the turning point - will Trump finally be ousted, or will this be the burning-of-the-Reichstag moment? Either way, the virus could just fade into the background - as either further evidence of Trump's incompetence, or a warning sign we should've heeded.
It's tricky to know what will happen next. It's not like the re-election of GWB, where the threat of terrorism still seemed imminent and large swathes of the establisment & the moderates were largely in favor of his foreign adventures; but at the same time, an incumbent president mostly popular with his base beating out a milquetoast opponent to win his second term sounds an awful lot like 2012.
I really don't know. I dearly hope Trump loses, even if I'm not exactly a fan of Biden. For all his flaws, he's still no Hillary, so I think he has a chance. The question seems more if he can mobilize the downvote and actually get shit done as president; and indeed, what shit he would //want// done. Even with the rising support for BLM, he still seems to be sitting in the center.
The future is rarely certain, but rarer still has it felt this //un//certain to me. Not since the chaos of the 00s financial situation. https://www.youtube.com/watch?v=s_iMS31mqmU
----
<<footnotes "yt" "Yet.">>
* [[2020.06.23 - Wiki Review: bruh moment]]
** Still making non-journal articles, almost a year in. Human knowledge is fractal.
** Wild to think 2020 is over half over. This has been a stinker of a year.
* [[2020.06.24 - hindsight is 2020]]
** Goofy year.
** Inspired by yesterday's comment about it.
* [[2020.06.24 - Wiki Review: Human knowledge is fractal]]
** It sure is.
** Bit slow really. Focusing on other things.
Destroy the idea that you gotta be good at artistic things to enjoy them, that every hobby has to become smth you're so good at, you can monetize it
A capitalist lie.
Sing offkey, draw poorly, write badly. Life is meant to be enjoyed, not monetized. You're not a product.
* [[ATLA Shipping Guide]]
** Still trash.
* [[Avatar Band Names]]
** An ancient and noble tradition.
* [[2020.06.25 - Wiki Review: sokka's wolftail]]
** Focusing on my favorite show ever, for example ;)
* [[2020.06.26 - Wiki Review: chris hemsworth is the best hemsworth]]
** Still absolutely in ATLA fangirl mode. I am reading philosophy in the background!
* [[2020.06.26 - transcribed good image]]
** Absolutely my view. Don't let neoliberalism infect you to such a degree that you think
* [[2020.06.27 - Wiki Review: aoeui]]
** Editing [[The Good]]... well, livedrafting. Nothing new.
* [["YouTube bans Stefan Molyneux, David Duke, Richard Spencer, and more for hate speech" (the Verge)|https://www.theverge.com/2020/6/29/21307303/youtube-bans-molyneux-duke-richard-spencer-conduct-hate-speech]]
* reddit also
** [[Vaush coverage|https://www.youtube.com/watch?v=XwEnfmS91ME]]
** [["Reddit bans r/The_Donald and r/ChapoTrapHouse as part of a major expansion of its rules" (the Verge)|https://www.theverge.com/2020/6/29/21304947/reddit-ban-subreddits-the-donald-chapo-trap-house-new-content-policy-rules]]
** [[Celebration thread for r/gc being deleted|https://www.reddit.com/r/GenderCynical/comments/hi3rax/gendercritical_has_been_banned/]]
Would've loved for this to have happened sooner. Still, better late than never.
Some reactionary outlets survive:
* r/~MoreTankieChapo
* Milo's yt
* r/gendercriticalguys
* r/lgbdropthet
* r/itsafetish
Thankfully, C is a universal language. http://natal.web.fc2.com/gap_buffer.html
Twitter thread story. Nothing I love more than idiot brexiteers getting their comeuppance.
So glad I left before the shit chickens came home to roost.
https://twitter.com/archer_rs/status/1277505330885386240
I wonder if I should start cleaning up the [[last missing tarot cards|Daily Tarot Wrap-up]] on days like today where the wiki review is a little short.
* [[2020.06.28 - Wiki Review: asdf]]
** Still slow. Though I did some stuff after midnight.
* [[2020.06.29 - Lol]]
** Schadenfreude. I voted to remain, but I left the country. Like Alex says, the truth is I really do hate it; but I wish it could be better.
* [[2020.06.29 - wiki review thoughts]]
** These do need to be finished off.
* [[2020.06.29 - finally]]
** The only good thing about these cursed few years is that we have seen the gradual unravelling of the alt-right media circus.
* [[2020.06.29 - Wiki Review: qwertyuiop]]
** More today.
* [[2020.06.29 - gap buffer in C (Japanese)]]
** Looks promising
<<list-links "[tag[Carpe Diem]!sortan[]] +[prefix[2020.07]]">>
* A lazy wiki month.
* Less and less individual journey entries; is this review mechanic going to have to become a silo like [[Daily Task Archive]]?
** Ouroboros-like quality to some of these "do a review, write a carpe diem" days. Wiki might need more content to actually be interesting to review.
* Have missed out on Carpe Diem a lot. Sometimes I don't get on the wiki until dinner or later, so it seems pointless.
---
<<list-links "[prefix[2020.07]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* [[Raag Yaman]]
** Sounds beautiful, even under my inferior fingers.
* [[Tanarang]]
** A senpai and a site!
* [[Sargam (Indian Solfege)]]
** Sullying its name by comparing it with the inferior solfege, tbh. It's actually easier, in my opinion, which is a good thing for a musical alphabet.
*** In general solfege is better than the letter names, because it's closer to how we (by whom I mean guitarists) think about music - in terms of degrees of a scale.
* [[Indian Classical Music on Guitar]]
** This is going to be a serious rabbithole. I don't mind. Making beautiful music is something worth living for.
** Maybe some day I can "jam" with other musicians using this. ICM is known for its improvisations (hence its influence on psychedelia and prog - think of the 20-minute Dark Stars...)
** Honestly, it feels a lot like how modal jazz is described... especially with the drones; it's more about playing over a scale with a mood rather than complex harmony (though I'm sure building chords from the scale would be an interesting exercise)
* [[2020.06.30 - Wiki Review: bit more for the end of the month]]
** Seeing the alt-right wither is comforting. Unsure why h0p3 is against them losing their safe spaces, but I'm sure he has a good reason.
"""
Giant steps is fast
watch the, chord changes fly past
Lose your place
Feel disgrace
Horn goes back
In the CAAAAAAAAAAASE (case)
[x2]
"""
Fun idea, a tiddlywiki that loads all tiddlers at once in order, and the links actually just jump you around using standard html ids. Would mean that you could do a readonly tiddlywiki with nojs.
Didn't use my wiki on 2020.07.02, so this review contains my 2020.07.01 content too.
* [[Pandit]]
** Interesting etymology for "pundit". It's not got that same quality in English, maybe because football pundits are perceived as boorish twits with not much to say; see [[the Fast Show|https://www.youtube.com/watch?v=C-3dwjgoBts]].
* [[2020.06 Journal Review]]
** Completed. A quiet but okay month.
* [[ICM: Drones]]
** As stated. The drones give this style of music its characteristic sound.
* [[2020.07.01 - Wiki Review: sitar for dummies]]
** I feel much the same as I did when I first learned how to build chords and listened to my first Miles Davis record. I've found a new rabbithole in music, and that excites me.
* [[Describing myself as a thinker]]
** The Hedgehog/Fox distinction is one I really like. I'm 100% a fox. I've been described as a renaissance woman before.
** Feels liberating to categorically dismiss the classical "problems" such as free will. I just don't find them interesting.
** Maybe I should show this to Helvian. That way we can have more interesting discussions than the failure we had before, lol.
*** That was basically him saying "hey what do you think about [boring thing]" and me replying "boring" lol. Through no fault of our own. I hope we can find common ground. SaltyFox seems to respect him.
* [[The Vedas]]
** Made a start. Bored because I didn't want to draft.
** I wonder if this will be severely different from the shit we learn about in school.
* [[Hinduism]]
** Remains to be seen whether I'll find much worth poaching. Especially since, in English, loaded words get used. We already have this problem in [[Buddhism]] with several terms being translated to "enlightenment".
*** The term translated as "God" is probably Ishvara/Ishvar (ईश्वर). Interpretations include Atman/universal soul. It's definitely more nuanced than Christianity and co.
* [[2020.07.03 - giant steps lyrics]]
** A good shitpost.
* [[2020.07.03 - linear ribbon tiddlywiki]]
** Yeah this'd be an interesting way to do it. You'd get the benefits of tiddlywiki (an entire wiki as one file) but not the disadvantages (no JS necessary!) The issue would be that the file would be unwieldy to scroll through... though maybe it'd be an advantage in that you could read everything in some linear fashion. I don't know if FF and Chrome would fuck up at being given an extremely large HTML file to render.
* [[2020.07.03 - Wiki Review: red rain is pouring down]]
** It's been a while since I skipped a day.
* [[The Big List of Absolutely Everything]]
** Fun idea.
* [[2020.07.04 - Wiki Review: foxy chameleon]]
** Just the foxiest.
** Best wiki review in a while. So many thoughts and avenues to explore.
Wonder if there's some kind of comparison to be made here.
The three act structure or the Aristotelian rising action climax catharsis thing could be compared to traditional pop songwriting where songs are built around chords or (older) a structure like AABA. Common, yes. Universal? no.
Stories can exist which are like modal jazz/[[ICM|Indian Classical Music]] pieces; riffing on a repetitive element with building blocks, rather than on a stricter structure. More playful and more meandering.
Think of stories which are all about etudes and vignettes, such as a bildungsroman. An arc is suggested by the context (much as chords may emerge from modal improvisation), rather than being the superstructure of the whole story.
* [[2020.07.05 - Wiki Review: well i stand up next to a mountain]]
** Go and listen to that song (voodoo child) if you haven't in a while. It's way better than I remember it.
** A shit wiki review to match the good one of a few days ago. This one too. Well, I can only work with what I'm given.
* [[CK2]]
** Pretty fun so far. Have to use the hubby's computer though, poor sadhu can't handle it.
* [[EU4]]
** I joked with my sister that everyone who plays grand strategy games is either a nazi or a cute trans girl, lol.
* [[2020.07.06 - song/music structure VS story structure]]
** Interesting idea really.
* [[2020.07.06 - Wiki Review: the last reviewbender]]
** To be fair it wasn't great.
*** Hey this is a bit of a better review
* [[2020.07.07 - Wiki Review: eu4 tran]]
** uwu
** [[Avalokiteshvara]] is desperately needed...
*** That or you, chame, should get back to writing games and this time DON'T GIVE UP.petergabrielsong
* [[KKSongs]]
** Pretty decent site too.
* [[Universal Remote Codes]]
** Coming Friday, hopefully!
* [[2020.07.08 - Wiki Review: the goblin girl from the mystery world]]
** [[Tevis|Tevis Thompson]] has actually given me some ideas. On top of hearing more about the Dragon Quest series (which I've dabbled in, but not gotten far in).
** I hope I can get a job soon. Honestly, just a few months of salaried work will be enough to afford it. I can get a car soon thereafter, too (which is much more necessary here).
* [[2020.07.09 - Wiki Review: Go read my ME3 anti-review]]
** Yes, [[go do it|Mass Effect 3]].
* [[Anti-Review]]
** Great fun. Really needs to be more of a thing.
* [[Tevis Thompson]]
** nice rabbithole
OK so, you play [[ACNH]] on switch for a few months. You end up with a lot of photos and videos. You think to yourself, "let's get these off of my switch and onto a computer". You think to yourself "hey, I can post to Twitter directly from my Switch, right?" You create a burner account. You start uploading pictures to Twitter.
Twitter whinges that it thinks you're a bot. It says you have to give it a phone number. Fine, this is a burner account and locked down. You give them your phone number and wait for the text. 24 hours later, the text has not been sent nor received.
Fuck you twitter. I hate you.
* [[2020.07.10 - Wiki Review: just caught it]]
** Very busy day yesterday. Maybe I need a carpe tempus-segmentum/diem to talk about what happens in a day. Maybe that'd structure things better.
I'm playing as maharaja jayasimha of paramara and getting up to mischief.
I joined an eeeeeeevil Kali cult, and a fellow member of the cult came to me with a proposal to take down a would-be witchhunter. She and I killed him, then threw a decadent party in his name.
Now they're sending me to desecrate a sacred temple...
---
A few months after my succesful desecration, a brother of our order came to me and invited me to an orgy. What a time I had...
----
Dallying with the dark arts has lead our beloved Maharaja down a path of darkness. He is now known as "the cruel".
Foul rumors even suggest that he has summoned a rakshasha to grant him power. Shudder to think!
[[Philipp Mainländer: The Life-Rejecting Socialist (youtube)|https://www.youtube.com/watch?v=nnJmA9_dkP0]]
* [[Tweemo]]
** Wish I'd known what this was called before!
* [[2020.07.11 - twitter sucks]]
** They've still not got that text to me. Wankers.
* [[2020.07.11 - Wiki Review: hyperbolic bruh]]
** Yeah, it'd make things more interesting. I'll do it tomorrow and see if I like it.
* Morning
** Woke up 4ish
** brekkie: granola bar, OJ, meds
** ACNH
** banging some [[folk-punk|https://www.youtube.com/watch?v=RuWkFTlsWvo&list=PLD2awDZ1Wke9LIITguHVlpL71BIh2WiLa]], avoiding taking a shower like the crusty I am (I will take a shower later though)
*** https://www.youtube.com/watch?v=9X_o_BAUJ-c
*** https://www.youtube.com/watch?v=EISsqOF1FQg
*** Fuck it, at this rate I'm going to kopipe every song. The mischief brew song is great as well =w=.
*** https://mangadex.org/data/13c0fe60f7427123a003185ecb453a72/x5.png
** took a shower eventualy, while blasting that same good ol folk punk
* Evening
** Dinner: PIZZA
** Browsing le reddit, vibin, watching some vidyas
** While practicing the four chords, hubby said I sounded really good :D
*** Now I just need to actually write some songs using them. Convinced that this folk punk thing is for me. I can actually play it, and it being raw and unpolished is a genre expectation rather than me having no bandmates and no production skills :^)
** Found [[Space Gamer Fantasy Gamer/Better Games]] rabbithole. They want me to name my character right now? eep. not sure I'll even be in any games. I'm just here for the resources, guys.
** Grant Imahara died. Pretty sad. So many happy memories watching him on MB. I'm sure I've enjoyed his effects work in countless movies and tv shows, too. RIP to a real one.
** Having a beer to chillax. An Elysian Space Dust IPA. Good shit.
* Night
** Hubby having problems sleeping. He snores loudly and wakes up coughing up something. I think it's acid reflux or something; he's had this problem consistently for a while so we need to go see a doctor about it
** Can't really get comfy in that tiny bed. The couch is much comfier, especially with that big fluffy blanket. Slept very late due to looking after hubby when he woke up, but like a baby when I did.
* [[2020.07.12 - Philipp Mainländer: The Life-Rejecting Socialist]]
** Fascinating thinker.
** That Nietzsche own, though.
* [[2020.07.12 - Wiki Review: twitter sux, tweemo rulez]]
** day 3 of them still not sending me that text
* [[2020.07.12 - kali purusha shenanigens]]
** or, joining a cult for fun and profit!
* [[CK2: Stories]]
** I imagine the more I play this silly game, the more full this category will become.
* Morning
** Woke up at 4ish on the couch
** Brekkie: leftover pizza
** Tummy grumbles. Either I should stop eating jalapeños, or I should eat more veggies
*** Pizza was covered in veggies though?
** ACNH
*** Still looking for that perfect outfit for Katt. Today she was wearing the trans rights shirt which is awesome, and she looked good in the parka + shirtdress I gave her.
**** I should get one irl. Tomboyish AND pretty
** Morning music as I wake up
*** Mischief Brew
*** [[the fannies|https://www.youtube.com/watch?v=YHfasfkX8MM]]
** Gotta have my cream soda
** Today's task: get the mail.
** Emotionally feeling pretty good. Need to think about din-dins tomorrow (maybe breakfast burritos, or a sosig thing).
** New panties came in the mail; [[shimapan|https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F3.bp.blogspot.com%2F_TvI_rj9o5Tg%2FS7Q1r6j9qOI%2FAAAAAAAADWk%2FqUJFNrtq2g8%2Fs1600%2Fhatsune-miku-striped-shimapan-by-eto-012.jpg&f=1&nofb=1]]
* Evening
** Dinner: Southwest chimken
** Jamming out to Phish
** napped on the sofa. not a good idea before going to bed.
** More cool music
** Thinking about songwriting. A little late now.
** Tomorrow I need to do a memtest on hubby's pc.
* Night
** Bed by 4-5ish. Slept decently.
!! Wiki Review
* [[2020.07.13 - Carpe Diem]]
** Fun idea. Probably going to continue with it.
* [[2020.07.13 - Wiki Review: ck2 fun fun dayou]]
** Didn't play it yesterday. Well, maybe later today.
* [[The Four Chords]]
** Three chords and the truth, alright!
** The guitar resource I needed when I started.
!! On This Day
* [[2019.07.16 - chameleon: I'm Sorry]]
** Must be that he started it a year ago (I imported the tiddler directly). `/wave`, senpai ''♥''
** I was amazed my... slightly uncharitable behavior merited a letter. This was the tipping point for me to make the wiki.
*** Wonder if I was the only catch from his posting in sneer club. The irony he left r/sc when there's been more sneerquences being posted lately.
* Morning
** Woke up at 12 hoping to RPG with kirbs, but nausi's internet was down :(
** Breakfast: bar, OJ, pills.
** Went back to sleep after brekkie; woke back up at 4
** Mags is getting Taco Bell tonight. Apparently they're going to nuke their menu soon...
** Chores
** Phish
** Mags' computer doesn't seem to want to boot from USB. I blame UEFI.
** New Scott the Woz!
* Evening
** Taco Bell, yum.
*** I'm gonna miss the quesarito ;w;
** Songwriting & general guitar practice
*** https://holistic-songwriting.com/ and [[Holistic Songwriting YT channel|https://www.youtube.com/channel/UCLtD67ljlaeXQMV4sb-YzNA]]; good shit. No-bullshit German dude explains how pop songwriting works. Great videos on [[structure|https://www.youtube.com/watch?v=UcmrgTNE9Cs]] and his [[lyric canvas hack|https://www.youtube.com/watch?v=9XjSVGFDieE]]
** Ancient Magus' Bride! we finally finished it. Great show.
*** It had some sad moments. Tears were shed. It had a happy ending (if a little open-ended, in classic anime style).
** Laughing at Bitcoin/Blockchain idiots.
* Night
** Restful sleep.
!! Wiki Review
* [[Phish]]
** Shoulda made this boy a while ago, but I've been more into them recently than before, haha
** It's a good time to be into them, actually. Endless hours of footage awaits, due to the pandemic.
* [[2020.07.14 - Carpe Diem]]
** Mechanic working quite nicely, when I remember to update it!
* [[2020.07.14 - Wiki Review: We're Descending Into Old Tyme Mem'ry]]
** I need to memtest mags' PC, so probably no ck2 today, either.
* [[Space Gamer Fantasy Gamer/Better Games]]
** Interesting rabbithole! It seems like a whole scene unto itself, something that's neither OSR nor storygame nor trad. Kinda like the GURPS ghetto, I guess.
!! On This Day
Wow, I guess this was the first day of wiki activity. Looks like I went crazy =w=.
* [[Admin]]
** I don't often use this, but it's good to have an anchor.
* [[TOC]]
** Still in use to this day.
* [[How to make a wiki]]
** The canonical guide I send to folx.
* [[Font Awesome 5]]
** Thanks for all the logos!
* [[People]]
** Utilitarian category.
* [[Waifuism]]
** Important category. Not sure I've done the best job explaining it to outsiders, but I've filled it out well enough for other waifu-friends
* [[Stories]]
** Not something I've talked about much here. I do write, yes. But my writing is mostly for my sake.
* [[Computing]]
** One of the biggest, and oldest, categories.
* [[3D]]
** 3dpd!!!!!! reeee!!!!!!
* [[chanspeak]]
** Still poisoning the way I talk online. I think I use more jazz slang these days, though, especially when talking about music.
* [[2D]]
** 2d best d
* [[Waifu]]
** Hasn't changed in a while. Understanding is still a bit lacking.
* [[Root]]
** Not sure how this looked pre-"chameleon-dialectic". I don't remember.
* [[The Last Waifuist]]
** And we have an oral history to see how this one has developed.
** I really like Negative's explanation of it. The only person you're accountable to is yourself!
* [[The Abyssal]]
** He's so sweet.
** I picked it based on another nickname he used. But it seems h0p3 knows about Magnus now, so I wonder if I should just stick to that (since it's what he uses more consistently).
*** He's said before, though, that he'd like to be known as something other than Magnus. Idk his relationship with his handles. [[chameleon]] is fine for me, though.
* [[chameleon]]
** Still being worked on, a year later!
* [[2019.07.16 - chameleon: I'm Sorry]]
** Maybe this new mechanic is a bit janky - I swear we got this one yesterday.
* Morning
** Woken up by hubby way earlier than usual
** Brekkie: burrito, yum
** ACNH
** Took a nap
** Wiki shit
** Cream soda + [[Peter Gabriel|https://www.youtube.com/watch?v=evN6DIGPIJM]]!
* Evening
** Dinner: red robin
*** Southern charm burger: pretty yummy!
*** Had a beer, too. Looks like the employment card works for ID.
** [[Lucky Star]] with the hubby!
*** He seemed to like it. Lots of "awww"ing.
** Root beer and [[Dopesmoker|https://www.youtube.com/watch?v=_3jIjoghAqY]]
** Lots of manga. Catching up with Satou-san, and reading "fuufu ijou".
Incomplete, but in the spreadsheet you can find a recording of them playing scarlet>fire :o
Kinda josses the idea that they just came up with the whole thing themselves - they are definitely the heirs to the Dead.
!! Wiki Review
* [[Carpe Diem]]
** Working nicely so far
* [[2020.07.15 - Carpe Diem]]
** Pretty nice day yesterday.
* [[2020.07.15 - Wiki Review: wowee, 2019 me was busy]]
** Crazy that these tiddlers never got reviews! Well, they're getting reviewed now :P
* [["G Major" videos]]
** A vintage shitpost!
!! Note
"On This Day" was misconfigured. I'll skip it for a few days until I start to get new tiddlers.
* [[Taxonomy of Waifufriends]]
** a Funny I thought about while walking to the mailbox
* [[2020.07.16 - Carpe Diem]]
** Decent day yesterday.
* [[2020.07.16 - Wiki Review: overdue review who!]]
** Believe we should be back to on this day tomorrow.
* [[2020.07.16 - Phish's first show]]
** Really interesting. Apparently the archive has the first set, but it's not on the spreadsheet.
Skipping carpe diem today due to FNM.
!! Wiki Review
* [[2020.07.17 - Wiki Review: blank until back from fnm]]
** Not much yesterday due to FNM, so let's make up for it with a huge on-this-day post!
!! On This Day
* [[Absolutes]]
** Still agree with all of these axioms. I don't see them changing any time soon
* [[Slavoj Žižek]]
** He's great. Haven't read him in a while, though
* [[Reading List]]
** Haven't used this that much. I do have some Nietzsche now though, and a copy of the Republic.
* [[Ideology]]
** Not really got a better name for this category. haha.
* [[Izumi Konata]]
** I love her so so much.
* [[Git Repositories]]
** Not sure why I need wiki for this. My github or sr.ht are a fine substitute.
* [[The Buddha]]
** The senpai above senpais.
* [[Senpai]]
** Kicks and h0p3 both seem to have picked this term up. Good, it's a useful term!
* [[Buddhism]]
** I think the suspicion of -isms from Chapman should apply. little-b buddhism. Some buddhism''s''.
* [[The Heart Sutra]]
** Origin of one of our most famous mantras!
* [[External]]
** Utility tag.
* [[2019.07.18 - after work todos]]
** "After work todos" was a short-lived daily task. Since I'm unemployed now I don't really need it any more.
* [[Legal]]
** Fiction and falsehood!
* [[ClipBoard]]
** Very much a practical thing. Should no-recent it.
* [[Letter]]
** Writing letters is a pleasant process. I still need to do [[Talita]]'s.
* [[Journal]]
** Created to fill out the tag/category field.
* [[2019.07.18 - Short term wiki plans]]
** Most done, though only one article in [[Old Stuff]] from ~SpC.
* [[h0p3]]
** `/wave` ^w^
* [[Synthwave]]
** Got into it in 2nd year of uni. Watched too many old 80s movies and wanted that sound.
* [[The Grateful Dead]]
** Good recs.
* [[Metal]]
** Lifelong passion.
* [[Emo]]
** Nostalgia got me to check out the classic (older) stuff, and I ended up preferring it.
* [[Music]]
** Lifelong passion; understandable why I made the category so early.
* [[Fast Couscous Salad]]
** We're planning to make this some time soon
* [[Universal Tomato-based Meat Dish]]
** It's bolognese, but the recipe is modifiable to other things.
* [[White Russian]]
** Great cocktail. Haven't had one in a while
* [[UsefulSnippets]]
** Not often used, but it's there if I need it.
* [[Food]]
** My favorite num-nums ;)
Back after a break.
* Morning
** Woke up alone in bed. Hubby has been finding it uncomfy and went to sleep on the sofa. I cuddled up with him for a bit then went back to bed.
** Woke up proper at 3ish. Hubby is so done with the dumb Karen he has to work with; he called me and I calmed him down a little
** Made a video of me playing the newly fixed geetar. Youtube mobile upload failed (what a surprise, google being incompetent). I'll give it a go on the pc.
** TMBG and procrastination.
** Shower + chores
** Some ACNH. With no debt to spend it on, my money is starting to pile up. I hope [[Sphygmus]] can send me the saris, or that they'll turn up in my shop.
* Evening
** Looking at the KF thread, they're just getting more and more frenzied. Like a gang of piranhas. Not going public any time soon, at least not with the waifu stuff.
** Yeah I had to try it: white rice, fried in scrambled eggs with sausage rounds. It was ok as-is, but! I found some soy sauce in the fridge! And that made it amazing. Sausage-fried rice: DM me for a recipe.
*** I'm getting more confident with cooking. These days I can taste what a dish needs, and have started to develop a chef's eye for quantities too.
** End of episode 70 of shrieking shack has some funny stuff about the pre-book5 fandom. Reminds me of GRRM and the asoiaf black pill `:lmao:`
!! Wiki Review
* [[2020.07.18 - Wiki Review: living in the past]]
** Forgot to do a [[Carpe Diem]] yesterday.
!! On This Day
* [[TOW]]
** Useful terminology term. I don't often use it though. I'll say "h0p3's wiki" in full most of the time, or even just "h0p3", i.e. instead of "there's an article on h0p3's wiki about this" I'll say "h0p3 wrote an article about this"
* [[The Weird]]
** Keepin' it spoopy.
* [[WikiWalk]]
** Lovely word, lovely term.
* [[Airports]]
** Still hate them. Not likely to fly anytime soon (thanks covid!) but I'm strongly considering never doing it again. Only problem is I'll have to go see my relatives at some point...
* [[Dreams and Subconscious]]
** Not used as much as I hoped.
* [[LuckyStarEpisode1]]
** Only actually got round to continuing this rewatch with my hubby recently.
* [[Lucky Star]]
** So important to me.
* [[Anime and Manga]]
** Definitely more of a manga hound these days.
* [[2019.07.19 - After Work Todo]]
** resume, oof. Still gotta do that now :P
* [[Meta]]
** Yeah this is a useful category. It's good to keep it off the sidebar, too.
* [[Lol chameleon]]
** A kinda warning not to take me or anything I say too seriously; and as a damper on my own tendency to do what I warn against
* [[UsefulLinks]]
** One of the many places where the wiki needs reorganizing is in the use of [[Links]] throughout. As I've said before, I need a web directory.
* [[Ahimsa]]
** Non-violence. Important to keep in mind for me; I may not look it, but I'm quite violent and have had a life tempered by violence. Turning away from it has been, and continues to be, an important part of growing up.
* [[Lofty]]
** One of my best and closest friends.
* [[birdsite.hell]]
** A year later, and this hellsite continues to suck ass.
* [[2019.07.19 - h0p3: Let the Hyperconversation Commence!]]
** Did I seriously write this in only four days? wow!
** And so it begins. hahah.
* [[2019.07.19 - Friday Feelings]]
** Ahhh, going public. Not at the moment. I should really think of what to do on that front.
* [[Writing/Working Music]]
** Forgot about this! A great treasure!
* Morning
** Waking up a little earlier now. That's good.
** Breakfast bar and a root beer - we're out of oj.
** 80s bullshit and wiki work.
** Going to finally put some real effort into doing my resume, since I have no chores today.
*** Done. Off to Pops to look at. Now idk what to do all day. haha.
** Napped and vegged out on the couch. Recovering energies from the stress of resume work, maybe.
* Evening
** Hubby's last straw with Work Karen. He's going to try and avoid working with her in the future. Good.
*** We discussed how colleagues can be shitty not taking us seriously - because of age, or in my case, transness.
** Hotdogs for dinner (well, yummy beer brats in hot dog buns `^^`)
** Hefeweizen (that's fun to say in German) and chill.
** Snarfed https://againstprofphil.org from [[https://philosopher.life/#The%20Legacy%20Link%20Heap]]. I'm sure there's more treasure in there.
!! Wiki Review
* [[2020.07.19 - Carpe Diem]]
** I vaguely remember the "any day now... Real Soon Now™" of the book 5 wait, even if I was very young. The shriekcast joked that it wasn't that long, but when you're young and the distance between the end of one summer holiday and the start of the next seems like eternity...
* [[2020.07.19 - Wiki Review: forgetful chame]]
** What a beautiful duwang that was. So many updates last year. I've not had a day that busy lately.
!! On This Day
* [[2019.07.20 - Fuck's sake]]
** And the art is on [[Root]] to this day!
* [[ASCII: 80%]]
** Took me a little while to work out how this worked.
* [[Mahakala]]
** A guide.
* [[Setup]]
** Could use some work - both the actual setup, and the tiddler.
* [[2019.07.20 - The Internship]]
** Nice dream. I often see her in dreams. We're usually dating there, too.
* [[2019.07.20 - The Best Laid Plans...]]
** Maybe I was planning to go to the shops, or something. Since I can't drive, I have to walk whenever I'm going somewhere, so thunder would've precluded that.
* [[Text Art: chameleon-dialectic]]
** Gorgeous.
* Morning
** Stayed in bed until quite late because there was what sounded like a thunderstorm outside (I'm scared of storms)
** Usual brekkie, but no OJ; water instead. Feelsbad ~McMann.
** Hubby enigmatically said he'd get dinner after work when he woke up. I'm thinking it'll be Wendy's or BK, the former since they started doing the 4/4 with borgar again. Might possibly be Taco Bell, though, since he knows my order.
** ACNH. Got the saris, thanks sphygfriend ''♥'' Jolly Redd came today, so I got the Mona Lisa. Friends came and finally thinned the ranks of my duplicate recipes. Got an umbrella stand from Gaston. Still not getting the last two fossils, even if I'm giving Blathers five fossils a day...
** Saves The Day-era emo and chill. Wiki work going good.
** Easy chores.
** I think it's going to be one of those days where I'm hungry until the hubby gets home. I really need dat food...
** Phish dinner and a movie: https://www.youtube.com/watch?v=pJYBJ0DEKLE but no dinner for me :( not yet anyways. Shooting the shit in the comments with a dude about Trey's tone & sustain.
* Evening
** Taco bell, yum.
** Hubby's computer broke; bad graphics drivers.
*** Radeon R9 270x. Need the drivers. amd.com when the network is back.
** Internet is down. Looks like it'll be a sit-tight sitch.
** Internet came back, but I'm really not having any luck with this shit.
** I give. We'll take the computer to the pros later. Fucking Windows. If the computer was running Linux, I'd be able to fix it.
!! Wiki Review
* [[Against Professional Philosophy]]
** Cool new rabbithole. Is what I've been doing "Real Philosophy" (™) all along?
* [[2020.07.20 - Carpe Diem]]
** Really pleased that I got my resume done. Dad was proud of me. I'm so happy.
* [[Perfectionism]]
** Yeah, that guy and I were always within a few percentage points of each other; and I don't think I'm actually all that talented. He was held back by perfectionism.
* [[2020.07.20 - Wiki Review: Reminiscence]]
** "On This Day" and "Carpe Diem" make for more interesting days (thanks [[Sphygmus]]~ it was transparently stolen from you ;) )
!! On This Day
* [[2019.07.21 - Wiki: Impasse]]
** Ended up working great. I suppose if I'd known her back then, though, it'd've looked like what I ended up doing for new and recent.
* [[Old Stuff]]
** Sounds like an emo album. Maybe I'm getting it confused with [[Old Songs|https://foxingtheband.bandcamp.com/album/old-songs]]
* [[Waifuism as Interaction]]
** A classic essay. Much beloved by both waifuists and non-. Great stuff.
* [[David Chapman]]
** He's undoubtedly the most interesting thinker produced from the "rational"ist cult. He doesn't fall into the same traps as them, but I'm constantly disappointed by his thinking Scott Siskind is anything other than a shitty hack.
* [[The Emptiness of "AI"]]
** It's a sham. There will never be an AGI.
* [[Lucky Star Rewatch]]
** Yeah, working on it with mags. Will have to do my own rewatch... later.
* [[Terminology]]
** A svelte mirror to the hlexicon. Which isn't to say I don't love that pile of jargon; I even find myself using it. IA2DYJ is a fave.
* Morning
** Woke up early; hubby had a nightmare. Storm clouds making me scared; had to cuddle with him for a bit before I could face the day.
** No RPG today. The more things change...
** Reading the book on [[Hinduism]] I got from the used book store.
*** Very clear explanation of dharma, karma, and moksha. Using "moksha" as-is is much better than translating it to a loaded Western word like "enlightenment".
** ACNH. Got the purple and green saris from [[Sphygmus]] (have I told you how rad she is? because she's rad) and gave Blathers my art haul. I'm thinking about villagers. I have three normal villagers and three peppy villagers right now, and no jocks or smugs. I'm thinking I need to get a jock, and then the game will bias towards smugs, so I can grind for Raymond. Best candidates for leaving are Norma and Piper; not that I have a problem with either of them, but their competition is Lily&Sydney and Bangle&Ruby respectively, so they don't stand a chance :c
*** Goal lineup would be:
***# Bangle
***# Raddle
***# Lily
***# Sydney
***# Willow
***# Ruby
***# Gaston
***# Katt
***# Raymond
***# Dom or someone idk
** Nap. Dreamed I was a member of AU Sokka & Azula's gang. I was embarrassing myself failing at driving. Ate some tasty chips though.
** Wiki work + [[Tweemo]] + snacking on a PB&J
** Have some chores, but they shouldn't take too long. I'll look at them once I'm done with this CD.
** Chores done.
** [[How to play guitar]] coming along. It's basically the guitar tutorial I wish I'd had when I started. I hope I get the opportunity to show this to a beginner so they can learn.
* Evening
** Hubby home a little early.
** Chimken wrap, cajun chips (yum!), apple fritter (yum yum!)
** Hubby is sitll stressed about the PC. We watched some Ash VS Evil Dead and cuddled on the couch, then he played some Twilight Princess. Seemed to relax him.
** He gushed about me for being so supportive >w< I try my hardest, my love ''♥''
** Discovered [[https://holybooks.com/]]; a better version of [[https://www.sacred-texts.com/]]! Found some real treasure here; tantras in Sanskrit, many translations of the Hindu epics, books on misc gurus and saints, etc.
*** [[Weird|The Weird]] rabbithole: https://en.wikipedia.org/wiki/Fourth_Way https://holybooks.com/category/the-fourth-way/
* [[2020.07.21 - Carpe Diem]]
** Nice morning, shitty evening. Hubby took the PC off to the pros today. I imagine they'll make short work of it.
* [[2020.07.21 - Wiki Review: svelte, lithe boipucci]]
** Real philosophy - Chapman and h0p3 - the real philosopher.life - [[Monadism]] - more?
*** Stick it to that wall, chame~!
** I wonder what more about the failure of AI remains to be said?
** Not often that my wiki reviews have horny titles =w=.
*** [[Some for ya (NSFW)|https://imgur.com/a/oyPnn7a]]
**** There's more under the 男の娘 and 女装少年 tags on pixiv.
*** I was gonna write about how much I love slender, lithe guys here but that'd end up really horny so I decided to give it a miss.
got about halfway through shriekcast 72.
* Morning
** Arbys! Love their gyros. Orange cream milkshake thing yummy.
** Zelda and chill
** Cleaned up, folk punk, cryin' songs.
** ACNH. Dailies and grabbing the mage booties from [[my pal|Sphygmus]].
** "oh, you know~" with the hubby~
* Evening
** Zaxbys!
** Power metal. Chatting about it with the hubby. I wonder if the vocalist and backup singer are making a minor chord (iii chord) by implication in the chorus: https://www.youtube.com/watch?v=lznVXzPuwL0 maybe a minor no5?
** Ash vs Evil Dead (groovy!) and YT nonsense.
** Thinking about storytelling.
I do wonder how much I need to focus myself. There's pretty much infinite amounts of philosophical, religious, and misc rabbitholes out there that I'm going to have to be critical with what I see as worth engaging with (breadth, rather than depth, first?)
Here's an interesting looking lecture series about nihilism by Unger I stumbled across: https://www.youtube.com/playlist?list=PLNdEBvVYMvsDw5FdQ6N9GGEvIwjnNZuiC
Personally, I find the difficulty in arguing against nihilism is that it's so messy and hard to pin down that's not really a philosophy, but instead a tendency of depressives.
And note that all his work is available for free on his website: http://www.robertounger.com/en/category/philosophy-and-religion/
<<<
The Singular Universe and the Reality of Time, written with Lee Smolin, was published by Cambridge University Press in 2015. Together with The Self Awakened and The Religion of the Future, this work of natural philosophy generalizes my ideas. It presents, in the context of an engagement with cosmology and physics, the vision of a universe in which everything, including the structure and the laws of nature, changes sooner or later.
<<<
I read this yesterday: [[The Convert|https://getpocket.com/explore/item/the-convert?utm_source=pocket-newtab]]. It's a story of a pretty young girl getting swayed and swept up in radical Islam. She narrowly avoided the same fate as Shamima Begum - she had slowly deradicalized herself by the ISIS era.
Stories of deradicalization are both inspiring and worrying; worrying because the paths they took to radicalization look depressingly too easy. If we're going to end terrorism, we need to do something about this.
!! Wiki Review
* [[2020.07.22 - Carpe Diem]]
** Nice day yesterday, and a lot of treasure found!
* [[2020.07.22 - Wiki Review: chame you gross fujoshi]]
** Oooh, I'm shameless~
*** Apparently I have the same taste as [[Sphygmus]]' boyfe.
* [[How to play guitar]]
** The tutorial I wish I'd had when I started guitar. Based on what I've learned over the years, but removing the useless stuff and refining the useful stuff.
!! On This Day
* [[ASCII: Exact]]
** More of these ASCII filters
* [[Text Art: Kona (chame)]]
** Ah yes, the Kona that ''I'' made (not j3dih's). Lovely~
* [[Text Art]]
** Good category.
* [[Dimensions of Personhood]]
** Underdeveloped idea.
* [[laughatu.jpg]]
** Classic m'may
* [[116.png]]
** The cutest, winkingest rascal ''♥''
* [[2019.07.23 - Wiki: Level up!]]
**
* [[NoLevel]]
** Stuff that doesn't merit a development level.
** GET OUTTA MY [[TAGME|TagMe]]
* [[TagMe]]
** Lots of NoLevel stuff in here
* [[LevelFive]]
**
* [[LevelFour]]
**
* [[LevelThree]]
** Structure done; or main ideas sketched; or "more could be done, but I'm lazy and like it as-is".
* [[LevelTwo]]
** A ghetto in which tiddlers get trapped.
* [[LevelOne]]
** LevelOne is "done but not perfect". [[Perfect is the enemy of Good|Perfectionism]], so this is what I mark articles that are done but that I know are not perfect.
* [[LevelZero]]
** This is mostly for [[External]] tiddlers and sent [[Letter]]s.
* [[Development Levels]]
** Great concept.
* [[Spiritual Computation]]
** Was nice while it lasted.
* [[2019.07.23 - chameleon: Lens]]
** "You'll have to forgive me for being so ridiculously slow" - he's still slow; but patience is a virtue. I look forward to him writing me again whenever he's ready.
** NRAB is definitely terrifying! Great read though. I hope he gets round to it. I sorta-know El from some chats on twitter and discord.
** "Why do you make art?" - Can I ever really answer that question? Neoplastic Anal-yze time ;)
** I don't think I did a deep enough dive into the meaning of "You have a wonderful lens".
** I think despite what he says here, he usually comes across as thoughtful and deep. Sometimes I worry he looks too much at the bigger picture and loses the fine details (his dogmatism on freeze peach is certainly one). I wonder if me being a root user is having to be the one who says "hey man, free speech is nice in the abstract, but banning terfs, nazis, and tankies can only be a net good".
*** I used to think in the same way as him. I don't know if I changed my mind because of transness, or if it was seeing how effective no-platforming is in reducing nazi recruiting first-hand (case in point: Milo (now irrelevant) and Spencer (well on his way there)).
*** As always, sorting out the root of the problem (their recruiting spaces being easy to find and thus easy to slip into) is better than playing whack-a-mole (Spencer and Milo are gone, but now we have Tim Pool).
*** The `'''censorship'''` (that's not what that word means) is a //symptom//, not a //cause//. What's it a symptom of? The existence of the alt-right pipeline, and the menacing advance of fascism.
!! Wiki Review
* [[2020.07.23 - The Convert]]
** It's especially scary because truth be told, I recognize the path. The opium of the people - if you're rejected by your peers and the world around you, religion offers you a way out, and the deeper down the rabbithole you go the nastier it gets. Frightening stuff. Thankfully, I both never got that far down the path, nor has any religion I've been subscribed to got a fundamentalist branch as well-established and deadly as Islamism.
* [[2020.07.23 - Carpe Diem]]
** Yummy.
* [[2020.07.23 - Wiki Review: shameless chame]]
** Unfinished yet. Will leave it for a few more days, I think. lol.
* [[2020.07.23 - aaaaaa]]
** Yeah, like an hour in. Oh well.
* [[2020.07.23 - Reading and focus]]
** Gonna check out the lecture.
!! On This Day
* [[2019.07.24 - After Work Todo]]
** "just because you got over 40k doesn't mean you're done" - and you're not done at 60k either, missy!
** I liked his fictional character stories. He's definitely not a waifuist, but he's closer to one than most.
* [[Expert Wikier]]
** FUQIN
* [[Shitposting]]
** Category to let off steam and make my pals laugh.
* [[2019.07.24 - The Search for Darkness]]
** Kaolin ended up being a keeper.
* Morning
** Cook Out! Pineapple milkshake vv Goode.
** Took the computer back to the repair shop - likely it's the HDD.
** ACNH and Leafy.
** Basic design of the solo rpg client.
** Watching hubby beat Twilight Princess. I want to read fanfics now. Midna is a cutie.
** Napped. Rumblings of thunder.
* Evening
** Local BBQ restaurant, yum.
*** Watched some rasslin' on the telly. Jeff Hardy VS Seamus in a barfight.
** [[Waifu feels|https://www.youtube.com/watch?v=fGIcxeyWp_I]] and wiki!
*** Has been confirmed to be about "A sweet lady woman that you will never fully fathom or understand, but you love her so much that after a while it doesn’t matter". You can, of course, also interpret it to be about an STI, but I think it's better as a love song.
*** I long for the return of silly but awesome rock music like this. I can't make it myself, I don't think, but I wish we could have it again. Grunge and po-faced post-Grunge (including nu-metal) ruined rock music.
** Community with the hubs. So funny. We were laughing our asses off.
** Beer and programming!
!! Wiki Review
* [[2020.07.24 - Wiki Review: lecture me daddy]]
** The role in life of religion to provide an outlet for problems you can't control is significant. It's a lot like (maybe a form of) escapism in that way.
*** Guess that answers my previous question/thought in DeathOfRobinhood...
!! On This Day
* [[2019.07.25 - Thank you, Kyoto Animation]]
** That was a year ago? Still feels raw.
* [[TiddlyWiki]]
** You're still looking at it, m8 ;)
* [[2019.07.25 - after work todo]]
** Insight timer is the best meditation app, especially since it's free.
* [[2019.07.25 - Meditation]]
** Eventually did this, but then dropped it again!
* [[Seance]]
** Undeveloped.
* [[2019.07.25 - HYPE]]
** Was this the visa? Or some paperwork? I vaugeposted about it so much.
* [[2019.07.25 - WikiWoes]]
** Will likely have to do this again if I work in an office again.
** FOOLISH MANAGERS, EXPECTING ME TO DO THE JOB FOR WHICH I AM PAID!
* [[PowerWord]]
** Useful concept
* [[Nobu]]
** Love her
!! Wiki Review
* [[2020.07.25 - Carpe Diem]]
** Chillout long weekend.
* [[2020.07.25 - Wiki Review: opium of the people 2]]
** Escapism is a prevailing current. We have a lot more avenues than just religion in this age. I wonder if I should write about it. Unfortunately, there doesn't seem to be a definitive take on it.
* [[Solo RPG Client]]
** Been cobbling together an alternative in Java.
* [[Om]]
** A-U-M
!! On This Day
* [[Touhou Project]]
** Hmm. As much as I love the characters and stories, I'm not really into 2hu as much any more. That's for the better I guess. I'd rather engage with other fictional worlds.
* Morning
** Hubby quit his job, is going to do Doordash instead (he makes more doing that).
** Gyros!
** Quick cheeky ACNH. I'm getting a little bored with it tbh. I might just have to sit tight until some new content drops.
** Watching the hubby play BOTW.
** Showered and cleaned up. I'm sketchy, but I'm not so sketchy I never shower.
** Quickly squeezed in the review.
* Evening
** Wendy's!
*** Tomorrow, we fast. I'll likely meditate too. I have some stuff to sort out.
** Community and chill
*** Veg-mode Jeff & Abed - hard relate.
*** I looked at [[TOW]]/[[Identifying With: Fictional Characters]] - and sure enough, there Abed was, the king.
** Music. It's Parvati on the front of K 2.0, possibly in the form of Durga.
*** Spellcheck wants to change it to Pavarotti 🤣 Maybe I should just wiki in Hindi.
** Feel like a bit of a clown tipping off [[Sphygmus]] about Aella when she seems to be hurting (she wrote a log that made me feel really sad to read).
*** Me attempting friendship is one big bruh moment. I'm not a good friend at all. I've no idea how to reach out to people. I've isolated myself for so long that I've forgotten how.
!! Wiki Review
* [[2020.07.26 - Wiki Review: escape?]]
** Finally found a book that looks good. It's on its way from Amazon.
!! On This Day
* [[2019.07.28 - Dark and Edgy Like My Soul]]
** Yay! And yes, ACG is now like 60k. I even thought of a fun ending.
* [[The Glow]]
** Underdeveloped idea. The spark of humanity (c.f. [[Om]]) that lets us carry on.
* [[Philosophy]]
** Make way, Real Philosopher™ coming through!
* [[2019.07.27 - h0p3: reflected off the birds in smoke tonight]]
** Banger of a song. Nice letter too.
* Morning
** Fast today.
** New hbomb: it's about how rwby is disappointing (kinda agree).
** ACNH, Star Trek TNG and waiting for a call
** Good call with the recruiter! Now I have an email followup to take care of!
** Hubby is flip-flopping on whether or not he wants to work this week (which he can do with doordash).
* Evening
** Gave in. Thai salad from Panera Bread. Yummy.
** Watching the hubby play Zelda again. He's so much better at it than me.
** Wanting to play some DQ:B
** Georg Rockall-Schmidt & chill
!! Wiki Review
* [[2020.07.27 - Carpe Diem]]
** I really hope to be a better friend to Sphygmus, and the others.
* [[2020.07.27 - Wiki Review: we are one in the infinite sun]]
** Finding out that it's Parvati (above) is cool.
** On This Day makes the wiki review much more interesting.
!! On This Day
* [[SystemTiddlers]]
** Admin pages aren't very interesting.
* [[2019.07.28 - SENPAI~]]
** I was very happy to get the footnote plugin!
* [[2019.07.28 - 50k]]
** WEAPONIZED AUTISM
* [[Waifuist Praxis]]
** Agree with this still!
* [[Writing Resources]]
** Should use these more
* [[Unsorted]]
** Should do something about the ten or so tiddlers in here right now.
A good alternative to the fiddly SVG dance you have to do on TiddlyWiki would be using [[Mutant Standard.|https://mutant.tech/]]
!! Wiki Review
* [[2020.07.28 - Carpe Diem]]
** Didn't watch the new hbomb all the way through. I kinda ended up wanting to watch ''SPOILERS'' ~~Penny's return.~~
** I used to be a badass ascetic who could go days without food. What happened, man?
*** You got old, little [[chameleon]].
** Jobs on the way? maybe?
* [[2020.07.28 - Wiki Review: vaccinate me against antivax bullshit]]
** Apparently, something like 20% of yanks wouldn't take a CV vaccine even if it existed. Fucking idiots.
*** Did these clowns not take a biology class? Where they tell you all about how vaccines have essentially eliminated various nasty diseases such as smallpox?
** Learning to be a better friend is a life's journey.
!! On This Day
* [[2019.07.29 - Fun borrowed from the next day]]
** Still a huge mood. Also, the title refers to staying up late drinking, which I did a lot of at uni ;)
*** That makes me miss Canterbury.
!! Wiki Review
* [[Fast Food Guide]]
** Pretty cool idea? I wish I'd had it before I moved here :P
* [[2020.07.29 - Wiki Review: Jobs on the way > Slipknot! > Franklin's Tower]]
** Got the shit. We can make salad for din din!
* [[2020.07.29 - mutant standard]]
** Yeah, these icons would be really cute.
!! On This Day
* [[2019.07.30 - "Exists"]]
** Never followed up on this, did I? Maybe I should.
* [[FootNotes]]
** Useful for longer articles.
* [[chamespeak]]
** I don't do this that much any more. Was more of a thing I did with Lily.
* [[2019.07.30 - Letters to "offline users"]]
** I wrote her a letter. She really liked it. I love her, but our friendship has felt stiff, underdeveloped, ever since my big meltdown in 2016.
* [[FootnotesCheatsheet]]
** Useful. Have most of it in my head now.
* [[2019.07.30 - Loper OS]]
** Still no bread, like all the unix-haters.
!! Wiki Review
* [[2020.07.30 - Wiki Review: Dark Star >]]
** Time to end the GD setlist joke.
** Just oneliners.
* [[Web-novel Translation Community]]
** Surprised on the quality of the MTL stuff. Must be people that can kinda speak the lang?
!! On This Day
* [[2019.07.31 - Seance:]]
** Made a transcription using a machine, but I didn't think putting it up was a good idea.
* [[2019.07.31 - Nobu: *poke*]]
** Lovely letter.
* [[2019.07.31 - Shreddit]]
** Still using it. Kills the reddit scumbag tricks dead.
* [[2019.07.31 - Me irl]]
** Yeah me too. Have I ever talked about this? Briefly, I think most people have vastly different assumptions underlying their worldviews, and unless those views are challenged first (which you can't do in a formal debate) then they're unlikely to change their mind.
<<list-links "[tag[Carpe Diem]!sortan[]] +[prefix[2020.08.]]">>
!! Review
* I'm becoming more syncretic than ever before. I guess that's the ol' meta-modernism thing.
* Pretty quiet month on the wiki. IRL it hasn't been the most exciting, either.
* Sphygs has been a good friend, even if it's just chatter in the background ''♥''
* Getting too old for internet drama. If I ever become e-famous I think I'll take a "I'm above that" stance to it.
* RPG stuff looking good. I've started using binders for my RPG stuff - I have one for my solo toolkit and one I'll be using to collect my GLOG ruleset.
!! Journal Entries
<<list-links "[prefix[2020.08]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* Morning
** Woke at 2ish
** Hubby sorting out bank stuff, borrowing the card in case he needs to refuel.
** Wiki + Peter Gabriel
** Been a while since I've watched MMF: https://www.youtube.com/watch?v=DOd6ZYZE5uA
*** "we're already dead" - guess I didn't notice the fascist tendencies of Christianity until now. The morality of the Judeo-Christian tradition, my foot!
** ACNH. Finally got the blue cute wardrobe.
** Chores. I'll do them. Maybe.
* Evening
** [[Fast Couscous Salad]]! Missed it.
** Community & chill
** Hubby got mad playing ~LoL
** Did my chores at long last
!! Wiki Review
* [[2020.07.31 - Wiki Review: Eyes]]
** Ok, I did do one more.
** The marketplace of ideas is an idea that needs to die.
* [[Chame's Songwriting & Theory Cheat-sheet]]
** This one's awesome. I love cheatsheets.
!! On This Day
* [[Six Sides Of Fury]]
** Another underdeveloped idea.
* [[ChameleonOS]]
** yush. we need this. great shitpost.
* Morning
** Sbubby - Eef Freef!
** Vibin' with the hubby
*** He doesn't like the salad :( doesn't like the green onion. Will have to either modify it or think of something different.
** ACNH
** Vaush, discord, chill.
** Chores
** Guitar. I think if I'm really going to do folk punk, I need a quiet acoustic guitar. Maybe I should sell the Ashbury. Thinking about a parlor guitar - they're smaller and lighter than the dreadnought size I have.
*** Playing those Charlie Parker triplets sounds really really good. Guess learning by ear really does help!
* Evening
** XL pizza to share & Community!
** Watching hubby play some ~BotW. He's not rushing. He's a cautious player. Helps with this type of game, I think.
** [[Shrieking Shack Podcast]] & vibe.
** Community and chill!
!! Wiki Review
* [[2020.07 Journal Review]]
** Yeah it has been a quiet month. Got some good work done outside of the journal, though.
* [[2020.08.01 - Carpe Diem]]
** OK day. Nothing special.
** Will try to keep the habit of doing these logs up.
* [[2020.08.01 - Wiki Review: underdeveloped ideas?]]
** Underdeveloped log, too.
*** This one is quite literally dependent on the new articles being written. Maybe I should make it work on modified, too.
* [[Solo RPG: Oracles]]
** FURPG is nice. Very much like [[Risus]].
!! On This Day
* [[2019.08.02 - Wuck Fork]]
** Indeed!
* [[JJBA part 4]]
** It has some good character moments for sure, but overall it's the weakest part.
* [[HEART by group_inou]]
** Banger
* [[2019.08.02 - Every Noise at Once]]
** Nice stuff.
* Morning
** Leftover pizza!
** Got a call wayyy early - come to an interview at 2. Okay!
** We set out. Open road, nice short commute. I hope I get the job.
** Aced the interview. Really good. Place has a great working culture and I'd be getting paid to write C.
** Longhorn Steak. Was ok, but not worth what I paid for it. Tipped the waitress generously because a) I was in a great mood b) she didn't let us be thirsty.
** Hubby is thinking about making a blog. Really awesome to think about! I'll be able to provide hosting space for him.
** Napped until evening.
* Evening
** Interview followup. I'm competing with a couple of other candidates. I'm worried, but hopeful. I hate competing. Hopefully I can hold down this job for a few years and build up some solid experience (and professional references in the States) to the point where the next job will be easier to get.
** Peter Gabriel, wiki work, relaxing. I love my hub!
* [[play this on geetar]]
** :^)
* [[Risus]]
** Really really cool RPG.
* [[2020.08.02 - Carpe Diem]]
** After-hours I started applying for jobs - only to end up with an interview today!
* [[2020.08.02 - Wiki Review: electrical tape wizard]]
** Surprised I didn't already have a [[Risus]] page. It's been influential on how I think about RPGs.
** I guess it's good proof that I can't always rely on my daily logs to be my wiki activity. But, my wiki work isn't always creating new articles.
* Morning
** Waffle house!
** ACNH!
** Chores nice and early
** Xanderhal is planning to talk about Leafy. Dis gon b gud.
It's been... A very very long time since I went to any kind of religious service on a frequent basis. Save for weddings, funerals, and christenings, the last time I went to church was when I was 13.
The god of Christianity is everything I can't stand, his worshippers worse. Still, I can't deny that I'm a religious person. I wonder if I should go to a nearby temple (it's within driving distance). I'm a little worried of course, about the usual things - how do you turn up to a place of worship, anyways? Especially for a religion you weren't born into? Would I be rejected, as a white, British-accented LGBT woman? Or is the one doing the judging here me?
I don't know. I have no idea what to expect, and I have no idea what's expected of me.
!! Wiki Review
* [[2020.08.03 - Carpe Diem]]
** Very very nice day yesterday. It was lovely to spend time with hubby, and to bash out an interview.
* [[2020.08.03 - Wiki Review: she be daily]]
** This will continue to be a theme, I think.
!! On This Day
* [[2019.08.04 - When did I become an actual writer?]]
** I could... If I had any ideas. Fuck haha.
* Morning
** Woke at 2pmish?
** Honeybun for brek
** No emails yet
** Shriekcast and chill. Going to look at setting up my solo rpg environment in earnest.
** Phish and vibin'
*** Showing them doing the [[YEM trampolines|https://www.youtube.com/watch?v=y6moRWGxkXY]] is getting a much better reaction =w=.
** Chores
** Starving! Really hope my cutie gets home soon.
* Evening
** He's back!
** General Tso's!
** Community and chill. Christmas episode in August, lol.
*** Fuck Augustus and Julius for ruining the numbering of the months, lol.
** Shriekcast. They finally finished book 5.
[[2020.08.04 - Should I go to the temple?]] - should hold off on this one for now. I don't want to make a big commitment like this - especially considering my self. It's not my usual modus operandi.
!! Wiki Review
* [[2020.07 Carpe Diem Vault]]
** Should've done this already.
* [[2020.08.04 - Carpe Diem]]
** Forgot to finish this. Oh well.
* [[2020.08.04 - Wiki Review: themes, ideas, nice days]]
** A quiet day before yesterday. More wikiwork done recently.
* [[2020.08.04 - Should I go to the temple?]]
** Decided no in the end... for now.
* [[Puja]]
** A ritual, essentially.
!! On This Day
* [[Anime Recs]]
** Good article. Decent recs.
* [[2019.07 Journal Review]]
** First journal review!
* [[2019.08.05 - Hypersanity]]
** Still have yet to follow up!
* Morning
** Woken up by hubby for Zaxby's!
** ACNH
** Discord banter
** https://www.youtube.com/watch?v=-Xic-CHInek
* Evening
** Fave local bar delivers! Community!
** Watching hubby play some Zelda
** My toolkit's almost done. Think I'll polish it off with the UNE. Binders + sheets + puncher is working out great.
!! Wiki Review
* [[2020.08.05 - Carpe Diem]]
** Day seized, I suppose.
* [[2020.08.05 - Wiki Review: more activity, more depth]]
** Like today, for example. So much going on yesterday.
* [[Translations]]
** Learning Sanskrit would be possible (we have the shared IE roots) but not easy.
* [[Pantheism]]
** Much better than monotheism.
* [[WASD Keyboard Manual]]
** Need to hold onto this. I think I'll switch to using the Dvorak mode at my next workplace.
* [[2020.08.05 - hotel mike mike mike]]
** Yeah. Not yet.
!! On This Day
* [[2019.08.06 - Stuck in November^Wmy head]]
** Love this song to this day. "AND ALL THESE REEEGREEEEETS HAVE GOT THE BEST OF ME LATELYYYY"
* [[@: h0p3]]
** `*wave*` :)
* [[@]]
** Useful tool I think.
* [[2019.08.06 - hgk477]]
** Cool rabbithole.
* [[Flow]]
** Flow state = how to go ultra instinct in real life ;)
*** [[*meditates once*|https://cdn.discordapp.com/attachments/681271533301399584/739052848855121972/uh.png]]
* [[Guestright]]
** I will treat you right if you're invited into my home. I will be a good guest if I'm invited into yours.
https://sphygm.us/#200806%20%E2%80%93%20Carpe%20Diem%3A%20rip%20the%20old%20internet dangit [[Sphygmus]], you'll make me cry.
I miss when the web was wacky and stupid fun, rather than depressingly real like it is today.
I miss when "[[I'M GONNA DO AN INTERNET|https://www.youtube.com/watch?v=98mZL-DSPeA]]" was not only funny (i.e. I was young and juvenile enough to enjoy lolsorandumb humor) but actually a true observation: when the internet was for laughs.
I wonder if I could massage tiddlywiki into showing a message while it's loading:
<div style="line-height: 1.5;text-align: center;font-size: 24px">TiddlyWiki is loading. Girls do their best now and are preparing. Please wait warmly until it is ready~</div>
I'm curious as to when he'll finish this one: https://philosopher.life/#2020.07.15%20-%20Wiki%20Review%3A%20Voluminous
Obviously I'm on it, lol, and there were some good convos there. But these chatlog reviews (forget exactly what he calls them) seem to be really time-consuming to finish.
Well, I'm a patient bun when it comes to my hyper-friends. I'll wait warmly.
!! Wiki Review
* [[2020.08.06 - Carpe Diem]]
** This log makes me feel depressed sometimes. My days are very empty while unemployed. Though, I suppose they'll just say "woke up, worked, came home, vegged, sleep by 10" once I actually get a job :/
* [[2020.08.06 - Wiki Review: I can't hold back, I'm on the edge]]
** Lifelong obsession with languages, and yet I can't be arsed to actually commit to learning one...
* [[Microlite20]]
** Heard people promote it as, or above, OSR. There are rulesets that emulate the LBBs, or LBBs + supps. Honestly, I don't like the 3.x era rules and the [[Powergaming]] they inspire.
!! On This Day
* [[2019.08.07 - chameleon: Nets 4 Outcasts]]
** Such a cute Kona. I was and am so happy to get this lovely letter.
* [[Bodhisattvayana]]
** What a journey!
* [[2019.08.07 - Salvage team 1]]
** Dead end.
* [[Cute, fun, interesting, etc.]]
** Basically: people I like and want to be friends with!
* [[2019.08.07 - Hmmm]]
** Some good axioms. Forgot about this.
* [[Music Hot Takes]]
** Hehehe. Good takes.
* [[2019.08.07 - ~clout~]]
** Friends now!
* [[Guitar resources]]
** Useful.
* [[Planet Shhh by Cap'n Jazz]]
** Really do love this song.
!! Wiki Review
* [[2020.08.07 - I miss web junk.]]
** I really do. I guess I'm part of the "web junk" now.
* [[2020.08.07 - Wiki Review: shitty linguist]]
** Had a better day today.
* [[Solo RPG: My Toolkit]]
** Just need those last few things
* [[2020.08.07 - preload message]]
** I like [[Sphygmus]]' preload animation.
* [[2020.08.07 - voluminous log]]
** He'll get round to it. Real soon now.
!! On This Day
* [[gushing]]
** Aww. nice tiddler
* [[2019.08.08 - The extent of kindness and empathy]]
** Still confusing. Who deserves it? I've definitely learned this from how many awful people I've vouched for without realizing.
* [[2019.08.08 - Might fuck with css idk]]
** Yeah it looks good.
* [[Text Art: Self-portrait]]
** Beautiful.
* [[2019.08.08 - what a maroon]]
** Tweets protected =w=.
* [[StyleTester]]
** Useful. Maybe I need a [[Utility]] category...
* [[2019.08.08 - daily tasks]]
** Still at it. Wiki review is the best.
* [[Sneering]]
** Essentially why I sneer.
* [[Emo Jams 1]]
** Good jams.
* [[Japanese emoticons]]
** Haven't followed up yet.
I'm thinking I might retire it once I get to the point where I started doing daily wiki logs, or maybe including particularly interesting days only past that point.
Wiki Reviews, of all the daily tasks I get, have a great double-benefit of being relatively easy (and thus not draining on my creative energies) and also quite rewarding (the running commentary, meta-level discussions, gives more meaning to the tiddlers).
!! Wiki Review
* [[2020.08.08 - Wiki Review: agni - fire is life]]
** Crazy to look back on how active I used to be. Guess that I've just filled out the wiki with most of the stuff I'm interested in? But there's so much more left to do...
* [[Powergaming]]
** Definitely a GURPS problem originally that seeped into D&D via WOTC.
!! On This Day
* [[score_under]]
** number 1 fangirl right here
* [[2019.08.09 - waifulabs]]
** As much as AI is just a silly little toy, it's certainly a *fun* silly little toy.
* [[Kana Charts]]
** Useful resource.
* [[ASCII: 80% Left]]
** There are so many of these ascii filters.
* [[Text Art: Mahakala]]
** yush.
* [[Name anonymizer]]
** Score made a great version.
** This was inspired by a log from [[h0p3]]'s old teaching job - curious about how he anonymized the names of his students, I workshopped this.
[[Shedu]] once told me tales of the Persian side of this ancient and dying religion.
https://www.theguardian.com/world/2020/aug/06/last-of-the-zoroastrians-parsis-mumbai-india-ancient-religion?utm_source=pocket-newtab
!! Wiki Review
* [[2020.08.09 - "On This Day"]]
** There's a reason Wiki Reviews have survived.
* [[2020.08.09 - Wiki Review: yush]]
** GURPS seems to be a GM-amplifier - it makes good GMs great and bad GMs terrible.
!! On This Day
* [[2019.08.10 - woftykins]]
** That was a good day. Was that really a year ago? Man. Tasos is cool; he needs a page.
on the risus discord
```
PipsqueakToday at 6:16 PM
I'm thinking of making a cyberpunk setting for Risus
[6:16 PM]
problem is, I've never played in a cyberpunk or shadowrun game, so I'm not sure what kind of adventures I should write about
David NoonToday at 6:43 PM
@Pipsqueak sounds cool, for world building I've been using Sly Flourish's system of writing 6 truths about the world and not more, just the relevant ones you need to start writing scenarios ie) 1) in 100 years time, everyone has cybernetics and a direct neural link to the internet but hackers can use them to take control of your body remotely, using them to commit crimes etc etc 2) Big corp pays security experts big money to track these bioterrorists down 3) meanwhile, missions to other planets have been sent with cloned Empties - bodies grown with no conciousness/minds that can be beamed into - etc etc - then once you have the 6 truths (I like to add 3 GM secrets as well) you can build adventures/scenarios with those in mind(edited)
PipsqueakToday at 6:44 PM
oh that's very clever!
[6:44 PM]
do you have a link for the system?
David NoonToday at 6:47 PM
@Pipsqueak this is the book https://www.drivethrurpg.com/product/251431/Return-of-the-Lazy-Dungeon-Master one sec there's a video he does which explains pretty much everything the book explains, I'll get the link
Here are the videos where he goes through a lot of points in the book anyway https://www.youtube.com/watch?v=NzAyjrUCHao&list=PLb39x-29puapg3APswE8JXskxiUpLttgg - he misses one thing IMO which is that you should start with a premise (Ie using the above setting: PC's must track a bio-body-terrorist who has been blowing up Big Corp facilities) and then follow the steps
[6:51 PM]
The bit I mentioned is actually later in the book (chapter 16: building a lazy campaign)
PipsqueakToday at 6:59 PM
Thank you so much!
David NoonToday at 7:01 PM
Happy to share It has massively sped up my scenario writing time, and the world building approach goes really well with Risus
```
The TRPG scene seems to be filled with endless drama and he-said-she-said. It even has a seedy underbelly thread. It's the waifu community all over again.
Sometimes I wonder if I should just quit the internet, or at least quit nerdy hobbies like TRPGs and anime.
I hope I get that job. Or at least learn I'm not going to. Waiting for the call is agonizing...
This is driving me mental. Call tomorrow or we riot.
!! Wiki Review
* [[2020.08.10 - Wiki Review: what's gotten into you Heyley?]]
** I said that I was still obsessed with that song, didn't I?
** I hope to see [[Lofty]] in person again some day. Will need to invite 'em to the States.
* [[2020.08.10 - The Last of the Zoroastrians]]
** The personal stuff about the writer's grandpa was very sad. But it seems the conservative aspects of the religion are rehearsing the same shit as the Abrahamic trash. Conservatives really do ruin everything.
!! On This Day
* [[Futaba Anzu]]
** You sure do.
* [[2019.08.11 - Diamond Sutra]]
** Great sutra. Very approachable translation.
* [[Rabbithole]]
** It's LevelFour... Wonder what else there'd be to add to it.
* [[chameleon pivots to the right]]
** Haha. I haven't listened to Chapo much since being unemployed. Maybe if I get this job I'll be back on it :)
* [[2019.08.11 - nah]]
** Mildly disappointing how stupid this article was.
* [[2019.08.11 - Red Dead RedRedtion]]
** Oh man you're making me nostalgic for the PSP.
!! Wiki Review
* [[2020.08.11 - 6 questions to a setting]]
** Interesting concept. I guess it creates microsettings.
* [[2020.08.11 - drama and rpgs]]
** I can stay in the community, but keep it at arm's length.
* [[2020.08.11 - the wait]]
** End of the day Weds! Nothing yet. Will call the recruiter tomorrow.
* [[2020.08.11 - Wiki Review: love for lofty]]
** [[Lofty]] and I called today. They're feeling a bit better.
** Conservatives to the wall.
!! On This Day
* [[Waifu resources]]
** Nice!
* [[2019.08.12 - Stuck in August]]
** I'm kinda in another transitional period today too. CALL WHEN
!! Wiki Review
* [[2020.08.12 - Wiki Review: simps get the bullet too]]
** Got the call. Not getting the job, sadly. Someone else had more experience. Still, it shows I can get interviews and perform well in them. Step one.
** I was glad I could cheer Lofty up a bit. They don't deserve all the pain the last decade or so has doled out on them.
* [[The Upanishads]]
** This is where the philosophy/theology comes in.
* [[Webcomics]]
** What a find!
!! On This Day
* [[2019.08.13 - Prompts + Babby's First Module]]
** It worked very well for a while. I wonder if this is the start of daily prompted introspection?
* [[PromptModal]]
** Utility.
* [[Art]]
** Just the random stuff I get up to to make the days pass.
* [[=w=.]]
** =w=.
* [[2019.08.13 - spiritual lyrical miracle]]
** There's a surprising amount of really good stuff on SC.
* [[2019.08.13 - stupid(?) eschatology]]
** I love this.
!! Wiki Review
* [[2020.08.13 - Wiki Review: write a cover letter, prole]]
** Just progressing day by day. A little a day, and it'll be done before we know it!
!! On This Day
* [[Why I Hate Transhumanism]]
** Not much has changed. It's still stupid bullshit for stupid people.
* [[Miyazaki Patchwork]]
** Never did follow up, but THIS is MY IDEOLOGY.
* [[2019.08.14 - New PC?]]
** Still haven't got a job. But I long to build it.
* [[2019.08.14 - osananamiji no yume]]
** Typical early DT. A todo list, a question, but no wiki review.
* [[Daily Tasks]]
** POGCHAMP
* [[2019.08.14 - tomboy slowcore gf]]
** Still a 10/10 song. Don't you ever forget how to love yourself.
* [[2019.08.14 - Zen of programming tools]]
** Yes. For lisp it's that... "aha!" moment when you finally understand macros & quoting & shit.
* [[2019.08.14 - expert wikier!]]
** Ended up sticking to it, in various forms, up until now!
!! Wiki Review
* [[2020.08.14 - Wiki Review: On the job grind again]]
** Slow on the wiki, fast on the review.
!! On This Day
* [[Shedu]]
** A good senpai. Haven't spoken in a while, sadly.
* [[Sphygmus]]
** A senpai, and more importantly, a friend.
* [[OM_MANI_PADME_HUM.svg]]
** I love this SVG.
* [[Avalokiteshvara]]
** Working for you still! Will need to update this when we have enough money coming in.
* [[KUSO WEBSITE AWARD]]
** The web is shit. I create little pockets of the web that are a little less shit.
* [[2019.08.15 - nagatoro obsession]]
** """
DON'T MESS WITH US NAGATORO FANS
WE'LL GET A BONER
"""
** Hmm. These days it's behind a wall. I've thought of using Bob or something to filter out the waifu stuff for a public version.
* [[2019.08 Mid-month Journal Review]]
** I didn't end up doing these mid-month ones on a frequent basis.
* [[Journal Review]]
** Pretty useful.
* https://subdee.tumblr.com/post/188374089231/terms-of-service-and-the-fandom-war-im-about
* https://subdee.tumblr.com/post/188374786751/terms-of-service-and-the-fandom-war
One thing about fandom (or transformative media or whatever you want to call it) is how well they've documented their history, and thus how they are aware of how the net has changed (been ruined).
!! Wiki Review
* [[Ted Nelson]]
** https://en.wikipedia.org/wiki/Ted_Nelson. A very interesting fellow. Coined the term hypertext, so is a very early innovator.
* [[2020.08.15 - Wiki Review: review quickdraw]]
** Trying a little public experiment. I know where to find the usual suspects.
*** `/wave`, h2020 pals :) you can use your password for https://wiki.waifu.haus/private/
** I'm a comet. I burn bright and light up the night, but before long, I'm gone.
* Some test tiddlers for footnotes in [[The Big Picture]]:
** [[Test: FWRTTT footnotes]]
** [[Test: FWRTTT refs]]
** [[Test: Footnotes WRT Tiddler Transclusion]]
!! On This Day
* [[2019.08.16 - t-files]]
** Hahaha. I love t-files. A lot of my RPG work in the last year or so has been plaintexty.
* [[2019.08.16 - sleepytime junction]]
** Good answer to that question.
** The todo stuff could return, I think. With no obligation to actually do it (as a dt, that is), it might help.
Internet "free speech" is an evolving story. I've made it clear that I don't think the free speech defense for allowing hateful content is very strong, for various reasons. A rare article from a non-leftist source talking about this: [[Free Speech Defenders Don’t Understand the Critique Against Them|https://arcdigital.media/free-speech-defenders-dont-understand-the-critique-against-them-4ed8327c0879]] ([[Archive link|http://files.seekrit.club/Free%20Speech%20Defenders%20Don%E2%80%99t%20Understand%20the%20Critique%20Against%20Them%20_%20by%20Nicholas%20Grossman%20_%20Jul%2C%202020%20_%20Arc%20Digital%20%282020-08-18%207_29_12%20PM%29.html]])
Maybe I should, if not explain, at least enumerate some of my thoughts along this front:
* Allowing reactionary elements in a space will eventually turn a space reactionary - the scum will push the good stuff out.
** "rational"ist community, /pol/, tumblrinaction, gamergate, political compass memes, etc.
* The more visible reactionary elements are, the easier they will find it to recruit and grow their numbers.
* Debate does not deradicalize.
* On many social issues, compromise may as well be capitulation.
* Dogwhistling is very effective and allows even the worst of them to gather in plain sight.
!! Wiki Review
* [[2020.08.16 - The fans are smart]]
** Fandom history is fascinating to me. [[Strikethrough|https://fanlore.org/wiki/Strikethrough_and_Boldthrough]], for example, would define how fandom developed over the last ten years or so. The recent [[porn ban|https://fanlore.org/wiki/Tumblr_NSFW_Content_Purge]] is leading them to question tumblr, too.
*** Fanfiction is seen as chaff, wasted space, for many people, but for those that enjoy it it's a major part of our lives. Preservation is important.
* [[Links: Web Artists]]
** Used to be more into this scene. Should add artists that I commished.
* [[2020.08.16 - Wiki Review: test success]]
** We're public again. Nothing on the radar. Should be ok. There's not much juicy stuff on the public version.
!! On This Day
* [[Had Had]]
** Hahahhahahaha nice. I think this came up when I was writing and I decided to write it down.
* [[2019.08.17 - weekend red/blues]]
** I miss having Asda within walking distance.
* [[2019.08.17 - the duct-tape programmer]]
** "Now I feel like I should call out h0p3-senpai about his letters, teehee~" - eternally relevant ''♥''
*** He might've scrapped the one he was writing. I didn't see it in Recent Obsessions last I looked.
** I'm worried I'll get rusty. I'm not really into doing it in my spare time at the moment (various reasons).
!! Wiki Review
* [[2020.08.17 - more on freeze peach]]
** It's a trap designed for nerds. It relies on the //dream// of the 90s internet still existing, even though that dream died long ago c.f. [[2020.08.16 - The fans are smart]]
* [[2020.08.17 - Wiki Review: juicy]]
** Short [[reply|https://philosopher.life/#%40%3A%20chameleon]]. I should [[@]] him more, or discuss stuff over DMs.
** Already considering new fanfics. Mass Effect rewrite? Slowburn? Drabbles? Lots of ideas!
!! On This Day
* [[Text Art: Kona]]
** my she
* [[NoEnding]]
** [[Are you living in the real world?|https://www.youtube.com/watch?v=aittzmHYtC8]]
*** Man now I really want to rewatch CB.
* [[Manga List]]
** Unused these days. I just use mangadex.
* [[2019.08.18 - crabcore]]
** [[Check him out|https://cdn.discordapp.com/attachments/679150845786456067/745397977102680235/japanese-spider-crab-18.jpg]]
* [[2019.08.18 - primary sources]]
** Hahahah. Still addicted.
* [[2019.08.18 - skate or die?]]
** Woah remember when I learned Indonesian for a laugh!? Well, didn't learn it per se. Got good enough to recognize snippets of it. In the end, as always, I just didn't see myself using it any more.
!! Wiki Review
* [[2020.08.18 - Wiki Review: Sa bet chi lamp, chi tangaay, sa bet maangi ci biir]]
** It's "In Your Eyes"; the chorus translated into Wolof
** I get the feeling he doesn't want to talk to me so much lately.
** Sphygfriend read this one =w=. `/wave`
!! On This Day
* [[2019.08.19 - twinery]]
** It was lewd things happening to Link!
* [[2019.08.19 - Another step on the way]]
** So glad I stuck it out. Being with him is heaven.
* [[2019.08.19 - sincerest form of flattery?]]
** Still do it. Keeps it off my neck.
* [[2019.08.19 - @#$%]]
** Love those LN titles.
Really need a place to put links to the work of this fascinating man. https://en.wikipedia.org/wiki/Jorge_Luis_Borges https://en.wikipedia.org/wiki/The_Garden_of_Forking_Paths
https://www.youtube.com/watch?v=L-Y4LfY76PY
Wonder if [[Senpai]] would agree. I know that Abed is on his "fictional characters I relate to" list.
!! Wiki Review
* [[2020.08.19 - Wiki Review: you enjoy myself]]
** It's not something I'm really offended by. I'm not very interesting. I imagine I sound much more interesting than I actually am when one doesn't know me well yet.
!! On This Day
* [[2019.08.20 - CSS hax]]
** I'm still really proud of it. It looks amazing.
* [[2019.08.20 - λλλ]]
** I remember this one. Nobu and Shedu are definitely the core of my moral development, such as it is.
!! Wiki Review
* [[2020.08.20 - Wiki Review: anamanagatalphabetatholopologorrhea]]
** Apparently [[Sphygmus]] reads EVERYTHING! It's a good morning routine, she says :) I must confess I'm at a disadvantage; I'm a peruser, a casual reader. I do check the wiki every day, though.
*** Speaking of - thanks for https://www.station307.com/#/ :D
* [[2020.08.20 - Jorge Luis Borges]]
** His name keeps turning up. Surely he must be one of the most influential authors in the Spanish language.
* [[2020.08.20 - Mabi Nerd: Troy and Abed's Dreamatorium is more Autistic Than You Think]]
** Really enjoyed this video. Considering joining the guy's discord. He seems like he might be a really cool friend, though that's parasocial talking.
!! On This Day
* [[True Facts]]
** Hahhahaahaha
* [[Autobiography]]
** I've had a fairly normal life, I think.
* [[2019.08.21 - seekrit club highschool au]]
** He's in the club. He seems to be shy, or maybe not interested in reaching out yet. I think he'd get on with the denizens, though.
Well, here's a good place to find CP/M stuff: http://classiccmp.org/cpmarchives/index.php
I really do need a general tiddler to dump my old computing stuff. And I should get on the old geek's canard of "design a modernized 8-bit computer".
!! Wiki Review
* [[Sending Files]]
** A hard problem indeed.
* [[2020.08.21 - Wiki Review: big sphygfriend is watching @w@]]
** There's a little over 100 folx in that discord. Thinking about it. I could leave Thought Slime's or one of the other leftist e-celeb's discords to make space.
** Sphygs - I love the discord emoji you have on your wiki, lol. Maybe I could do the same here?
!! On This Day
* [[2019.08.22 - feels bad man]]
** Mood.
* [[2019.08.22 - Quiet Stroll]]
** Still holds true. Of course, in America, nothing is within walking distance.
Found while searching for a 2d6 system to plug into the GLOG.
* [[Original|http://www.necropraxis.com/2012/11/29/2d6-fantasy-game/]], which is basically a ciggy-packet prototype.
* [[A hack (archive link)|https://web.archive.org/web/20150205062850/http://talesofthegrotesqueanddungeonesque.blogspot.com/2012/11/hacking-brendans-2d6-system.html]] which is more complete.
I know Dungeon World is a Thing that Exists. I've got a pdf of the rulebook, and it's an unwieldy size (several hundred pages, either 400 or 500 iirc) and doesn't explain its core mechanics well. If the alternative to D&D is another poorly-explained doorstop, I don't see the point in switching; but those that have played it seem to REALLY love it, so what do I know?
-----
"""
Spwack Today at 5:13 AM
pbta glog??
Tristan (Bogeymanscave, He/Him) Today at 5:15 AM
I was gonna say that it looks like the OSR has once again reinvented Powered by the Apocalypse
chameleon Today at 5:23 AM
Sure, but I'm not reading a 500 page book
Mihau (any/all) Today at 5:32 AM
How about writing a 500 page book?
chameleon Today at 5:36 AM
Please no
Permission is granted to shoot me dead if I ever write an rpg book with more pages than b/x
Spwack Today at 6:50 AM
there are plenty of good ostensibly pbta systems that are less than 5 pages
…
OSR World:
There are only three moves
Do something smart
Do something
Do something dumb
"""
* https://spoutinglore.blogspot.com/2020/02/defying-danger-rpg.html
* https://spoutinglore.blogspot.com/2018/07/homebrew-world.html
Are these links any good? No idea! I'll check them out and see!
* https://www.reddit.com/r/gycpiyhby/
* https://www.sciencedirect.com/topics/psychology/imaginary-world
* https://www.wikihow.com/Category:Imaginary-Worlds
* https://imagination.fandom.com/wiki/Imaginary_world
* https://inventingimaginaryworlds.com/
* https://www.reddit.com/r/paracosms/
!! Wiki Review
* [[2020.08.22 - Wiki Review: banning leafy only makes him stronger]]
** He's still banned. I suspect they might reinstate him eventually, and that this is just a very hard slap on the wrist.
** Discord emoji... which ones would I use...
*** I have two emoji servers now. My friend Corru has like 7.
* [[2020.08.22 - cp/m archives]]
** Real soon now.
* [[CYOAs]]
** Hubby loves these.
!! On This Day
* [[CLUBBER]]
** Hehehehe.
** The whole thing is a play on the VIPPERs of the old textboards. Good times.
* [[2019.08.23 - chillax, brah]]
** The answer to this question would be different now! I did end up disrupting it, haha.
** We can see the whole todo/todo review thing in action here.
!! Wiki Review
* [[*DREAM: Games and Reality]]
** Cool new discussion on the discord.
** Sorting out this category. Mostly moving the older stuff out into separate articles so the [[SWORD*DREAM]] article wouldn't get too long.
* [[DREAM Jam]]
** Ditto.
* [[*DREAM: Diverse Authors In SF]]
** Ditto.
* [[Possum Laws of Gaming]]
** Ditto.
* [[2020.08.23 - Wiki Review: the elitist superstructure of chameleon's wiki]]
** Days ebb and flow. Lots sometimes, nothing other times.
* [[2020.08.23 - Imaginary Worlds]]
** Just some fun stuff I looked into after a Community binge.
* [[2020.08.23 - 2d6 "bruh, is that apocalypse world?"]]
** ~PbtA uses the [[One Table to Rule Them All]], with 6-8 being "yes, but", p much.
!! On This Day
* [[2019.08.24 - Goats are cool]]
** They sure are!
* [[Compositions]]
** I still like that line. Feels rad.
!! Wiki Review
* [[2020.08.24 - Wiki Review: ditto]]
** Ebbs and flows, comes and goes.
** The *DREAM is developing, I think. Mine is becoming one of the best link parks/[[web directories|https://web.archive.org/web/20190405150714/https://www.kickscondor.com/foundations-of-a-tiny-directory/]]<<ref "wd">> for the scene.
!! On This Day
* [[2019.08.26 - si no eres konata y leaslo, te mataré, hijo de puta]]
** <span style="color: hotpink">♥</span>
** It means "if you're not Konata and you read it, I'll kill you, you son of a bitch".
* [[2019.08.25 - Imouto, no thanks]]
** real little sisters are annoying enough
* [[b-but that's lewd!]]
** flushed emoji
* [[2019.08.25 - ∅∅∅∅∅∅]]
** Nah. It's fine for things to just exist in journal entries. Though, I've not often felt as dark as I did then.
* [[2019.08.25 - blog? weblog? diary? journal?]]
** The reason for the existence of this tiddler is made clear by the "snatch happiness from the murk" cdr<<ref cdr>>.
* [[Game: Savage Asiopos]]
** Good game. Sad that we haven't played in a while.
* [[Character: Altani the Pondweed]]
** She's so beloved that Kirbs is giving her a cameo in another campaign :D
* [[Roleplaying]]
** Been hooked ever since I started playing Oblivion & Pops showed me his old Megatraveller manuals.
* [[2019.08.25 - snatch happiness from the murk]]
** Yeah this is probably the darkest tiddler on the wiki.
----
<<footnotes "wd" "Yes that is an archive'd kickscondor link. I hate that I have to do this. The Disney thing isn't funny; I half expected him to have fixed it by now, but... no dice. I wonder why he decided to do it and ruin his website. Oh well.">>
<<footnotes "cdr" "Core daily requirements, as [[h0p3]] calls them. Not same cudder as in Lisp!">>
* https://www.jazz.org/blog/wynton-marsalis-top-50-jazz-recordings/
* https://getpocket.com/explore/item/wynton-marsalis-on-12-essential-jazz-recordings?utm_source=pocket-newtab
# ''First true intellectual of jazz possessing encyclopedic knowledge on and off the bandstand (to his eternal damnation):'' Jelly Roll Morton's __The Complete Library of Congress Recordings__
# ''Disarmingly honest and soulful melody:'' Charles Mingus's “Goodbye Pork Pie Hat,” Marcus Roberts's “Spiritual Awakening”
# ''Manifestation of genius and an unparalleled set of unique achievements (playing, composing, arranging, mentoring):'' Mary Lou Williams. As a player: “Night Life”; As a composer/arranger: “Walkin' & Swingin’”; As a mentor: “In the Land of Oo-Bla-Dee” (Dizzy Gillespie's recording); Composing range: “Scorpio”
# ''Profound insight into the true meaning and nature of jazz across time, space and cultural misconceptions:'' Django Reinhardt's “Minor Swing”
# ''A boogaloo church shuffle in a funky 7 – damn!:'' Eddie Harris's “1974 Blues”
# ''Super imaginative integration of European, African, American and Hispanic elements:'' Machito's “Kenya,” Duke Ellington's “Afro-Bossa”
# ''Textbook genius Improvisation:'' Charlie Parker's “Embraceable You,” Thelonious Monk's “Sophisticated Lady,” John Coltrane's “Crescent”
# ''Destination: Soul:'' Oliver Nelson's “Stolen Moments,” Herbie Hancock's “Tell Me a Bedtime Story,” Duke Ellington's “Blues in Orbit,” Ben Webster and "Sweets" Edison's “Better Go”
# ''The Sweetest of Sweet / The Hottest of Hot:'' Paul Whiteman's “Whispering,” Jean Goldkette's “My Pretty Girl”
# ''Supreme ambassador through effusive, ebullient, infectious playing:'' Errol Garner's “Nightconcert”
# ''Extremely sophisticated, yet lyrical melody/harmony combination:'' Wayne Shorter's “Infant Eyes,” Duke Ellington's “Creole Blues,” Billy Strayhorn's “Lush Life,” Thelonious Monk's “Ask Me Now,” Bill Evans's “Very Early,” Horace Silver's “Peace,” Hermeto Pascoal's “Farol que nos guía todo,” Chick Corea's “Humpty Dumpty”
# ''Audience clearly enjoying themselves:'' Cannonball Adderley Quintet's “Mercy, Mercy, Mercy”
# ''Textbook study of thematic development in a long-form composition transforming a very basic four note motif into modal jazz, original counterpoint, and a beautiful ballad, while still swinging the whole time:'' Duke Ellington's “The Tattooed Bride”
# ''Otherworldly display of flat-footed improvisational skills:'' Stan Getz's “I’m Late, I’m Late” from __Focus__, Louis Armstrong (second cornet) on “King Oliver’s Snake Rag”
# ''Deep, deep groove of the Americas:'' Tito Rodriguez's “Como mi ritmo no hay dos”
# ''Sounds of protest and affirmation:'' Louis Armstrong's “Black and Blue” (1929), Billie Holiday's “Strange Fruit” (1939), Duke Ellington's “Jump for Joy” (1941), Charles Mingus's “Original Faubus Fables” (1959), Max Roach's “Driva Man” (1960), Max Roach's “Triptych: Prayer/Protest/Peace” (1960), Dave Brubeck's “The Real Ambassadors” (1961), John Coltrane's “Alabama” (1963), Nina Simone's “Mississippi Goddam” (1964), Rahsaan Roland Kirk's “Clickety Clack” (1973), Betty Carter's “Bridges" (1992)
# ''Making a horn sound exactly like someone singing:'' "Tricky Sam" Nanton on Duke Ellington’s “Chloe (Song of the Swamp)”
# ''Insightful integration of the blues with disparate elements:'' Dave Brubeck's “Blue Rondo à la Turk”
# ''Uncommon psychological complexity while maintaining a lyrical intention:'' Ornette Coleman's “Peace”
# ''Floating over 4/4 swing in a long-meter subdivision of three:'' Billie Holiday's "Getting Some Fun Out of Life”
# ''Trumpets, trumpets, trumpets:'' Tommy Dorsey's “Well, Git It!"
# ''Classic bebop (despite poor recording quality):'' Charlie Parker's “Ornithology" from __One Night in Birdland__
# ''Harmonically challenging offspring of Thelonious Monk’s “Off Minor”:'' John Coltrane's “Giant Steps,” Wayne Shorter's “Fee-Fi -Fo-Fum”
# ''Commitment to an original and sophisticated conception over time with absolute integrity and seriousness''—Steve Coleman from __On the Edge of Tomorrow__ (1986) to __Live at the Village Vanguard Vol. 1 & 2__ (2018) and any other subsequent volumes that demonstrate the same level of belief
# ''All-time Baddest MF:'' Duke Ellington's “Choo Choo" (1924), “Daybreak Express” (1933), “Happy Go Lucky Local” (1947), “Track 360” (1958), and “Loco Madi" (1972)
# ''Stunning and invigorating talent:'' Cécile ~McLorin Salvant (her choice of songs, compositions and unrepentant seriousness)
# ''Unprecedented improvised development with least amount of thematic material:'' John Coltrane's “A Love Supreme”
# ''Great deal of ambition in a fallow period:'' Marcus Roberts's “Blues for the New Millennium”
# ''Absolute improvement through improvisation of a classic American popular song (that didn’t need to be improved):'' Louis Armstrong's “Stardust”
# ''Profound uncompromisingly spiritual intention:'' John Coltrane's “Dear Lord”
# ''Merlin of the keyboard:'' Art Tatum's “Tiger Rag,” “Tea for Two,” and “Too Marvelous for Words”
# ''Most angelic singing:'' Doris Day (and Les Brown and His Band of Renown) on “Sentimental Journey”
# ''Extremely mature jazz improvisation on an American popular song:'' Miles Davis's “Stella By Starlight” (from __My Funny Valentine__)
# ''Trombones trombones trombones:'' Duke Ellington's "Bragging in Brass"
# ''Relaxation in the face of chaos:'' John Coltrane's “Interstellar Space”
# ''Clear demonstration of how to sing the blues through a horn in all registers:'' Sidney Bechet's “Blue Horizon”
# ''Great consolidator of past and present with no concern for cliques:'' Charles Mingus's __Mingus Ah Um__
# ''Multifaceted genius of vocalese:'' Jon Hendricks's “Freddie the Freeloader”
# ''Creative use of form:'' Jelly Roll Morton's “The Pearls,” Thelonious Monk's “Brilliant Corners,” Louis Armstrong & His Hot Fives's “Skid Dat-De-Dat,” Gerry Mulligan's “K-4 Pacific”
# ''Saxes saxes saxes:'' The Thad Jones/Mel Lewis Orchestra's "Tiptoe" from __Consummation__
# ''Solo with an organic integration highlighting the relationship between a modern instrument and its ancient purpose:'' Louis Armstrong's “Tight Like That”
# ''Definitive master of playing the piano with both hands:'' Fats Waller's “Viper's Drag” and “Handful of Keys”
# ''Mind-bogglingly nimble, flexible, intelligent and omnidirectional rhythm section:'' Herbie Hancock, Ron Carter, and Tony Williams with Miles Davis from __E.S.P.__ to __Filles de Kilimanjaro__
# ''Small ensembles that consolidated while innovating:'' Modern Jazz Quartet, Bill Evans Trio, Marcus Roberts Trio, Ahmad Jamal Trio, Gerry Mulligan-Chet Baker Quartet
# ''Most meaningful concert:'' Benny Goodman's __The Famous 1938 Carnegie Hall Jazz Concert__, Jazz at the Philharmonic (various concerts)
# ''Most meaningful composition:'' Duke Ellington's __Black, Brown, and Beige”__
# ''Significant long-form compositions:'' Woody Herman's “Lady ~McGowan’s Dream,” Duke Ellington's “A Tone Parallel to Harlem,” Igor Stravinsky's “Ebony Concerto,” Leonard Bernstein's “Prelude, Fugue, and Riffs," Chico O’Farrill's “Afro Cuban Jazz Suite”
# ''Great compositional diversity with no sacrifice of quality:'' Wayne Shorter with Art Blakey's “Lester Left Town” (1960) and “This Is for Albert”(1963), Wayne Shorter with Miles Davis's “Fall” (1967) and “Nefertiti” (1967), Wayne Shorter's “El Gaucho” (1966), Wayne Shorter with Weather Report's “Palladium” (1977), and Wayne Shorter's “Atlantis” (1985)
# ''Two people who did a lot of practicing (individually and together):'' Charlie Parker & Dizzy Gillespie's “Shaw ‘Nuff”
# ''Definitive shout chorus:'' Eddie Durham’s arrangement for Bennie Moten’s Orchestra of “The Blue Room” (1934)
Internet drama is an eternal, neverending, reoccuring nightmare. Pointed out in brilliant fashion in [[the last video|https://www.youtube.com/watch?v=8HuJ5Kj_PPk&t=4111s]] of Dangelo's series on the James Charles drama.
I suppose the only winning move is not to play. I should just turn the computer off ;)
!! Wiki Review
* [[2020.08.25 - Wiki Review: it comes and goes (karma chameleon)]]
** karma [[chameleon]]~
** Grimdark tiddlers in the past.
* [[2020.08.25 - Wynton Marsalis Chooses His Top 50 Essential Jazz Recordings]]
** Sublime taste. Some great recordings here.
!! On This Day
* [[2019.08.26 - Cheer up, emo kid]]
** Visa interviews this time last year; and this time this year, we're looking at job interviews.
* [[2019.08.26 - case of the mondays]]
** Nothing notable here, really.
https://www.youtube.com/watch?v=RdQmZ5TRp3k
These are microscales taken from the pentatonic.
* Major: 1 2 3 5
* Minor: 1 b3 4 5
<<<
I believe Coltrane developed these 4 note patterns from his studies with guitarist/composer Dennis Sandole during his Philadelphia years. Sandole called them “tetrachords” and are described in great detail in this article https://www.crj-online.org/v5/CRJ-DennisSandole.php
<<< Robert Hekking (comment section)
Extracting these from the M/m triads in an ionian scale, and leaving behind those that include the 4th of the scale, we're left with:
* Root major
* 5th major
* 3rd minor
* 6th minor
!! Wiki Review
Belated review due to FNM yesterday.
* [[2020.08.26 - Wiki Review: grim dork]]
** Dystopia fiction is boring. Give us more utopias! Like Bill & Ted!
** Job search is going OK, but I need more professional references.
* [[2020.08.26 - all this has come before, all this will come again]]
** Yep. This is not the last time someone will drum up drama for their own gain. I doubt it'll even be the last Shane Dawson drama - it's not the first time he's gotten clapped for his shocking past.
!! On This Day
* [[2019.08.29 - the death of a waifuist]]
** Rest in peace. I'm sure you're with her now.
* [[Quotes about chameleon]]
** [[h0p3]]'s makes me smile.
* [[2019.08.29 - space rock]]
** I haven't been keeping up on this stuff! I should do that.
* [[2019.08.29 - im trying to go to the embassy, but my documents are dummy thicc]]
** tHink oF ~ThE cHiLdREn
** Still have that folder, in case I'll need it for the final interview at USCIS (which has yet to happen...)
On a whim I searched "community" on h0p3's wiki, thinking about the show rather than the concept, and ran into a tag I've not seen before: https://philosopher.life/#Hypercynic
Analagous to my (more recent) [[Old Stuff]], I suppose, this is an archive of an old website he had.
I had a website in the 2000s too, but it was too cringeworthy for me to want to revive (I was born in 93, so the oldest I was in that cursed decade was 17 - the terrible years). It might still exist in some ancient, dusty, forgotten corner of the internet, but more likely it fell to link rot long ago.
It leads me to wonder if I'll ever think of the wiki as cringy. Certainly there was a little oversharing at the start (which I've rectified in the public version of the wiki) but I don't think there's anything particularly juicy here.
!! Wiki Review
* [[2020.08.29 - Trane patterns]]
** These are a cool little improvisation tool.
* [[2020.08.29 - Wiki Review: fucking references]]
** Still waiting.
** The internet is full of the absolute dredges of humanity, but there are small pockets of hope.
!! On This Day
* [[2019.08.30 - editor fun]]
** I think textadept is the only one I didn't really look into. At this point I'd miss Emacs if I used any other editor. Even editors that are perfectly servicable for other programmers are not good for my purposes any more.
* [[2019.08.30 - 221(g)]]
** We got it sorted in the end. It was worrying nonetheless.
* [[2019.08.30 - mostly succesful]]
** Good answer to the question here.
** A rare example of todo/review working as it was intended.
I reached out to him because of the whole references bullshit, but honestly, I hope he replies because I miss him as a friend :( He's rather like [[score_under]] in some regards.
I really want to hear what he's been up to, what path his life has taken since we last spoke. Has he gotten his huge Gallic family yet? Is he still playing the same games? I know he's still a Rust programmer - how's that scene these days?
We have a lot of catching up to do, and I really hope he's not offended by the slightly mercenary circumstances in which I reached out.
!! Wiki Review
* [[2020.08.30 - more rabbits]]
** `*shrug*`. We'll see, I guess.
* [[2020.08.30 - Wiki Review: Text~]]
** STILL FUCKING WAITING
*** Seriously, whose bright idea were professional references and why weren't they killed on the spot? Literally "not what you know, but who you know." In an industry mainly staffed by asocial geeks like me, this is absurd.
** Those trane patterns really are great.
* [[Writing About Games]]
** Some good content here.
!! On This Day
* [[2019.08 Journal Review]]
** "Twitter remains full of idiots" - eternal mood.
* [[2019.08.31 - review time!]]
** Have asked Dad for help with this professional reference nightmare.
* Weird to me that I've been living in the USA for a whole year now. There are lots of subtle differences. I mostly only miss food, but public transport is also a big "man I wish I had that" thing.
* This month I got frustrated with the wiki reviews because it seemed like I was only reviewing other reviews (and of course the on-this-day articles). I took a break for 2020.10, but that meant I ended up not doing this review until today (2020.10.02).
* This month was a big disappointment as I failed a coding screen. However, that was at a FAANG company (ironically, another of which is interviewing me right now) and thus I think the interviewer was playing hardball. I still have the cheatsheet from this; it's useful because it has some STAR examples for me to riff on.
* My interview was scheduled this month. A lot of stress piled up because of it. I had a red-letter week where multiple job interviews were scheduled AND I had this interview. The stress was for naught though, as the interview was a pushover.
* Kicks withdrawal!
* Feeling devotion to [[Lord Shiva]]. I've actually been praying, which is something I only reluctantly did as a christian (and even then, only the Lord's Prayer).
* "Bruh" is now my fave word.
----
<<list-links "[prefix[2020.09]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
!! Wiki Review
* [[2020.08.31 - the cavalier]]
** Nothing yet. Either he hasn't read his email, is composing a reply but hasn't sent it yet, or saw it and recognized the mercenary intent, and decided to just ignore it.
*** Not that it matters that much in the end. Bailed out again by my old mentor. I love that man. So now I have a reference for my oldest and also most recent job. The shit in the middle could be an issue... but then again, I didn't work there very long.
**** I may yet have to make contact again with Desu. I don't look forward to the prospect. Maybe after the election.
* [[2020.08 Journal Review]]
** I like how I'm dealing with things. I've grown up a lot even in just this last year.
* [[2020.08.31 - Wiki Review: FUCKING REFERENCES FUCK]]
** Tentative moves towards problem solved. Thanks Dad, and thanks [[h0p3]] for the moral support.
** Life is chaotic at the moment. As much as I hate working, I'll almost welcome the stability of the nine-to-five, Monday-to-Friday.
!! On This Day
* [[2019.09.01 - emacs, fer fook's sehk!]]
** Still not 100% satisfied with the modeline.
* [[2019.09.01 - another madnifesto]]
** He has a fun reason to be working on toybox, but we've not seen any movement towards his eventual goal. Jobs was wrong.
* [[2019.08 Daily Tasks]]
** These are mostly just vaults.
* [[Daily Task Archive]]
** The master vault.
* [[2019.09.01 - the duct-tape writer]]
** Interesting discussion. I have a lot of non-fiction on the wiki ;)
!! Wiki Review
* [[2020.09.01 - Wiki Review: non-fiction]]
** Bacon-saving senpai at it again.
*** In future, I'll have to make a habit of collecting potential professional references. Also, if I can get a reasonably well-paying job, I should start saving and investing with a view to retire early, or at least get enough income that I can dip out of the professional racket ASAP.
**** I hate that I have to participate in capitalism.
!! On This Day
* [[Retro Computing Dream Setup]]
** Some day. Soon™.
* [[2019.09.02 - In Another World With My Smartphone]]
** Hah. Good answer. Bit of a cheat, though.
I don't really understand Kicks, but I think that's how he prefers it.
It's quite easy to understand me. This hypertext document does a pretty good job of that. I'm sure you could bootstrap a second "me" out of it that was pretty similar to the real "me".
Anyways, he changed the disney thing so now it's an FBI thing and has a cool old-school driving game interface for some reason and it's a very cool piece of webdev but I'm more into articles crying emoji.
To cut it short: ke pasa? Ke fucking pasa indeed. Shine on, you crazy diamond.
!! Wiki Review
* [[2020.09.02 - Wiki Review: big poggers to M-senpai]]
** He's bailed me out of trouble. Now I have to actually get a job...
* [[My Favorite D&D/Fantasy Ideas]]
** Nice ideas
* [[2020.09.02 - sorting cute & serafuku folders]]
** I sorted the cute directory. I'm working on the serafuku one.
!! On This Day
* [[2019.09.03 - the missing gui]]
** //sicko voice// yes! haha... YES!
* [[2019.09.03 - secret secret, i've got a secret]]
** They're good stories. Better than they have any right being.
* [[2019.09.03 - getting into hip-hop]]
** This was a year ago, eh? I still love a lot of the artists I discovered around this time, and while I'm not a hip-hop-head, I definitely have a greater appreciation for the genre now, which is good.
*** [[BABY WHAT YA WISHIN FOR|https://www.youtube.com/watch?v=efxiDBygvdg]] I CAN'T FEEL MY FACE I CAN'T FEEL MY FACE
*** If I get rich and/or famous I want to do a song with Trippie tbh.
!! Wiki Review
* [[2020.09.03 - Wiki Review: I can't hold back]]
** Real soon now™.
* [[2020.09.03 - what is he doing now]]
** [[He's a cheeky little monkey.|https://cdn.discordapp.com/attachments/691133794576760892/751451887248736366/unknown.png]]
* [[Religion in D&D: "Rethinking Clerics & Religion"]]
** Our view of "pagan" "religion" is definitely influenced by later developments as well as the relative lack of written information.
** It's interesting what he says about saints and such; they weren't a part of the Anabaptist faith of my parents. One of the things I found so limiting about Christianity was how various dimensions of life were just ignored or written off as entirely bad. Especially at the end of my belief I was like "this is one gigantic bruh moment, you know banning things doesn't work, right?"
*** There's not much meaning in Christianity that can't be found in better places. I have a benefit over a lot of atheists/nonreligious in that I had a religious upbringing and so I understand them better. I suppose that's also a disbenefit because it leaves a hole in you where God used to be; [[like coming off heroin or booze|https://www.youtube.com/watch?v=Qhu2L9MHoj0]].
!! On This Day
* [[2019.09.04 - my last bitch was cute, but my newest bitch thicker]]
** https://www.youtube.com/watch?v=MieIOV-GoGo - "you call that a song? that's a homicide with a beat"
** Yeah, it's an interesting conundrum.
* [[2019.09.04 - snarf]]
** ''LAUNDRY''
** T&T is definitely lit
** Another good answer to the daily prompt. This was before it became a chore.
!! Wiki Review
* [[2020.09.04 - Wiki Review: patron saint of heavy metal and astral sex]]
** Something I often think about. Wonder if there are any good books on the subject.
!! On This Day
* [[2019.09.06 - les vingt-quatre heures]]
** I don't remember this! Hahaha. I'm not 19 any more, so staying up all night is way harder now than it used to be.
* [[2019.09.06 - h0p3: bitches brew]]
** I remember finishing this. A good letter.
*** Miss trading letters with him. Maybe I should just write a new one.
* [[2019.09.05 - I slapped him with the chrome, then put a bullet in his dome]]
** Since then, 69 got put in jail but let out on good behaviour due to covid.
* [[2019.09.05 - Wiki work, wiki play]]
** Blue is definitely a lovely color. Think of blue skies and tropical waters. (ok sure, that's cyan, but it's a shade of blue, right?)
"""
SUZUMIYA HARUHI ANNOUNCES WAIFUISM 2
SUICIDE RATES FALL TO 0%
"""
---
You must unite your soul with Bruhman
Advaita Bruhvanta
Achieve bruhvana
!! Wiki Review
* [[2020.09.05 - Wiki Review: bruh]]
** Did this one late.
** ''LAUNDRY'' today too!
* [[Worldbuilding: Alternatives to Medieval Europe]]
** Yeah c'mon guys
!! On This Day
* [[2019.09.06 - screaming through space on the soul planet]]
** Hahah. I'm such a hippy.
* [[2019.09.06 - the saga continues]]
** We did it in the end. Fedexing it was a good idea.
!! Wiki Review
* [[2020.09.06 - hhhhhh]]
** High quality shitpost.
* [[2020.09.06 - Wiki Review: lazy chame]]
** Did that laundry. It's still in the dryer though. I'll have to find some time to put it away... later.
!! On This Day
* [[2019.09.07 - Feedbag, a feed reader for the chemically imbalanced]]
** Great idea. I'm a little scared of using up too much in the way of resources on my lappy.
* [[2019.09.07 - A New... h0p3?]]
** That's a very straightforward - and true - answer. Han rules.
** Wish that podcast had gone somewhere. I've been gently reminding him of it, but it's unlikely we'll actually get it done unless he feels like it. Ball's in his court. The subject matter isn't going anywhere, though.
!! Wiki Review
* [[2020.09.07 - Wiki Review: now you are safe and effortlessly breathing]]
** https://www.youtube.com/watch?v=1uUMaQJSRGQ ;w;
** Real soon now. Any day now.
* [[Free Kriegsspiel Revolution]]
** I'm going to need a post-OSR hub.
!! On This Day
* [[2019.09.08 - bitch I look like Goku]]
** Maybe I should've upped the ante. I wish I looked like a cute indie chick. I wish I was 5'6" with a cute face and an hourglass figure.
** Sort dat folder... lol. [[My Waifu Folder]] is in a constant state of flux.
In another life I might've been an extremely committed Shaivite. Whereas my memories of Christianity are of abject terror - you'll be sent straight to hell if you even stop thinking about God for one moment, you filthy fucking shit - just hearing tales of Lord Shiva fills me with hope. Lord Shiva is like me, a creature of opposites reconciled, capable of both good and evil. A god whose image I really could be created in, "Shiva does not need your devotion" rather than the self-described jealous God, a god that wouldn't send me to hell for minor infractions of thoughtcrime but that could guide me to doing, and being, better.
I am left to wonder who exactly I am. What exactly my place is. Am I religious? Is the word a Christian conceit, can I be spiritual and proudly non-religious? Is the investment I've put into [[Buddhism]] a waste of time if I'm willing to turn around and repeat "Om Namah Śivaya" and feel flooded with devotion? Who, or what, are you, little [[chameleon]]?
!! Wiki Review
* [[FKR: Links]]
** Looking like a real scene here.
* [[2020.09.08 - Wiki Review: for ivadell]]
** I'm starting to seriously consider a stopgap job. I could work for Amazon until I get a driver's license & a vehicle, then I could work deliveries. UPS & Fedex apparently pay $30 an hour - not as good as a computer toucher, but definitely better than $0, and probably for a less stressful job once I'm good at driving.
*** I'm thinking if both of my two current leads don't end at least in interviews, I'll get a job at Amazon.
* [[Questing Beast on FKR]]
** The fire rises!
!! On This Day
* [[Food to try]]
** I made Adam's "legate ears" fresh pasta. It was seriously good.
* [[OD&D]]
** It was pretty good in its basic form. It doesn't take much to turn it into an ideal game.
* [[Real Waifuists]]
** The Real Waifuist cannot even be described or seen, so perfect is her aura of virginity.
** This is a vintage and high-quality shitpost =w=.
* [[2019.09.09 - 「宁可我负天下人,休叫天下人负我。」]]
** I think it's Cao Cao - "better that I should wrong the world, than have the world wrong me"
** Good advice to my teenage self. If only I had a time machine, eh?
!! Wiki Review
* [[2020.09.09 - Wiki Review: this ain't a scene it's a goddamn arms race]]
** Having almost given up on getting a software engineering job, I went to Amazon and found they were hiring for that, and my experience looked like a pretty good fit. Hm. Giving it a try.
* [[2020.09.09 - bhakti]]
** Today I prayed... or I suppose, begged for mercy. I suppose you really can call me religious. Intellectually I know a-theism is a given, but monkey brains need a big monkey in the sky, eh?
!! On This Day
* [[The Fall]]
** This actually predates the wiki. I only digitized it on that date.
* [[2019.09.10 - upgrade thoughts]]
** Hubby really does need a wiki or a blog. He's been thinking about it. I've offered to set one up for him, but the ball's in his court on that one.
* [[2019.09.10 - something upgraded this way comes]]
** So it's a year to date that I last had a haircut. Wild.
*** I had expected life would be a little stabler by now. It's been crazy.
!! Wiki Review
* [[2020.09.10 - Wiki Review: grant me mercy, auspicious one]]
** Funnily enough there was an analogy - cat gods and monkey gods - based on the way the animals [[carry their young|https://imgur.com/a/9yaQE8d]].
* [[ICM: Anuja Kamat]]
** Recommended by a recent Adam Neely video. Have yet to check out more, but looks good.
!! On This Day
* [[Sugar Magnolia by the Grateful Dead]]
** SUNSHINE DAYDREAM
* [[Songs]]
** A category for my most beloved songs.
* [[2019.09.11 - dunjen mæstœr]]
** Just some links.
* [[2019.09.11 - film/tv recs from coworker]]
** I miss her :(
* [[Together in Electric Dreams]]
** Best song ever.
* [[this is nice mixtape]]
** Great playlist.
* [[2019.09.11 - risk/reward]]
** Every year only makes me more sure that I did the right thing.
Passed out on the couch and dreamed that [[h0p3]] and I were playing [[ACNH]] together. He unlocked a weird new mode where we were talking philosophy with some kind of creature (I think it was a catgirl?)
This is what happens if I go to sleep right after reading books on spirituality lol.
!! Wiki Review
* [[2020.09.11 - Wiki Review: le monke]]
** There's stuff to be happy for, even if life is hard sometimes.
!! On This Day
* [[2019.09.12 - Hex Considerations]]
** Hex maps are awesome.
* [[2019.09.12 - THIS IS MY CALLOUT POST]]
** ahahaha. A classic shitpost.
* [[2019.09.12 - ISSUED]]
** I remember how excited I was. Still barely feels real.
* [[2019.09.12 - sooper seekrit club]]
** I miss clubs. I miss other people. Really this virus stinks.
!! Wiki Review
* [[2020.09.12 - bruh moment alert]]
** I don't think he even has a Switch.
* [[2020.09.12 - Wiki Review: real]]
** Fun to see the shitposting turn up in wiki reviews now.
!! On This Day
* [[LoperOS]]
** He's definitely an odious person. What is it with people that want an alternative to the current computing infrastructure and being reactionary dweebs?
* [[2019.09.13 - clean zine]]
** Have made a few since then.
* [[2019.09.13 - obsession/music]]
** My parents would probably be able to find that song. However, I imagine I'd find it boring if I heard it today (my music taste was not good back then)
*** Music has been the number one way I've connected with my gramps and with some of my closest friends, including my hubby. It's a lifelong passion.
!! Wiki Review
* [[2020.09.13 - Wiki Review: bravo india golf charlie hotel uniform november golf uniform sierra]]
** I wonder what games he might be interested in playing together. Maybe Magic? But I don't have a vintage deck... Commander perhaps?
*** I'm much more of a co-op person.
!! On This Day
* [[Cyberspace Mind-Meld]]
** Cool concept, but I haven't developed it. (story of this wiki)
* [[2019.09.14 - Zodai: 2dl radical plan]]
** The manifesto that lead to WUnd and post-waifuism
* [[Zodai]]
** Much beloved friend.
* [[2019.09.14 - be gay, do crimes]]
** Food is always on my mind. Might make sosig for me and the hubs tonight.
!! Wiki Review
* [[2020.09.14 - Wiki Review: come on by white lies]]
** banger alert
** I really do have trouble developing articles. It seems by comparison h0p3 can just bang one out whenever he has time. Maybe I should start a project to develop the ideas I've left hanging.
!! On This Day
* [[Time in OD&D]]
** All this needs is a column for turn & minute (round) movement.
* [[OD&D House Rules]]
** These are all good. I'm a genius.
* [[2019.09.15 - Adam and the chameleon]]
** Think I'd still give this answer. If I was to meet someone really famous I'd probably lock up.
!! Wiki Review
* [[2020.09.15 - Wiki Review: begging lord shiva for clarity and forgiveness]]
** Really need to revise algorithms and such for my interview.
!! On This Day
* [[「STAND」 Users]]
** I would say "I wish I was a stand user" but honestly, it seems like a hard life =w=.
* [[2019.09.16 - slow down!!!]]
** He has these bursts of activity sometimes.
* [[Campaign Setting]]
** Some day.
* [[Emigration Checklist]]
** Ugh, it'd've been easier if I started on work stuff earlier.
* [[2019.09.16 - the ballad of chameleon and the abyssal]]
** ^w^
!! Wiki Review
* [[Oven Cooking]]
** Nummy bacon and sosig
* [[2020.09.16 - Wiki Review: innaview]]
** Interview with a tech company scheduled, and permanent residence interview soon. It's later than the six months or so I expected, but I think it's coming together.
!! On This Day
* [[2019.09.17 - New homes]]
** Should come back to these.
* [[2019.09.17 - Visa in hand!]]
** Escaping from the UK was the right choice. I kinda miss some things about it, but that's mostly stuff I can get my fill of on vacation.
* [[2019.09.17 - a check for the list!]]
** More like a year =w=. Well, yeah, I'd like to magic my visa into a green card... or a citizenship document.
!! Wiki Review
* [[2020.09.17 - Wiki Review: off to play WoD today, I think]]
** ~WoD was fun. Sketchy GM. `/wave`, as I think I gave 'em my wiki url before :)
!! On This Day
* [[2019.09.18 - tennessee jed]]
** I think that was the actual flight date. IDR. Either way, I got here.
* [[2019.09.18 - paperback writer]]
** Love these answers. Add the Kinsellas to the list!
!! Wiki Review
* [[2020.09.18 - Wiki Review: listen to kinsella bands, cry, repeat]]
** Cried my eyes out listening to my "cryin' songs" playlist:
**# forivadell by Mineral
**# Houses We Die In by PBTT
**# Never Get to Know by Paul Baribeau
**# It Had to Be You by Motion City Soundtrack
**# Teleblister by Clever Girl
!! On This Day
* [[Dvorak]]
** Dvorak is //my// keyboard layout. There are others like it, but this one is mine.
* [[2019.09.19 - we're jammin'~]]
** Ended up not doing anything. I can't really do game programming because I don't have any ideas right now :(
* [[2019.09.19 - queen of carrot flowers]]
** Music is my life.
!! Wiki Review
* [[2020.09.19 - Wiki Review: untitled]]
** That cryin' songs playlist is brutal ;P
!! On This Day
* [[Contact]]
** Not many people have reached out. Maybe I come across a bit scarier on the wiki. Irl I like to think I'm a big softie.
* [[Color tools]]
** Useful.
* [[Tools]]
** Good, unterutilized category.
* [[2019.09.20 - Letterwriting and stuff]]
** Yeah this is a huge insecurity of mine. Especially with cool people who I want to like me `^^;;`
* [[2019.09.20 - ~~~~]]
** Tildeverse is good fun.
* [[2019.09.20 - motorik]]
** Really gets the head nodding.
* [[2019.09.20 - creature of habit]]
** Switched to Lord Shiva's mantra (om namah shivaya). Still a creature of habit.
** I use my library more these days. I have specific playlists. Never thought I'd become a playlist person, but here we are.
Interview in just over an hour. I'm very excited, but also very nervous. I wonder what will come up. I hope it's covered by my notes & cheatsheet.
It went well! I guess if there's anything to gain from this, if not a job, it's that I am a good candidate, good enough to get interviews.
!! Wiki Review
* [[2020.09.20 - Wiki Review: I hope you trust the certificate authorities, fucko]]
** Completed.
* [[TweeGo]]
** Hey, about a year ago I was thinking of making this. Better late than never ;)
** Nice to break the new tiddler drought. Still, ~WikiWork is looking a bit sparse these days :(
!! On This Day
* [[2019.09.21 - RIP Mia]]
** Rest in peace. She's with her waifu now; do it for her.
* [[2019.09.21 - Krautrock shopping list]]
** This is a good list.
* [[PDF/Print/Document tools]]
** Have found these very useful.
* [[Basic Set Dice]]
** This is nice dice.
* [[Cancel/Callout Culture]]
** Must stress that I'm talking mostly about people doing it to their own. I don't see a problem with y'know, dunking on a celebrity or other media figure on twitter, because that usually doesn't affect them. If you have a platform larger than say, hbomberguy, you can't be truly cancelled.
** I wish there was a good answer that was also feasible; of course the best answer is to delete and then ban algorithmic social media like Facebook and [[shitter|birdsite.hell]].
* [[2019.09.21 - more letter musings]]
** I think he just read it linearly. Of course, by this point there's been no reply, so yes, maybe a newer form of HC would help here.
* [[2019.09.21 - the empire strikes barf]]
** Still agree with this take. These days a lot of the really good stuff is having the same realization and is moving towards TV-first. Star Wars is still the king of movies.
*** https://www.youtube.com/watch?v=-gUKYBs6T8c - "Star Wars is such a freaky blend of fantasy, sci-fi, samurai cinema, westerns... It's like a love letter to Cinema. There's a part of every genre in it."
!! Wiki Review
* [[2020.09.21 - nerves]]
** Fingers crossed!
* [[2020.09.21 - Wiki Review: tweego to the polls]]
** The tweego page has been useful. I have local copies of these files.
!! On This Day
* [[2019.09.22 - sleep in interstellar space]]
** [[h0p3]] might like this.
* [[2019.09.22 - ????????]]
** Ended up buying a return ticket then just not returning.
* [[2019.09.22 - I wanna rock]]
** I remember this vividly. Most terrifying experience of my life. This is why Pops is my hero.
!! Wiki Review
* [[French Toast]]
** Yummy, and more importantly, the hubby loves it.
* [[2020.09.22 - Wiki Review: I'd just like to interject for a moment]]
** [[Rare image of me|https://imgur.com/Dn7U7yy]]. I don't have a gentoo install these days, sadly :( but I do have the socks and the thinkpad :)
** He did like it! That's good. I know he's been looking for chillout music lately (he said as much on call).
!! On This Day
* [[2019.09.23 - frozen peach TTC]]
** Lots more on freeze peach on the wiki:
*** [[2020.07.23 - Wiki Review: shameless chame]]
**** Senpai sometimes worries me here. I hope he knows where to be sensible and draw the line.
*** [[2020.01.27 - fto & freeze peach]]
*** [[2020.08.17 - more on freeze peach]]
**** "Debate does not deradicalize" - gem. It takes a very critical and honest mind to accept that your position is untenable. I know that I won many debates with former friends who later went to the alt-right.
No review yesterday (busy day)
!! On This Day
* [[2019.09.25 - speech writing]]
** Ahh. I remember that.
* [[2019.09.25 - the magic number]]
** Yeah, it's difficult to appeal to the moral sensibilities of someone who doesn't understand the virtue of honesty. I think the egoistic case is most accessible to them.
*** A very dark (sociopathic) take on honesty: "Be honest against your own self-interest a couple of times, and you'll gain a reputation for honesty. Then you can lie with abandon." The compulsive liar's secret weapon is a reputation for honesty.
**** I've seen compulsive liars use this. I've used a weaker version of this at school (being moral in a prison isn't always the best way to survive). That life is behind me now. I aim to do better.
<<<
Don’t forget to bring copy of sponsor’s and co-sponsor’s Tax return for 2019 with all W-2/1099 to the interview. Also need proof of sponsor’s and co-sponsor’s current individual annual income . (Letter form employer, bank statements/ paystubs for last 6 months and etc.) And all proof of sponsor’s and co-sponsor’s current individual annual income . (Letter form employer, bank statements/ paystubs for last 6 months and etc.)
<<<
* Tax return for 2019 with w-2/1099
* Proof of sponsor's & co-sponsor's current individual annual income
** Letter from employer
** Bank statements/paystubs for last 6 months
!! Wiki Review
* [[2020.09.25 - Wiki Review: Lazy chame]]
** Fighting sleep deprivation and indigestion right now. The darkness of depression looms overhead. I pray to Shiva I get a job before it settles.
* [[Freeform RP Meta]]
** A whole different world, but much closer to how I like it.
!! On This Day
* [[AmpersandPipe]]
** Unfortunately, &| doesn't work as a tiddler title, and it's hard to use it for links.
* [[2019.09.26 - bootsector assembly tutorials]]
** It's interesting.
* [[2019.09.26 - two to tango]]
** Interesting prompt and answer.
* [[2019.09.26 - merge it]]
** This will probably soon be an issue again.
!! Wiki Review
* [[2020.09.26 - final immigration interview]]
** Nervous but excited.
* [[2020.09.26 - Wiki Review: less lazy chame]]
** Still too lazy to do her wiki reviews on time.
!! On This Day
* [[Musical Aesthetic Prompts]]
** Bit boring lol
* [[2019.09.27 - tmux]]
** Yeah I've been using it recently. Frustrating as. `C-b` is a really bad prefix.
* [[2019.09.27 - there can only be one]]
** Definitely a crow. Or of course, a chameleon :)
** Was this my last day of work? Something close to it.
* [[2019.09.27 - Islandpunk]]
** I love this idea so much. I really should actually write some music for it.
!! Wiki Review
* [[2020.09.27 - Wiki Review: egregious guitar solo]]
** wee widdly wee!!!! GRUNG nyaAaAaAa~!
** There's some prep to do for the interview.
!! On This Day
* [[2019.09.28 - neet lyfe]]
** My birthday is likely to be pretty dull this year.
** Yeah this was when I started the neet lyfe. One year later...
!! Wiki Review
* [[2020.09.28 - Wiki Review: GIVE ME A JOB]]
** NOW
** Coincidentally, it's [[Zodai]]'s birthday today. Happy bday zozo!
!! On This Day
* [[The Joy of Raw HTML]]
** Still do a lot of it. It's good for the soul. HTML, being a variant of XML, is a clumsy bludgeon of a language; but that makes writing it //well// more rewarding.
* [[2019.09.29 - surprised pikachu face]]
** Wrow! I think it's the longest letter I've ever written.
* [[2019.09.29 - SIKE]]
** Damn, I lost that demo. Forgot about it, even. Maybe it's still on my old computer HDD.
[[2020.02.09 - rorschach]] seems to be the first wiki review I did.
I'm thinking of taking a break. I'm not really working hard on the wiki right now. I can come back later with a fresh approach.
!! Wiki Review
* [[Hinduism: Best Verses]]
** Will add to this as I go.
* [[2020.09.29 - Wiki Review: give me a job OR GET STICK BUGGED]]
** Had a bit of luck. Going to an interview tomorrow.
** It's wild how much I used to post :/
!! On This Day
* [[ASCII Chart]]
** Useful.
* [[2019.09.30 - This is my flag now]]
** CTH got baleeted. The flag was a goose stealing another flag, with the caption "dirtbag left caucus"
* [[2019.09.30 - admiration]]
** Empathy to the max.
* [[2019.09 Journal Review]]
** How long have I had the green for? A while now :)
* [[Exterminio - Ordem E Progresso]]
** BANGER
This month I didn't do daily tasks and did things a little more chill. So, with no wiki reviews for this month, I'm going to do one in-place for my journal entries right here!
* [[2020.10.28 - Milestone: permanent resident]]
** Yesss! Feels so good. I've been showing the card off to anyone that'll take a look.
* [[2020.10.25 - stop posting on instagram]]
** PLEASE
* [[2020.10.23 - the chameleon reveals herself from the shifting background, poised to strike]]
** It's nice that kicks is back. I've been enjoying the links. I'll probably put him back on my bookmark bar, pride of place next to [[h0p3]] and [[Sphygmus]]!
* [[2020.10.18 - 100 best fantasy books]]
** I've been reading one that's ok but hasn't really grabbed me yet. I might finish it but not buy the next one. I've been focusing on Kant instead, lol.
* [[2020.10.14 - Overload your encounter dice]]
** Very popular technique on the FKR Discord.
* [[2020.10.03 - breathing techniques]]
** These are cool, and definitely help to relax, but I don't think they're as good as proper meditation.
* [[2020.10.01 - some guy called Jeff skewers the entire emotive hardcore internet scene]]
** Banger of a comment. I'm sure showing this to my old emo friends would get me cancelled. lol.
<<<
I really love this record and I'm not too bothered about the crying either way, I wasn't even aware of apparently such a heated discussion going on regarding that.
The crying didn't make me like the record more, or less for that matter. It comes up in one song only (one good song in a really solid collection of high-energy punk songs), and, short-lived as the band was, it doesn't feel like some performance they put on just for the sake of it.
It sounds like it came naturally, not like it's supposed to be a performance (or some bid to out-emo other bands - from the lyrics or their other projects, I don't imagine this band gave a flying puck about sounding 'emo' or being particularly 'emotional' - it seems they just played the music they wanted out and that's something I can respect, that's all you can wish for in any genre/band/musician/artist/person/...), so I'm fine with it.
Anyway, half a decade earlier, there was crying (or shrieking like a pig that's being slaughtered)... Drink deep... same discussion there, just as unnecessary and completely passing by the lyrics.
One thing that makes me cringe about this 'scene' (rather than the, mostly defunct, bands themselves, which are often great) is how much time people waste raving about how 'emotional' a delivery was (usually 'back in the day' and 'I was there, I sucked on the drummer's pinky toe in a squat that's just how dope I was and today there is nothing like that anymore' - which is ironic since they seem completely and bitterly hung up on the past, yet they're praising bands that often stressed how important it is to live in the moment and be fully aware of oneself in the present and look to the future for change and growth), or that 'the band were crying on stage' and 'this was real emo' (as if, before and after the glorious nineties, no musician and no fan ever felt any emotions or was able to convey feeling musically or lyrically, I mean... LOL!) and what not - instead of talking about the lyrics, the great guitar and rhythm work some of these bands have laid down, etc.
So when I show bands like Navio Forge to friends, I'm not embarrassed about some guy crying. I am embarrassed about all the comments under the videos, debating whether the crying makes this a good, or a bad, song. i.e. the legends and myths that are built around such records - even religions and cults aren't that sappy.
My five cents. No offense intended (despite peppered words) to anyone who feels different.
<<< Jeff [[September 1, 2012 at 4:32 AM|http://doug-wewillburyyou.blogspot.com/2011/09/navio-forge-as-we-quietly-burn-hole.html?showComment=1346495549690#c6935376208883727940]]
* https://hbr.org/2020/09/research-why-breathing-is-so-effective-at-reducing-stress?utm_source=pocket-newtab
* https://www.thedailymeditation.com/sky-breathing-meditation-technique-what-you-need-to-know
inhale for half as long as you exhale, i think (tired. revisit.)
Cool tables & nice idea, similar to my "leveled lists" concept:
https://meanderingbanter.blogspot.com/2018/10/OVERLOAD-YOUR-ENCOUNTER-DICE.html
https://time.com/collection/100-best-fantasy-books/?utm_source=pocket-newtab
This is a fine list. It's a shame it still includes Harry Potter, considering we now know the series didn't lead anywhere good and the author is an evil piece of shit. There are a fair few classics & must-includes as well as some more obscure gems. It would be nice if they didn't include full series (the Wheel of Time, at least, is represented by just the Eye of the World). My quick scroll thought it was a little bereft of sword & sorcery, which is a shame, as that genre has shaped what fantasy is much more than most of the non-S&S classics (via D&D).
I wonder if kicks' little thing with the ''ASTOUNDING DISAPPEARING BLOG'' was a riff on my own wiki being behind a passworded firewall. It's a funny take, but definitely a narcissistic one. I don't know; I look for myself reflected in others far too often. It's part of the CRINGE that is me.
So I think I've escaped Facebook, then I find out there's a decent amount of #content on Instagram. I fucking hate that website, always have. Don't post there, please. It's about as bad as just posting it on fb proper.
Today, with the receipt of my green card, I became a permanent resident of the United States!
What a journey. Shall we go back through the trials and tribulations that got me here?
* Pre-wiki: hubby proposed, hired my attorney. Waiting for visa interview.
* [[2019.07.18 - after work todos]] - earliest mention of visa on wiki.
* [[2019.07.20 - The Internship]] - I had many nasty dreams about the visa interview!
* [[2019.08.30 - 221(g)]] - visa interview. paperwork snafu so wasn't issued on the day.
* [[2019.08 Journal Review]] - paperwork snafu: the cops got my name wrong. Had to wait for a better cert from them.
* [[2019.09.11 - risk/reward]]
** "Feelin' like Josef K" - yep. The whole process is kafkaesque. At least I got a decent lawyer to make it all feel at least a little under control.
** The last few weeks have been a crossroads too. Interviews both immigration and no, and a bloody and drawn-out election coming (hopefully) to a final conclusion next week.
* [[2019.09.12 - ISSUED]] - visa issued and on its way.
* [[2019.09.17 - Visa in hand!]] - visa finally arrived.
* [[2020.05.17 - Daily Task: just drive]] - waiting period for work permit. With covid, everything was in slow motion
* [[2020.08.29 - Wiki Review: fucking references]] - work permit in, but waiting for interview getting frustrating.
* [[2020.09.26 - final immigration interview]] - pre-interview checklist. Actual interview happened a week or so ago.
<<list-links "[tag[Carpe Diem]!sortan[]] +[prefix[2020.11.]]">>
* Interesting stuff going on, despite the quietness of the last couple months.
* Decided to put modified tiddlers in the wiki review, thus making it more interesting!
* Job at last! Started on the last day of the month. What a journey.
** It's going well so far, too. I fit into the team and am already solving hard problems!
* The trifecta:
*# I got my green card
*# Trump lost the election
*# I got a job
* Thus ends a very dark period of my life. I'll likely write about it in the future. Fuck it: [[fixme]]
* Quitting porn. It's a disgusting waste of time.
* [[Non-Linear Time]] in a lot of journal entries (and this review)
----
<<list-links "[prefix[2020.11]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* Up at 7:30. Sieze the motherfucking day, lmao.
* Breakfast burrito. Cheesy, gooey, artery-hardening goodness. A special treat, I think ;)
* Had the shits for no apparent reason. At least I got them out of the system by interview time.
* Interview! Background check place. Sounds like they want me to come in and do ~DevOps for them. Not a bad idea. Would be a good backup if I didn't get my first choice. Good rapport with the interviewer (an Estonian). Less worried about Weds now.
* Nice walk. Shared smiles with a dogwalking dude. It's warm in the sun but cold af in the shade. Feels like November out there. Went for three layers. Listening to either & Old Problems. No post.
* Makin' memes, hating, baiting, shitposting. I guess this is something I'll miss about the unemployed life.
* Lunch on the dot 12. Chicken sandwich, chips, pear, donut hole. Went down pretty nicely; hoping it'll last me until hubby gets back from work.
* The Estonian obviously really liked me, as they penciled me in for tomorrow too! With any luck, I can ring in next week with two job offers. Even just the one would be great - I'm so bloody sick of the jobsearch grind.
* RPGs with Kirby. I felt a little out of it. I'm stressed about all these interviews & the election. It's going to be a fucking bloodbath.
* Hubby came back to take care of some minutiae. Cuddle & quick chat before he went back out there.
* Animal Crossing. There's a loud bug noise but I can't actually find the bug. Found some mushies.
* Hubby home by 7ish. He was hungry. We had chana masala in burritos, which is fast becoming a classic - it just works. Ate that over a few episodes of DS9. Forgot how much I loved that show.
* FMAB finally finished encoding. We'll watch that and snuggle before bed.
* Read some of dgerard's book, spoke with creepy bear, bed by 1am.
!! Wiki Review
* [[The Panic Division]]
** An old favorite. Astounded that I haven't written an article on them already!
!! On This Day
* [[Kopimi]]
** An alternative to the various copyleft licenses.
* [[2019.11.03 - Session Log: 2dl crawl]]
** This was a fun sesh. Shame I haven't been DMing more.
* [[2019.11.03 - kamehameha]]
** I really do hate winter.
** I kinda miss doing these daily tarot readings. Maybe I should pick it up again to finish the remaining ones... [[Daily Tarot Wrap-up]]
* Envy/Ed dreams for some reason. Guess I've been watching too much FMAB.
* Woke up with my alarm at 9
* I couldn't help myself. I had the last breakfast burrito. Yum.
* Finishing off the big collage for the Underground. It looks amazing.
* Brief visit from the hubby. D'aww. Such a cutie. And he's off back to bed.
* I would like to take a walk, but the clothing situation is a bit... I'll wait until after the interview.
* Smart casual at 12:06 for an interview that's at 12:30... ho-hum. Vibing on VC to chill.
* Interview. Nothing much to report, it wasn't a grill-type interview. Mostly just answering questions about previous employers & hashing out what working for them would be like. I'll be honest, this isn't my first choice, but I'd still be happy to get the offer. Getting to the final stage again for the first time in a few months - real bonus.
* Election stress. It's not looking good.
* FMAB & pizza. We're almost at the end now. Six episodes to go - we'll marathon it tomorrow.
* Bed by 11, but woken up at 2ish. lennyed and then went back to sleep.
!! Wiki Review
* [[2020.11.02 - Carpe Diem]]
** It was a good day.
* [[2020.10 Journal Review: The Lost Month]]
** And I'm back!
* [[2020.09 Journal Review]]
** "Bruh" is a great word.
* [[2020.11.02 - Wiki Review: triumphant return]]
** It's good to be back.
** That [[The Panic Division]] article has been needed for a very long time. They've been a favorite band ever since what, 2013 or so.
!! On This Day
Ain't nobody here but us chickens!
* Up at 8:30-ish
** Hubby was sleeping on the couch, Shiva have mercy. I cuddled with him for a bit. I think I got mad because he woke me up last night. He didn't seem upset about it.
* Breakfast was just a nut bar and some juice. All out of those lovely burritos. Probably for the best.
* Interview at 10. Went OK. First few questions were easy, but it got harder as the interview continued. Decent rapport with the interviewer(s) (one had to dip).
* Election results aren't out yet. This will be a nail-biter.
* Gonna take a midday stroll, then eat some lunch.
* On second thoughts, not hungry rn. Give me an hour or so then I'll make a sammich =w=.
** Not ten minutes later, I get pangs. OK, lunch.
* Cute hubby wakes up at 2ish :3
* New Sarah Z! Tumblr history! https://www.youtube.com/watch?v=NZBP_0UTh5Q
** Great video. Enjoyed it a lot.
* mario kart, acnh, chill.
* Shower & listening to Vaush
* Moving into the evening and still feeling good. I think I can feel good about my interview, it was fine & no worse than anything from the last one. Plus I have a manager to wow tomorrow!
* Grazing on chips. Not a good habit, chame.
* Election coverage. Cautiously optimistic? But it'll take a while til we know - likely not until 9ish.
* I'm thinking either leftovers or quensadillas for din dins
* mai daaling came back at 8ish! He's not hungry so dinner is sketchy.
* FMAB binge. Finished the series. It's fucking great. Very sad that I slept on it for so long despite...
** Checking out the 2003 series when I was younger
** Having one of my best friends ([[Shedu]]) tell me to watch it
** Watching some of the early episodes with my ex
* Late dinner. Almost 11:30. Time to turn the computer off. I'll need rest for my final interview of this round tomorrow.
!! Wiki Review
* [[The Quest For A Better Word Than "Waifu"]]
** Given a pretentious name to make it funnier. Seriously, it's very silly but very important to the community.
* [[2020.11.03 - Carpe Diem]]
** OK day, but full of anxiety about jobs & election.
* [[2020.11.03 - Wiki Review: She do be back doe :flushed:]]
** What happened back then? Maybe I was too busy to wiki?
** The fact that I missed talking about TPD means there's still lots of stuff to talk about on the wiki.
!! On This Day
* [[2019.11.04 - no no! meido-san dess]]
** Meidos~ We love them.
* [[2019.11.04 - cybergrind]]
** Fun fact: this article used to have zalgotext in the title, but this fucked up the console version of tiddlywiki.
* [[2019.11.04 - Mastery]]
** I hope my programming is good enough to get a computer toucher job
* [[2019.11.04 - bizarro fiction]]
** The compilation is great. The dildo salesman story is a highlight.
* Up at 8:45. Slept fine, bar a wakeup at 6ish. Good that I did, though, as my alarm was off - not that I needed it in the end, as I got up before it woulda rang.
* Ugh, something weird is happening to my ear. Feels like a pressure buildup, but it's not going away. Maybe it's stress from all these bloody interviews.
* No news overnight. Patience. This is a nailbiter.
* Nut bar, OJ, pills for brekkie. Keeping it simple, lol.
* Speaking of nailbiter, it's going to be another 90 minutes before my interview. God.
* Interview went well. Mood today is cautious optimism.
* Quick call with the parents. Lovely to see their faces as always. Had fun and a bit of a laugh about the whole process. Good to know they are there to support me if money gets tight over the next month or two.
* Hubby woke up. He wanted subs, and who am I to argue? but first...
* Interview prep for a FAANG company. Absolute shit-show. 1500 words of prep notes. I'm really hoping I get another offer so I can gleefully say I'm no longer on the market. I don't want to work with those psychos - save the recruiter, he's a nice person at least, just a shame he works for such an awful company.
* Subs! Yummy. America's greatest crime is hiding the cheesesteak from the rest of the world. We watched DS9 as we ate.
* Watching election results. Today's mood indeed.
* Moving computer back to the desk after a long week of using the kitchen table. Much comfier and cosier. And my drive is plugged in again!
* Saving lots of gyaru girl pics =w=.
* ~WoD, fun way to spend an evening.
* Sonic & DS9. My burger was nice but I think they overdid the tomato & pickles. I could barely taste the burger...
* Bed by midnight.
!! Wiki Review
* [[2020.11.04 - Carpe Diem]]
** It was a pretty good day. Cautiously optimistic about the election. Same with regards to jobs. I'll get hired soon, I know it. It just takes time.
* [[2020.11.04 - Wiki Review: electoral cottage]]
** Extreme metal at the level of grindcore is kinda difficult to find & discover. Almost all of the bands are really underground. Even other metal fans don't like e.g. pornogrind.
!! On This Day
* [[2019.11.05 - Readers]]
** ~MangaDex is the acceptable manga site.
* [[2019.11.05 - heroes]]
** That Cirno manga is a banger. It really gets across //why// she's the strongest.
* Up at 7ish
* Snuggling on the couch under my blanket, watching the election news roll in. Trolled /pol/ a bit. It looks like Gramps squeaked it in.
* Nut bar for breakfast. Delicious & nutritious. Pear & chips for a snack in a bit here.
* Hubby up for a shower at half-twelve. Cuddled and shared election news.
* Maccas! https://www.youtube.com/watch?v=d4vReXKqq68
* We watched DS9 as we ate again. It was the Q (THE JOHN DELANCIE CHARACTER NOT THE CONSPIRACY THEORY) episode.
* Listening to Quo & Mischief Brew, scrolling and waiting for election/employment news. Might put the oils on next. Yeah, [[why not|https://www.youtube.com/watch?v=u_nwu9KF4bw]]. Mood: cheerful & upbeat.
* Friday night magic. Commander at the shark table again. Did shit, but I don't care because I'm really there for the banter.
* Chili dog & bacon dog from cookout - yum. DS9.
* Not much chance of election news, so bed just after midnight.
!! Wiki Review
* [[2020.11.05 - Carpe Diem]]
** Pretty nice day yesterday. The election was moving in the right direction and has only gotten better overnight.
* [[2020.11.05 - Wiki Review: cautious optimism]]
** Nothing much back from the jobs front. Monday at the earliest, I think, but hey, the day is young. Another interview already scheduled for Tuesday, in case I get a rejection.
!! On This Day
Ain't nobody here but us chickens!
* Up with alarm at 9.
* Election coverage - and Biden wins! Discounting ratfuckery, he is the 46th President of the United States.
* I should get some food. I'm just enjoying the maga meltdown atm. 4 years of catharsis.
* Pear, chips, nut bar, OJ & pills. I'll eat properly when I'm not busy laughing and ejaculating everywhere.
* Darling up at 2:30ish. Cuddle & sharing the good news. Celebratory gyros tonight!
* The one time I wish I had cable. SNL is going to be brutal for the psychos tonight.
* I wonder where [[Desu|Former Friends]] is right now. Probably malding. Doubly since WI went blue.
* Got my chores done, despite procrastination.
* Watching SW 9 waiting for hubby to get back. Awful, just awful, and I actually liked TLJ.
* Hubby got back safely. Celebratory gyros!
* Got familiar with the rules of cricket, just out of morbid curiosity. Despite being a brit, I never bothered before now. It seems the basic game itself is actually rather simple (I could probably explain it to an American by contrast with baseball). The crazy language basically just describes fielding & different ways to bowl or bat - again, rather like "pop fly to center".
* Browsing /x/ looking for gems. 4chan will be a bit crazy until the election fervor completely boils off, but many of those people live in bizarro-world anyway.
* Bed by midnight. Loud cracks in the night. In my half-asleep paranoia I thought it was gunfire, but hubby reckons it was just fireworks.
!! Wiki Review
* [[2020.11.06 - Carpe Diem]]
** Nice cosy Friday.
* [[2020.11.06 - Wiki Review: hopium]]
** Nothing on the jobs front yesterday either. Very unlikely I'll get anything over the weekend. Gonna sit back and wait until Monday.
!! On This Day
* [[Why I'm not on the online left]]
** [[You Cannot Win]]
* [[2019.11.07 - *shakes fist* liberals]]
** "radlib" is another one - it means "someone on the left that I disagree with".
* [[😳]]
** flushed emoji. yes, this is my "lewd" category.
* [[feeding talktotransformer shit from my id]]
** "shimapan tastes like a real bowl of sushi – it doesn't just taste like a bowl of rice." Instant classic =w=. I miss this website.
* [[2019.11.07 - bax]]
** "was too busy smashing away on my typewriter" - haven't got it out for a while. Mite b cool.
** Still no income stream ;; but getting closer.
* Woke up with my alarm at 9.
* Nut bar brekkie. Out of OJ, so I had a ginger ale.
* ACNH. Raddle asked to leave, but I said no. Lily was sick :( It was raining, which was a bit depressing, so I didn't play too much.
* Mario Kart. Constantly get ratfucked in that game.
* Little bit of election gloating before lunch.
* Sammich. Yum.
* Hubby woke up at 2. We grabbed the shit from the store then headed home. Nothing special.
* Bit more gloating. Taking a shower in a sec.
* Hubby arrived as I was drying off.
* Some more Mario Kart.
* Quensadillas! Yes, I added an N. Yummy. Not good for me, but very yummy nonetheless. DS9 as we ate.
* Gonna call it an early night. Yup, before midnight and slept well.
!! Wiki Review
* [[2020.11.07 - Carpe Diem]]
** Another nice day. Not sure what to do while waiting for Monday.
* [[You Cannot Win]]
** Great analysis of the lefty election bind.
* [[2020.11.07 - Wiki Review: bye bye donny]]
** Amazing how very active days can be followed by absolutely dead ones.
!! On This Day
https://www.youtube.com/watch?v=HnyB0a8G71Y
* Up with the alarm at nine-hundred.
* Email from my would-be employers. Just got the references stage to get through! Very very promising.
** Messaged my references to let them know what was coming. I'll catch up with them again tomorrow morning.
* @copingmaga got banned, oof lol. Well, they're still malding.
* Called my parents to share the promising news & to complain about the horrid FAANG interview process =w=.
* ACNH, greeting the hubby, chips, nap.
* Chores. Nice and easy.
* [[MATH THE BAND|https://www.youtube.com/watch?v=v5iRxXCJA2g]]
* Banter with the folx still stuck in the old country.
* Hubby home at a decent time. [[Chana Masala]] & Trek.
* Made a bday list for MIL.
* Bed by midnight.
!! Wiki Review
* [[2020.11.08 - Carpe Diem]]
** Nice quiet Sunday. Very glad that my Monday results came so quickly.
* [[2020.11.08 - Wiki Review: deicide]]
** I'm gonna have to be happy with doing wiki reviews & carpe diems for now, I think.
!! On This Day
* [[2019.11.09 - uh oh, stingy]]
** Wow! Him getting that job was a while ago, huh?
** Having no job has curbed my sugar mommy side, lol. Hopefully this'll change soon.
* Up at 9:00
* Did the bad thing again. You should stop. Every time you do it you feel shitty & paranoid. It's not worth it.
* Breakfast. The usual.
* Chilling with Kirby
* Drafting a refusal for the FAANG company.
** Dad reckons I should keep it short. "You want to keep it short and a bit cryptic because it will be on file. So you need to keep the option of another application open." His suggestion was nice and simple. I'll probably go with it.
* Yeah I feel like an open sewage duct. Fucking kill me.
* Played some Baseball Stars for NES. Fun little game. If only I could learn how to field properly...
* At least the hubby cheered me up. Cuddles & stuff, then Arby's. Yummy reuben.
* F1 youtube.
* Quick hello to [[h0p3]].
* I don't even remember what I did most of the day.
* Leftovers & DS9.
* Bed by 11.
* Up at 9.
* Quick brekkie.
* Chat with a recruiter at 9:30. Keeping the irons hot.
* Lunch at 1 I think. I'm thirsty and I'd like a meal with my drink ;)
* Yum. Nice sammich and those lime doritos - so good.
* Browsing /x/, cleaned the toilet, cleared the dishes.
* VOX/Cult of Saturn arg/creepypasta. Great stuff. Very spooky. https://discover.hubpages.com/politics/trailofdeceit
* Hubby had a crappy day. But he's home now!
* Youtube downtime. SPOPPY
* Hot dogs, DS9.
* Joined an /x/ discord. Love the crazies.
* Went to bed at a reasonable time.
Dark ~DnB; [[Neurofunk|https://en.wikipedia.org/wiki/Neurofunk]]
* https://www.youtube.com/watch?v=XyGRJMb3C1s
* https://www.youtube.com/watch?v=tdggU6f1VBA
* https://www.youtube.com/watch?v=By3gVRlEpZk
https://ironcthulhuapocalypse.bandcamp.com/
Forgot to do a wiki review yesterday. I was feeling sorry for myself.
!! Wiki Review
* [[2020.11.10 - Carpe Diem]]
** Lame day.
!! On This Day
* [[2019.11.11 - The Reivers - Star Telegram]]
** Fun band.
* [[Game: 2dl Crawl]]
** This was very fun. Wish we could do this again.
* [[Cardinal Virtues]]
** Good to have this sort of thing on-hand.
* [[2019.11.11 - Kill your TV]]
** I remember doing questions, way back when =w=.
* Up at the usual time for the usual brekkie.
* Nothing back from would-be workplace yet.
* Went on the /x/ discord again. Too many nazis, not enough schizos. Maybe later in the day.
* Chick-fil-a! They may be a bunch of homophobic shitters, but they make a damn good chicken sandwich.
* DS9. We finished season 1.
* Hey, life's good.
* Stir craziness cure: we went to see the in-laws, then went to Denny's.
* At almost 10pm, I checked my email to find that the company I really wanted to work for had "good news" for me and wanted a call. I scheduled a call for tomorrow (13th). This call lead to [[a job offer|2020.11.14 - the good news]].
* Bed before midnight.
!! Wiki Review
* [[2020.11.11 - noided music]]
** GOOD SHIT
* [[2020.11.11 - Carpe Diem]]
** OK day.
* [[2020.11.11 - Wiki Review: better late than never]]
** Some day I'll do some daily tasks again. I miss the tarot cards tbh.
!! On This Day
* [[Animal Collective]]
** About as deep a band as you can get before getting into jam bands, really. They even have interesting live performances.
* [[Indra's Net]]
** Despite the name, it's not really [[Hinduism]]. At least, not as far as I know.
* [[2019.11.12 - kindness]]
** I'm trying to teach the waifuists how to be a good person. Sometimes I succeed, sometimes I don't. I'm not the best role model in the world. I've done some truly awful things in my life. IA2DYJ, friends.
* [[2019.11.12 - kickscondor: web (spider's)]]
** Ahh 4chan, how I wish I could escape thee.
* [[kickscondor]]
** I like him. I hope he gets on Discord s'more.
* Up when I felt like it, at about 6:30.
* Simple breakfast. Out of oj :(
* Wiki update and chill.
* Funny dream with [[Lofty]] in it, and also a better [[ACNH]] halloween event:
*# There's a ghost creature in a tower in the island
*# He calls you over and you have to go find a villager and get a gift for him from them
*# If he doesn't like the gift he turns them into... //a human!// (dum dum DAAAAAH)
* Vibing, emails, ACNH.
* Leftovers for lunch.
* Music & walk.
* Twin Peaks. Watched the pilot & episode 2. Wow, this show is drawing me in.
* Hubby got home at 7ish. Hugs, chili, grilled cheeses, DS9.
** Hornel Chili with beans. Very yummy. Will have to get it again.
* Cooling off in the evening.
* Thought I'd left the cheese out, but I hadn't. "I may be dumb, but I'm not stupid!"
* Bed before midnight.
It's embarrassing having my English accent constantly pointed out to me, so I'm thinking I might try to drop it.
https://www.youtube.com/watch?v=yc47FqB3Cw8 https://www.youtube.com/watch?v=71HZyrjx_jI
* Hard R sound (rhotic accent) - caR (en_us) vs caa (en_gb)
** Apparently the rule in en_gb is to only pronounce an R if it's followed by a vowel - car VS craft
* Medial Ts become Ds - liddle (en_us) vs little (en_gb (RP)) or li'le (en_gb (cockney))
* "The" distinction - thee animal, thuh park (vowel VS consonant).
* U - oo vs ew - stoopid (en_us) vs stewpid (en_gb)
* O in some words, like hot, shot, not: hut, shut, nut (en_us)
* Vocab differences - truck VS lorry, garbage VS rubbish. https://www.youtube.com/watch?v=YSkfGGetZ7o
---
Hugh Jackman (en_au accent) says he has phrases that get him to think in the accent: https://youtu.be/wlyue6_so4Y?t=158
* I went to the park to see the animal in the water.
** I went to ''thuh'' ''paRk'' to see ''thee'' animal in ''thuh'' ''wadder''
* How many times have I asked Sam whether or not his daughter has a learning disorder?
* Dude, I'm not feeling too hot.
!! Rhotic shit
* Work
* Beer
* Color
Yesterday - 2020.11.13 - I got a job offer from the place I really wanted to work at. They'll be hiring me as a fully remote Golang developer for six figures a year. I'm speechless. This is just about perfect.
I'm going to get a bunch of equipment as part of being hired by them, too, including monitors. I look forward to my new <span style="text-decoration: underline overline;font-weight:bold;">HIGH POWERED BUSINESS WORKSTATION</span>!
Didn't do anything on Friday the 13th, whee~
!! Wiki Review
* [[2020.11.12 - Carpe Diem]]
** A good day and an even better tomorrow.
* [[2020.11.12 - Wiki Review: fear saturn]]
** 4chan is eternal. [["Don't forget, you're here forever."|https://imgur.com/a/BnH4n87]]
!! On This Day
* [[2019.11.14 - latinx screamo]]
** I forgot about this. Good shit.
* [[2019.11.14 - download doujins from hentai cafe]]
** lenny face
* [[2019.11.14 - ghosts]]
** I like this one a lot.
* Up with the alarm. Hubby couldn't sleep.
* We went to ihop. Had the chicken fajita omelette - very underwhelming, don't order again, flavor profile bland & unbalanced.
* Starbucks afterwards. Got a mocha. Feeling good.
* Twin Peaks marathon. All the way up to season 2.
* French toast for dinner. Not bad. Mostly just for hubby's sake.
* S2E1 of Twin Peaks. More questions than answers.
* Bed by midnight, after staying up later than usual ~WikiWorking.
!! Wiki Review
* [[2020.11.14 - drop the accent]]
** The accent will probably drop itself as I start to use less British slang and start to use American pronunciations. I've already switched from "mokka" to "M''OH''-ka". Rhotic-ness comes next, I guess.
* [[The Three Episode Rule]]
** Always followed, except for the very worst series.
* [[2020.11.14 - the good news]]
** This is the most excited I've ever been for an opportunity in my life. It feels like I've finally found the reason I stuck with programming over linguistics all those years ago. I feel like I've finally got a good answer for my critics and all those that doubted me; and a moment of celebration among those that love me and have supported me, even just a tiny bit, throughout the years. Dear friends, thank you. Thank you from the bottom of my heart.
* [[2020.11.14 - Carpe Diem]]
** That chili is bangin'. Can't believe something so yummy came out of a can. Wonder if they do single servings.
* [[2020.11.14 - Wiki Review: "are ya hired son?" "Yes."]]
** Forever. It got too real for me for now, though. I'll be back.
!! On This Day
* [[2019.11.15 - Over notation cheats]]
** Useful.
* [[2019.11.15 - stand or die]]
** "I'm better when I'm standing" is my go-to joke now. Maybe it makes the blood flow better.
* [[Dragons at Dawn]]
** Probably abandoned due to the author realizing Dave really played with a [[Free Kriegsspiel Revolution]]-style "ruleset".
* [[2019.11.15 - star platinum]]
** Yeah, I was already sick of my accent a year ago.
* Up when I felt like it, at 7:30 or so.
* Simple breakfast. New OJ was fine.
* Twin Peaks.
* Hubby woke up at 11:30 demanding Sonic. We went and got some. Yum.
* DS9. An episode with everyone's favorite Ferenghi troll, Quark.
* Hubby left at 2ish for work.
* More Twin Peaks.
* Chores, walk, ~WikiWork.
* Yet more Twin Peaks while the slow part of the chores happens.
* Hubby came home at a reasonable time.
* Deadball thoughts. I guess bat-and-ball sports are for nerds like me.
* [[Breakfast Burrito]]s & DS9. Hubby loves breakfast for dinner =w=.
* Had a little trouble sleeping, but got there eventually. Bed just after midnight.
!! Wiki Review
* [[2020.11.15 - Solving Mysteries]]
** Like Laura Palmer, this will sink into a rabbithole in time.
* [[2020.08 Carpe Diem Vault]]
** I wonder why I stopped doing them?
* [[Carpe Diem Vault]]
** A tag with no tiddler is a terrible thing!
* [[fixme]]
** Right as I remove the one fixme on the wiki...
* [[2020.11.15 - One way communication log?]]
** Audio logs. These are fun.
* [[2020.11.15 - Carpe Diem]]
** It was a typical relaxing Sunday.
* [[2020.11.15 - Wiki Review: wrow day]]
** [[Carpe Diem]] is a measurement of what went down, but I think [[Wiki Review]] often records how I feel much better.
!! On This Day
* [[Omelette]]
** Num num num.
* [[2019.11.16 - manners & hard work]]
** Ironic that I dreamed of an old teacher last night, one that always valued hard work. I have an audio log where I describe it. My old manager was there doing the same thing: scolding me for my laziness. Be warned, little [[chameleon]].
* 9:00 am wakeup call.
* Out of TP. Thankfully we had a spare roll for cleaning up after lenny.
* Looking for more dark ambient/videogame music for my playlist.
* Twin Peaks. Introducing a new storyline, and a hint of the white lodge
* New ACNH update coming the 19th!
* ~WikiWork. Lots of new stuff to look into.
* Cheesesteak for dinner.
* Bed between 10-11.
I had an enlightenment experience much like Brad Warner's bridge experience in April 2017. To hear it now it reads like a koan, so I won't repeat it, but it's on [[Spiritual Computation]].
I have two great impressions of enlightenment: Happiness/relief, and disappointment. The reality is that it bumped me up a [[Kegan level|https://vividness.live/2015/10/12/developing-ethical-social-and-cognitive-competence/]] and cured my depression, and that's about it.
Curing depression is no small feat, for sure. I've been sad, but never depressed, since then. I've even recognized the patterns of depression //trying// to set in and dispelled them easily. It's definitely worth cumulative hours in meditation to shake something so awful as depression, so I have no regrets.
However, you might expect enlightenment to have a bit more flash. You might expect //being// enlightened to think on a higher level than everyone else. Attempting in vain to avoid arrogance, I can definitely say I think smarter (though not harder) about things than vast swathes of people, but I'm not an übermensche.
I realize now that my work is not done. I am seeking [[An Enlightenment Beyond Enlightenment]] - SSJ2 to my SSJ. I am working to map the fields beyond.
!! Wiki Review
* [[Stances, Not Systems]]
** A [[David Chapman]] idea, of course.
* [[God]]
** Bruh.
* [[Religion and Spirituality]]
** New tag announcement. I love that symbol. Has both an "as above so below" feeling as well as a feeling of [[Radiant Light]] which is as close to a universal as you get with religion.
* [[2020.11.16 - Carpe Diem]]
** Fine day. Mostly [[Twin Peaks]].
* [[2020.11.16 - Wiki Review: anal-yze 😳😳😳😳😳😳😳]]
** I love the expressiveness of the flushed emoji.
!! On This Day
* [[2019.11.17 - anime weirdos]]
** This day was infected with pre-covid wants. God, I hope cons survive. I've only been to a couple but I loved them.
* [[2019.11.17 - donuts]]
** Dad may yet come to the USA. Not too likely to be soon, though, thanks to covid.
* Up with alarm.
* Simple breakfast.
* Dark ambient & ~WikiWork.
* Twin Peaks. Finally met the trans lady (Denise) & got a quick explainer of the White Lodge & Black Lodge.
* Chips & PB&J for lunch. Yum.
* Chores, videos, the usual lazy day stuff.
* Pan pizza and DS9 for din dins!
* Bed at a sensible time.
!! Wiki Review
* [[Music: Mixtapes]]
** Should have been in a category all along.
* [[Autowriting/Free-writing/Scattered Thoughts]]
** Just a place to put interesting scribbles that come to me.
* [[2020.11.17 - Enlightenment is disappointing]]
** They tried to warn me.
* [[An Enlightenment Beyond Enlightenment]]
** A new category for post-enlightenment thoughts.
* [[Twin Peaks]]
** Absolute banger of a show.
* [[2020.11.17 - Carpe Diem]]
** Comfy normal day. It's nice to go back to being lazy now that my job is in the bag, lol.
* [[2020.11.17 - Wiki Review: black yukon sucker punch]]
** [[HOLY SHIT! IS THAT A MOTHERFUCKING TWIN PEAKS REFERENCE?????????|https://www.youtube.com/watch?v=FzqSn7OgQdY]]
** Much more wiki activity than there has been recently. Manic/Depressive cycle, eh?
!! On This Day
* [[2019.11.18 - gumshoe & delta green]]
** Basically Cthulhu + Conspiracies. Awesome.
* [[PC milestones]]
** Hey, I like these.
* [[2019.11.18 - age of lies, will you open your eyes?]]
** Some amount of lies, even if just by omission, is necessary to hide the shadowy regions of the self for social cohesion.
* Up with alarm
* Simple breakfast
* ACNH. New update yay!
* Special day today ;)
* Sub for lunch yum
* DS9
* Vibing.
* Dinner with the fam. Tacos are delicious.
* Little more DS9 before bed.
!! Wiki Review
* [[2020.11.18 - Carpe Diem]]
** Seeking things to do to make lazy days less lazy.
* [[2020.11.18 - Wiki Review: sounds in the dark]]
** Busy day. Writing more about enlightenment and planning out next steps in my spiritual journey is something I //wanted// to do with Spiritual Computation, but the linear time of the blog didn't lend itself well to that. Breaking free of the tyranny of reverse-chronological is one of the great things about TiddlyWiki. [[New article announcement|Non-Linear Time]].
** The problem with the wiki review is that it can make you feel lazier than you are if you had a quiet day. It also only counts //new// articles rather than //edited//. Maybe I should do a list of tiddlers with ''modified'' date yesterday. That may end up with lots of metadata on long-running articles.
*** It would be nice to have a reverse search for this. "Where was [x] article reviewed?" I guess the list is: "list of tiddlers tagged 'wiki review' which link to this tiddler". Would be nice to have a clicky box somewhere in [[Admin]] for that.
!! On This Day
* [[2019.11.19 - English style]]
** English is a very playful language, and I love that about it. I doubt any other language is played with as much by e.g. LGBTQ+ folx.
* [[2019.11.19 - fediverse thoughts]]
** Fediverse is great fun. I'm still there, though I'm not exactly a heavy user. [[Contact]].
* [[2019.11.19 - chame said trans rights]]
** This still holds true. I can never abandon my friends.
* Usual wake-up process.
* Sanskrit study.
* ~WikiWork.
* Zaxby's.
* Meeting with the rental office/whatever that's called. Another year on the lease.
* Magic. Lost my deck :( Had to play with [[The Abyssal]]'s Elesh Norn deck, which is no fun because it's a spike deck so everyone targets me.
* Cook Out and DS9.
* Bed just after midnight.
!! Wiki Review
* [[2020.11.19 - Carpe Diem]]
** Those tacos were so good. My mouth waters just remembering it. Yummy.
* [[2020.11.19 - Wiki Review: just a day]]
** Completed. Yesterday was pretty busy, so I didn't get around to doing it until now. Stuff to think about.
!! On This Day
* [[2019.11.20 - tdor]]
** [[2019.09.21 - RIP Mia]]. We miss you.
** I should really think of something I like to do for exercise.
** ~~the death of robinhood ;)~~
* [[2019.11.19 - emo musings]]
** Positive Feedback Loop. He was fun and I miss him.
** Some emo songs are upbeat in sentiment. It's not all Sad Hours.
* Usual time.
* Laziness.
* Brekkie.
* Hubby found my lost Magic deck! Yay.
* Forgot my meds. woops. Took 'em with some water.
* Made a banner thingy for the wiki: [[chameleon-banner.png]]
* General ~WikiWork.
* Lunch: sammich and chips
* VC with [[h0p3]]. Mostly talking about the wiki, diffs and shit, and general chatter. His wife was in the background too. Very lovely chat.
** He wants a way to use his computer from any room in his house but NOT via a software solution. Tricky problem. Not sure if there is a solution, at least not with my hardware knowledge.
* Chores.
* Surfing. [[https://invisibleup.com/]] is a nice site!
* Alex wants to self-host his YT videos. We chatted about how that might work. I don't think he wants me as his webmaster because I'd want to go full [[brutalist|https://brutalist-web.design/]]. We also chatted about Sega.
* Hubby came home earlier than usual. Snuggles, cheesesteaks, DS9.
* Bed before midnight.
!! Wiki Review
* [[Non-Linear Time]]
** Brick jokes?
** There was a really good article about the tyranny of RCO, but I lost it. It might've been linked on [[href.cool|https://href.cool]].
* [[2020.11.20 - Carpe Diem]]
** OK day. Too much grumping. Hope I didn't upset the hubby.
* [[2020.11.20 - Wiki Review: seek govind, O fool]]
** When you meet your appointed time, not even your grammar will save you.
** Sad how high the churn is for internet friends. I remember most of them more fondly than my lost irl friends, too. I've been primarily Online™ since leaving uni.
*** It would be nice to meet more irl friends. However, the lack of a third place is a barrier to that; especially in the covid age. I guess the Magic shop kinda provides that; they will let you hang around if you just toss them a few dollars for drinks. Still, that doesn't broaden my horizons much more than the internet, as it's all the same types of folx.
!! Modified
* [[2020.11.19 - Carpe Diem]]
** Completed.
* [[2020.11.19 - Wiki Review: just a day]]
** Completed.
* [[Stances, Not Systems]]
** Fleshing it out with Chapman stuff.
* [[Wiki Review]]
** Wrong edit.
!! On This Day
* [[2019.11.21 - skelly banter saudade]]
** I miss him, even if that time wasn't all sunshine and roses.
* [[2019.11.21 - serve justice]]
** Two sides to every story, maybe. I still don't really buy it.
* [[2019.11.21 - Antipleonasm Analysis: Buddhism]]
** I think he since came around on [[David Chapman]], so it'd be interesting to see if vajrayana knowledge shifted his thoughts on this.
* Up with alarm
* PB&J for brekkie
* ~WikiWork & reading the news.
* 95.5 FM has decent country music :o
** [[Radio]]
* Phone setup: [[Android Apps That Don't Suck]].
* Lunch. Sammich, chips, pear, cake! Nice and full and satisfied.
* Decided to get a new racing game: Hotshots Racing for Switch. Good fun.
* Baseball for NES. I kick ass, but only if I can use the time travel on the emulator ;)
* Dinner: hotdogs and DS9.
* Bed by 11ish.
!! Wiki Review
* [[chameleon-banner.png]]
** Made in GNU™ the GIMP®
** Inspired by [[https://invisibleup.com/links/]]
* [[Weird Music: Sunn O)))]]
** Getting back into them. Last listened in like 2016. Guess I was too busy exploring [[Emo]] to focus on the other stuff I love.
* [[2020.11.21 - Carpe Diem]]
** Very nice Saturday.
* [[2020.11.21 - Wiki Review: Mapping out the mind in non-linear time]]
** I like the new "Modified" section. It works really nicely.
** [[Wiki Review]] is a perennial place for Feelings™, it seems.
!! Modified
* [[2020.11.20 - Carpe Diem]]
** Completed.
* [[2020.11.11 - noided music]]
** Added some dark ambient.
* [[Seizon Senryaku]]
** Expanded. Now has more than just the translation.
* [[Autobiography]]
** More on 2020.
!! On This Day
Ain't nobody here but us chickens!
* Up at 8:30, new alarm time.
* Simple breakfast
* Hotshots & ACNH
* Lunch time
* Made an xmas list.
!! Wiki Review
* [[Radio]]
** Not really something that I've been into in the past. It might be a way for me to discover new music.
* [[Android Apps That Don't Suck]]
** Invaluable resource. As always, I'm trying to write the tutorials I wish I had been able to read.
* [[2020.11.22 - Carpe Diem]]
** Days are getting kinda meh tbh. I should start a hobby or something to do during the day.
* [[2020.11.22 - Wiki Review: jump blues gf]]
** I really do need to look into a metadata extractor. h0p3 said it could be done in the tiddler's fields. Maybe.
!! Modified
* [[2020.11.21 - Carpe Diem]]
** Completed.
* [[Wiki Review]]
** Changed. Now displays wiki reviews created in the last 30 days.
!! On This Day
* [[2019.11.23 - h0p3's response to buddhism]]
** "One Of The Good Ones™", hehe. [[h0p3]] put this on my wiki page. I remain hopeful that I'll give him a positive image of Westerners that follow Indian traditions.
* [[2019.11.23 - return; ambition]]
** I've always sucked at sports, and physical activity in general. It was a source of bullying back in school.
* Up before alarm at 8ish
* Simple brekkie
* Vidya games
* Lunch - sammich, pear, cake.
* Work laptop came. Lots of fighting with KDE until I realized I just needed to install the NON-FREE PIG DISGUSTING nvidia drivers. Great setup. The laptop's name is `parvati`.
* Leftover pizza, DS9 and chill with hubby.
* Bed before midnight.
!! Wiki Review
* [[2020.11.23 - Carpe Diem]]
** It's "Hotshot Racing" actually. lol. It's great fun. Unfortunately I've mostly beaten it.
* [[2020.11.23 - Wiki Review: actually good country]]
** Can't think of what to say about this one.
!! Modified
* [[2020.11.22 - Carpe Diem]]
** Completed.
!! On This Day
* [[2019.11.24 - create]]
** I've been creatively dry lately. Maybe it's being cooped up all the time.
* Up with alarm at 8.
* Cuddled with hubby for a bit before he went back to bed.
* Simple breakfast
* Gyarus, chilling with SaltyFox, and news.
* Woke up the hubs & chilled with him for a bit
* ACNH & Hotshot Racing
* Chores, incl. shower
* Late lunch - pb&j
* Some vidya games.
* Snuggu with hubs. Leftover pizza. DS9.
* Bed by midnight.
!! Wiki Review
* [[2020.11.24 - Carpe Diem]]
** Setup was fun until I reached the monitor issue. For future reference, if your monitor is blank except for a cursor or a static image of the desktop at the time you enabled the monitor, you need to install graphics drivers.
* [[2020.11.24 - Wiki Review: Quiet... Too quiet...]]
** I don't know why I'm so creatively dead. It could be any one of a million possible reasons.
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[Meidos]]
** Some nice meidos I rolled up for Maid RPG.
* [[Weird Experiments]]
** Mostly unused.
* [[2019.11.25 - power & privilege]]
** The "strongman daddy uwu" brainworm still infects people.
* Happy Thanksgiving!
* Up at 8 with alarm
* Simple breakfast
* ACNH turkey day event!
* Quick ~WikiWork before I wake up the hubs.
* Turkey dinner... //with gravy...//
* Coffee ~~coma~~ nap
* Spilled my headphones into my coffee. Absolutely seething. Thankfully I have a spare from work.
* Whitecastle and DS9!
* Cheering up and being there for SaltyFox. It's a tricky time.
* Late to bed (bit after midnight). Was reading some funny articles about our LOSER president!
!! Wiki Review
* [[2020.11.25 - Carpe Diem]]
** Salty is a treasure we must protect.
** It's kinda weird to be... back into video games the way I have been. I pretty much quit after [[Mass Effect 3]]. It's been a while since I last played daily (probably not since back at the height of my TF2 phase).
* [[2020.11.25 - Wiki Review: what's the point of life without gyarus]]
** Indeed.
** nvidia can go die!
** High time for the strongmen to be on the purged end for a change.
!! Modified
* [[2020.11.24 - Wiki Review: Quiet... Too quiet...]]
** Completed. That last new tiddler was escaping a quick review.
* [[Cute, fun, interesting, etc.]]
** Removing Saturn. He's turned out to not be trustworthy.
*** Fuck, Saturn, synchro?
!! On This Day
* [[2019.11.26 - hail satan!]]
** Oh man. I need that bot. haha. I imagine I'm going to actually enjoy my new job, though.
** Said on the review [[after|Non-Linear Time]] this one, but I'm no satanist.
I like this new mechanic a lot. It gives me a lot more to write about wiki progress.
* Bleary-eyed 8am wakeup.
* Simple brekkie, as always.
* SaltyFox seems better today. Him and his partner see me and mine as role models ''♥''! So cute. I wish them all the happiness!
* Shooting the shit with [[Zodai]] too.
* $uicideboy$ & synthwave.
** Speaking of, we had an NSP covers binge on the way home yesterday. https://www.youtube.com/watch?v=vwvfnfyOJvo https://www.youtube.com/watch?v=NL69wXXp0mo
* Chick-fil-a. Had the chicken strips. Homophobes make great chicken?
* Bit of DS9 before MTG.
* I'm sure that I did something else, but the next thing I remember was MTG. Commander with Korvold. Did OK but didn't win any (it's not a winning deck). Finally caught new friend's name, begins with C.
* Cook out, DS9.
* Bed, around midnight I think.
!! Wiki Review
* [[2020.11.26 - Carpe Diem]]
** Nice thanksgiving all told.
* [[2020.11.26 - Wiki Review: hail satan, fuck saturn]]
** Saturn can fuck right off!
** Hailing Satan is much more an anti-Christian thing than a pro-Satan one. In reality I don't believe in Satan, much less worship him.
!! Modified
* [[2020.11.25 - Carpe Diem]]
** Completed. Found it kinda tricky to remember everything I did.
!! On This Day
* [[2019.11.27 - Delta Green wallpapers]]
** Nice papes.
* [[2019.11.27 - scott the woz lore]]
** I love the lore aspect to Scott's videos. They feel like a affectionate-parody reconstruction of the likes of Linkara. TGWTG without the horrors they inflicted on each other.
*** It's a shame I mostly only watched Doug & Spoony back then. I was there, but I was the equivalent of "in a drug coma forWoodstock". I guess I was just a little too young.
* [[2019.11.27 - change again]]
** Most of 2020 was actually stalled. I spent a long time stuck in paperwork limbo. I'm glad I finally got a job and my greencard. This year has had a silver lining.
* [[2019.11.27 - pointcrawl]]
** Pointcrawl is pretty great, as it allows you to quickly visualise the fastest route, and allow more ambiguity in terrain (which is arguably //more// genre-friendly than exact maps - even Tolkien's maps were in-universe artifacts that contained ambiguities and inaccuracies).
# The Scott Alexander [[THEY ARE TRYING TO CENSOR ME moment|https://blog.coinbase.com/upcoming-story-about-coinbase-2012afc25d27]].
# The actual [[NYT article|https://www.nytimes.com/2020/11/27/technology/coinbase-cryptocurrency-black-employees.html]].
https://www.discogs.com/lists/Die-Kosmische-Liste/619039?page=1&limit=250
Extremely large quantities of krautrock/kosmische musik
!! Wiki Review
* [[2020.11.27 - "modified" in wiki review]]
** I'm having cases where modified today is the same as new yesterday!
* [[2020.11.27 - Carpe Diem]]
** Yesterday was a pretty normal Friday.
* [[2020.11.27 - Wiki Review: twibpaianlatd]]
** 2020 has a silver lining for sure. Getting rid of cheeto hitler is one that everyone (except chuds) can agree on.
!! Modified
* [[2020.11.26 - Carpe Diem]]
** Completed.
* [[2020.11.26 - Wiki Review: hail satan, fuck saturn]]
** Completed.
* [[SaltyFox]]
** I didn't know he was born in Germany! Awesome.
!! On This Day
* [[2019.11.28 - thanksgiving]]
** Adopting is definitely something we'd like to do in future. I think we could give a kid a loving home.
* [[2019.11.27 - yet more osr exploration]]
** Modified 3:20 am. Haha. I was definitely not sleeping then =w=. It's nice that I've been able to fix my sleep schedule.
* Up with alarm at 8. Setting it back for work tomoz.
* Tried the new coffee pods with brekkie. It's really more of a coffee flavored hot choccy, but super yummy and definitely helped me to wake up. Will try again!
* Shitposting & archival with SaltyFox.
* Shower. Couldn't delay it any longer and still live with myself. Squeaky clean now.
* Sammich. Tried it with aioli this time. Was yummy.
* Chores and shit. I probably played acnh.
* Went shopping with the hubs. Or maybe that was Saturday, idk.
* Cheesesteaks for din dins.
* Bed to wake up for work!
No Carpe Diem yesterday. It was a normal day really.
!! Wiki Review
* [[2020.11.28 - Die kosmische Liste]]
** Yum. Enough music to last a lifetime (though not for a renaissance listener like your humble correspondent).
* [[2020.11.28 - Coinbase is racist, film at 11]]
** As always, when reactionaries complain about censorship, they're really complaining about criticism.
**# Criticism is censorship.
**# Fascism is centrism.
**# All criticisms from the right are projections.
* [[2020.11.28 - Wiki Review: Tricky days, but friendship makes it easier]]
** Yesss. Love my friends.
** My sleep schedule is so square now, lol.
!! Modified
* [[2020.11.27 - Carpe Diem]]
** Half-completed. This is several days old by now. I'll REALLY complete it today.
!! On This Day
* [[2019.11.29 - the romantics]]
** Big Joel has done a couple of callout posts on School of Life.
* [[2019.11.29 - growing up]]
** Still broke, but only for another fortnight (as of Tuesday).
* Up at 7:30, new alarm time, to start at 8.
* WORK!
* Lunch at 12. We had to hurry, and I had to eat in the car (and end up wearing it). Cheesesteak & tomato soup, very yummy.
* WORK!
* Knocked off by 4pm.
* Quick ACNH.
* DS9.
* Pizza & more DS9. Got to season 4, yay.
* Some choons.
* ~WikiWork before bed. Gonna aim to hit the hay by 10.
Recently I quit pornography, which has re-energized me quite a bit, on top of getting a job. My days should hopefully be more focused, and I should be able to do more interesting things!
Some thoughts:
* Stories; fanfic or original.
* Programming - games, utilities, more
* ~WikiWork - expand [[The Weird]].
* Making music. Both songwriting and working on my tone (I'm thinking of buying a tube screamer with my first paycheck).
!! Wiki Review
* [[2020.11.29 - Carpe Diem]]
** Fine Sunday. Last day of n33t lyfe.
* [[New Age Music]]
** Listened while working today. It's good for that.
* [[Music: Journal]]
** As always, [[Journal]] is the easiest to re-categorize.
* [[Music: Artists]]
** Surprisingly high number of these articles.
* [[Music: Genres & Scenes]]
** Some of these are kinda old.
* [[2020.11.29 - Wiki Review: x-files theme but with a bangin' donk]]
** Not done yet, ope.
!! Modified
* [[2020.11.27 - Carpe Diem]]
** Completed. Good day.
* Recategorized [[Music]] tiddlers:
** [[Weird Music: Sunn O)))]]
** [[The Panic Division]]
** [[Phish]]
** [[Tweemo]]
** [[Indian Classical Music]]
** [[Animal Collective]]
** [[The Fall]]
** [[Synthwave]]
** [[The Grateful Dead]]
** [[Metal]]
** [[Emo]]
* [[Music]]
** Compressing it, similarly to what I did with [[Computing]].
!! On This Day
* [[2019.11 Daily Tasks]]
** These archives don't contain metadata and are thus rather uninteresting.
* [[2019.11 Journal Review]]
**
* [[@: hypertext 2020]]
** Really fun. Wish kicks would've used Discord more.
* [[/mai/]]
** ~EmiSu owns "/mai/" now, but the real board died in 2016, and the final remnants of it had dissolved by Q3 2020.
* [[2019.11.30 - meeting chameleon irl]]
** Ahhh, pre-Covid days. Yeah, this sort of thing would obviously be much harder these days.
* [[2019.11.30 - dislike]]
** Queen of Cups is my ultimate transition goal.
* My motivation just absolutely crashed.
* Almost nothing that isn't a review in here...
* I really hate writing wiki reviews about other wiki reviews about other wiki reviews. Low wiki motivation is a vicious cycle.
* This is probably the lowest the wiki has been, even including the lost month (at least the stuff I did do that month was cool). ''0/10, see me.''
---
<<list-links "[prefix[2020.12]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
* Up with alarm.
* Simple breakfast + coffee.
* WORK
* More homophobe chicken + DS9. The buffalo sauce dip is so. fucking. good.
* WORK.
* A little ACNH to cool off after work.
* Chickpea leftovers, vibin, DS9.
* Bed by 10 or so.
!! Wiki Review
* [[2020.11.30 - Terminal time]]
** Transcending beyond the need for horny!
* [[2020.11.30 - Carpe Diem]]
** First day of work, very comfy.
* [[2020.11.30 - Wiki Review: weekee rewoo]]
** Was thinkin' yesterday about how the `title.Title` (in h0p3's jargon) is never really relevant to the article, or is inane when it is. I might do what I do with carpe diem and just have the `title.Tag` (ditto).
** I wonder if, as more journal entries get written, I should segregate journal silos by year. It depends how unwieldy they get, I suppose.
!! Modified
* [[2020.11.29 - Carpe Diem]]
** Completed, as best I could.
* [[2020.11.29 - Wiki Review: x-files theme but with a bangin' donk]]
** Completed.
!! On This Day
* [[2019.12.01 - chameleon: Just-in-Time Kohaiships]]
** A good letter. Kicks is much more deep than I am, in some ways.
* [[2019.12.01 - courage and work]]
** Ordinary people pushed into heroic deeds - that's true courage to me.
* Up at usual time for usual brekkie.
* WORK!
* Taqueria for lunch. Carne asada burrito.
* WORK!
* Wally world. Food restocking.
* Cheesesteak & DS9. They forgot my cookie :( Very sad.
* Bed 10:30-11 range.
!! Wiki Review
* [[infinite_mao: how i rpg]]
** c.f. [[Freeform RP Meta]], but from a [[SWORD*DREAM]] direction rather than a forgie one.
* [[2020.12.01 - Carpe Diem]]
** Nice day.
* [[2020.12.01 - Wiki Review: this part of the tiddler title is p useless]]
** I still do feel horny, I just don't waste my time with pornography any more.
** `title.Title` is almost always just a pun or in-joke.
** Would be nice to have more interaction with Kicks.
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[Bookbinding]]
** A cool rabbithole for later.
* [[2019.12.02 - convenience]]
** Internet is even more important in the covid age. Imagine being stuck at home without internet! Though to be fair, I'd probably spend the time reading all the books on my shelf, of which I have many unfinished or even unstarted.
* Usual time
* WORK!
* Zaxby's. I like their nuggies slightly better than homophobia.restaurant, tbh.
* WORK! First patch merged today, woop woo!
* DS9, then Twin Peaks. Fish fry!
* Quick ~WikiWork.
* Gonna bed by 10ish.
!! Wiki Review
* [[2020.11 Journal Review]]
** Not done yet.
* [[2020.12.02 - Carpe Diem]]
** I was and still am very bummed out that I didn't get that cookie.
* [[2020.12.02 - Wiki Review: chimkens]]
** Louis Jordan wrote more than one song about chickens.
!! Modified
* [[2020.12.01 - Carpe Diem]]
** Completed.
* [[Journal]]
** Review update.
!! On This Day
* [[2019.12.03 - lenny]]
** Finally have the job, the car comes next!
* [[2019.12.03 - it's easy being green]]
** Green ever since! For reference, the internal links used to be yellow and blue, after Haruhi's hair ornament & Kona's hair color respectively. I believe they were red at some point, too, but I don't recall exactly when. AFAIR, the external links have always been cyan.
* Usual morning routine.
* WORK!
* Gyros and DS9!
* WORK! Feels good to have a Friday night again :)
* FNM. I really need a standard deck again.
* Cook Out to round off the day. Nothing like a good burger for a comfy evening.
* Bed by midnight or thereabouts.
!! Wiki Review
* [[Gnosticism]]
** One of the most interesting religious movements of all time. Rich and detailed cosmology, and a gorgeous theology.
* [[2020.12.03 - Carpe Diem]]
** Twin Peaks remains amazing.
* [[2020.12.03 - Wiki Review: no cookie for chame :(]]
** God I'm so food motivated. Lol.
!! Modified
* [[The Big Picture]]
** Putting it into [[An Enlightenment Beyond Enlightenment]]. No real modifications for now.
!! On This Day
* [[2019.12.04 - spaaaaace]]
** Oh gosh I would love to go to space. To feel weightlessness, to look at the pale blue dot from above, to see the stars and the planets of the solar system... Gosh.
*** I can certainly understand, if not necessarily agree with, F's point about her political thoughts being entirely motivated by wanting space travel.
* Up at 8ish, weekend time :D
* Twin Peaks!
* Turkey grilled cheese, yumm
* Shower
* ~WikiWork
* Actually finished [[Twin Peaks]], at least the original show. Prequel movie & season 3 next.
* Bed by midnight
!! Wiki Review
* [[2020.12.04 - Carpe Diem]]
** 99% of these reviews are what I've been eating. Not proud of that, lol. I've not been eating well. We need more home-cooked meals and less borgar.
* [[2020.12.04 - Wiki Review: cookout for chame :)]]
** Todo now.
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[The Quote Mines]]
** Dumping place for quotes that need a home.
* [[2019.12.05 - trophy]]
** gifted child.mp4. Yeah, I recognize a lot of those complaints. I had to actually work for my A-levels, though, so I was able to slay that dragon. I do still struggle with it when it comes to computing stuff though, and finding something to do at work when I've not got anything explicitly on my plate remains an unsolved problem.
* [[2019.12.04 - hex paper]]
** Really cool generator.
* Up at weekend time
* PB&J for brekkie
* ACNH and chill.
* Vibing.
* Another turkey grilled cheese, yum.
* Walk. Lovely to get some fresh air. Listened to some music, too. Spotify is pretty cool.
* Some more acnh + Hotshot.
* ~WikiWork
* Turkey burger for dindins. I LIKE TURKEYS
* Hubby brought apple fritters to make up for the lost cookie <3 I love him.
* 10-11pm bed.
!! Wiki Review
* [[2020.12.05 - Carpe Diem]]
** Chill Saturday.
* [[2020.12.05 - Wiki Review: chubbe chame]]
** Thinking of doing yoga. It's an exercise I could both justify to myself and use to help lose weight.
!! Modified
* [[2020.12.04 - Wiki Review: cookout for chame :)]]
** Completed.
!! On This Day
* [[2019.12.06 - New blog announcement!]]
** Meidos & Monsters has some good essays on it. Hopefully it doesn't suffer the same fate as [[Spiritual Computation]]
!! Wiki Review
* [[2020.12.06 - Carpe Diem]]
**
* [[Carl Jung]]
**
* [[acnh: Black Lodge]]
**
* [[2020.12.06 - Wiki Review: bloggin' chame]]
**
!! Modified
* [[2020.12.05 - Carpe Diem]]
** Completed.
* [[Spiritual Computation]]
** Updated with notice that it's closed now.
!! On This Day
* [[2019.12.07 - ☠️☠️☠️☠️☠️]]
** I still do. Going back to school would be a nightmare. Being an adult is so much better. Best time of your life? feh.
!! Wiki Review
* [[2020.12.07 - Wiki Review: queen dolly parton for mayor of nashville]]
** We stan a queen.
!! Modified
* [[2020.12.06 - Wiki Review: bloggin' chame]]
** Completed.
** I've always struggled with blogs, and yet I've been posting to the wiki near daily for over a year.
!! On This Day
* [[2019.12.08 - students]]
** Haha. Solid advice.
!! Wiki Review
* [[2020.12.08 - Wiki Review: solid]]
** Wiki posting can wane with effort. Right now it's lower effort. I'm focusing on my work - it's important to me that I don't fall into a rut like I did in my last job, or my career will just be floating from one junior position to another. I'd like to build a solid foundation at my current place. If I'm going to be working for 40-odd years, I might as well make it good.
* [[N]]
** Awww, yeah... EN!
!! Modified
* [[Autowriting/Free-writing/Scattered Thoughts]]
** Tentatively adding N.
!! On This Day
* [[2019.12.09 - star platinum za warudo]]
** Was interesting analyzing the major arcana according to the stands in JJBA.
!! Wiki Review
* [[2020.12.09 - Wiki Review: diligent chame?]]
** Not diligent enough to do my [[Carpe Diem]]
!! Modified
* [[2020.11 Journal Review]]
** Completed.
* [[fixme]]
** Adding backlinks.
* [[The Blue Whale]]
** Formatting, adding pogchamp.
* [[UsefulLinks]]
** Adding the backlinks operator. Could be something I've been looking for.
!! On This Day
* [[Free Writing]]
** Should do some more. It's fun.
* [[2019.12.10 - magician's money]]
** Goody-two-shoes answer. I wonder if my current job will allow me to do something similiar, at a smaller scale.
* [[2019.12.10 - roguelikes and OSR]]
** Not done! What h0p3 calls SCWR.
* [[Blog Ideas]]
** Mostly geekery.
* [[2019.12.10 - dirtbag]]
** Yeah, I still like the term.
!! Wiki Review
* [[2020.11 Carpe Diem Vault]]
** Vaulted.
* [[2020.12.10 - Wiki Review: lazy chame]]
** :V
** So damn lazy.
** Secure Contain Waifu Rabbithole
!! Modified
* [[Freeform RP Meta]]
** Added to a little. I notice the forge is back up, in archive form. No posts since 2012 which kinda explains their waning influence. I wonder why they shut down? 2012 was a long time ago so information is sparse.
* [[Carpe Diem]]
** Updated to display this month's entries.
!! On This Day
* [[2019.12.11 - wAIfu voices]]
** That video of Twilight Sparkle reading out Kant though.
* [[2019.12.11 - what the fuck]]
** Hahahaha. I just had a O.o moment again looking at this hilarious prompt.
!! Wiki Review
* [[2020.12.11 - Wiki Review: hotel uniform golf sierra 4 yankee oscar uniform]]
** Time to catch up.
!! Modified
* [[2020.12.10 - Wiki Review: lazy chame]]
** Completed, at last.
!! On This Day
* [[2019.12.12 - teach and share]]
** Miss her. Though, really it's rather good that I went the direction I did; there's not much money in linguistics, and thus I may have not been able to afford emigration.
* [[2019.12.12 - shut the fuck up chameleon]]
** waifupunk 2077. Love it when my waifu's fat hog clips through her clothes. MMMMMMMM
!! Wiki Review
* [[2020.12.12 - Wiki Review: india lima oscar victor echo yankee oscar uniform]]
** Might get it once they fix the bugs, & once [[Avalokiteshvara]] is ready =w=.
** Actually caught up today - no need to complete any other wiki reviews.
!! Modified
* [[2020.12.11 - Wiki Review: hotel uniform golf sierra 4 yankee oscar uniform]]
** All I could find about the forge was that it wasn't supposed to be a permanent thing? And that they had achieved what they wanted to (which, I suppose, is getting story games out there). Still, their influence has definitely waned since then. The Big Model is basically not a thing any more.
* [[2020.10 Journal Review: The Lost Month]]
** Updating link to the following:
* [[2020.10.28 - Milestone: permanent resident]]
** Added the milestone tag & TitleTag.
!! On This Day
* [[2019.12.13 - knights]]
** Well, laziness definitely isn't a new problem :P
Wow, two nothings!
!! Wiki Review
Ain't nobody here but us chickens!
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2019.12.15 - chamecringe]]
** Yikes. Didn't need to be reminded of that.
* [[2019.12.15 - new time system]]
** Yesss.
* [[2019.12.15 - slow]]
** Oh gods, prophecy. It's been a slow year.
eh. lazy lazy lazy.
!! Wiki Review
Ain't nobody here but us chickens!
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2019.12.17 - YouTube considered harmful]]
** I hate youtube so much.
* [[2019.12.17 - separation and poverty]]
**
!! Wiki Review
* [[2020.12.17 - Wiki Review: wikiiiii]]
** At least trying to get back to two in a row. I don't know where my motivation went...
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[Forth]]
**
* [[2019.12.18 - watch out, here it comes]]
**
!! Wiki Review
* [[Persona]]
** Really been enjoying it so far.
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2019.12.23 - s.w.i.m.]]
** If you hate piracy as much as I do, you will not do this.
* [[Text Art: amfoot]]
** [[Emo]]. Definitely recognizable but rather fuzzy.
* [[2019.12.23 - monadic analysis: seekrit.club propaganda]]
** I love the propaganda page.
* [[2019.12.23 - inspiration unknown]]
** I think my main vice might actually be arrogance.
<<list-links "[prefix[2021.01]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
Talking about a person who dubiously claims Irish identity ("I'm from clan ~McIntyre! I'm a Celtic Pagan!"); logs edited to protect the innocent:
```
chameleon Today at 10:22 AM
honestly I can kinda get wanting to connect with an identity you may only dubiously have
as someone that has been a -boo for just about any culture in the world
Anonymous A Today at 10:23 AM
Oh for sure
chameleon Today at 10:23 AM
late capitalism is shitty and it's very tempting to immerse yourself in legends of some place that's magical and wondrous by comparison
Anonymous A Today at 10:23 AM
It's very relatable.
chameleon Today at 10:23 AM
even if you actually went there and found the same grey cities as everywhere else, lol
Anonymous A Today at 10:24 AM
But I feel you owe it to the identity you claim to not be an asshole about it and to do at least some research.
chameleon Today at 10:24 AM
fo sure. not defending them. lol
just that I kinda understand where this comes from
No-one wants to be a WASP lol
Anonymous B Today at 10:25 AM
You can connect with your heritage without being offensively wrong which is def what they did
And it definitely is different in america, as a lot of our cultures are from our ancestors (I mean this loosely, its closer to great grandparents or a generation or two back from that) that immgrated here
Like im p much... 2nd gen american I think
2nd or 3rd gen depending on parentage
If you really want to connect to your roots, you won't act all raucous about it like IM THIS (blatantly incorrect) CLAN SO THAT MEANS IM Y!!!
You'd make an effort to actually learn and understand where you're from
```
The comparison with *boos seems very apt. It's something I'm weak to myself<<ref "B">>, and I think it stems from the inherently unattractive nature of just being a WASP<<ref "w">>.
Is this a general late capitalism thing? Or is it unique to WASPs?
For the former:
* There are examples of other cultures doing the same thing
** Japan's obsession with France & the English "perfect gentleman".
** Also Japan: Christian symbolism in anime because it's cool and exotic.
** There's a huge diaspora of folx from India, not all of whom keep the rich traditions of [[Hinduism]] alive. I've received a lot of genuine-seeming surprise from Indians that I've spoken to that I'm //not// Indian (and I'm not, I'm white British going back to the stone ages, afaict, lol) and have no heritage to that effect.
** There's historical examples, too: https://getpocket.com/explore/item/when-europe-loved-islam
* Classic adages like "the grass is greener on the other side" spring to mind; if you're unhappy where you are, somewhere else will seem "magical and wondrous". This is probably a universal human phenomenon.
** What seems mundane and boring to me will seem cool and exotic to someone on the other side of the world.
For the latter:
* Protestantism is, especially in its advanced form, uniquely unattractive. It lacks meaningful rituals, and seems to be about being as unfun as possible.
* WASPs in particular are in a unique spot. As the originators of settler-colonial capitalism, their culture has been the template for those that are forced on other people<<ref "c">>. As a result, actually trying to engage with your culture will feel more like staring into the abyss in the center of capitalism.
** Note that the targets of *boos are sometimes people that aren't far removed from them; changing one or two things and only a few hundred miles (e.g. to Ireland, which is a short hop from England, or to Orthodoxy which is not overly far away).
Maybe instead of adopting other cultures & other traditional religions, we Monads should craft our own [[Syncretism|Esoteric Syncretic Tewïsm]]
----
<<footnotes "B" "at different times I have been an unironic weeaboo, chinaboo, and indiaboo, as well as a *boo for various European cultures, mostly in the extreme North & South">>
<<footnotes "w" "White, Anglo-Saxon Protestant">>
<<footnotes "c" "quote: “Maslow's Hierarchy is literally just the chakras! When colonizers do it it's science, when anyone else does it it's ‘magic’ or ‘made up bullshit’.”">>
!! Wiki Review
* [[2021.01.02 - no-one wants to be a wasp]]
** I feel like this is one of the better & more informed insights I've had lately. It goes a long way towards explaining an interesting, and relatively modern, phenomenom.
* [[Hidden]]
** spoopy!
* [[Meta Tags]]
** Useful!
* [[DarkColor]]
** Needed an explanatory article.
* [[2020.12 Journal Review]]
** This one's kinda sad. It was a bit of a slow month.
* [[2020 Yearly Review]]
** 2020 was definitely a slow year in terms of creativity. That job search was absolutely brutal, too.
!! Modified
* [[Religion in D&D: "Rethinking Clerics & Religion"]]
** Putting it in the new(ish) category, [[Religion and Spirituality]].
* [[Journal Review]]
** Updated for yearly review + December monthly
* [[Journal]]
** Ditto
* [[Music]]
** Added Nietzsche quote
!! On This Day
Ain't nobody here but us chickens!
(Nothing to do with today's events in the news).
Interesting witch/pagan blog. Vetted, seems to be genuinely anti-racist, left-wing, and trans-positive.
* [[Wonder Woman on my Altar|http://www.incitingariot.com/2017/07/wonder-woman-on-my-altar-making-space.html]] and pieces linked:
** [[Pagan Secret|http://www.incitingariot.com/2009/08/pagan-secret.html]], which he disavows, from 2009
** [[Playing with God-Doh|http://www.incitingariot.com/2010/09/playing-with-god-doh.html]]
* [[Yes, This Is Our Paganism|http://www.incitingariot.com/2020/06/yes-this-is-our-paganism-llewellyn.html]] - exposé on racism/cultural appropriation in pagan publishing.
<<<
Am I suggesting that we all start replacing statues of the gods in our home with action figures? Not necessarily, but I'm definitely saying I wouldn't look at you sideways if you did. The way I have come to understand the divine and our relationship with it is that it doesn't seem to care what name you have to give it in order to have a relationship with it. It existed before humans gave it names. It existed before humans divided it up into cat-headed goddesses and robed gods of sunshine and long before those same humans started clothing their gods in spandex.
I think the point of having a relationship with the gods is to have a relationship with oneself. To be able to dig down inside yourself through story and song and folklore to find your better parts and bring those to the surface. To, from time to time, polish that spark of divinity that resides in each of us, that connects us to the universe and to one another. Our ancestors spoke of Hermes and Frigg and Anansi in order to help give order to the unknown forces around them. But, the point was that they spoke of them. They told stories of their feats and raised cups on their holy days and drew power and gave offering to their slowly changing faces, because behind the names were the wind and rain and stars and slow, burning cycle of the universe.
And I've stopped caring whether you want to call your goddess Wonder Woman or Athena or Inanna or Mother or, simply, Goddess. Certain sects of Wicca teach that the Goddess has no face, because she wears all faces. She is all goddesses, named an unnamed. The God is all gods named and unnamed. And they are each, in turn, simply iterations of a primal divinity. The more I study what is known and what is believed by spiritualists the world over, the more that idea feels right.
<<<
<<<
The Pagan community is a fairly unique religious community in that it has almost no centralized authority. While this is controversial depending on what brand of Pagan you practice, by and large people can call themselves practically anything they want - Priest, Priestess, High Mugwump, Grand Poobah, etc - and there's really nobody that can come along and invalidate those titles. We have no grand governing body. We have no Bible or recognized holy text, though there are many books floating around the various Pagan communities that many might consider liturgical
<<<
!! Wiki Review
* [[2021.01.06 - inciting a riot]]
** Cool blog. The pagans are an interesting example, especially with what he says about how they lack a centralized authority. They're the [[FKR]] of religion.
*** Of course, many religions lack a "pope". However they usually have at least a body of holy texts - even the Baha'i do.
!! Modified
* [[@: h0p3]]
** Just a quick haro hawayu. I love you too, [[h0p3]]!
!! On This Day
Ain't nobody here but us chickens!
!! Wiki Review
* [[Pagans]]
** Interesting little community.
* [[2021.01.07 - Wiki Review: love4h0p3]]
** ^w^
** Two wiki reviews in a row? What are you up to, chame!?
!! Modified
* [[2021.01.06 - inciting a riot]]
** Tweaking, fixing the pronouns, adding a quote.
* [[Free Kriegsspiel Revolution]]
** Aliasing [[FKR]] to this.
!! On This Day
Ain't nobody here but us chickens!
I was wondering why I hadn't seen him on Discord for a while. He's [[『Paused』|https://philosopher.life/#Relic%3A%E3%80%8EPaused%E3%80%8F]]. Here's [[h0p3]]ing things look up and we get a chance to VC over Discord (or elsewhere) sometime soon!
I love you, [[Senpai]].
Closer to manual. I am not inclined to care or to scold myself thereof.
!! Wiki Review
* [[2021.01.14 - h0p3 taking a break]]
** Here's sincerely hoping he gets his mojo back - if he lost it! If not then hey, see you round and hopefully sooner rather than later!
* [[Phantammeron]]
** Social conservative, much like Tolkien. There is always an issue. Nobody is perfect.
*** Remember well, my little spark of the divine, that everyone draws a limit on the frozen peaches at some point.
!! On This Day
* [[2020.01.14 - patience]]
** Patience is a virtue; [[patience is its own reward (but few are satisfied with it)|http://english.ahram.org.eg/NewsContent/32/98/172824/Folk/Folk-Arts/Proverb-of-the-day-Patience-is-its-own-reward,-but.aspx]].
!! Wiki Review
* [[Yin and Yang]]
** Important context.
* [[2021.01.14 - Wiki Review: om namah shivaya]]
** Did it by hand, to include an older article I wanted to review.
* [[2021.01.14 - h0p3 taking a break]]
** He's Persona now. What's up with that?
** We can chat on Signal.
!! Modified
* [[Twin Peaks]]
** Added the "Fire, walk with me" poem.
!! On This Day
* [[2020.01.15 - h0p3-work]]
** I did end up checking out this operator. It's very cool! I'll work later on a practical application.
* [[2020.01.15 - an oral history of tlw]]
** This sort of thing lead me to start wiki review-ing, and also to adding modified tiddlers to wiki reviews
* [[Dear Reader]]
** Lead me to looking at ReadMe as well. These articles are good, but they lack something.
* [[2020.01.15 - imgui]]
** Ended up making a really good program with it.
* [[2020.01.15 - sukeban-sama]]
** ~
!! Wiki Review
Ain't nobody here but us chickens!
!! Modified
* [[An Enlightenment Beyond Enlightenment]]
** Just linking the IASIP clip.
* [[@: h0p3]]
** Don't die, or you're fired!
!! On This Day
* [[2020.01.18 - Hypertext reading]]
** All these folx' ideas for non-web hypertext are brilliant. Just wish there was some bread.
* [[2020.01.18 - the Big Cheese]]
** I was too young to really know him. It's a shame. The more I hear about the man the more I wish I was around when he was around.
!! Wiki Review
* [[Classical Elements]]
** Make sure you have noto fonts so you can see the alchemical symbols!
* [[2021.01.18 - Wiki Review: chimken borgar]]
** I'd have so many stories to swap with him. It would be legendary.
!! Modified
* [[Shedu]]
** Added a list-links for tagged tiddlers.
!! On This Day
* [[2020.01.19 - bbbbb]]
** I forgot to mention that I actually got in fights with some of the fuckers, lol.
* [[Filename Scheme]]
** This turned out pretty well. Most of my waifu files follow something like this now.
Sorry emo police, nothing your shitty ``real emo'' bands ever did can match the might and glory of the best emo album of all time: the [[american football ep|https://americanfootball.bandcamp.com/album/american-football-ep]].
!! Wiki Review
* [[2021.01.30 - five silent miles]]
** :^)
* NoPublic
** Have needed this for a while.
!! Modified
* [[Bim Bom]]
** Tagging these songs.
* [[Exterminio - Ordem E Progresso]]
** Ditto
* [[Music: Songs]]
** Renaming this, since it's a subcategory.
!! On This Day
* [[2020.01.31 - fave books, za maindo]]
** A sharp mind is like a sharp sword, hence the association between the swords and the intellect.
* [[2020.01.31 - vaush gets a letter from a tankie]]
** Vaush is a treasure.
* [[ffmpeg]]
** The page of mine that I use the most.
<<list-links "[prefix[2021.02]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
We had a nice vc.
I'm thinking about his... salience algorithm? stuff. `feedbag 2.0: it came from goland!` hey, you can populate lists with link logs. hey, you could run it once every hour. even do it as a service - one person gets one minute of each hour divided. Goroutine runs in the background, updates the feed. Nice. Load a cached copy on page load. Cache updated hourly.
We talked about philosophy. I have an "internalist" pov? externalist about external reality. Struggled to put some things into words, as always. human perception is flawed, we're always working off incomplete information, we have to make assumptions about how things are outside of our limited perception (I assume and continue on as if I'm certain the sky outside hasn't fallen).
I should focus on programming. Meh. I'm still not sure I can be satisfied. Talked about how exciting starting a new project is and how boring it is to improve a MVP.
I mentioned nya of [[Former Friends]] fame to [[h0p3]] in our vc today, and I'm forever reminded of the absolutely asinine opinions she used to hold, lol.
I think she was also a winpleb, I don't remember for sure. And when I mentioned that I was supremely unimpressed with Polish food, preferring a good curry, she got upset, roasted me on my tastes in women (which was funny) and said some pretty bigoted things about Asians (which was not).
I often wonder what she's up to these days. Is she still out there holding stupid positions, 100% certain that she's correct? Have the last... four or so? years taught her some nuance, that I was right all along? I don't know. I hope she's well and living her best life.
nya, if you're reading this, my discord is the same as it always was. HMU. Love you.
https://cdn.discordapp.com/attachments/491839305459695618/811054649288687616/EuTUmeQXUA8t79V.png
pluck the fruit of THUNK from the tree of MIGHTY THUNKS
no but seriously you should try and map stuff out with trees it'd be really cool.
<<list-links "[prefix[2021.05]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
Oh hey.
I haven't posted on the wiki in about 2 months. That's wacky. I don't know if I've ever had such a long hiatus before.
I moved away from the old computer to a new one (which I'm typing on right now - I'll tell you the specs in a bit). In the mix, I didn't get around to figuring out a way to get the wiki setup on it. It's been running Windows for games and such, so I had to do some tweaking to get the `wiki` shell function setup. And I was shaving a yak for a while because I needed to get a terminal editor working on msys2... [[it's almost ready for primetime|https://github.com/japanoise/emsys]].
Current mood is... decent. I'm having a bit of trouble with remembering and dwelling on bad old memories of my school days lately, and I need to see a therapist about that. I'm working on it without actively making any progress unfortunately.
I love Konata, as always. [[My Waifu Folder]] hit 5 gigs, at least on NTFS. Backing it up is a serious problem now. I guess I could fit 4 or so copies on a BD-R? Alongside a checksum file that'd be a good idea. Apparently gold-coated archival disks have a lifespan of 100 years!
I rediscovered a childhood classic - [[TrackMania|https://en.wikipedia.org/wiki/TrackMania]]. I'm sure if you knew where to look you could find some classic chame cringe.
I've been working very hard. It's pretty interesting to be back at work. I had a hiatus of about a year between leaving my old job in 2019 and getting my new one in 2020. I'm a permanent home-worker so no office shenanigans for now. I do miss that about the old workplace, even if I don't miss commuting!
However, on topic to that, I got both covid vaccine shots. The second one was in mid-April, so I should be safe now. Not a moment too soon, as my asthma has not been kind to me lately. Hubby got his first shot the other day, so he'll be good soon as well.
I have a new worldbuilding project, including conlanging. It's an [[Islandpunk|2019.09.27 - Islandpunk]] utopia. I'm thinking of getting a solo game running in the setting, just to explore it and get some stuff written.
The new setup is pretty seamless so, hopefully, I'm back!
!! Wiki Review
* [[2021.05.01 - The Big Return]]
** Well, we might've found the problem. The air filter was clogged up so bad there was mold in it. Replaced now.
** I might do more of this straight-journaling stuff. It's good to get stuff off my chest.
!! Modified
* [[My Waifu Folder]]
** Just an update as it's been a while and I've gone on a few pixiv runs since.
!! On This Day
* [[2020.04 Journal Review]]
** I remember acnh... I should really pick it back up.
* [[2020.05.01 - Daily Task: happiest]]
** "When are you happiest? When those I love are the happiest." Based.
I was laid off from my job, a job I deeply enjoyed (and which, unfortunately, ate into my wiki time a lot). It is a time of new beginnings once again.
Even though I am now unemployed again, I don't feel that I have stayed static or gone backwards - if anything, I'm in way better shape. I've had a job in America, I've got a bangin' resume, and I now have professional experience in Golang which I surely can parley into another wonderful opportunity.
To my coworkers (though the likelihood of you seeing this is very low), `o7`, my friends. Thank you so much for working with me. It has been a wonderful few months cut tragically short. See you space cowboys.
To my friends outside of work, I hope this will not be an end, but a beginning. I don't see you nearly enough, and I know I'm a terrible friend sometimes - but I want to change that. I will hopefully be speaking to you soon. Feel free to reach out. I always have time for you. I love you.
* https://www.axios.com/off-the-rails-trump-military-withdraw-afghanistan-5717012a-d55d-4819-a79f-805d5eb3c6e2.html?utm_source=pocket-newtab
** Would be interesting to see the difference between Trump's attempted Afghanistan exit and Biden's. The war over there is one of the few bipartisan issues, except among more traditional hawks.
* `gopher://gopher.viste.fr:70/1/abandonware`
** Tiddlywiki seems not to support gopher links, lol
** Always good to see this old DOS software archived. I wasn't around for it, but it seems like a simpler age, with both the advantages and disadvantages of that.
* https://harmful.neocities.org/
** Every young programmer of my generation had either a "formal verification is the One True Way, soon we will all be writing functional code only" phase or a "C strong, suckless 4 lyfe!" attitude - sometimes both in the same person. Many of us must've not seen the reactionary overtones of the latter (I'm still waiting for the former to fall apart from the natural contradictions it contains - it will happen, but probably not for another few years). It's really nice to see the 9front folks reject the nazis. They even put up a BLM message of support, and they named a release [["Nazi punks fuck off"|https://www.youtube.com/watch?v=FR11xKuZG18]].
* https://getpocket.com/explore/item/how-to-make-the-best-overnight-oats?utm_source=pocket-newtab
** Looks tasty. Have been imagining the flavor/texture in my head.
<<list-links "[prefix[2021.06]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
I thought that this job search might have gone a lot worse than it actually did. I have two offers to choose from. Both have very good salaries, both are with very good companies, and either of them would be great for my resume and for my career.
how choose
<<list-links "[prefix[2021.07]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
I accepted one of the two offers I mentioned in [[2021.06.05 - gg ez no re]]. It's been a lot more Ruby than I expected (and interviewed for) but that's fine, I love learning new things, and it's another point to the resume.
It's ultimately kind of an upgrade to the [[old job|2021.05.18 - an end, a beginning]]? More time off, more benefits, and a higher salary. Plus while the last company was very queer friendly this one is doubly so (didn't think that was possible!) and yeah.
I still miss my old job, but to be honest, there's things I miss about the one before that, the one I had back when I started this wiki ~~while slacking off~~. Growing up is kinda like that. You have things that seem like a huge part of your life and one day they're just over. Like university. I loved being in uni, then one day three years had passed and it was all over and I was suddenly a NEET adult.
I missed this. I should update the wiki every day again. It's good for the soul. I have a bunch of stuff to unload anyway.
From [[Sly Dai with the Wisdom]]:
> I think a deliberate hands-off approach to relationships from the very beginning is necessary for it to work though. I would even go so far as to say there needs to be rules against policing relationships, instead of the current norm of rules of acceptance with stipulations.
Kinda like my approach to spirituality. Influenced a little bit by [[Shinto|https://www.youtube.com/watch?v=htxVoNBd5do]] (or at least my understanding of it as a westerner that's never set foot in Japan) and the syncretic soup of new age stuff, I'm thinking it's increasingly praxis, not theory (theology) that defines me spiritually.
<<list-links "[prefix[2021.08]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
https://amaka.studio/explore/articles/The-Spirit-World-and-Legendary-Creatures?utm_source=pocket-newtab
Further to [[2020.03.11 - the asoiaf blackpill]] - this reddit thread is //brutal//.
<<<
As we all know, A Dance With Dragons was such a big book that it was unpublishable, originally the sole sequel to A Storm Of Swords. GRRM separated it geographically, calling the first release A Feast For Crows and then publishing the rest as ADWD as we now know it. Though we’ve later come to understand that even these two releases did not contain all of the intended material that ADWD was supposed to have, with the two battles finishing the novel off not being in either of the two books. These are the battles of ice and fire. Because of this, GRRM has relegated the ending of ADWD into the next book, The Winds Of Winter. Ever since 2000, with A Storm Of Swords, we’ve been waiting for A Dance With Dragons, and even now we’re still technically waiting for it. Now, obviously it’s been a decade. Do you think GRRM has concluded the material intended for Dance yet? Is he even at the material that Winds is supposed to cover? Then that brings us to the question of how far he is in Winds’ content if he’s spent half this time technically finishing Dance. If it took an amalgam of 11 years to write Dance and still not finish the ending, then how long did it take him to finish all of its content? 15 years? If that’s the case, for example, and he finished Dance’s content in 2016, then he’s spent like what... 5 years writing Winds’ content? This thought crossed my mind recently and made me realise that Dance really might be the most out of control book in existence.
I’d love to hear any and all thoughts!
<<< https://old.reddit.com/r/asoiaf/comments/p4361y/spoilers_published_do_you_think_a_dance_with/?ref=share&ref_source=link
<<<
I //know //that it isn't finished yet.
''Date: October, 1993''
While the lion of Lannister and the direwolf of Stark snarl and scrap, however, a second and greater threat takes shape across the narrow sea, where the Dothraki horselords mass their barbarian hordes for a great invasion of the Seven Kingdoms, led by the fierce and beautiful Daenerys Stormborn, the last of the Targaryen dragonlords. The Dothraki invasion will be the central story of my second volume, A Dance with Dragons.
''Date: December, 2000''
NG: Three more volumes of A Song of Ice and Fire wait to be written. What shape do you expect them to take, and are their titles finalized as yet?
GRRM: Yes, three more volumes remain. The series could almost be considered as two linked trilogies, although I tend to think of it more as one long story. The next book, A Dance With Dragons, will focus on the return of Daenerys Targaryen to Westeros, and the conflicts that creates.
''Date: October 17, 2000''
He told us that since he was able just to write down a fictional span of 1-1 1/2 years in these books he had to make the break [i.e. the 5 year gap before the fourth book], otherwise he ASOIAF would be 10 books long.
''Date: September 01, 2001''
GRRM also revealed that aFoC will hopefully span the next 5/6 years so that aDwD can begin where he expected it to do so all along.
''Date: February 18, 2005''
He thinks there are going to be 6 books in the series, but he laughed and said that of the five year gap ~AFfC has only covered 4 months so far. Others have mentioned 7 or 8. He has a definite end to the series and there will be the number of books needed to get the story there. Then he talked about the next book which is tentatively called Dances With Dragons. It was supposed to be #2, then #3, then #4, and now #5. He said no matter how much he writes it recedes into the future.
''Date: November 29, 2005''
- Someone asked about whether the next book [i.e. ~ADwD] was going to explode and be four books, whether the series would start getting out of control. George said he hoped not; he admitted that it started as a trilogy, and that ADWD is the book that 'has always receded away from him.
<<< https://old.reddit.com/r/asoiaf/comments/p4361y/spoilers_published_do_you_think_a_dance_with/h8w4tgo/
<<<
Holy fuck, this isn't even a blackpill, it's //vanta //black.
Has he said anything that contradicts this since 2005 at least? Cold comfort, but I need at least a little hope.
<<< https://old.reddit.com/r/asoiaf/comments/p4361y/spoilers_published_do_you_think_a_dance_with/h8xh9qf/?context=3
I've been using the wiki again lately. I'd like to get it back to the point of being a daily habit.
So many things are vying for my attention right now though...
!! Wiki Review
* [[2021.08.14 - the asoiaf vantablack pill]]
** I'm not sure how to let go. I loved the show but it really petered out after the first 4 seasons. I suspect I wouldn't even enjoy the books, because I tried to read the first one but hated gurm's writing style. I want to know how it ends - or rather, know how it ends in a way that isn't horribly disappointing like the show was in the endgame.
** Media with [[NoEnding]]s fascinate me. I'm listening to Ranma 1/2's soundtrack as I write this and that's one of the most infamous No-Endings in anime (and in manga to a lesser extent). Ranma has lived in my head rent-free for like 10 years. I'm still in the fandom of a show that ended in '96, even to the point of writing fanfic now. I read some asoiaf fanfic, but I'm not sure that's really what I want to do. I don't love the characters any more, and probably never loved any of them to the extent of [[Ryoga|https://www.youtube.com/watch?v=unhl3t6aJE0]].
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2020.08.14 - Wiki Review: On the job grind again]]
** Amazing how much I progressed. The most recent job search ended in three weeks with three offers (though only two I was seriously considering).
** Two years ago I was thinkin' bout that new PC. Here I am now typing on it. I love it, but my carpal tunnel makes it unfortunately sometimes painful to use. I long for the days I could comfortably spend all day typing and shitposting :c
Planned hiatus for two weeks as I'm off on vacation. Ciao~
!! Wiki Review
* [[Miyamoto Musashi: 21 Precepts]]
** It's not a primary source, but an appendix. Some of the advice is dubious or reactionary and some applies mostly to being a samurai (specifically a ronin).
* [[Text Art: Succubus]]
** Talking about lust... phwoar. I wouldn't mind having my soul sucked by a demon chick.
* [[The Altar of Lust]]
** The deadly sin I'm most prone to. It's also considered the least bad, so.
* [[Text Art: Evil Eye]]
** Much better than I would've been able to do myself. It's not quite as good as the Nazar in my imagination, but it works.
* [[The Altar of Envy]]
** Not a vice I'm prone to, usually, though I have done it. I mostly wanted to think some more on Contra's video.
* [[The Altars of Vice]]
** Not really sorted out their purpose yet. This section TBD.
* [[Ocean Avenue]]
** Unfinished. I love this choon.
!! Modified
* [[Book: Ritual And Its Consequences]]
** First section of chapter 1.
* [[2021.01.02 - no-one wants to be a wasp]]
** Updating a link.
!! On This Day
* [[2020.08.20 - Wiki Review: anamanagatalphabetatholopologorrhea]]
** [[2019.08.20 - λλλ]] - for h0p3, lambda footnote. Old thought. My dad disagreed quite strongly, though I don't remember his response.
* [[2020.08.20 - Jorge Luis Borges]]
** Fascinating writer. Really need to engage with him more.
* [[2020.08.20 - Mabi Nerd: Troy and Abed's Dreamatorium is more Autistic Than You Think]]
** //Community// is a treasure. I'm still thinking about it.
!! Wiki Review
* [[2021.08.21 - Just a quick update]]
** Sike! Lappy still works with the wiki, even if it's very austere after using Mahadeva all the time. I may or may not make updates as the holiday goes on. Just vibin.
* [[2021.08.21 - Wiki Review: everything in its right place (IN ITS RIIIIIGHT PLAAAAACE)]]
** Todo. Lots of stuff on here, lots to think about.
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[Sending Files]]
** Still an unsolved problem.
* [[2020.08.21 - Wiki Review: big sphygfriend is watching @w@]]
** h0p3 still lurks discord (`/wave` :D) but doesn't use it actively. Signal is probably a better place to reach him, though he will reply to discord messages.
** Wish I would make the time to speak to sphygfriend more.
Dear Madame Senpai [[chameleon]],
It is my opinion that you are an excellent wrestler because you don't give up. You often have a fitting openness even to what you hate (you give things multiple tries, similar to tasting foods more than once), and you don't shy away from the hard problems. I admire how much patience you have with me. Further, you can't embarrass yourself with me; I find it valuable to do my best to make it so that I'm always the embarrassing part of any relationship. Super Freaks 4 lyfe.
<br>
§1
<<<
I hope I don't slip into reply-mode, [[Senpai|https://wiki.waifu.haus/#Senpai]]. Still alive. I am trying to rebuild the habit.
<<<
I [[hope]] you don't too, but it's okay if you do, madame. We all require periods of [[silence]] and we have other fish to fry too. That is something I am still learning (poorly, and like a noob, I might add). Even if I were to never hear or see from you again (and I would be crushed), I would always cherish our [[friendship]] and what I've learned from you. We have a rich story I am glad to reflect upon again and again. Maintaining a relationship with me is ridiculously expensive.<<ref "f">> Even my own blood brothers maintain a limited connection with me (to my eyes). It is still a joy, not just an honor, to listen to their stories. The same with you; we connect when we do, and I'm [[grateful]]. Things [[change]], you've continually had a ton on your plate in the past couple years, and we have time to build our habits together! =).
As you know, I've stopped generating direct notifications almost entirely at this point; it's similar, I suppose, to taking a half-break from social media. Though I'm slow to respond (and there are times and places where I should not), I still read your wiki like a hawk (up to 5 updates today?). I [[aim]] to refuse to allow anyone else to rightfully claim the title of being your most loyal reader, if I can help it.<<ref "t">> Writing almost anything at all, to whomever,<<ref "c">> and for whatever reasons and feelings seem fitting, matters a helluva lot to me. I realize you won't be able to speak endlessly (though I wish I could hear it). Halting your work in your wiki may be crucial sometimes, and often I think it's like coming up for air. I [[hope]] you can go easy on yourself about it.
<<<
I may try to reframe it with [[Senarai|https://wiki.waifu.haus/#Senarai]]-senpai, whom you may like (if she can handle you). When she's ready to read your wiki, we can have an introduction.
<<<
I think this is a fantastic idea, and not just because I'm super curious (I do want to see it unfold, and in more directions). She seems like a skilled collaborator, and I [[hope]] you continue to find many partners and senpais to work with. Also, I will understand if she'd rather not meet me in the end (most people really, really don't, despite morbid curiosity in some cases). You're correct that I'm a lot to handle. It is my opinion that you know this fact more than most. We rely upon your judgment.
So far, I don't think any introduction generously provided to me has worked yet.<<ref "m">> Part of it is just a skin in the game problem; very few people have had the will and integrity to put their in skin the game with me like you have (and, in many respects, no one has done so as effectively as you have; you've had to publicly wrestle a ton [and that counts for a fuck ton in my book]).
I'm still thinking about what it means to meet [[the other]]s of my [[Root Users]]. I'm bad at it (as you obviously know :P). It's exceptionally complicated to my blind eyes; I hope to have earned the right to be passive in most senses simply because I'm otherwise so active in telling my story and listening to others. Similar to enjoying the company of the clubbers, when I'm a fly on the wall, neither speaking nor spoken to, people are not as accountable to me (nor am I required to enforce it); there are many circumstances in which I think this is the best option, especially as I simply don't want to damage the relationships you have (including with me).
You know me: I'll argue with every person in the room at the same time, [[WINTCIS]].<<ref "y">> These days, when I write a [[Letter]], many of my interlocutors go silent. It may be better that I do not interfere (that makes me pretty useless at parties, I realize :P); and, I'm glad that it is up to your other senpai if they wish to take the risk. My goal is to have a light touch because otherwise I tend to have very heavy hands. Everyone who speaks directly with me is on their own in some respects (and vv).
<<<
Let's try three Chame Guarantees
# Chame will always be your friend and a willing ear
# Chame will send you anything she finds interesting or salient
# Chame will not neglect you or forget you
<<<
`/hug`. That's much of the material of [[friendship]] right there, madame. Thank you. Also, you don't even have to send the information directly to me unless you want to. It's okay if you don't have anything to pick out as being [[salient]] for me specifically, and, of course, what you have to say is [[salient]] to me (obviously, that must be finite, there's only so many hours in the day to write - it's such an expensive task sometimes too).
<<<
And three Chame homework problems
# Chame will try to rebuild her habits
# Chame will try to reach out more
# Chame will try to be a better root user
<<<
You do what you think is right, and you're doing all I could ask, [[Root User]]. In no small part, I'm thinking about what you think is right to better understand the notion and practice myself. I simply can't solve the problem myself, and you're helping me think about it (and you haven't stopped). There are simply too many places where the only way for me to improve my understanding of what matters is by watching you pick it out in word and deed. Thank you. You've already given me so much. You've been extremely generous to me (and everyone).
<br>
§2
<<<
[[>|https://wiki.waifu.haus/#2021.08.21%20-%20Wiki%20Review%3A%20everything%20in%20its%20right%20place%20(IN%20ITS%20RIIIIIGHT%20PLAAAAACE)]] Are we in fact pure functions, recursing endlessly, that what we see as state or quintessentiality are in fact mere bounds or functions over input? Perhaps a human is more a folding, mapping, higher-order function than a collection of adjectives and nouns.
<<<
I recall this. That may be true of not just humans. It seems like this isn't enough either. The hard problem of consciousness seems to elude us. I don't have a satisfactory answer. Part of the computation of our minds may not be explained in physics (that's a wild thing to say, I realize). You may find [[SNilsen]] worth your time (even in what may be profound disagreement with some of his politics, he's onto something valuable [maybe pop into his <<tag [[Discord]]>>server for a bit if you get the chance]). He was recently on a Watts kick, btw.
<br>
§3
<<<
O Sage,
<<<
XD. Yes, ma'am: let it be known, I am your retard, heretic, and friend for life. We gather together in communion around the [[campfire]].
<<<
What is a self? I think there's some boundary (more like a threshold) where self becomes other and vice-a-versa-vice-a-da-pizza-pie
<<<
God damn, woman, you do ask the hard questions. :P.
Yeah. `/nod`. That's well said. I think that is a very fair claim about at least a part of this crazy hard problem, and perhaps it may be more accurate to go plural, to speak of boundaries and thresholds.<<ref "bo">> I agree to some version of this, and I have no idea how to correctly nail it down into a fixed answer that is satisfactory.<<ref "g">> Of course, this is not the claim there isn't such a particularized answer to our context, nor that the pursuit of such a thing lacks merit.
Boundaries between parts of our bundled selves as being other to the other parts of ourselves may be significantly different from boundaries between oneself and [[the other]] as what is standardly conceived of as a separate individual, with their own essence,<<ref "es">> history, qualia, self-storytelling, sequences of consciousness, and reliance upon the transduction of meaningful, non-random patterns of activity through multiple mediums to connect to [[other]] minds. There may be something to our intuitions and categories about spacetime boundaries that are motivating here; our [[embodied cognition]]s are connected but still obviously separate to us in a stronger way than [[change]] in each of our minds and bodies.<<ref "ph">>
Perhaps we should also distinguish mere selfhood from personhood. My cats may have selves, but I wouldn't call them persons. Maybe even rocks or arbitrary configurations of atoms or ideas have selves.<<ref "sl">> I take you to be speaking about selves like our own that we would easily recognize as such. Dasein, as at least the kind of being that experiences thinking about its own existence, is a start (though, I'm not a fan of the lines of reasoning of Orthodox^^tm^^ interpreters of Saint* Heidegger). I take Dasein to be a moral agent, and that is a non-trivial claim (perhaps Dasein is only a layer or a necessary condition for agency), and insofar as that's unacceptable (I readily admit that intentionality is a hard problem), I take us to be most concerned with personhood as agency.
There are too many true facts about any object, including a self (which brings about a host of other boundary problems); the state of affairs is uncountable and contains a true contradiction. Further, the boundaries can be drawn almost arbitrarily. What makes any boundary not an arbitrary one? Which ones matter? Which parts of the self are the most essential and [[salient]]? What ought to stand out in relief? Our job is to draw some lines as best as we can.
I may be [[breaking|2021.07.06 - falling, falling, falling in love]]<<ref "br">> [[a rule|Describing myself as a thinker]] here (including [[my own|@: chameleon]], but we get to do that here, I suppose). As you know, moral agency is a significant worry I have thus far. I know that I'm no fun there (to say the least). From own our vantage points, wisely wielding that is what matters most about who we are.
<<<
To wit, you obviously have your own thoughts and memories that no-one else can access. How much of that self is a social fiction (a social self)? Hermits have no need of names.
<<<
"Social fiction" may be an odd choice of words; there are cases in which that may be true. A human can be radically and thoroughly brainwashed (or we could imagine some kind of brain surgery) to a point that perhaps they never really develop much of an autonomous selfhood (or personhood), and instead are more like instrumental appendages of others that are wantonly wielded as though they were mere objects.<<ref "p">> That would be a failure to respect their dignity, and it would be fair to say they were living a lie. There may be social fictions like that in all of us, but not all of our social selves appear to be so, at least to some [[dok]]. Though, even failed attempts to resist unjustified coercion may count as an exercise of one's social self that isn't a fiction. Going full anti-reductionist spook, for lack of a better absurd phrase: perhaps we [[share]] part of our identity with us, madame. Perhaps we each have parts of it that only we can [[private]]ly access, though I think we can make progress in mutually revealing and uncovering. That we individually must wrestle with [[others]] and make choices about what we're going to do (even about our own conditioning) need not be a fiction.
I'm not claiming you are arguing for or against any of this, but I feel obligated to gesture to other places that might be of interest. I'm far less concerned with authenticity than most (it is not so easy to motivate this beyond autonomy defeaters), and I don't consider causally extending our essence as far as it will materially go to be the goal of having a self like ours (which may be a flaw in approaches to authenticity). I am fairly confident that we cannot have a fully-functioning, flourishing self without [[other]] persons; our social relationships may even be necessarily constitutive of having a non-trivial agential identity at all, perhaps even if only for our species (though I doubt that considerably). How one chooses to interact with [[others]] and why seem to be among the most important facts about ourselves. Of course, I don't have sufficient answers concerning origins of the self or "who" is responsible; there appear to be several [[infinigress]]es at work here.
I do not see why hermits have no need of names (and, I'm nearly a hermit myself). It may be valuable to consider the lives of feral children to see that exercising our genetically accelerated use of language can be necessary to activating and maintaining the rest of our human brains and experiences. Hermits have to talk themselves too, probably both implicitly and explicitly. People who don't have anyone to speak with, to use names with, tend not to thrive (and may even lose their character, minds, or even personhood to some [[dok]]). And, of course, we are left with the question of what it means to be a hermit well, and I am not convinced any hermit can be a good one without the use of names. I am also not altogether sure what consists in a name either; it may be a much broader notion or ontology than I initially believed.<<ref "kh">> This problem only seems to get harder the more I look at it.
<<<
Chapmanic [[triad|https://meaningness.com/self-schematic-overview]]: True Self, No-Self, Intermittent Continuity.
<<<
Let me be first to say he's a genius. I'm not going to be nice to him or his words here (and I don't take them to be yours).
It's an imaginative chart; it's well-constructed rhetoric (realpolitik even). He's extremely legible for such a difficult topic, and he knows his audience well. I think he's talented at telling people what they want to hear too (or at least disagreeing in a palatable manner). I have no doubt that he has quelled many anxieties for people (though I do not claim that is justified). Insofar as he is skilled at finding some deep problems without trying to solve them, it may be fair to say he commits many of the subjectivist crimes of Sir Nietzsche (and, I think he would find that a compliment). Sometimes he makes extremely good moves in some hard places though, and that is not nothing!<<ref "nn">> His work is [[beautiful]], and I agree or at least sympathize with it often (there's more rigor in it than most analytic philosophers would be willing to consider too), but it's not right (and he can always fall back on the claim that he never really intended it to be and that's part of the point). Perhaps he and I face a Daoist kind of problem where we each wrestle from the other direction. I respect that he seeks middleground and is willing to let it dissolve in other cases too.
His triad and self-help method in general tend to be closer to a [[phenomenological]] description of therapeutic philosophy than an examination of the underlying fundamental problems in metaphysics, morality, and philosophy of mind (though he points to these too, and he's got some non-trivial intuitions to wrestle with). It is my opinion that his program is not designed to flesh out these questions systematically or carefully enough (not even in narrative format), but it does a fine job of causing us to wrestle as existentialists otherwise (sometimes that's a key way to even begin a conversation). There's a lot of epistemic humility in his moves, and I admire the attempt to escape skepticism (in a similar vein to how I admire Sir Nietzsche, Saint* Heidegger, and Saint Wittgenstein). It's almost noble. We each likely possess a razor in our disagreement with each other, and mine with him is that he obviously cannot help himself to normativity while denying it; and, perhaps his should be that I've begged the question. I bet we'd just nod our heads, shrug, and laugh like mystics and not even talk about the matter. Sometimes [[silence]] is the only fitting answer.
Nebulous for whom? The ultimate answer does not rest with me. It's one thing to say I don't know the answer, another to claim it isn't currently accessible to me, another to claim it can only ever be partially or inconsistently accessed (and I do think he's trying to take into account some crazy hard problems), and another to claim there isn't one. I can be open to ambiguity, vagueness, and the classic problems of [metaphysics, language, and mind] without denying the possibility or reality of an absolute, unconditional, totalitizing, clean, or sufficient explanation (and that's where humility is often most tested). I don't see why I should buy his poorly defined (and, nobody can be an expert in everything!) terms of authentic, true, or deep selfhood (highly contentious among trained philosophers),<<ref "ai">> nor do I see why we should buy his molecule, but I am sympathetic. It's extremely difficult to steelman what he's attacking, I realize.
I admire that he asks us to be less concerned with certainty and to be more accepting of the hard problems. Good! But, overall, it is far from obvious that his program generates wise persons (even if it gets us part of the way there). I consider his work unjustifiably [[dishonest|Instrume]] from the beginning, even with the best reasons I can give for being dishonest in this context. It's brilliant work in that I predict the memeplex he picks out to be one that will continue to grow in [[The Great Human Conversation]].
<<<
Alan Watts is [[the one you're speaking to|https://philosopher.life/#Why%20Not%20A%20Wide%20Area%20Network%2C%20Watson%3F]], I presume. He is rather a straightforward outcome of the New Age. We need answers from the East translated into English (because information rots if left untended) but translation is not a straight transformation. Language crystallizes thoughts, and so a little of yourself will be mixed in with the translation.
<<<
I agree that these translations are important and suffer from our [[bias]]. Independent discovery, syncretism, and cultural bridging from some of what I take to be core Eastern thought likely predate Alan Watts considerably.<<ref "pl">> He's got a very pleasant style; and, perhaps one of his greatest skills was saying it simply (I see a ton of exceptions he's handled without even having to mention it). I think we are like him in that we have the benefit of standing on the shoulders of giants. My guess is that he's engaged in comparative religion supercharged by having been widely read, including those who were synthesizing what is called Eastern and Western thought before him, probably with high degrees of access to experts and practitioners with low philosophical Erdős numbers to boot. I will suggest that even before the major explicit translation work we've seen for over a century, Eastern memetics (I have no idea how to draw the lines safely) have been integrating into the rest world for thousands of years. I appreciate that he's an outsider of sorts, he's got that charismatic Feynman elegance, and he's quite practical (I don't mean that as a swearword in this case) sometimes too. If there's a fitting pinball machine to process the bouncing students of philosophy in the world toward a fitting end, he's helped develop a key bumper.
<<<
Watts' great error then was to find one idea (no-self) he really latched onto and used it like kosher salt and MSG to flavor everything he came across.
<<<
XD. Yeah, that may be fair to say. Unfortunately, that salt wasn't [[salient]] enough. Still worthy to wrestle with, of course!
<<<
He is an old rasslin' partner of mine.
<<<
I like to think you are a well-traveled philosopher who has a knack for picking your partners, turtles, angels, and leviathans too. You wander many places and wrestle some rarified folks with unique stances too.
<<<
Zen is a depression cure. It's [[The Good]] disguised as nihilism. Sitting quietly will do one a lot of good; the problem is when you read too much into the shit they tell you to get you to sit quietly.
<<<
I am not an expert in Zen, its memetic heritage, or its historiography (though I've wrestled with some who have pieces of paper that claim they are experts [I have my doubts about the entire industry though]). To my limited understanding and experience, it is a depression cure for some. Though, I will point out that not all solutions to depression are justified, nor are the solutions necessarily what ought to be continued after escaping the pit. I admire many qualities of [[Positive Nihilism]]<<ref "ab">> (I suggest [[Positive Disintegration]] requires it at some points), and sometimes these are the exact monkeywrenches, methods, antidotes, thought-poisons, y u m m y drugs, and [[antipleonasm]]s a person needs to make justified progress.<<ref "pn">> No education is complete without having tasted many mysticisms (how would you learn to detect and develop a fitting tolerance to iocaine powder so that one could transform the Water of Life?),<<ref "io">> including what consists in various types of Zen.
I would be interested to see your analysis after experiencing LSD, psilocybin mushrooms, and ketamine.<<ref "md">> I suggest that many aspects of what is Zen are sometimes packaged in these chemically induced experiences. I know many people make fun of this (many professors thought it absurd), but I think it's worth taking quite seriously. There's a reason these drugs are now being recognized as cutting edge tools in the fight against some types of depression.
I will agree that at some level and for some doorways, whatever is fitting about Zen as a practice is in virtue of picking out or leading to [[The Good]]<<ref "tg">> sometimes disguised or simply as nihilism.<<ref "im">> There is a time and a place for it. Perhaps the best I can do for the claim that anything is "[[The Good]] disguised as nihilism" is to pick out the being of non-being (and its variants) and nod my head just as confused as anyone else; we don't seem to have made any serious progress on that problem in thousands of years. Whatever the true contradiction is, that seems to be a part of it.
<<<
I hope you can find something pearl-ish among the Watts ocean. He was a prolific man if nothing else.
<<<
Even if I think he isn't a good person, I am in debt to Sir Watts. I hope to understand more. I've got 10,000 things to wrestle with, and I'm failing at almost all of them, lol. Welp. Yup. [[Itdo]] be like that sometimes.
I'd like to close by saying that I think you may be the only interlocutor I have who has both put their skin in the game with me and sustains their explicit philosophical pursuit so thoroughly. It is my honor to be your student, madame. As usual, I get the feeling people walking by me are assaulted by the dark energy radiating from this blackhole of a ℍ𝕪𝕡𝕖𝕣𝔱𝔢𝔵𝔱 as I climb out of their screens to haunt them. And, but, of course, I refuse to be friends with people whose standards are so low they talk to a person like myself, XD. My daughter says it is difficult to distinguish between when I am throwing bricks and when I laying them with her. You are exceptionally thoughtful in how you handle me. You make life worth living, [[chameleon]]. Thank you.
[[Love]],
[[h0p3]]
---
<<footnotes "f" "You can imagine what it's like for my immediate family, lol.">>
<<footnotes "t" "Though, there are cases in which it is my obligation to play second fiddle. I do what I can.">>
<<footnotes "c" "And, of course, these are complex devices. We're speaking to possibly everyone in practice.">>
<<footnotes "m" "To say the least, most people aren't as fearless, tolerant, and serious about hard problems as you are, senpai.">>
<<footnotes "y" "ur all fucking wrong goddamnit!! XD.">>
<<footnotes "bo" "Gibberish: perhaps we suffer from trying to discretely reason about what is continuous or wrestling with some non-computable functions derived from analytic theorems requiring the infinite precision of real numbers. There appear to many types of infinitely informationally dense problems (that doesn't entail we should be [[hope]]less about our work on them). Perhaps some contexts may possess their own thresholds of significant digits where we stop bleeding precision or diverging into infinity to instead converge upon a solution (or at least a more price-efficient one). I suggest tools like empiricism and hedged-conservative mathematical constructivism get us ever closer in our approximations, but even then, it appears the realist gap of representation is one of [[faith]] beyond this too.">>
<<footnotes "g" "Sir Derek Parfit is considered by many I respect a grandmaster of this problem, so you may want to check him out.">>
<<footnotes "es" "Short-sighted claims of existence preceding existence (and, ofc, existence is only a scam to sell philosophy books, just as religion and morality were desperately confabulated denial-drug-crutches to cope with the uncaring universe people found themselves living in before these ideologies were eventually used to control people for nefarious^^tm^^ purposes), or even worse, that there is no essence only relation, are bound to fail in this space as well.">>
<<footnotes "ph" "Gibberish: perhaps one of the most crucial boundaries of the self is a cluster of [[phenomenological]] problems of immediate perception extending //beyond// 'merely' (though I think even this is like a miracle) computationally resolving the lossy-compressed reconstructive sensory [[simulations|https://www.reddit.com/r/SubSimulatorGPT2/comments/pdbw23/so_im_starting_to_wonder_if_im_in_a_simulation/]] between prior observational models of measured environmental variables parsed into representational interpretations [[FTSO]] of intentional, adaptive, and [[embodied|Embodied Cognition]] action with current ones. I also don't know how to safely speak about qualia.">>
<<footnotes "sl" "I'm unable to pick out with certainty what does and doesn't have a mind. I'm forced to guess. It's a sapience-turing test with all the objects I can consider, including emergent bodies. This is a hard problem.">>
<<footnotes "br" "This is neither here nor there, but it is possible your wiki's search functions have been modified in such a way that they don't work on my machine. Searching the source is doable, but harder.">>
<<footnotes "p" "Perhaps, you hate this about those who claim to be practicing Abrahamic traditions, and I think you likely have many excellent reasons for your beliefs and feelings about it. I think you've had to fight quite a bit against what is obviously wildly wrong about those who call themselves Christian (and, I think you've done so more admirably than most I've met).">>
<<footnotes "kh" "Sir Kripke meets Saint Hegel, something like that. It is not clear what is not representable with infinite resources, and even that which is said to be ineffable, impossible, absurd, non-real, absolute, etc., recurring through the dimensions from us to what is the essence of [[The Other]], may be a mind or fundamentally linguistic, and it is not clear what medium doesn't obtain qua language. These problems appear both [pre and post linguistic] or [sub and super symbolic]; the Alpha & Omega problem aint goin' away. No one has a satisfactory answer, madame, though I don't consider the fixation a bad or problematic thing. Far from it. We're doing fucking philosophy here, god damnit.">>
<<footnotes "nn" "IIRC, I've even seen him sustain non-trivial and unpopular arguments against [[reactionaries|2020.06.23 - SAlexander: Out of the Blue]] too, which is part of justified praxis.">>
<<footnotes "ai" "Nor do I claim to have completed these tasks either.">>
<<footnotes "pl" "Even [[Saint Plato]] appears to be wrestling with what many now call Eastern thought. I do not know how viral some memeplexes have been, nor for how long.">>
<<footnotes "ab" "What might be called //Absurdism// is perhaps a rebellious step in the right direction. I admire not giving up the search for meaning even when our internal consensus (or even the external consensus of those around us) is that there likely isn't such a thing.">>
<<footnotes "pn" "I suggest that the kernel of its intuition may solve up to a third of a grand problem we each face. It is my opinion that there are stages of the proof (insofar as that is even possible or relevant) wherein the fitting deduction to make from absurdity will be in virtue of some version of an instance of applied positive nihilism in that context.">>
<<footnotes "io" "And, there's never enough said for syncretism, madame. Perhaps the paradox of tolerance is valuable framing to consider here.">>
<<footnotes "md" "I've yet to try MDMA. If you get the chance, I think you should. For those of us on the spectrum, it may do something extra.">>
<<footnotes "tg" "[[The Good]] has a fixedness to it (the original spook, madame), but I do my best not to even guess what it is without [[others]] to fluidly interpret it with me in Saint Rawls' reflective equilibrium (an intersubjective empiricist's redesign of what is otherwise considered a strictly logical approach in The Categorical Imperative). I think that is the best we can do to explore the noumena sometimes.">>
<<footnotes "im" "It makes more sense to compare nihilism to some other belief system rather than [[The Good]], perhaps moral realism is closer. There's a difference between the object in question and our beliefs about it.">>
I couldn't exhaustively list everyone I've had a crush on (many of them I still think are just the sweetest). [[Nobu]] is one that the target should already know was a target of my squish, though I think I'm too young for her (but babe, I'm a slave to you~)
On the internet, crushing on a person that's just a line of text or a voice in a voice call is harder, both in terms of it happens less than for a pretty face or a nice bod, and in terms of it's harder for me to deal with when it happens.
The ratio of male crushes to female crushes is probably about even, except with [[2D]] where there's a strong bias towards female (probably due to the nature of character design in anime/manga).
Most of the time that I've known someone was crushing on me I was uninterested in converting it into a relationship (even when I was young and desperate (I tended to believe that they were teasing me or that I was misinterpreting signs)), though at least once I was willing but not able (due to my ineptness with relationshit). I've had one person that I was crushing on use me for sex, which was ok with me since the sex was great (and we wouldn't have made a good couple anyway). Due to past bad experiences I'm reluctant to tell anyone that I'm crushing on that I'm crushing on them, especially not a friend as I don't want to ruin the friendship.
I've definitely had "inappropriate" crushes (like on teachers or coworkers) though not severely so (as in, none that'd get me in //real// trouble if I acted on them).
I'm not sure whether or not I have a "type", either in terms of looks or personality. My crushes have been a diverse bunch.
I can't control crushes, as in I can't make them go away without something souring or advancing the relationship. Time sometimes makes crushes go away and they just become someone I think of fondly every now and again (especially if distance is involved).
myahahaha RE: [[muh pearl|https://philosopher.life/#2021.08.19%20-%20Antipleonasm%20Analysis%3A%20no%20u:%5B%5B2021.08.19%20-%20Antipleonasm%20Analysis%3A%20no%20u%5D%5D]].
O Sage,
What is a self? I think there's some boundary (more like a threshold) where self becomes other and vice-a-versa-vice-a-da-pizza-pie! To wit, you obviously have your own thoughts and memories that no-one else can access. How much of that self is a social fiction (a social self)? Hermits have no need of names. Chapmanic [[triad|https://meaningness.com/self-schematic-overview]]: True Self, No-Self, Intermittent Continuity.
Alan Watts is [[the one you're speaking to|https://philosopher.life/#Why%20Not%20A%20Wide%20Area%20Network%2C%20Watson%3F]], I presume. He is rather a straightforward outcome of the New Age. We need answers from the East translated into English (because information rots if left untended) but translation is not a straight transformation. Language crystallizes thoughts, and so a little of yourself will be mixed in with the translation. Watts' great error then was to find one idea (no-self) he really latched onto and used it like kosher salt and MSG to flavor everything he came across. He is an old rasslin' partner of mine.
Zen is a depression cure. It's [[The Good]] disguised as nihilism. Sitting quietly will do one a lot of good; the problem is when you read too much into the shit they tell you to get you to sit quietly.
I hope you can find something pearl-ish among the Watts ocean. He was a prolific man if nothing else.
"""
Kindness and warmth,
- chameleon
"""
https://twitter.com/plusoneexp/status/1408459231276175360
A nice list of smaller designers.
If I was to write this list I think it'd be [[Jared Mao|https://twitter.com/infinite_mao]] over and over again. He's the most exciting designer working right now. There's [[Batts|https://twitter.com/theBestPupper]] too, but that goes without saying when you talk about Jared (Batts wrote the video that introduced me to anti-sis, after all).
!! Wiki Review
* [[2021.08.23 - crushes]]
** It's no secret to anyone that I crush a lot, lol. The advantage of working from home is that I've stopped getting awkward crushes on coworkers at least.
* [[Boundaries]]
** Interesting concept to think about.
* [[2021.08.23 - h0p3: who heard this? who answers?]]
** He's writing a reply, yay! Lots to think about.
*** Preliminary: some of the stuff we think about has dovetailed together, or at least closer. I'm sure we'll still have disagreements.
*** Senpai, the search feature doesn't work on the public version of the wiki, but it does on https://wiki.waifu.haus/private/ which you should be using anyway :P That one is a direct copy of the one I edit. [[Sphygmus]] might know how to fix the search, but I cba to work it out myself right now (I barely understand any of this RGM). It works for me on /private and with my local copy and that's what matters.
!! Modified
* [[2021.08.22 - Wiki Review: oh, you know... <blushes>]]
** Completed.
* [[2021.08.21 - Wiki Review: everything in its right place (IN ITS RIIIIIGHT PLAAAAACE)]]
** Completed. Still not sure about the altars (but the meaning will become clear in time, no doubt)
* [[Prayer Beads]]
** Noted the full name in India is japamala.
* [[EST: Rituals]]
** Added the word for ritual in sanskrit
* [[The Good]]
** Added some memeing about [[Lord Shiva]]
* [[Waifu resources]]
** Added Rai's image site resource
!! On This Day
* [[*DREAM: Games and Reality]]
** Starts with a discussion of colonialism, then gets metaphysical. A gendernihilist special.
* [[DREAM Jam]]
** Some nice stuff.
* [[*DREAM: Diverse Authors In SF]]
** [[Senarai]]-senpai and I were gushing about ~LeGuin just last night. An absolute treasure, sorely missed, never equaled let alone bettered.
* [[Possum Laws of Gaming]]
** Proto-FKR?
* [[2020.08.23 - Wiki Review: the elitist superstructure of chameleon's wiki]]
** Leafy's still banned. I don't think he's coming back again. He was an awful person tbh, but Punished Leafy raining fire down on the whole shitty website was great fun while it lasted. I wonder what became of Pokimane after their little feud?
* [[2020.08.23 - Imaginary Worlds]]
** Real Soon Now.
* [[2020.08.23 - 2d6 "bruh, is that apocalypse world?"]]
** It's not apocalypse world. Just using 2d6 doesn't make it pbta lol.
** I'm kind of sick of talking about game design? I want a consistent game, instead. Virgins, give me your saturday evenings!
!! Wiki Review
* [[2021.08.24 - >anime avatar]]
** Yes I have an anime avatar, yes I have a big dick, we exist
* [[2021.08.24 - The "Support rather than giving bigots your money" list]]
** Jared Mao is the GOAT. Just an amazing designer and hilarious shitposter. Batts is great too. It's thanks to him that I pulled the trigger on playing the Persona games.
* [[2021.08.24 - Wiki Review: cOmPlEtEd]]
** h0p3's reply is shaping up amazingly. I can't wait to import it in and write a commentary/reply :3
!! Modified
* [[😳]]
** Added some clarification on what it's for.
!! On This Day
* [[2020.08.24 - Wiki Review: ditto]]
** It's a shame I never could gel with PBTA. It seems pretty popular among the cool side of the indie peeps.
[[Mags|The Abyssal]] and I went to the Salt Life restaurant. I had mahi-mahi, and he had oysters. We enjoyed the food and had a fun time.
Flash forward to a few hours later and he's feeling kinda sick. He throws up. This is fairly normal at this point, he has kind of a weak stomach, but it stops being normal and starts being scary before long.
He starts getting diarrhea //while// puking. Thankfully he's sitting on the toilet with a bucket so it's not going everywhere, but it's still scary as hell. He's lightheaded and short of breath, and so I call the paramedics on 911.
The paramedics come as he's sprawled out on the ground slurring his words. They are very professional and all-business as they take his vitals. They surmise that it's likely food poisoning, and almost definitely the oysters at that. They say that he doesn't need to go to the emergency room, but they can take him there if he feels he needs it. He declines and slowly starts to recover. The paramedics prescribe half sports drink half water as a rehydration solution. He sips at that, and eventually goes to sleep.
I've never called 911 before and I don't want to do it again.
He's sworn off oysters for life.
[[h0p3]] is right, his letter is gon' be FIYAH
!! Wiki Review
* [[Daijoubu]]
** Astounded that I hadn't made this before. She's mentioned as far back as 2019 as "Daijobu from Discord": [[2019.08.16 - t-files]]; and I'd known her for years by that point too (we probably met in 2016 or 2017). I guess she's been quiet/shy recently so I never got round to making an article.
* [[108 Names of Lord Shiva]]
** I could learn these. If I could consistently learn 9 at a time it would take 12 sessions (if I did this daily, that'd be less than a fortnight)
* [[2021.08.28 - drop your fire fam!]]
** Checking back every day.
!! Modified
* [[Lord Shiva]]
** Added an alias: [[Shiva]] and the chame-list-links macro.
!! On This Day
Ain't nobody here but us chickens!
!! Wiki Review
* [[2021.08.29 - Wiki Review: Thinkin' bout Dai]]
** There's a lot more about the Mahadeva to write on the wiki. Om namah Shivaya!
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2020.08.29 - Trane patterns]]
** Uh, yeah, what she said!
* [[2020.08.29 - Wiki Review: fucking references]]
** Archaic nonsense. At least if I get laid off/fired/quit again I have two references available.
# [[Prayer Beads]] - more properly, japamala. They take many forms. So long as they have 108 child beads and 1 parent/guru bead, they are good. I carry them with me most everywhere and have (on and off) since some time in 2016.
# [[Only Companion]]; [[Japanese Poems of Love and Longing|https://www.amazon.com/Only-Companion-Japanese-Shambhala-Editions/dp/1570623007]]. Because I used to carry my laptop bag with me everywhere (and this volume has always lived there) this book has never been too far from me (I've never been to a different country without it). I've read it in times of sadness and uncertainty and it has kept me company. To whom it may concern: It is inscribed [[泉こなた|Izumi Konata]] on the first page in my shitty handwriting.
# [[Kami|EST: Kami]]. I have two small Buddha statues on my desk (they originally had two more brothers, one is headless, the other misplaced). They're to keep me rooted. To remind me that a workplace is not a prison, I can leave any time.
Argh, spirituality is hard. I don't know that I can really put a name on it (besides the silly one I came up with). I am always going to be syncretic because I was not born into any tradition I'd care to follow, and I've studied so many so widely.
I've been exploring the Hindu-sphere<<ref "hl">> on Reddit<<ref rd>>. It seems like I'm not the only one there who sees "religion" (or spirituality) less as a particular oath or whatever, and more as a continuous process of seeking truth.
I got a meditation cushion. I still wear my japamala every day (and they bring me great comfort). I'm away from my altar, but I bought something new for it - a real picture of [[Lord Shiva]], not a computer printout. I'm going to hang it up in the place of my image of Ardhanarishvara.
I've felt overflowing devotion to the Mahadeva before, but it's happening now more than ever. I'm seriously considering learning his 108 names. 9 a day for 12 days (with revision) is more than possible, it's actually fairly easy (using Anki for spaced repetition, I could do it no probs). There's the matter also of learning Sanskrit. I think I could do it. My Japanese is unlikely to suffer - I'm good enough that, with time, I'll be able to read raws. I can do my own translations already with just the aid of google translate, a kanji dictionary, and jisho. I'm only 27 and still have many years to learn - but devotion to God is probably more important than reading muh free as in freedom chinese cartoons.
Deprogramming oneself from the Abrahamic mind-poison is a lifelong effort. Unlike Yaldabaoth/Yahweh/Jehovah/The Jealous God, Shiva doesn't need my devotion. "Atman" is not "soul".
R&IC teaches that one needs both ritual and sincerity. Empty ritual is not sublime; raw sincerity lacks the mediation of good ritual. I must know my sweet lord, but I must also venerate the kami (and even ol' golden Gotama once in a while, may our lord God of Destruction bless him).
------
<<footnotes "rd" "I hate plebbit. But it's got a high signal-to-noise ratio (higher than chan boards) if you know how to use it. I couldn't quit it completely, but I try not to rely on it for churn/passive consumption">>
<<footnotes "hl" "Some highlights from today: https://www.reddit.com/r/hinduism/comments/pf4zbk/what_is_often_misunderstood_about_hinduism_by/ https://www.reddit.com/r/hinduism/comments/pfariw/a_common_misconception_by_hindus_about_hinduism/">>
!! Wiki Review
* [[The Fridge of Awesome]]
** A "bestof" list.
* [[2021.08.31 - Charms, Keepsakes, Talismans, Fetishes]]
** A companion to [[h0p3]]'s article of a few days ago, in a way.
* [[2021.08.31 - What exactly am I now?]]
** Sanātana Dharma - the eternal religion. There's a lot of parallels to be had.
!! Modified
* [[Absolutes]]
** Last touched in 2019; frozen. Added contra's new trans slogan
!! On This Day
* [[2020.08.31 - the cavalier]]
** Unfortunately, my old friend didn't pull through. Maybe he doesn't check his email, or maybe I came across to mercenary
* [[2020.08 Journal Review]]
** Oh yeah, I'm syncretic as fuckkkk.
** I still have those binders.
* [[2020.08.31 - Wiki Review: FUCKING REFERENCES FUCK]]
** These titles, ahaha. What a weird time of my life that was.
Back from my trip! And straight back on the computer. Some things never change.
Ahh, it's weird to be back on my huge-ass computer, hahaha. Two monitors again, scroll wheel, discord app, no crashes...
If there's one thing this trip has taught me, it's that my x200 laptop is now severely underpowered. Oh well, it lasted well for the last 10 years or so. I'll need a new one, soon^^TM^^
!! Wiki Review
* [[Prayer]]
** Difficult topic. Let's see where it goes. It does seem distinct from meditation in general.
* Backfilled wiki reviews, to complete:
** [[2021.01 Journal Review]]
**[[2021.02 Journal Review]]
** [[2021.05 Journal Review]]
** [[2021.06 Journal Review]]
** [[2021.07 Journal Review]]
** [[2021.08 Journal Review]]
* [[2021.09.01 - Wiki Review: Awesomeness]]
** I think I like the new fridge. We'll go with that.
!! Modified
* [[Senarai]]
** Added list-links
* [[Lord Shiva]]
** Fixed a romanization
* [[Journal Review]]
** Updated for month
* [[Journal]]
** Ditto
!! On This Day
* [[2020.09.01 - Wiki Review: non-fiction]]
** mh <3
!! Wiki Review
* [[2021.09.02 - Back!]]
**
* [[2021.09.02 - Wiki Review: todo~!]]
**
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2020.09.02 - Wiki Review: big poggers to M-senpai]]
** What a king.
* [[My Favorite D&D/Fantasy Ideas]]
** I found the drow links! I'll make an article.
* [[2020.09.02 - sorting cute & serafuku folders]]
** I did it, and I'm glad I did.
Neat shared blog. https://thetattooedbuddha.com/
<<<
Also called "Ethiopian multiplication." To multiply two numbers a and b, write a_0=a and b_0=b in two columns. Under a_0, write |_a_0/2_|, where |_x_| is the floor function, and under b_0, write 2b_0. Continue until a_i=1. Then cross out any entries in the b column which are opposite an even number in the a column and add the b column. The result is the desired product.
<<< https://mathworld.wolfram.com/RussianMultiplication.html
<<<
Russian multiplication works because it implements binary multiplication:
1. If a=1 (mod 2), accumulate b.
2. Right-shift a one bit.
3. If a=0, exit.
4. Left-shift b one bit.
5. Loop.
<<< ibid
https://youtu.be/HJ_PP5rqLg0
!! Wiki Review
* [[New Christian Cults]]
** Studying these weird movements will make for an interesting case study!
* [[2021.08.23 - chameleon: Gibberish of Love]]
** Wonderful, gorgeous, beautiful letter. Thank you [[h0p3]]-[[Senpai]]. Lots to chew on.
!! On This Day
* [[2020.09.14 - Wiki Review: come on by white lies]]
** banger song
** Senpai, I'm down to play MTG with you if you want to with me! Maybe when the meetspace meatspace meet happens (real soon now)
Hubby wrote this, check it out!
https://lucifer501275053.wordpress.com/2021/09/16/the-legend-of-heroes-trails-of-cold-steel/
!! Wiki Review
* [[Ranma ½]]
** Actually a really strong influence on my life even today.
* [[2021.09.15 - Wiki Review: SCWR]]
** More [[hlexicon|https://philosopher.life/#hlexicon]] borrowings. SCWR := search, curation, wandering, and rabbitholing. Basically the activity of wiki-ing in general :P
* [[Text Art: GRRM is my bitch]]
** Yeah, fuck you Neil Gaiman! (But actually don't, your books are awesome and you seem like a cool guy)
*** I get where he's coming from, but he's wrong. There is a social obligation to finish what you start (or at least to definitively say you won't finish).
*** https://www.scifinow.co.uk/blog/brent-weeks-opinion-column-george-rr-martin-is-not-your-bitch/
* [[A Song Of Ice And Fire]]
** FINISH THE FUCKING BOOK GEORGE
** It's crazy how much my interest in the series for its own sake (rather than as a social phenomenon) has eroded over time, in contrast to my interest in Ranma. I'm more h8ing and b8ing with this series (black romance). They really are two poles.
!! Modified
* [[2021.08.14 - the asoiaf vantablack pill]]
** Tagging
* [[2020.03.11 - the asoiaf blackpill]]
** Tagging
!! On This Day
* [[2020.09.15 - Wiki Review: begging lord shiva for clarity and forgiveness]]
** Nothing much to say that's not said there.
!! Wiki Review
* [[2021.09.16 - The Legend of Heroes: Trails of Cold Steel]]
** He came up with [[Anti-Review]]s independently. What a good boy! `Pat pat`.
* [[2021.09.16 - Wiki Review: Neil Gaiman is also my bitch]]
** You're all my bitches. All of you.
** [[h0p3]]'s articles don't get put in the timelines when the tags change, afaict.
!! Modified
* [[Ranma ½]]
** More tiddlers should have a link tree of awesome!
!! On This Day
* [[Oven Cooking]]
** Roasted sosig. I want some.
* [[2020.09.16 - Wiki Review: innaview]]
** Which one was this? Might've been the long one for my old job.
!! Wiki Review
* [[2021.09.17 - Wiki Review: patpat]]
** I look forward to reading more of what he writes.
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2020.09.17 - Wiki Review: off to play WoD today, I think]]
** I miss that game. And our friends from that game. Maybe again someday.
It happens in 1989-1990. 1989 appears on a banner in the ice-skating episode, and someone uses a Super Famicom in a later episode (those came out in Nov 1990 in Japan).
https://old.reddit.com/r/ranma/comments/hlg7u8/which_time_period_does_ranma_take_place/
<<<
Late 80s, early 90s. Things like the appearance of video games (Super Famicom, 1990) and White Day being common do date it around then. White Day was first celebrated in the late1970s, so it does put a pin to your theory that the show is 70s or 60s. 60s Japan would be quite weird and you'd notice it'd be very different, as the country would be in the midst of a cultural upheaval rebuilding from WW2.
- Bathhouses are a common part of Japanese culture and persist as a mainstay in contemporary Japan today. the reason for them is real estate is still a premium, so community bathing facilities are required.
- Large swathes of China was in the midst of it's industrial revolution in the late 80s and there were swathes of rural places where society remained agrarian. The implication is that Jusenkyo was in a forgotten, hidden away corner of the country, where strange magics and marital arts might exist. A quick google of the Qinghai province does imply that it's mostly the boonies, even today - not a lot of dense urban areas, smallest economy in the country, etc
- arranged marriages - this is the weird one, i think even the characters of the show thought it was a little old fashioned when Soun presented it to them. But the Tendos are a family with a pretty traditional background, living in an ancestral home in Tokyo with an attached dojo and a family Martial Arts style. The Saotome's were much the same, also having an ancestral home in Tokyo (before it was demolished by Shampoo, Ukyo, and Kodachi)!
I got curious, so i googled arranged marriage in japan, turns in 1998 (not far from when Ranma 1/2 was set) its estimated that 10% to 30% of marriages were the result of omiai . It's pretty interesting, and it's worth noting that though omiai is often translated as 'arranged marriage' it's more of a matchmaking process (albeit with ) that is still present in japan today. Aggretsuko season 2 had this an element, i believe, with Retsuko's Mom trying to arrange unwelcome omiai's for her daughter. Unlike Ranma, this was translated as matchmaking instead. https://en.wikipedia.org/wiki/Miai#:~:text=The%20National%20Institute%20of%20Population%20and%20Social%20Security%20Research%20in,often%20preceded%20by%20romantic%20courtship.
Another great article i googled up because I was curious, with Ranma-centric examination on how this stuff worked:http://www.thekeep.org/~kunoichi/kunoichi/themestream/ranma_society.html#.XwGk3ChKguU
<<< https://old.reddit.com/r/ranma/comments/hlg7u8/which_time_period_does_ranma_take_place/fwziel6/
https://web.archive.org/web/20010628002250/http://www.thekeep.org/~kunoichi/kunoichi/themestream/ranma_society.html
[[h0p3]] has some worry beads for stimming. I'm thinking I need to get some for myself. I don't like to use my [[Prayer Beads]] for anything other than praying or meditating.
Recently I've found I tend to do less random noises (I say random things or do a little squeak/shriek) if I'm playing with my number 8 sign (it's one of [[these|https://www.amazon.com/New-Star-Stainless-1-5-Inch-Numbers/dp/B00FDW5O0Q]] but with more of a stencil-type design; I accidentally nicked it from a restaurant (the waiter put it in my to-go bag and I didn't realize until I was out of town)). I can spin/flip it around my left hand without dropping it.
!! Wiki Review
* [[2021.09.21 - Some thoughts about Ranma, time, and Japanese Society]]
** Really interesting new avenues for analysis of the series.
!! Modified
Ain't nobody here but us chickens!
!! On This Day
* [[2020.09.21 - nerves]]
** Will soon be roughly a year since I re-entered the workforce.
* [[2020.09.21 - Wiki Review: tweego to the polls]]
** I should write a response to the new letter. We could start another chain going, hehe.
*** Both of us love to write. How much would he enjoy just bouncing ideas around? Probably a lot, but.
!! Wiki Review
* [[Mental Health]]
** Public for now. We'll see if I want to move it later.
* [[2021.09.22 - Stimming]]
** Senpai says bone ones are good, but steel balls would be the fave:
> our first attempt failed (hematite) because the stones wore down (powder fucking everywhere). Currently bone (nice sound), but if I were using my preference (for feel alone), it would be steel metal balls (heft and texture are gorgeous on them)
* [[2021.09.22 - Wiki Review: Ain't nobody here but us yardbirds]]
** Both of us do indeed love to write.
!! Modified
* [[Senarai]]
** Added a nice quote from our recent convo.
* [[2021.01.25 - untitled]]
** Tagged.
* [[@: h0p3]]
** Sent him a Funi.
!! On This Day
* [[French Toast]]
** Only a year ago? It feels longer that I've been making this for my hubby.
* [[2020.09.22 - Wiki Review: I'd just like to interject for a moment]]
** Yeah, I still remember my cave/climbing experience.
I'm still around, even if I'm not the most diligent reader, and even if I don't do that much on the wiki these days. Right now I'm working on some fiction. It's nice that my creative juices are flowing in the fictional realms again (learning how to plan has helped) but it seems like inspiration in one means drought in the other. Still no solution in sight.
* https://getpocket.com/explore/item/the-ancient-rites-that-gave-birth-to-religion?utm_source=pocket-newtab
** [[Book: Ritual And Its Consequences]]
* https://getpocket.com/explore/item/literary-critic-molly-young-defends-a-controversial-book-organization-method?utm_source=pocket-newtab
** Love for books is contagious, and it runs in the family (thanks mom)
* Food
** https://getpocket.com/explore/item/how-to-make-a-chai-latte?utm_source=pocket-newtab
** https://getpocket.com/explore/item/how-to-make-no-knead-bread?utm_source=pocket-newtab
* https://www.mangatown.com/manga/megami_ibunroku_persona/v01/c001/
* New RPG Forum for NSR (the halfway point between OSR and FKR): https://discourse.rpgcauldron.com/
** https://discourse.rpgcauldron.com/t/running-unique-settings/194
!! Wiki Review
* [[Page Count]]
** With the standard calculus.
* [[Text Art: RWIIR]]
** Please don't. It looks cool though!
* [[Scriv Clone]]
** It could be done. Could fork wordgrinder and hack on it there.
* [[The Eternal Art]]
** Alias [[Writing]]
** Knowing how to outline is liberating. I feel like if I'm ever unsatisfied with a series again, I could outline a fix-it and bash one out in a couple months.
!! Modified
* [[RyutaroIkeda]]
** Created? Anyway, new contact. `/wave`
* [[Wordcount]]
** Tagged.
* [[Writing Methods]]
** Tagged
* [[Free Writing]]
** Tagged.
* [[Dvorak]]
** Tagged.
* [[Writing Resources]]
** Tagged.
!! On This Day
Ain't nobody here but us chickens!
<<<
If you will practice being fictional for a while, you will understand that fictional characters are sometimes more real than people with bodies and heartbeats.
<<< Richard Bach
<<<
as soon as we renounce fiction and illusion, we lose reality itself; the moment we subtract fictions from reality, reality itself loses its discursive-logical consistency.
<<< [[Slavoj Žižek]]
<<<
Beyond the fiction of reality, there is the reality of the fiction.
<<< Slavoj Žižek
2D stands for "2-Dimensional". On this wiki I'm using it in the way Japanese netizens (and their weeaboo cousins) use it - to mean a fictional character. This doesn't necessarily limit the scope to hand-drawn animation, either - a [[2D]] person as understood on this wiki can be from a live-action movie, a cartoon, a novel, or a comic. What they have in common is that they are a character who is not a real, existing person. Contrast [[3D]].
<<<
leave me alone, i only want anime pussy
<<< anonymous tumblr memer
Real [[people|People]]. Flesh and blood like you, dear reader, or [[me|chameleon]], or [[The Abyssal]]...
Complicated philosophies struggle from being locked up in musky old tomes; even if the language is easy, it's often a challenge to ingest an entire long, complicated, often boring book.
Thankfully, my pet philosophy, Monadism (it doesn't bite) has the advantage of having been created (or at least shoulders-of-giants'd) by a living person, a living 21st century person, who's not poisoned by years of grad school into being unable to put things into English. In order to help people understand where I'm coming from, without having to read books and essays they really don't want to read, I've written this essay. It's truly a Quick Primer for Monadism; even if it glosses over three-thousand years of moral philosophy, I aim for it to be a direct, easy-to-read, hopefully even humorous piece.
Don't expect extreme formal logic or scary words like "dialectic" here. This is an introduction, not a ~PhD thesis. I aim to ease you into the world of Monadism through a simple example-counterexample-conclusion structure. While I do crib from existing work<<ref "dm">>, my aim is that you should be able to mostly understand it with little more than a dictionary and a keen reading eye.
Without further ado, let's dive right in.
!! Thesis: Objective Morality
Some claim that moral values are set in stone and easy to reason about; they come from some external source to human experience and are unquestionably true. Advocacy for objective morality involves reifying some virtue to the point of universal force; spoken of in abstract by the unqualified use of the word good (good for whom in what context given what standard?) or in the more recognizable form of a concrete system; e.g. "thou shalt not kill; bible says so, and that's the word of God don'tchaknow".<<ref "at">>
> Compulsory morality involves self-subjugation to a system or set of values that are, for one reason or another, believed to require mandatory compliance — even if the person believing this is unable to — as the cliché goes — “live up to them.” Although compulsory morality can potentially be grounded within an individual’s subjective experience, it is almost always instead grounded somewhere outside the realm of directly lived human experience.
A truly objective morality doesn't exist. Sorry about that, but much like Santa Claus and the Tooth Fairy, you'll just have to grow out of it. It's trivially disproved by comparing moral systems and their (by our standards) monstrous conclusions:
* "Of course we have to throw virgins into the volcano! Otherwise the Volcano God will be angry at us and kill us all!"
* "Of course we have to blow up the innocent! They're infidels anyway, and even if they're not, they'll go to heaven if they followed the Truth."
* "Of course women can't be priests. They betrayed us in the Garden of Eden!"
* "Of course I need to burn alive protestants at the stake. They betrayed the church!"
* "Of course I have to kill everyone who wears glasses. They'll betray the proletariat otherwise!"
* "Of course I have to murder all the Jews and take over the world…" etc.
Moral systems, fixing some value and taking it to its logical conclusion, can, have, will lead to terrible results; "the road to hell is paved with good intentions." Examples are too long to list here - the crimes of the Catholic Church, of Stalin, of Hitler, of Pinochet, of the British Empire, of American exceptionalism - all of these are monstrous when judged on many axes, and yet each have their defenders due to their perceived morality.
Their crimes are without number in the macro, and it's often seen in the micro, down to the very smallest scale of individual believers. Sociopaths the world over make use of moral systems to justify their behaviour - the abusive Catholic priest, the pseudo-feminist transphobe, the learned misogynist. And even those that use their moral systems not as a tool to hurt others, but attempt to use it as a compass for learning their purpose:
> The formal structure of compulsory religious morality is thus: sacred values from an unseen source to be followed by a relatively worthless human being whatever the context. With a system of values like this, whatever the actual content of the morality, is it any wonder that people attempting to live this form of alienation are constantly mystified about their lives, desires and social relationships?
A quick [[Chapman|David Chapman]] example: you cheat on your wife, but the experience revitalizes you and actually makes your marriage better, was it "good" or "bad"? You can't say. But if you subscribe to a moral system, which //must// sort things into "good" or "bad":
> …the goal becomes the rigidly Manichaean division of the social world into “good” and “bad” parts (in themselves — outside of any context), with the aim of mechanically suppressing the “bad” wherever and whenever possible, and enlarging the “good.”
The seemingly obvious contention "some things aren't good or bad, they just //are//" is poison to the moralist. The extremes of this can be seen in the Evangelical Christian's extreme opposition to innocent fiction such as Pokemon or Harry Potter. They reify the battle between good and evil to such an extent that even something as mundane and un-noteworthy as the set dressing for stock hero's-journey tales becomes something worth policing.
---
Note: I sidestep here the arguments over moral realism and anti-realism. I don't find them interesting or useful to the discussion; they seem to be mere academic distinctions, symbol shuffling for people that don't like computer programming.
Consider the example of this (I'm sure very intelligent, if misguided) letter: https://letter.wiki/conversation/352 where we see an argument that if anti-realism is true, knowledge is impossible. That seems so silly as to not be worth considering.
Whether moralism is a bad habit we've learned and can forget, or an inherent cognitive bias (human mind defect) like ingroup bias or [[naïve realism|https://en.wikipedia.org/wiki/Na%C3%AFve_realism_(psychology)]] that we must learn to overcome, I think the effects are the same.
---
If comparison doesn't convince you, and if the logical endgame of alienation and dogmatism doesn't scare you, consider that even making trivial value judgements about things is fragile and can collapse given simple counterexamples.
Let's take a quick example. I'll often order the soup of the day at a restaurant. I tend to enjoy it. I might say: "Soup is tasty."
Well, obviously not all soup. If you think //all// soup is tasty, you should taste my fish guts and arsenic soup. Maybe I mean //this// soup. This specific, fixed-in-time, fixed-in-space bowl of soup in front of me right this instant. It won't be tasty in a few months if I leave it out.
Right okay, step back. We can still salvage a general value judgement out of this. //Tomato// soup is tasty, right? Wait, what if you don't like tomatoes? Or if the recipe for a tomato soup involves fish guts and arsenic?
Shit the bed. "This specific recipe for tomato soup is tasty if you like tomatoes". OK, if it's followed correctly, by someone who knows how to cook.
FINE. "This specific recipe for tomato soup is tasty, if you like tomatoes, and it's cooked by the cooks at this particular restaurant." Well, if nothing goes wrong. If the tomatoes aren't off, and the chef doesn't get distracted and burn the soup without realizing...
It goes on. If I can tear apart a simple value judgement like "soup is tasty", what hope does a non-trivial, potentially contentious, moral statement have?
Consider the numerous disproofs-by-counterexample for every moral system and ideology. Such as:
* Your moral system is utilitarianism. If total happiness in the world increases, that's a moral good.
** Let's say I'm a psychopath and killing people makes me blissfully happy. Is it thus moral for me to go on a killing spree?
** Let's say I take great joy in having sex with your girlfriend behind your back, despite knowing full well that she is in a relationship with you. Is it thus moral for me to take her to sapphic-poundtown, since total happiness is increased?
* Your moral system says lying is always bad.
** Let's say I arrive at your door with an axe. I say "are there any children inside? If not, I'll leave, but if so, I'm going to come in and murder them." Is it immoral for you to lie to me to get me to go away?
* Your moral system says killing is always bad.
** Self-defense?
** Wartime?
** Lethal force to save a life?
* Etc.
In conclusion, objective morality, a simple-but-wrong reification of fleeting values which can trivially be reduced to meaninglessness, has in the past lead to both horrific actions and widespread alienation and isolation; and it can be expected to continue like this for as long as it holds sway over humankind. Objective morality is a mistake from which we need to recover.
!! Antithesis: "Post-modernism"/"Nihilism"/"Relativism"
This article will be read, not understood, and straw-manned as advocating for some scary buzzword like "nihilism", "relativism", or "post-modernism". It might even be combined for a double-whammy, into some nonsensical construct like "post-modern neo-Marxism."<<ref "pmnm">> This is not what this article is advocating for, but I must outline that position to explain why I don't hold it.
Post-modern is a broad umbrella which contains many interrelated but possibly contradictory ideas, schools, and fields. There's post-modern literature, post-modern art, and even the times we live in can be said to be "post-Modern", if you take the Modern era to have been from the Enlightenment through to the death of Queen Victoria or the World Wars. In this regard, post-modernism is so broad a term as to be meaningless.
However, the way "post-modern" is usually used online signifies some form of deconstruction, possibly post-structuralism. Do not get me wrong, deconstruction is a useful tool. In some forms it can really be replaced with the word "analyze" which is its most useful form; an easy, quick example is in a Contrapoints video:
<<<
"""
Jackie Jackson: So, Adria: Traps, are they gay?
Adria Finley: Look, there's so many things wrong with the question that the only way to answer it is to deconstruct it.
First of all, what are "traps"? Are they trans women? Because if you're calling trans women traps, then you're directly playing into the lie that trans women are "tricking" or "trapping" men - a lie that regularly reinforces the mentality that causes men to murder us.
"""
<<< Segment from [[Tiffany Tumbles|https://www.youtube.com/watch?v=j1dJ8whOM8E]] (starts at 4:04)
Simply put, you pick apart the assumptions of an argument rather than responding to it on its own terms; you step back to the meta level. This is useful, and goes into the toolbox alongside "reasoning", "investigation", "observation", etc.
The dangerous side of deconstruction is when it's applied willy-nilly. The hammer in "if all you have is a hammer". Omnidirectional deconstruction deconstructs any attempt at building a solution, analysis, or structure, until eventually it eats itself, like a black hole. Into this hole the deconstructor fleet pours in depression and existential angst. However, it's my view that we can move past this; it's a very interwar/postwar way of thinking, which informed the existentialists but isn't a productive end in and of itself.
The other views are not ones I take seriously. Nihilism, coming from Latin "nihil", could be taken as "nothing-ism". In its strongest form, it's a non-philosophy and not very interesting<<ref "ul">>. In a weaker form, it's simply a descriptor towards denying that some particular reified form is fixed or objective. Which, sure, I guess that's what I'm doing, but it's not particularly exciting that I am. The word ''NIHILIST'' loses its sting and its flash if you apply it to people who say mild things like "well, I know you believe God gave you an ultimate purpose and that's fine, but personally I don't really believe in all that stuff." Nihilism is often also conflated with the depression at realizing certain facts about the moral landscape:
<<<
[Nihilism] is sometimes used in association with anomie to explain the general mood of despair at a perceived pointlessness of existence that one may develop upon realising there are no necessary norms, rules, or laws.
<<< [[Wikipedia|https://en.wikipedia.org/wiki/Nihilism]]
I don't see any reason to feel despair or depression that things like norms, rules and laws aren't fixed. If anything, I find it rather liberating that I don't have to comply with people who tell me "you should". Is this Satre's "radical freedom"? Perhaps. Personally I just see it as a lack of moralizing, authoritarian shackles.
You can read more about "Nihilism" over on [[Meaningness|https://meaningness.com/nihilism]].
The other thing this article's thrust might be strawmanned as, "relativism", is little more than a boogieman called up to defend objective morality, which we've already handily seen off. In its extreme form, the "relativism"-defense is just a blanket ban on comparing moral values across cultures, which does nothing but obscure the conversation and make it difficult to reason about meta-ethics. The aim of this trap is to make the interlocutor defend ridiculous positions, in the vein of "any value is as good as any other value" or "my truth is as good as your truth". These arguments aren't worth having and I would prefer not to; moreover, no "post-modern" philosopher actually argues this. This has been trivially, and rather hilariously, proved via rhetorical flourish by Slavoj Žižek as being contradictory and incoherent [[in his debate with Jordan Peterson|https://www.youtube.com/watch?v=Wsz6ijXWS3A]].
In short, the only way my philosophy borrows from what it may be strawmanned to "really" be is the tool of deconstruction - which it uses only as far as it's a useful tool. It is not "relativism", "nihilism", nor "post-modernism"<<ref "og">> - in the rare cases these are not incoherent contradictions or misunderstood labels, they don't apply anyway to this philosophy.
!! Synthesis: [[Monadism]]
The question is begged: "if not objective morality, and not 'nihilism', then what?"
> The radical alternative to morality involves the creation of critical self-theory. The formation of any coherent and effective anarchist perspective and practice requires that people develop (through interaction with their natural and social environments) a relatively sophisticated understanding of themselves and their places in their social and natural worlds. Without a consciously understood subjective locus of understanding, without a clear focus on one’s own personal and social interests, it is impossible to develop a critical social theory that can comprehend social alienation and the possibilities for its supersession. Critical self-theory and critical social theory are two essential poles of one comprehensive project.
[[Deconstruction Obligates Reconstruction]]. I must constantly be watching, learning, making use of my past experiences to inform future actions; not filtered through the lens of some moral system, but as they are. I must understand who I am, I must know my enemy as well as my friend. The wiki is a gigantic, ever-turning wheel towards this end, but my own mind, my "ego" to use Stirner's terms, must be the guide.
More than that would have to involve getting inside my head, even more than the intimacy of the wiki allows. If you want to know how I would react to some "moral" quandary, you have to look back at what I've done in the past and infer somehow what I've learned from it. In a pithy phrase: I am my own ideology. For example, when I apologize, I try to articulate what I did wrong and what I'm going to do in future; I promise there to try and do better. Because a true map of my mind is impossible (it will be out of date within minutes, if not seconds) instead I have to talk about Monadism at the meta level. I describe the process (I learn about the world, I build maps based on experiences and lessons learned, I come to see myself and my place in the world through this) instead of what I've actually discovered up to this point; if I did the latter, it would quickly devolve into a vulgar form, then eventually a moralism. I don't want that. If there's some perfect objective moral system out there, it certainly isn't based on the navel-gazing of a geeky lady who's obsessed with [[a certain blue-haired anime character.|Konata]]
So yeah, eventually this mysterious term, cooked up from the mind of an autodidact via an anarchist reading of a relatively obscure dead German's writings, actually comes down to something pretty simple: learn from your mistakes; build upon your pre-existing knowledge; try to do better.<<ref "bt">>
I briefly mentioned Stirner before, so now we come to the "mask-off" moment<<ref "ev">> for [[Monadism]]. Yes, in Stirner's time, it was dubbed Egoism. This is based on one possible traslation of "Einzige" - it could be translated "ego", "individual" or even "unique" - but it unfortunately got hopelessly muddied by later developments in other fields, such as Sigmund Freud's Ego, Id, Superego (unrelated to Stirner's Einzige) and an infamously terrible pseudo-intellectual using a sociopath's reasoning to justify capitalism (which has very little to do with Stirner except through some vague connections between self and selfish). Insult to injury - a later term for a kind of narcissism is "Egotism", one letter away from the term. So I don't dare call it Egoism, or it'll get hopelessly muddied and lost - you'll confuse me with a follower of Ayn Rand's Objectivism, or a psychoanalysis junkie, or some kind of cheerily honest narcissist.
I am none of these things, so I concede the term Egoism and search for a new one. Let's consider "Einzige" again. As stated, it could be translated as "unique" or "individual" - well, Uniqueism is pretty shitty. Lacks pizzazz. And "Individualism" is nice, but so nice as to already be taken by other people (including those fucking Randroids). Another way to translate "Einzige" is //the only one//. Now this gets us somewhere! Unique, individual, only one - well, mono is the prefix, μονάς monas, "singularity", from μόνος monos, "alone"… Monad! An elegant translation for Einzige is Monad - the single one, the unit, the //unique!// [[Monadism]] is snappy, catchy, and easy to understand. The only prior art is an obscure notion of metaphysics - since supplanted by actual physics, in the realm of fundamental particles - and the use of the term Monad to essentially play the part of the word "atom" in such metaphysics. We can appropriate the term to draw a line between narcissism, sociopathy, and Objectivism (all the same thing really) and the distinct concept outlined in this document.
So, in conclusion, we have our term, we have our philosophy, and we know it's the only way forward. That's all we need. Peace.
---
<<footnotes "dm" "Mostly the essay [[Demoralizing Moralism|http://theanarchistlibrary.org/library/jason-mcquinn-demoralizing-moralism-the-futility-of-fetishized-values#toc3]]">>
<<footnotes "at" "I take a-theism, that is the lack of belief in gods, as a given. Such arguments as the Problem of Evil, contradictions in godly attributes, or the lack of clear evidence to which of many competing gods and religious traditions is the True One, are enough in my mind to dis-include religion from the discussion. The burden of proof lies with believers, and they have yet to produce a convincing argument even given a 2000-year head-start.">>
<<footnotes "pmnm" "Briefly, this is a contradiction in terms. Marxism, neo or no, is a modernism. It by definition cannot be post-modernist. It predates anything you might call post-modernist by many years; it is a 19th century philosophy, whereas anything that can be called post-modernist is mid-20th century by definition.">>
<<footnotes "ul" "If you take it to its ultimate form, 'nothing means anything', then it actually denies itself. You'd have to say 'nothing means anything, except this statement, which means everything other than this statement is meaningless'. Then you have to say 'well, what gives //that// any meaning?' and the whole thing dissolves in the same way as value judgements, above.">>
<<footnotes "og" "Once again, the origins of Monadism are 19th century - 'Der Einzige' was written in 1844 - they are simply filtered through a 21st century mind. In terms of eras of world/intellectual history, it could be termed 'post-Modern', but it is not 'post-modernism'.">>
<<footnotes "bt" "Carefully note that 'better' is not 'good'. There's no ad-hoc, isolated, emotionally detached way of judging these things. They must be seen in context to be compared. The better of today could be the worse of tomorrow; but tomorrow you will have learned.">>
<<footnotes "ev" "I promise I'm not evil, or your money back :)">>
{{Text Art: GRRM is my bitch||ASCII: 100%}}
I used to care about this series for reasons that now escape me lololol. [[Shedu]] introduced me; I last spoke to him like 5 years ago. My ex read the books (LMAO LOSER) and I told her in 2014 I'd read them after they were done; I'm now married to someone else and no books have come out in that time.
Honestly, I don't even care about the story any more. I'm just... agape that it's not fucking done yet.
Since the last book (July 12, 2011) the following things have happened, among many others:
* Obama's re-election & second term, Trump's election and four-year term, Biden's election and first six months of his term (and it'll be likely another six months - his first year - before the next "winds isn't coming this year").
* There have been 3 prime ministers
* Brexit was voted for and carried out
* The Dark Tower and Wheel of Time series were completed
* Brandon Sanderson completed 24+ books
* Disney bought Lucasfilm; the Star Wars Sequel Trilogy played out
* Every MCU film from the first Avengers movie onward was released
* Most of the Game of Thrones television series (based on these books) came out, up to the finale in 2019
* A new entry in the Half-Life series was released
In my life:
* Both myself and my two younger siblings went to university and graduated
* I had 2 girlfriends and a boyfriend, as well as my fair share of flings, and am now married
* My entire gendershit occurred
* I have had my entire career, five or six different jobs so far
* I have written many works of fiction, including novel-length ones
* I created the wiki, and before that the complete run of [[Spiritual Computation]] and my old website
------
<<list-links "[tag[A Song Of Ice And Fire]]">>
//Note: I use the neologism "a-theism" instead of the more conventional "atheism"; this is serves the dual purpose of A) emphasizing that it is a lack of belief, contra to theism; B) to distance myself from big-A Atheism the ideology.//
<<<
Respect Buddha and the gods without counting on their help.
<<< Miyamoto Musashi
!! The big picture
The rest of the article will get knee deep in the weeds, so I'll present what I think are the strongest among the arguments and counterarguments up-front.
# No guarantees that one religion is any more true than another.
# Even if God did exist, he'd be evil by all measures, and arguably not worthy of our worship.
#* Gives people infinite punishment for finite transgressions.
#* Created parasites that, for example, feast on children's eyes as part of their lifecycle.
#* Killed someone on the spot for preventing the Ark of the Covenant from falling (DON'T TOUCH MY STUFF!)
# The worldview most religions argue for is not worth the magical thinking.
#* Morality is a spook - [[A Quick Primer]]
#* Putting aside religion and prejudice, there's no reason to quarrel with, for example, LGBTQ+ people.
!! Arguments that affirm a-theism or contradict theism
!!! The Great and Unanswered Problem of Evil
* "Atheism's killer argument".
* snarf
*# God is taken to be omnipotent, all-powerful.
*# God is taken to be omniscient, all-knowing.
*# God is taken to be omnibenevolent, all-good
*# For the sake of argument, adopt the morality of the believer.
*# The world is full of suffering
*# The world is full of people doing evil c.f. 4.
*# If God is omnibenevolent as 3, he should want to stop suffering and evil as presented in 5 and 6.
*# If God is omniscient as 2, he must know of all suffering and evil presented in 5 and 6 (ignorance cannot be a defense)
*# If God is omnipotent as 1, he must have the power to stop the suffering and evil presented in 5 and 6.
*# God does not stop the suffering and evil presented in 5 and 6, despite being aware of it (2), able to stop it (1), and having the inclination to stop it (3).
*# Therefore one or more of:
*## God is not omnipotent
*## God is not omniscient
*## God is not omnibenevolent
*## God does not exist.
* TODO: Catalogue counterarguments/theodicies
!!! Anti-Cosmological Argument
//Semi-novel.//
Against the backdrop of [[Deep Time]] and [[Cosmological Distances]], the idea of a personal god that cares deeply about whether or not ''you'' masturbate seems silly.
Scaling back to the heavy big picture is very scary. It's terrifying both how small you are and how brief your life is. With this in mind, it's understandable that we wish we had something bigger than ourselves to contribute to. The search for that could be called "spiritual seeking".
!! Debunking, deconstructing, destroying theist ploys
!!! The Ontological Argument
//I think, therefore God exists.//
* https://www.youtube.com/watch?v=HCVMCnisRtw
* [[Better|https://www.youtube.com/watch?v=E6yH0QgwR6Q]]. Let's use this as our basis.
!!!! Anselm's Formation
# It is a conceptual truth (or, so to speak, true by definition) that God is a being than which none greater can be imagined (that is, the greatest possible being that can be imagined).
# God exists as an idea in the mind.
# A being that exists as an idea in the mind and in reality is, other things being equal, greater than a being that exists only as an idea in the mind.
# Thus, if God exists only as an idea in the mind, then we can imagine something that is greater than God (that is, a greatest possible being that does exist).
# But we cannot imagine something that is greater than God (for it is a contradiction to suppose that we can imagine a being greater than the greatest possible being that can be imagined.)
# Therefore, God exists.
This is a bit crappy. The steelman form is better
!!!! Steelman Formation
* P1: God has all perfections
* P2: Necessary existence is a perfection
* P3: If God has necessary existence, he exists
* C: God exists
!!!!! Rusting the Steelman
* P1 [[begs the question|https://en.wikipedia.org/wiki/Begging_the_question]], that is it includes the argument's conclusion: it assumes God's existance. To be reformed without begging the question it must become "If God exists, God has all perfections." (God needs to exist in order to have properties). This is a textbook [[use-mention|https://en.wikipedia.org/wiki/Use%E2%80%93mention_distinction]] error. ([[h0p3]] dismisses this particular argument offhand by raising the specter of use-mention errors)
** If God exists, he has necessary existance... if God exists, he exists. Due to the referential slip-up (use-mention error) here (confusing the idea of a thing with the thing) the argument is reduced to tautology.
* P2, Kant argued, is not true; existence is not a perfection.
!!! The Cosmological Argument (the First Cause)
//Even if you accept the argument, it does not support gods themselves.//
https://www.youtube.com/watch?v=5EVGkl7lj_4
!!! Pascal's Wager
!!!! Premise
|!|!God Exists|!God Does Not Exist|
|!You believe|Infinite Gain|Finite loss|
|!You do not believe|Infinite Loss|Finite gain|
!!!!! Infinity
Recall that for any N != ∞, N - ∞ = -∞, ∞ - N = ∞.
!!!! Objections
# What's to say it's your god that exists? Believing in other gods is apostasy.
#* "An Imam could make the same argument".
#* Have to amend the table with a row for each religion that promises infinite gain for believers and infinite losses for unbelievers
#** And that includes each competing denomination of Christianity. Maybe the Anabaptist God will send your Catholic ass to hell with the rest of us.
# Is a god that would give me infinite punishment for my finite crimes really worthy of worship? Do [[I|chameleon]] [[deserve eternal torture?|https://www.youtube.com/watch?v=r_5yUXjXizQ]]
!! Historical Considerations
From what we know from later historical and scientific evidence, the Jesus of the Bible and of church tradition seems to be a fictional character.
* Appearance: he was most likely not a handsome white femboy, but a stocky, wiry olive-skinned fellow. He was an ascetic, so he probably looked more like a [[sadhu|https://i.imgur.com/IfJG9Q0.jpg]] than like [[Jerry Garcia|https://rockstargallery.net/wp-content/uploads/2017/10/jerry-garcia.jpg]]
** https://getpocket.com/explore/item/what-did-jesus-wear
** https://theconversation.com/what-did-jesus-really-look-like-52529
** https://ntweblog.blogspot.com/2004/02/what-jesus-really-looked-like-updated.html
*** https://imgur.com/39O9Wn0
* Remember, the New Testament was written in Greek by later scholars. Fictional elements were added, such as sympathetic Roman characters.
* Socialism is cool and good
* I oppose fascism, nazism, nationalism, white supremacy, and authoritarianism.
* I am anti-war and anti-imperialist.
* TRANS LIBERATION NOW! Trans women are women. Trans men are men. Non-binary folks are valid.
* LGBTQ+ liberation is one of the most important contemporary social issues in the West. Asexual & aromantic people are included.
* Bangle. Cute gyaru tiger.
** Growf
*** She says "totes fab" now. Adorb.
* Lily. Airheaded frog lady.
** Toady
*** I got her to say "kero" instead.
* Sydney. Sweet wholesome koala
** Sunshine
*** I could never change this, it's too precious.
* Willow. My sleepy sheepy.
** Bo peep
*** I'm not sure what the alternative would be. Maybe "da~arling" (baa + darling)?
* [[Gray vinyl flooring|https://nookazon.com/product/481390609]]
* [[Heavy-curtain wall|https://nookazon.com/product/653796794]]
* [[Beautiful Statue|https://www.polygon.com/animal-crossing-new-horizons-switch-acnh-guide/2020/4/23/21231433/redd-jolly-museum-art-fake-real-forgeries-list-complete-painting-statue#8eD8ca]]
todo: chairs & lamp
* All times are based on system-local time (the time the Switch is set to).
* The day rolls over at 5:00am. That's when you'll get Isabelle/Tom's announcements and when it'll become "tomorrow". Presumably this is when flowers & trees will grow, fruit will return to the trees, daily characters will arrive or leave, etc.
* Nook's Cranny open 8:00am-10:00pm.
* Able Sisters open 9:00 A.M. - 9:00 P.M.
* There are bugs (and probably fish, too) that only appear at certain times. Notably, I haven't seen any butterflies, locusts, or grasshoppers after sundown.
* Hazel says "uni-wow" because she has a unibrow
* Tom Nook's name is a pun on Tanuki/Tanooki
* Koi carp - "Why is it so shy? And so bad at spelling?" - "Koi" is similar to "coy" which kinda means "shy".
Sadly for you, you can't crack the page, because changes are saved locally. But here's some stuff for me to remember.
* Table of Contents tiddler: [[TOC]]
* UsefulSnippets
* UsefulLinks
* $:/TagManager
* $:/ControlPanel
* ClipBoard
* TagMe
* SystemTiddlers
* FootnotesCheatsheet
* StyleTester
* $:/core/macros/timeline
* $:/core/ui/ViewTemplate/subtitle
<<list-links "[tag[Admin]sort[title]]">>
Learned about this from Troika - lovely system, and representing Britain, lol.
* 3 stats - Skill, Stamina, Luck.
** "Skill" general competence; think "Power" from TWERPS. Ranges 7-12 (1d6+6)
** "Stamina" hitpoints and MP rolled into one. Ranges 14-24 (2d6+12)
** "Luck" tested by rolling under, decreasing it by 1. Can be restored by various means. Ranges 7-12 (1d6+6)
* No complicated turn sequence - everyone acts as one, but the enemy's actions announced first
* Combat is 2d6 opposing, higher is better.
** Damage - to stamina - given on a table, per weapon, 1-3 (1-4 for special weapons).
* Skill checks 2d6 under Skill + "Advanced Skill" (i.e. something you've trained in). 1 1 crit, 6 6 fumble.
* Magic is a skill check which drains stamina. Spell list concise and easy. Fumble means roll on the "oops" table (with several nasty effects).
* 1-3 XP per session. Can spend on raising advanced skills, raising an attribute (10 XP per 1 pt increase) or learning a new skill (if a teacher can be found).
* The books are presented as if you're a director directing a fantasy movie in which your players are the protagonists, which is rather charming.
* The second book - Blacksand! - introduces:
** New mechanics (social scale)
*** 0 (beggar/criminal) through 10 (king)
** New skills & spells
** New magical categories: priest spells and minor magic
** Guidelines on adventure design in settlements
** A new setting
** A new adventure
Rabbithole from h0p3's wiki
* Preface - the [[homepage|https://againstprofphil.org/]] - introduction to "real philosophy"
* [[Popular Philosophy, “Populist Philosophy,” Mind-Manacled Philosophy, and Real Philosophy.|https://againstprofphil.org/2020/07/08/popular-philosophy-populist-philosophy-mind-manacled-philosophy-and-real-philosophy/]]
* [[How To Do Real Metaphysics: 22 Theses|https://againstprofphil.org/2020/07/15/how-to-do-real-metaphysics-22-theses/]]
Do No Harm.
Don't raise your hand in anger, young [[chameleon]]. Your rage is powerful, and that is why it is to be feared and controlled.
The intense power of your emotions can be brought to positive ends.
Meditate more! [[Mahakala]] knows the way.
I fucking hate flying.
I hate buying tickets, and the plethora of non-sensical, contradictory options.
I hate waking up early to go to the airport.
I hate queuing to check in, then queuing to have some pervert pat you down.
I hate waiting for my flight, which is inevitably at the furthest gate from the entrance.
I hate boarding the flight and how long it takes.
I hate being cooped up in a tight space surrounded by screaming children for hours.
I hate waiting to get off the plane after it lands.
I hate going through customs, passport control, and baggage claim while fighting off jetlag.
Basically the entire experience is a shitshow for me. Perhaps that's why I repeatedly see one in my dreams. If I have a dream that I remember, there's a high likelihood it'll have an airport in it. It's a very particular one as well, the same one every time: the road that leads to the airport has banked corners like a quarter pipe, and inside, it's open plan with benches all around.
I'm unsure if this is a real airport I've been to, or if my subconscious invented it out of whole-cloth.
!! Orcs
(P)Orks - pig-looking orcs, see anime & DQ-&-inspired fantasy games.
<<<
Orcs are super hardy and can withstand a great deal more physical punishment than humans. They culture is very physical and roughhousing with 2x4s and big rocks is commonplace and is analogous to human children chasing each other around with wooden swords or hitting one another with clods of dirt. Because of this Orcs raised in a purely Orcish society often are mistaken as being brutish and violent, as their lack of acclimation toward others means they're much more physical and to a much greater extent than other races. What would be a playful punch between two humans is a bruising blow. Their social games of physical prowess would ordinarily maim or kill those of other races and competitions between villages look more akin to battles than sport. This leads to an impression of brutish savages with a hunger for war when actual warfare between Orcs is extremely rare.
<<<
<<<
"""
Honestly I like to portray Orcs very similarly to that, except I like to say that Orcs fight it out all the time. If two Orc tribes have a dispute they'll go to war, but to them "war" is nothing. 999 of 1,000 of the Orcs won't get anything more than a scar from it.
But Orcs just don't realize anyone who isn't an Orc will be fucking killed by a mace to the face, so they try to solve disputes with humans and elves the same way they would with Orcs and accidently kill tons of them.
Other little things I like to play with:
>Elves are by far the most comedically inclined race, but no other race understands their humor. This causes Elves to make fun of them more.
>Dwarves desperately want to be liked, but it doesn't count if they tell you that. Their gruff, angry exteriors are just their way of getting attention.
>Halflings produce five times the food that humans do and eat, well, half as much. Halflings villages are openly completed for by kingdoms, and no nobility will ever insult a halfling. All the anachronistic foods in the world were introduced by Halfling mages.
"""
<<<
<<<
My (p)orcs have just the same variety as humans, they can be peaceful farmers or ruthless bandits.
<<<
<<<
'ave humie malewife, he bad malewife, too civil, how to make my humie wild?
<<< - poster on ORKchan
!! Elves
<<<
My elves are creepy reclusive forest folk have to drink fresh blood weekly to stay healthy (loads of fresh veggies do the trick too, tho, while things like iron rations make them sick quickly) and are rumored to steal small human children.
<<<
Pratchett's elves.
!! Dorfs
<<<
My dwarfs actually eat rocks and minerals, together with roots and undergroud shrooms, and their beer is spiced with sulphur.
<<<
!! Halflings
<<<
My halflings are so rural that fields tended by them yield 50% more crops, they don't even have to work more, the fields just produce more when there's halflings around.
<<<
!! Others
!!! Catfolk
<<<
<drawing of a Catfolk lady in chainmail with a flaming bone in hand>
Just one of the many undead hunters the catfolk have. I got no real idea for characters (yet). Their anti-undead magic is based off of the idea of using dead things to 'remind' undead of what they should be, hence the bone necklace and flaming femur. I don't think this is really the thread for selling my ideas though.
<<<
&| - I use this to mean and/or, the inclusive or. The symbols come from their traditional computer science meaning - || is or in most languages, and && is and, i.e.:
```c
if ((foo && bar) || (baz && qux)) {
```
My [[pepe silvia board|https://www.youtube.com/watch?v=_nTpsv9PNqo]]
<<list-links "[tag[An Enlightenment Beyond Enlightenment]]">>
February 3, 1976
__An Open Letter to Hobbyists__
To me, the most critical thing in the hobby market right now is the lack of good software courses, books and software itself. Without good software and an owner who understands programming, a hobby computer is wasted. Will quality software be written for the hobby market?
Almost a year ago, Paul Allen and myself, expecting the hobby market to expand, hired Monte Davidoff and developed Altair BASIC. Though the initial work took only two months, the three of us have spent most of the last year documenting, improving and adding features to BASIC. Now we have 4K, 8K, EXTENDED, ROM and DISK BASIC. The value of the computer time we have used exceeds $40,000.
The feedback we have gotten from the hundreds of people who say they are using BASIC has all been positive. Two surprising things are apparent, however, 1) Most of these "users" never bought BASIC (less than 10% of all Altair owners have bought BASIC), and 2) The amount of royalties we have received from sales to hobbyists makes the time spent on Altair BASIC worth less than $2 an hour.
Why is this? As the majority of hobbyists must be aware, most of you steal your software. Hardware must be paid for, but software is something to share. Who cares if the people who worked on it get paid?
Is this fair? One thing you don't do by stealing software is get back at MITS for some problem you may have had. MITS doesn't make money selling software. The royalty paid to us, the manual, the tape and the overhead make it a break-even operation. One thing you do do is prevent good software from being written. Who can afford to do professional work for nothing? What hobbyist can put 3-man years into programming, finding all bugs, documenting his product and distribute for free? The fact is, no one besides us has invested a lot of money in hobby software. We have written 6800 BASIC, and are writing 8080 APL and 6800 APL, but there is very little incentive to make this software available to hobbyists. Most directly, the thing you do is theft.
What about the guys who re-sell Altair BASIC, aren't they making money on hobby software? Yes, but those who have been reported to us may lose in the end. They are the ones who give hobbyists a bad name, and should be kicked out of any club meeting they show up at.
I would appreciate letters from any one who wants to pay up, or has a suggestion or comment. Just write to me at 1180 Alvarado SE, #114, Albuquerque, New Mexico, 87108. Nothing would please me more than being able to hire ten programmers and deluge the hobby market with good software.
"""
Bill Gates
General Partner, Micro-Soft
"""
"The Analects" are the main Confucian tome. They're a collection of sayings from Confucius, and dialogues he had with his followers.
The book is extremely difficult to read. It's not a book as we would think of it in modern times. I would absolutely recommend getting a commentary instead of reading it straight up. I'm reading [["Analects: With Selections from Traditional Commentaries (Hackett Classics)" by Edward Slingerland|https://www.amazon.com/Analects-Selections-Traditional-Commentaries-Classics/dp/0872206351]], which seems to be probably the best way for a Westerner with at best a passing knowledge of Chinese history to understand it. Historical knowledge is a must to understand the Analects, and this book has an excellent introduction and great commentary throughout for you to understand it through this lens.
In future, I think a "paths through the Anelects" series would be a good idea.
---
<a href="../../Documents/philosophy/confucius/Analects (commentary).pdf" target="_blank">Local link</a>
Android is a shitty platform beset with ads and in-app purchases. Still, there are a handful of apps that cover basic usecases that don't suck.
* Music player: Musicolet
* File manager (archive support): ~AlFile
* Photo manager: Snapseed (''Warning:'' Google)
AnCo are the ultimate /mu/core band, I think - yes even more than NMH, their discography is longer. They're notoriously weird and have a very dense, varied discography. The main albums I'm familiar with are:
* MPP
* Strawberry Jam
* Feels
They have a heckuva lot more, though, and I've heard a fair amount of it.
-----
Wanna get into them? Some have suggested "Merriweather Post Pavilion" to start with, which isn't a bad idea, it's their most highly-rated and famous album and has a good variety of weird shit and good shit. If you were to do that and enjoy it, the progression probably would be the same as me - go to Feels via SJ.
However, someone who's more into them than me made a flowchart, and they are suggesting more obscure stuff (and starting with Feels, too!): https://imgur.com/a/t1NEAWN
Suggesting Song Tongs is really something, haha. Here's a few songs to check out:
* [[Grass, from Feels|https://www.youtube.com/watch?v=fqWvKlOeqgU]]
* [[Summertime Clothes, from MPP (trippy video)|https://www.youtube.com/watch?v=GxhaRgJUMl8]]
** [[Another MPP song, My Girls, also featuring a video|https://www.youtube.com/watch?v=zol2MJf6XNE]]
* [[College from Song Tongs. I really feel those lyrics, man.|https://www.youtube.com/watch?v=t69UYgeFDvY]]
----
Rabbithole is to look into their live performances and solo stuff. They get REALLY weird live. Probably up there with 70s Dead in how rad seeing them would be.
[[Sphygmus]] bought it for me - [[2020.04.08 - Animal Crossing]] - thank you so much ''♥''. Since then I've played it every day, often for multiple hours. It's my first Animal Crossing game.
<<chame-list-links "[tag[Animal Crossing: New Horizons]]">>
<<<
Those who identify as 'otaku', they sicken me greatly. Anime was a mistake. It's nothing but trash.
<<< Hayao Miyazaki ,,(not really),,
<<<
if there's any group that hates weebs it's weebs
<<< /u/wateryoudoinglmao
<<chame-list-links "[tag[Anime and Manga]]">>
!! I've never seen an anime before, what should I watch?
* [[A jazz-tinged hard SF gangster adventure|https://myanimelist.net/anime/1/Cowboy_Bebop]]
* [[A punk-rock coming of age extravaganza|https://myanimelist.net/anime/227/FLCL]]
* [[A psychological drama disguised as mecha battles|https://myanimelist.net/anime/30/Neon_Genesis_Evangelion]] (please watch a fansub instead of the Netflix sub)
!! Hang on, weren't there supposed to be cute girls?
Well sure. Do you want cute girls...
* [[...starting a band and getting up to misadventures?|https://myanimelist.net/anime/5680/K-On]]
* [[...going about their absurd daily lives?|https://myanimelist.net/anime/10165/Nichijou]]
* [[...becoming popstars?|https://myanimelist.net/anime/10278/The_iDOLMSTER]]
** [[...again with different girls?|https://myanimelist.net/anime/23587/The_iDOLMSTER_Cinderella_Girls]]
* [[...discussing existential issues as they navigate the post-apocolypse?|https://myanimelist.net/anime/35838/Shoujo_Shuumatsu_Ryokou]]
!! None of this moeshit. I want adventure!
* [[Smol broccoli boy Does Nothing Wrong as he learns how to become a superhero|https://myanimelist.net/anime/31964/Boku_no_Hero_Academia]]
* [[Local Cinnamon Roll Fights a (hot) Killer Clown and the Bugs of Doom|https://myanimelist.net/anime/11061/Hunter_x_Hunter_2011]]
* [[What if Journey to the West, but with even more hijinks?|https://myanimelist.net/anime/223/Dragon_Ball]]
* [[Go beyond the impossible!|https://myanimelist.net/anime/2001/Tengen_Toppa_Gurren_Lagann]]
!! This is all weaksauce. Give me the Good Shit.
~JoJo's Bizzare Adventure is for you. Watch the parts in order, my dudex:
# Jonathon Joestar, the perfect gentleman, fights against his evil vampire stepbrother
# Joseph Joestar, a woman's man and all-around badass, fights to destroy the Pillar Men, the evil originators of vampirism
# Kujo Jotaro, a delinquent, discovers he has a mysterious ability called a "Stand", and now with the help of a group of True Companions he must journey to Egypt to defeat a great evil...
# [[A bunch of kids kinkshame David Bowie|JJBA part 4]]
# Giorno Giovanna, an Italian con artist, has a dream: to become a Gang Star!
Like many things I've written about on this wiki, the name came first and the idea came later: [[2020.06.14 - anti-reviews]]
<<list-links "[tag[Anti-Review]sort[]]">>
<<<
It's called //"Hentai"//. And it's art.
<<< Stanley - [[The Office (Deleted Scene)|https://www.youtube.com/watch?v=81L3ylAn234]]
<<chame-list-links "[tag[Art]]">>
| 2 3 4 5 6 7
--+------------
0| 0 @ P ` p
1| ! 1 A Q a q
2| " 2 B R b r
3| # 3 C S c s
4| $ 4 D T d t
5| % 5 E U e u
6| & 6 F V f v
7| ' 7 G W g w
8| ( 8 H X h x
9| ) 9 I Y i y
A| * : J Z j z
B| + ; K [ k {
C| , < L \ l |
D| - = M ] m }
E| . > N ^ n ~
F| / ? O _ o DEL
| 0 1 2 3 4 5 6 7
--+-------------------
0|NUL DLE 0 @ P ` p
1|SOH DC1 ! 1 A Q a q
2|STX DC2 " 2 B R b r
3|ETX DC3 # 3 C S c s
4|EOT DC4 $ 4 D T d t
5|ENQ NAK % 5 E U e u
6|ACK SYN & 6 F V f v
7|BEL ETB ' 7 G W g w
8| BS CAN ( 8 H X h x
9|TAB EM ) 9 I Y i y
A| LF SUB * : J Z j z
B| VT ESC + ; K [ k {
C| FF FS , < L \ l |
D| CR GS - = M ] m }
E| SO RS . > N ^ n ~
F| SI US / ? O _ o DEL
<div style="text-align:center;display:inline">
<div style="font-family:monospace;white-space:pre;">
<div style="font-size:100%; line-height:1.3" >
<$view>
</div></div>
<div style="text-align:center;display:inline">
<div style="font-family:monospace;white-space:pre;">
<div style="font-size:30%; line-height:1.3">
<$view>
</div></div>
<div style="text-align:center;display:inline">
<div style="font-family:monospace;white-space:pre;line-height:1">
<div style="font-size:50%">
<$view>
</div></div>
<div style="text-align:center;display:inline">
<div style="font-family:monospace;white-space:pre;">
<div style="font-size:80%; line-height:1">
<$view>
</div></div>
<div style="display:inline">
<div style="font-family:monospace;white-space:pre;">
<div style="font-size:80%; line-height:1.3" >
<$view>
</div></div>
<div style="display:inline">
<div style="font-family:monospace;white-space:pre;">
<div style="font-size:100%; line-height:1.3" >
<$view>
</div></div>
//I'm the worst kind of fandom trash, I know. But yeah, the romance was so sweet on this show we kinda couldn't help ourselves.//
!! Canon
!!! Katara/Aang (Kataang)
* The alpha couple, of course.
* Implied very early on.
* It was fairly obviously going to happen but there were still Zutara true believers right up until the end of the last episode.
* Birds of a feather. The sweet, funny Aang with the kind, motherly Katara.
* https://www.youtube.com/watch?v=6LI8_cN_FK0
!!! Sokka/Suki (Sukka)
* Apparently, Suki was supposed to be a one-off, but she was popular enough to return.
* She and Sokka had their this-is-happening moment in the Serpent's Pass episode... ironically the one where we got our first Tokka hint.
* Suki isn't mentioned in Korra, so where exactly Sokka spent his time after A:TLA is ambiguous.
* Quite birds-of-a-feather. They're both warriors, they're both non-benders, they're great friends.
* Tokka was more popular while the show was airing, but Sukka seems to be more popular post-finale. Canon makes them powerful.
!!! Mai/Zuko (Maiko)
* Rare childhood friend endgame example.
* They're pretty sweet together let's face it.
* The mercurial Zuko with the cool, calm Mai has some opposites-attract energy that the other canon ships lack.
!! Non-Canon, but popular
!!! Zuko/Katara (Zutara)
* Easily the most popular ship of the show; possibly in all of Western animation.
* Probably started by the moment where he taunted her with her necklace... which is later revealed to be an engagement necklace.
* He's hot (heh) and Katara is self-insertable, you do the math.
* Shout-out to the special where he and the others got cucked by his own alter ego.
* Opposites attract. Fire and water; older and younger sibling; Zuko is mercurial and brooding, where Katara is more upbeat; they were enemies and Zuko was the villain, so they had that taming-the-bad-boy appeal.
!!! Toph/Sokka (Tokka)
* Be still, my beating heart. This was my OTP... still is, I guess.
* It looked like it might be, for a second there. All just bait though. Jossed by the finale.
* One-sided crush, and [[the first hints of it|https://youtu.be/FWw9g7nSesQ?t=46]] in what, the third Toph episode?
!!! Zuko/Sokka
* I mean, if you're a fujo, who else are you going to ship the hot fire dude with?
!!! Sokka/Azula (Sokkla)
* Kinda like mirror Zutara, I guess. Also has [[a femdom appeal|https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/37551b48-12ae-4241-ac0a-513fcee3ce1e/d24p0l8-e7233ea8-9b5c-4461-b1de-a814a2cd54d9.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3sicGF0aCI6IlwvZlwvMzc1NTFiNDgtMTJhZS00MjQxLWFjMGEtNTEzZmNlZTNjZTFlXC9kMjRwMGw4LWU3MjMzZWE4LTliNWMtNDQ2MS1iMWRlLWE4MTRhMmNkNTRkOS5qcGcifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.t9ePd4TKDCog7J_gJRHYSo14SSAhCakFjji6DGSBYvE]].
* Has some great fics. [[Gladiator|https://archiveofourown.org/works/1116350/chapters/2248584]] is a personal rec.
* Azula didn't have many humanizing moments in the series, but it's easy enough to think of humanizing headcanons:
** She wants to be taken seriously by a sexist society
** She has been influenced by her father
** Nobody has treated her as an equal before
!!! Azula/Ty Lee
* Subordinate-shipping, of the degree of Youmu/Yuyuko from 2hu
* I think this is the main Azula ship, except perhaps Sokkla
!! Crack/Rarepairs
(OK I'm shitting on some of these a little, but that doesn't mean you shouldn't enjoy what you enjoy and ship what you like. KINKTOMATO!)
* Toph/Aang (Taang)
** More partial to this as time goes on
** They're closer in age and build.
** Opposites attract in that Aang is the quintessential airbender and Toph the quintessential earthbender.
** Rating: 6/10
* Toph/Zuko (Toko)
** He still owes her a life-changing roadtrip...
** Not that much appeal for me. Has pair-the-spares energy (what for though? Kataang + Sukka? Surely if you're canon ride-or-die you'd ship him with Mai?)
** Rating: 5/10
* Azula/Katara (Azutara)
** People who ship this are powerful and chaotic, probably even moreso than Launch/Raditz gang, and I daren't get on their bad side
** Rating: Σ/10
* Iroh/tea
** Rating: 10/10 otp
* Katara/Sokka
** They're siblings y'all
** Rating: this is why we can't have nice things/10
* Appa/Momo
** Aang's two animal companions. they're not even the same species lol.
** Rating: you sick fucks/10
<<chame-list-links "[tag[Audit]]">>
Let's try to keep this from being autofellatio, yeah?
!! 90s, early 00s
* I was a child.
* From a very early age I was surrounded by computers and electronics (thanks Dad) and read a lot (thanks Mum).
** Mum and Dad are both big role models and remain so to this day.
* My first music nerdery started...
** Dad got me into rock music (he plays guitar)
** I played Lego Island, which was the first inklings of me later turning into a jazz nerd.
** All my grandparents were into music, so I ended up absorbing a lot of classical music, oldies, and trad jazz just by being around them a lot.
** Mum's music taste was Not Good but it at least taught me what I //don't// like.
*** It's gotten better with time, lol
** As we approach the end of the 00s I got into rock, metal, and emo.
* Anime was a presence, because western cartoons were really bad in the 00s (apart from like, A:TLA)
** Especially Pokemon. Big multimedia franchise that gave me my first taste of fandom.
!! 2006
* Started using ~YouTube which would help shape my music taste.
** I remember the pre-Google days, and tbh I think they were better. Of course, nobody knew back then the monster Google would become.
* IIRC, I got my red iPod Nano around here, which would be my main way to listen to music pretty much until it broke in 2015.
** This era is when I considered my music taste to have started to develop.
*** Obviously these years were formative for my later taste, though I'm a lot more adventurous now than I was then.
!! 2008
* I met [[Konata]].
** I count this year as my anniversary year.
** I got [[laughed at|Lol chameleon]] for telling someone I was attracted to her, hahaha.
* I started learning how to make games (i.e. to program).
* I started seriously becoming an anime freak.
!! 2012
* Graduated high school and went to university
* Met [[Shedu]].
* Held down my first job
!! 2013
* Got into my first serious relationship.
* Started my Konata folder in earnest.
* Started to come to terms with my identity, especially in LGBT terms.
!! 2014
* Met [[The Abyssal]].
* Met [[score_under]].
* Politically active for the first time.
!! 2015
* Met [[Nobu]].
* Met Alex.
* Broke up with the ex.
** Traumatic relationship; I think it's fair to call it an abusive relationship. Might have to write about it sometime.
* Graduated university.
* Learned how to play guitar.
!! 2016
* Got with my now-husband.
* Entered the workforce proper.
* Learned Golang.
* I call this the worst year of my life. Everything went wrong for me this year until the last few months when I got an actually good job, except the nice period in Spring after getting with my future-hubby. There was a period where I often meditated in place of meals. This year could be subtitled "So you hit rock bottom: A solid foundation."
!! 2017
* Bad depressive episode.
* Became a Buddhist
** Took the bodhisattva vows.
* Spilled a lot of ink on [[Spiritual Computation]].
!! 2018
* Started writing the fujo story
* Hubs proposed, I accepted
** In the airport, what a sweet dork ''♥''
** Working to live together continues into 2019
!! 2019
* Started this wiki
* Moved to America (Q4)
* Married my husband
!! 2020
* Work permit and green card
* New job
Six enlightened beings?
# [[Shedu]]
# D's Dad
# [[Nobu]]
# [[N]]
# ???
# ???
[img[OM_MANI_PADME_HUM.svg]]
My next main workstation, which I'll build after I emigrate (if everything goes to plan, that should be in October or November) and once I'm sure I can afford to drop 2k USD on an absolute monster like this =w=.
[["Avalokiteshvara"|https://en.wikipedia.org/wiki/Avalokite%C5%9Bvara]] (अवलोकितेश्वर) is the Boddhisattva of compassion; his mantra, "Om Mani Padme Hum", is the most famous Buddhist mantra.
Design goals:
* as much grafficks/memory/cpu grunt as I can afford really
* will dual boot linux and w10 (for muhgames i.e. TES, driving games)
* decent amount of storage with option for more (I datahoard like a bitch)
See [[2019.08.14 - New PC?]] for the initial setup.
My brother drafted [[an updated parts list.|https://pcpartpicker.com/list/xDdMP3]]
Featuring comments from the [[CLUBBER]]S, [[h0p3]], and Kirbs.
* CPU: AMD Ryzen 7 3700X 3.6 GHz 8-Core Processor
** Score: anyway why ryzen 7 instead of ryzen 9 if you're trying to go for high-end?
** Lofty: The ryzen 9 clocks higher
** h0p3: If price matters, you might consider dropping to a 3600/3600X.
* Cooler: Cooler Master Hyper 212 EVO 82.9 CFM Sleeve Bearing CPU Cooler
** Lofty: AFAIK the AMD stock coolers are actually very good
** h0p3: The cooler that comes with the Ryzen is loud, imho, but I've not slapped my hyper212 on it (maybe I should).
** Kirby: I'd go with an Arctic cooler
** Alex: I'd use something better on the cooler than a hyper 212 evo. Not that it's bad, but a Noctua NH-U12S or NH-U14S are good if you can get past the brown and beige fans
* Motherboard: Gigabyte X570 GAMING X ATX AM4 Motherboard
** Lofty: don't bother with an X570 chipset; look for a B350/B450 instead. The AMD X-series chips don't offer anything meaningful as far as I can tell: PCIe4 is whatever, and XFR makes overclocking pointless. The MSI B450 Tomahawk is $40 cheaper
* RAM: Corsair Vengeance LPX 32 GB (2 x 16 GB) DDR4-3200 Memory
** Alex: Not sure what you'd need 32GB of RAM for, I edit videos and even I only have 16GB
** Lofty: freerealestate.gif
** h0p3: I know some people think 32GB of RAM is too much, but they are wrong. I think this machine will last for a long time.
* Primary storage: Intel 660p Series 2.048 TB M.2-2280 NVME Solid State Drive
** h0p3: One of the reasons I didn't go with that SSD is because it is QLC. We've had 2 SSDs die on us in our household, so I'm worried about it (perhaps irrationally). Nvme has not disappointed me!
*** I was suspicious of SSDs at first, but as a late adopter I've never had trouble. I've been running my main computer (mahakala) off an SSD for like 4 years now with no issues. Booting into linux is basically instantaneous after the bios has finished talking to itself.
** Alex: https://www.amazon.co.uk/Intel-SSDPEKNW020T8X1-SSD-660P-Internal/dp/B07JHGMNC5/ref=sr_1_3?keywords=2tb+ssd+intel&qid=1568549800&sr=8-3 Looked at that 2TB SSD you were looking at, might wanna look at the reviews
*** me: the reviews suggest it's a piece of crap :/
*** score: """Linus Tech Tips reviewed optane a while ago
I think the idea was that it was low-latency but slow
target usage was as swap/pagefile I think
"""
* Secondary Storage: Seagate Barracuda Compute 8 TB 3.5" 5400RPM Internal Hard Drive
** This was the most contentious, everyone thought I was stupid. I tend to agree tbh, I think I can get away with splashing on [[a really nice NAS|https://www.pcmag.com/review/368252/synology-diskstation-ds1019]] instead (I was planning on spending a lot on one anyways).
* Video card: XFX Radeon RX 5700 XT 8 GB Video Card
** Alex: If there's other 5700 graphics cards available I'd go for one that isn't a blower style card
** Alex: https://www.techpowerup.com/258110/xfx-radeon-rx-5700-xt-thicc-ii-graphics-card-pictured you could get this. the 3 confirmed custom 5700 cards: ASUS Strix, XFX Thicc, and Sapphire Pulse.
*** I can't //not// get a card called "thicc"
** h0p3: I assume you will be gaming or doing GPGPU with that beast! You might consider a cheap GPU for passthrough.
*** Yep. Gaming. I've had a midrange card for years by now and I'm sick of it. I want to be able to make games my bitch again ;)
* PSU: EVGA BR 500 W 80+ Bronze Certified ATX Power Supply
** Alex: get a good case and a modular power supply pls. Maybe upgrade to a slightly higher wattage - power supplies are at their most efficient at about 60-75% of capacity, so 650W should be your sweet spot
** Kirby: [I'd go with] a 80+ Platinum or Iridium
** Lofty: Tying together h0p3 and Alex's comments on the PSU: 80 PLUS PSUs are rated for being most efficient at 50% power. I think 80+ Gold is definitely worth it. Beyond that? Difficult to say
* Optical Drive: LG WH14NS40 Blu-Ray/DVD/CD Writer
** Alex: What's the blu ray drive for anyway? Oh wait nevermind I know exactly what it's for silly me
** h0p3: When was the last time you used an optical drive? I still had a floppy drive 2 builds ago, and my last build, monster-10 still has an optical. Might not be worth it; I simply don't know. If you've used one in the past year, then I should you should keep it.
** me: I want an optical drive for several purposes:
**# Ripping audio CDs (yes I still do this)
**# Watching/ripping movies & [[anime|Lucky Star]] (ditto)
**# Emulating systems which use optical drives (save my storage space for things other than ISOs)
**# Burning data (again, I datahoard. This would be a good way to offload stuff which is bulky but not changed often)
* I will choose a case once the component list is more set in stone.
** h0p3 wants to see it when it's done!
* Peripherals:
*# Twin/Tri monitor setup (not 4k, that's just asking for trouble)
*# Code keyboard from home or my space cadet from work
*# Generic but decent mouse, mousemat
*# Headphones
*#* Or, possibly, RCA cables leading to the stonking hifi system [[The Abyssal]] and I will no doubt build
*#* He may want to attach his midi keyboard too
*# xbox 360 wired controller
*#* Lofty: I actually quite like the Steam controller. It's weird, but it's grown on me.
*#* Alex: DS4 is my preferred pad these days. You can remap the buttons on it so you don't have to do weird control setups to get the THPS revert on triggers
//My contribution to an ancient art.//
* Sokka's Wolftail
* Aang and the Avatars
* The Boomerang Squad
My husband and I have been rewatching this old classic. It's every bit as good as I remember it. This show was definitely what pushed me over the edge into being a full-on weeb... Ironic, since it was made in the West, but like everything that was good in that scene in that time period, it was heavily anime-inspired, and to get something like it you had to go East. I watched the likes of Bleach, Naruto, and Inuyasha as a result of enjoying A:TLA so much, and ''TIMING!'' resulted in me checking out [[Lucky Star]].
It was called "The Legend of Aang" in the UK, rather than "The Last Airbender", because "bender" is slang for a gay man ("I always knew you were a bender" has very different connotations in British English).
!! Scattered thoughts
* Uncle Iroh is my favorite character. He definitely sparked an interest in Asian philosophy for me.
** He has some [[h0p3]] energy. Especially back when he had the long beard :P
* I love Sokka (and just about any ship involving him) and I love Toph too. Me shipping Tokka was probably inevitable.
** They teased us with a one-sided crush in season 3, but it ultimately didn't work out.
* If I could bend an element, I'd want it to be either Air or Water. Firebending and Earthbending are both cool, but too destructive for my tastes.
* The Zutara ship pretty much exists because of one scene: Zuko being all smooth when showing Katara he has her necklace. The scene doesn't seem to be on youtube, unfortunately.
** This one got [[jossed|https://tvtropes.org/pmwiki/pmwiki.php/Main/Jossed]] HARD, unlike Tokka which just didn't happen. It's unlikely that this was unintentional; the creators knew about the word "shipping" and Zutara was far and away the most popular ship in the fandom.
!! Korra
Kind of inevitable when you talk about Avatar these days that you have to talk about Korra. I didn't like it.
The setting was weird; I think the creators got bored of Avatar's pseudo-medieval-with-industrial-revolutionary-elements world and wanted to make a prohibition-era gangster setting... so they broke the worldbuilding completely in order to accomodate it.
The shipping was even more convoluted and baity. They had a Zuko expy and a Sokka expy; and they eventually had the MC go for a lesbian option. That was really cool! It was handled much better in Steven Universe, though.
Someone (I forget who) made the point that [[Korra's first appearance|https://youtu.be/kIXuQdS4mPM?t=33]] seems to mock fans of the original series: "I'm the Avatar, and you gotta deal with it!" If you were skeptical about the show before seeing the first episode, this would not help.
She's a highly unlikable character in general. As opposed to Aang being a kind, well-meaning but naïve young boy, Korra is a snotty, arrogant teenager. Aang struggles to learn all the elements; Korra naturally has mastery of the first three. Character development (apparently) makes her bearable later on, but that was after I'd dropped the show.
Overall, I'd say definitely watch A:TLA but don't bother with Korra. If you're left craving more, read the comics or fanfiction. My headcanon is that due to the genocide of the Air Nomads, the Avatar as a concept died with Aang, and none of Korra happened.
<<list-links "[tag[Avatar: TLA]]">>
* What if we ~~kissed on $:/core/ui/SideBar/Recent~~ 😳😳
** And we're ~~both girls~~ 😳😳
*** Just kidding... ~~unless...~~ 😳😳😳
```
__,--'''''--,_ _,aad888baa,_
_-' `\ ,d88888888888888b,_
,' `\,d8888888888888888888b,
/ `Y888888888888888888888b
/ `\ `Y88888888888888888888b
( ,d, `Y8888888888888888888b
( ,d888b, `Y888888888888888888
( ,d8888888b, I88888888888888888P
\ ,d88888888888ba,__,a88888888888888888P
\ ,d888888888888888888888888888888888888P
`. ,d888888888888888888888888P' `Y88888P'
\ ,d8888888P'd8888888888888P""( `Y88"
,d8888888P'd8888888888888P' \ "<
d8888888P'd888888P'd888P""( `\ )
Y88888P'd888888P'd888P' \ `\ ,'
`"""'d888888P'd88P""( `\ `\-'
Y88888P'd88P' \ `\ )
`"""'d8888( `\ `\_,-'
Y88888Pb, `\ )
`"""'d88b, `\_,-' Normand
Y88888\ ) Veilleux
`"""' `\_,-'
```
!! Tools
* Blender
* Paring knife
* Glasses
!! Base
* 1 cup of milk
* 1 banana, peeled and halved
* A handful of ice
Blend together till smooth and frothy, and serve. Makes two glasses.
!! [[Abyssal|The Abyssal]] juice
Add to base:
* Peanut butter
** We tried two no-bake PB cookies, which was OK but left oatmeal in the glass; I think it'll be better with plain PB
* A shot of chocolate liqueur
** Will try with chocolate ice cream
!! Indian variant
Add to base:
* Sugar
* Dates
The basic set dice are:
# A yellow d4
# A reddish-orange d6
# A green d8
# A light blue d12
# A pink-white old-school d20 (i.e. numbered 0-9 twice)
See [[Grognardia|https://grognardia.blogspot.com/2011/06/open-friday-weird-dice.html]] for a photograph of a typical set.
The most well known of the Hindu scriptures.
!! Finding Help in the Bhagavad Gita
(transcribed [[infographic|https://cdn.discordapp.com/attachments/855760684143083532/886278710309834782/unknown.png]], source unknown)
Do you find yourself in any of the situations below?
* [[Anger|The Altar of Wrath]]
** Chapter 2
*** Text 56
*** Text 62
*** Text 63
** Chapter 5 text 26
** Chapter 16
*** Text 1
*** Text 2
*** Text 3
*** Text 21
* Feeling Sinful
** Chapter 4
*** Text 36
*** Text 37
** Chapter 5 text 10
** Chapter 9 Text 30
** Chapter 10 text 3
** Chapter 14 text 6
** Chapter 18 text 66
* Practicing Forgiveness
** Chapter 11 Text 44
** Chapter 12
*** Text 13
*** Text 14
** Chapter 16
*** Text 1
*** Text 2
*** Text 3
* [[Pride|The Altar of Pride]]
** Chapter 16
*** Text 4
*** Text 13
*** Text 15
** Chapter 18
*** Text 26
*** Text 58
* Death of a loved one
** Chapter 2
*** Text 13
*** Text 20
*** Text 22
*** Text 25
*** Text 27
* Seeking Peace
** Chapter 2
*** Text 66
*** Text 71
** Chapter 4 text 39
** Chapter 5 Text 29
** Chapter 8 Text 28
* [[Lust|The Altar of Lust]]
** Chapter 3
*** Text 37
*** Text 41
*** Text 43
** Chapter 5 Text 22
** Chapter 16 Text 21
* Uncontrolled Mind
** Chapter 6
*** Text 5
*** Text 6
*** Text 26
*** Text 35
* [[Dealing with envy|The Altar of Envy]]
** Chapter 12
*** Text 13
*** Text 14
** Chapter 16 text 19
** Chapter 18 text 71
* Discriminated
** Chapter 5
*** Text 18
*** Text 19
** Chapter 6 Text 32
** Chapter 9 Text 29
* [[Laziness|The Altar of Sloth]]
** Chapter 3
*** Text 8
*** Text 20
** Chapter 6 Text 16
** Chapter 18 Text 39
* Loneliness
** Chapter 6 Text 30
** Chapter 9 Text 29
** Chapter 13
*** Text 16
*** Text 18
* Depression
** Chapter 2
*** Text 3
*** Text 14
** Chapter 5 Text 21
* Confusion
** Chapter 2 Text 7
** Chapter 3 Text 2
** Chapter 18 Text 61
* Fear
** Chapter 4 Text 10
** Chapter 11 Text 50
** Chapter 18 Text 30
Classic bossa nova song. https://www.youtube.com/watch?v=yfy2ggYnxsk https://en.wikipedia.org/wiki/Bim-Bom
Written by Joāo Gilberto
```
first 2-5-1: barre 3, makes changes quicker
Dm7 = x5355x
G7 = 3x343x
C9 = x3223x
Bm7 = x2423x
E7/9- = xx2131
```
```
Dm7 G7 Dm7 G7
Bim bom bim bim bom bom
Dm7 G7 Dm7 G7 C6/9
Bim bom bim bim bom bim bom
Dm7 G7 Dm7 G7
Bim bom bim bim bom bom
Dm7 G7 Dm7 G7 Bm7 E7/9-
Bim bom bim bim bom bim bim
Am7 Bm7 E7/9-
É só isso o meu baiao
Am7 Bm7 E7/9-
E nao tem mais nada nao
Am7 A7 Dm7 G7
O meu coraçao pediu assim, só...
```
<<<
The less attention you pay to what people say on twitter, the better your life is. No exceptions.
<<<
Shitter is the worst website on the internet. Everyone on there either started as an idiot or was driven to idiocy by being there.
Multiple-time recipient of the [[KUSO WEBSITE AWARD]].
<<list-links "[tag[birdsite.hell]]">>
Archive of DOS software and manuals.
* Primary: http://bitsavers.org/
* HTTP Mirrors:
** http://bitsavers.computerhistory.org/
** http://bitsavers.informatik.uni-stuttgart.de/
** http://bitsavers.trailing-edge.com/
** http://www.bighole.nl/pub/mirror/www.bitsavers.org/
** http://www.mirrorservice.org/sites/www.bitsavers.org/
** http://ftpmirror.your.org/pub/misc/bitsavers/
* FTP Mirrors:
** ftp://bitsavers.informatik.uni-stuttgart.de/
** ftp://ftp.mirrorservice.org/sites/www.bitsavers.org/
** ftp://ftpmirror.your.org/pub/misc/bitsavers/
* rsync mirror:
** `rsync://ftpmirror.your.org/everything/pub/misc/bitsavers/`
Contains some gems. Check out the "computing archive"; it includes rare manuals for ~WordStar and the Borland compilers.
* Fantasy can do better than medieval pastiche
** Maybe this is why gonzo or stuff with an asian perspective does so well
** show some of those amazing pics you saved (remembering to credit artists)
* Anime fantasy races
** Meido class!!!
* Math/dice/stats geekery
# Sentient beings are innumerable; I vow to save them all.
# Desires are inexhaustible; I vow to end them all.
# The Dharma Gates are infinite; I vow to enter them all.
# The Buddha Way is unexcelled; I vow to attain it completely.
---
The 18 primary root downfalls of the bodhisattva vows are:
# Praising ourselves and/or belittling others
# Not sharing Dharma teachings or wealth
# Not listening to others' apologies or striking others
# Discarding the Mahayana teachings and propounding made-up ones
# Taking offerings intended for the Triple Gem (The Buddha, The Dharma, The Sangha)
# Forsaking the holy Dharma
# Disrobing monastics or committing such acts as stealing their robes
# Committing any of the five heinous crimes
## killing our fathers
## killing our mothers
## killing an arhat (a liberated being)
## with bad intentions drawing blood from a Buddha
## causing a split in the monastic community.
# Holding a distorted, antagonistic outlook
# Destroying places such as towns
# Teaching voidness to those whose minds are untrained
# Turning others away from full enlightenment
# Turning others away from their pratimoksha vows
# Belittling the shravaka vehicle
# Proclaiming a false realization of voidness
# Accepting what has been stolen from the Triple Gem
# Establishing unfair policies
# Giving up bodhichitta
Read this a while ago, [[rec'd|https://vividness.live/ritual-vs-mentalism]] by [[David Chapman]]-[[Senpai]]. Really enjoyed it then. Wonder if it'd be related to [[Shinto]]/[[EST]].
Some books mentioned in the preface, available at the usual place:
* Kitzur Shulchan Aruch
* Family Rituals, Zhu Xi, tr. Patrica Ebrey
!! Introduction
Talks about the re-emergence of ritual in recent years, c.f. yoga and [[Pagans]], and in the Chinese world, neo-Confucian li (禮). The word "orthopraxy" is used, which is interesting. I feel like many if not most non-Abrahamic religions are much closer to an orthopraxy, certainly in the pagan-ish strain.
The dominant current of study is to "clarify the meanings of rituals, to show the ways in which their symbols encode & evoke systems of cultural discourse". That is, rituals are supposed to have some concrete meaning and be done for a reason. They further say we're blinded by post-Protestant/post-Enlightenment "ritual action as a referent for meaning whose true essence resides only beyond the ritual itself", e.g. the Augustinian Eucharist: "visible sign of invisible grace".
They define an important concept: "Sincerity", when action [intention] is within social actors, and an external ritual is a marker of same. Contrast with Ritual, which is about ''doing'' not ''saying'', i.e. ''praxis'' and not ''theory''.
Many things can be rituals/ritualistic. "It is the framing of the actions, not the actions themselves, that makes them ritualistic". Further, ritual is not just for the sacred (religious) but also for everyday life.
They outline the book's four central points:
# Ritual creates a ''subjunctive'' "as-if"/"could-be" universe. They contend it makes a shared social world possible. Shared subjunctive recognizes ambiguity (cf. chapmanic nebulosity) in social life & relationships.
# "As-if" is not limited to the sacred or the private. It is not like witnessing an event, but more like performing a concert.
# Sincere views "project an 'as-is' vision of what often becomes a totalistic, unambiguous vision of reality "as it ''really'' is". The modern world is mostly Sincere. Fundamentalism is the endpoint of Sincerity.
# Ritual can help us in the modern world because of its fluid but firm boundaries. Again, cf. chapmanic nebulosity and pattern. They contrast overly firm boundaries in "traditional" (fundamentalist) or otherwise conservative societies which, among other ills, oppress women and have no room for the play and ambiguity of ordinary human life, with the homogeneous misery of the elimination altogether of boundaries at the heart of the Neo-liberal worldview of a global citizen in a global culture with total free trade<<ref "cp">>
!! Chapter 1
Confucian philosopher Xunzi: "Heaven and Earth are the beginning of life; ritual and propriety are the beginning of order; the gentleman is the beginning of ritual and propriety." Humanity brings order via rituals; life is otherwise chaotic. Ritual is a craft like pottery, not something that comes from the inner nature of man.
The authors point out the mistakes of previous scholars of ritual; analyzing the meaning of ritual in terms of part of a coherent worldview is dangerous - it's a post-Protestant attitude to take, it obscures consonances between traditions (such as the Judaic and Confucian they analyze here). Ritual instead "creates a new world, in self-conscious tension with an unritualized world".
For Xunzi, ritual brings "order, hierarchy, principle, and ethics to a world that is otherwise chaotic, amoral, and indifferent - [it allows one] to live //as if// the world were actually a moral, coherent universe."
----
<<footnotes "cp" "Which I might blame more on capitalism than sincerity, but they still have a point.">>
* https://www.youtube.com/watch?v=9O4kFTOEh6k
* https://www.youtube.com/watch?v=Av_rU-yOPd4
* https://www.youtube.com/watch?v=XGQ5P8QVHSg
* http://quantumelephant.co.uk/bookbinder/bookbinder.html
Discretizing things into objects is a human exercise. It's easy and useful to think of particular solid objects as discrete "things", but it gets tricky when things are fluid<<ref li>>, or in parts of objects. The old Socratic joke about defining things by function or composition (cf. the Ship of Theseus) shows the limits of our discretization of the world.
So then, we divide things into two and put a boundary between them. The best example is a building, especially a house. A wall separates outside from inside, and a door allows us a place to cross this boundary and step into the new place. While buildings are situated in places - our house is in the middle of our street, after all - they act as their own places and are treated as such. I'm free to walk around my street, but I'm not allowed to enter my neighbor's house unless I am invited in. I might not feel safe in the street outside (I certainly didn't while living in Canterbury; the street outside was cold, noisy, and sketchy) but I do feel safe inside my house.
So, a building is a good example of a //physical// boundary. What about, say, a non-physical boundary? Self and other is my primary example (and it's one I'm thinking about as I write this). You can define your self in contrast to others; your private thoughts are your own in some way, and others cannot access them. This boundary, however, is porous. I can let slip aspects of myself either accidentally (by yawning) or on purpose (by telling you I'm bored). Aspects of others can affect me, too - if you prick me I'll bleed, if you insult me I'll cry.
Boundaries can be ritualized - that's the purpose of the torii<<ref to>>, the gates that you see which denote the boundary between physical space and the jinja<<ref ji>> which is the lair of the kami. This works in the secular world too. Consider paths. Now of course some paths are actually needed - a concrete path through a muddy field, or a wooden walkway over a body of water or swamp - but others are superfluous or serve unclear purposes. For example, consider a quiet street which curves in a crescent shape, with sidewalks on the outside of the crescent. The source is at the outside left point of the crescent, and the destination is at the outside right. Some people will be reluctant to cross the boundary between road and path, and will walk around the outside of the crescent on the sidewalk (even though with no cars around there's no practical need to do so); others will not consider the boundary at all, and will walk in a straight line from left to right.
Some gods have been venerated as gods of boundaries in and of themselves - Woden/Thoth/Hermes is one such example.
-----
<<footnotes "li" "As in literally liquid. Consider: You have a glass of water. You drink the water, and the cup is said to be empty. However, it still contains some water (the cup is still wet). Furthermore, the definition of empty disincludes being filled by air.">>
<<footnotes "to" "The distinctive gates you see that lead to Shinto temples or holy places: https://en.wikipedia.org/wiki/Torii">>
<<footnotes "ji" "A sacred place or shrine.">>
This is a real crowd pleaser, and more importantly, it's really easy. Everyone likes melted cheese and bacon strips!
It's hardly authentic Mexican, but it is based on a recipe from my local taqueria, so take that how you will.
Works nicely with [[Sauerkraut]].
!! Ingredients
* 4 bacon strips
* 2 eggs
* 1/3 cup milk
* 2 burrito-sized tortillas
* Grated cheese (colby jack melts the best)
* Butter
!! Method
# Preheat the oven to 400 F.
# Line a baking sheet with tin foil.
# Put bacon on the foil, put baking sheet in the oven. Timer 7-15 minutes depending on how crunchy you want that bacon.
# When the timer bongs, beat 2 eggs in 1/3 cup milk
# Heat up a pan and melt a knob of butter in it
# Fry eggs over medium heat, breaking them up once they get solidified
# Once eggs are done enough to separate into two piles, do that and put the grated cheese over the top
# Cover pan, take it off the heat, leave for 2-3 minutes or until cheese melted (putting it back on the heat if necessary)
# Put fillings into tortillas, wrap, serve. Serves two.
I'm used to making this back home, so I've had to include some US-specific notes
!! Ingredients
* Sausage or bacon
** The right type of sausage is called "brats" here
* Egg
* Brown sauce
** UK: HP sauce
** USA: A1 steak sauce or BBQ sauce
* Two slices of bread
!! Method
# Prepare the sausage. If you're frying the egg, you can put it in a pan; if you're boiling the egg, wait until it's done and use the microwave method
#* Pan: Slice the sausage into discs. Fry it until browned, then add the egg
#* Microwave: Fold the sausage into a paper towel. Nuke it for 30 seconds.
# Prepare the egg. Boiled is the easiest and least messy; but fried egg is the tastiest. It probably works with poached egg too.
#* Boiled method:
#*# Put egg in water. Bring to a rolling boil.
#*# Boil it for 10-12 minutes.
#*# Take the egg out with a slotted spoon or tongs, and put in an ice bath
#*# Tap the fat end on the table to make a crack; tear the outer layer off by inserting a spoon into the crack.
# Assemble the sandwich:
## Layer of brown sauce
## Layer of egg
## Layer of sausage - slice in half along the long axis if whole.
!! Notes
* It's way too dry without the sauce.
* Ketchup works if you like that, but I could take it or leave it
* Boxed sandwiches seem to use scrambled egg or a lil' omelette.
* If you're a ''GIGACRACKER'' you can probably use mayo
<<<
Ceasing to do evil, Cultivating the good, Purifying the heart: This is the teaching of the Buddhas.
<<< The Buddha
<<chame-list-links "[tag[Buddhism]]">>
<<<
I dreamed I was a butterfly, flitting around in the sky; then I awoke. Now I wonder: Am I a man who dreamt of being a butterfly, or am I a butterfly dreaming that I am a man?
<<< Zhuangzi
[[DBG]] this basic information.
!! True and False
0 is false. Non-zero is true.
!! Function sigs
I'll append to this every time I forget a basic signature.
```c
/* Pass ptr and new size, returns new ptr. */
void* realloc (void* ptr, size_t size);
/* Returns destination. Same for strcat. */
char * strcpy ( char * destination, const char * source );
/* also returns destination */
char * strncpy ( char * destination, const char * source, size_t num );
/* returns number of chars, not including null term */
int sprintf ( char * str, const char * format, ... );
```
!! GDB quickstart
* Make a breakpoint: `break file.c:123`
** Conditional breakpoint: `break file.c:123 if expr`
* Print a variable/expression: `print expr`
** Display it after every step: `display expr`
* Step over: `n`
* Step into: `s`
Maybe: [[https://www.worldanvil.com/rpg-gamemaster]]; saw this in a video from a subbed channel. I'll look at this.
!! Sources
* Old 4e campaign
* Old stories
This is somewhat difficult for me to write, as I've been a member of this culture in the past. However, I think the damaging effects of it have made themselves known.
One of the chilling effects of [[shitter|birdsite.hell]] has been to create a suspicious, censorious, and hypersensitive culture on the left (and it's mostly the left, but there is a segment of the right that engages in the same thing) where a tiny slip-up or a nasty rumor can invite a harassment campaign down on you.
Two figures who've recently had a mob come after them due to this, who are also on the left and are, for the most part, doing good work, are ~YouTuber and social commentator Natalie Wynn aka ~ContraPoints and free software advocate Richard Stallman, aka RMS.
* Contra shared some of her experiences around being a trans woman, and it could be construed that she was being insensitive towards non-binary folk.
* RMS made some comments about rape and child abuse that were in extremely poor taste.
Now while I'd certainly rather they didn't do these sorts of things (especially RMS) I don't think it's worth them becoming pariahs. The left really needs to stop policing those that agree with us based on slip-ups. At least allow them a chance to apologize and do better, for pity's sake.
And indeed, social media witch-hunt operations frequently [[go horribly wrong|https://www.businessinsider.com/reddit-falsely-accuses-sunil-tripathi-of-boston-bombing-2013-7?r=US&IR=T]] or prove to be baseless; a recent example is of the ~YouTuber ~ProJared, who [[as it turns out|https://www.youtube.com/watch?v=BBywRBbDUjA]] was guilty of nothing more than shitting where he ate.
This is not to minimize the experiences of those who truly are victims - recall high-profile sexual abuse allegations such as those against Bill Cosby, Harvey Weinstein, and Kevin Spacey, which while accompanied by media furore were no doubt (leading to sentencing in Cosby's case) backed by serious actual wrongdoing. There is a serious problem with accusations of sexual assault not leading to convictions or sentencing, or not even being taken seriously, and this issue needs to be solved, but it's not the subject of this post.
The problem is that a social media mob recognizes no nuance and can and will ruin people's lives over trivialities, spurious accusations, or remarks in poor taste. This cannot go on.
* Peter Coffin's [[video|https://www.youtube.com/watch?v=9Yq2idUP9_g]] goes into this a little more.
** He released an [[even better one|https://www.youtube.com/watch?v=4RaR1xAcR9Y]] recently
*** "To call conversations that are fully mediated through like and share metrics 'a community' is a severe issue." Coffin go on seekritclub
* Vaush talked about it [[on stream.|https://www.youtube.com/watch?v=UkC_ZLRcPsU]]
* https://www.youtube.com/watch?v=rIrRmxZ3pUY
The proto-Pokemon. I'll have to work on some of these ideas!
* https://bulbapedia.bulbagarden.net/wiki/Capsule_Monsters
* https://bulbapedia.bulbagarden.net/wiki/List_of_unused_Pok%C3%A9mon_and_character_designs
* https://helixchamber.com/2019/02/16/what-dreams-may-come/
* https://helixchamber.com/media/capsule-monsters/
//From [[Wikipedia|https://en.wikipedia.org/wiki/Cardinal_virtues]].//
* Prudence (φρόνησις, phronēsis; Latin: prudentia; also Wisdom, Sophia, sapientia), the ability to discern the appropriate course of action to be taken in a given situation at the appropriate time.
* Courage (ἀνδρεία, andreia; Latin: fortitudo): also termed fortitude, forbearance, strength, endurance, and the ability to confront fear, uncertainty, and intimidation
* Temperance (σωφροσύνη, sōphrosynē; Latin: temperantia): also known as restraint, the practice of self-control, abstention, discretion, and moderation tempering the appetition. Sōphrosynē can also be translated as sound-mindedness.
* Justice (δικαιοσύνη, dikaiosynē; Latin: iustitia): also considered as fairness, the most extensive and most important virtue; the Greek word also having the meaning righteousness
Jung (and of course his indirect disciple [[Joseph Campbell]]) looms heavy over my work. I need to read him!
* https://counselinginzurich.com/carl-jung-books-and-how-to-read-them/
* https://kalampedia.org/2019/02/06/how-to-read-carl-jung/
# Man & His Symbols
# Memories, Dreams and Reflections - memoirs
# Modern Man in Search of the Soul
# The Undiscovered Self
# The Portable Jung (by Joseph Campbell!)
# The more difficult stuff
#* Collected Works
#* Archetypes and the Collective Unconscious
#* The Red Book
"Sieze the day". What have you been up to, little [[chameleon]]?
----
<<list-links "[tag[Carpe Diem]!sortan[]] +[prefix[2020.12.]] [tag[Carpe Diem Vault]!sortan[]]">>
<<list-links "[tag[Carpe Diem Vault]]">>
[img[Circle_of_fifths_deluxe_4.svg]]
!! Keys/Scales
|!Key|!1|!2|!3|!4|!5|!6|!7|!Sig|
|!C|C|D|E|F|G|A|B|-|
|!G|G|A|B|C|D|E|F#|1#|
|!D|D|E|F#|G|A|B|C#|2#|
|!A|A|B|C#|D|E|F#|G#|3#|
|!E|E|F#|G#|A|B|C#|D#|4#|
|!B|B|C#|D#|E|F#|G#|A#|5#|
|!F#|F#|G#|A#|B|C#|D#|F|6#|
|!Gb|Gb|Ab|Bb|B|Db|Eb|F|6b|
|!Db|Db|Eb|F|Gb|Ab|Bb|C|5b|
|!Ab|Ab|Bb|C|Db|Eb|F|G|4b|
|!Eb|Eb|F|G|Ab|Bb|C|D|3b|
|!Bb|Bb|C|D|Eb|F|G|A|2b|
|!F|F|G|A|Bb|C|D|E|1b|
* Chords in a major key are: I, ii, iii, IV, V, vi, vii°.
* In a harmonic minor key: i, ii°, III, iv, V, VI, VII.
!! Modes
* Ionian = Major
* Aeolian ≈ Minor (Typically, harmonies built on chords from the harmonic minor, melodies from melodic minor: see below)
Ionian, Dorian, Phrygian, Lydian, Mixolydian, Aeolian, Locrian - ''I'' ''D''on't ''P''lay ''L''ike ''M''y ''A''unt ''L''ucy.
|!Mode|!2nd|!3rd|!4th|!5th|!6th|!7th|!Chord?|
|!Ionian|2|3|4|5|6|7|Major 7th|
|!Dorian|2|b3|4|5|6|b7|Minor 7th|
|!Phrygian|b2|b3|4|5|b6|b7|m7♭9♭13|
|!Lydian|2|3|#4|5|6|7|Aug chord|
|!Mixolydian|2|3|4|5|6|b7|Dom 7th|
|!Aeolian|2|b3|4|5|b6|b7|Minor 7th|
|!Locrian|b2|b3|4|b5|b6|b7|Diminished|
Other scales:
|!Scale|!2nd|!3rd|!4th|!5th|!6th|!7th|
|!Minor Pent.|-|b3|4|5|-|b7|
|!Major Pent.|2|3|-|5|6|-|
|!Harmonic Minor|2|b3|4|5|b6|7|
|!Melodic Minor|2|b3|4|5|6|7|
Note that the idea of an ascending and descending melominor is a myth. This isn't a raga, dude.
!! Progressions/Cadences
* Four chords: I, V, vi, IV
* Doo-wop: I, IV, vi, V
* Minor 4 chords: i, VI, III, VII
* Jazz lol (two-five-one): ii, V, I
* 4th chord bounce: I, IV, I
* 12-bar blues: 4 I, 2 IV, 2 I, 2 V, 2 I.
!! Song structures
* ABABCB
** Intro (4), Verse (16), (Pre) (4), Chorus (8), Verse (8), (pre) (4), Chorus (8), Bridge (8), Chorus (8)
** [[What's love got to do with it|https://www.youtube.com/watch?v=mw78mrc6K5A]]
** [[Coffee, God, and Cigarettes|https://www.youtube.com/watch?v=Qhu2L9MHoj0]]
* AABA AKA 32-bar
** Verse (8), Verse (8), Bridge (8), Verse (8)
** [[Somewhere Over The Rainbow|https://www.youtube.com/watch?v=PSZxmZmBfnU]]
** [[Crazy|https://www.youtube.com/watch?v=R4VJxWhLM6Y]]
{{Text Art: Self-portrait||ASCII: Exact}}
ASCII no good? Well, maybe [[art is.|https://wiki.waifu.haus/private/me.jpg]]
* the operator of this wiki
* uses she/her pronouns
* in her mid 20s
* wife of [[The Abyssal]]
** once seperated by an ocean, but we live together now.
* a [[computer|Computing]] programmer
** gnu/linux freak, former gentoo and arch, current ubuntu
** uses the [[dvorak|Dvorak]] keyboard layout
* a writer of [[fiction|Stories]] and [[Music]]
* an [[Emo]] kid; a [[Metal]]head; a [[Synthwave]]r; a [[Deadhead|The Grateful Dead]].
* drinks [[White Russian]]s
* [[The Last Waifuist]]
* kind of an idiot
* Thoroughly [[weird|The Weird]]; definitely [[cringe|Lol chameleon]]; has real [[shit taste!|Music]]
Where does the name come from? (I think) it comes from wearing my past like armor; an acknowledgement that the social chameleon ways of old were wrong. That, or I really like chameleons (they're cute, right?)
Who is chameleon? This wiki answers, or tries to answer, that very question...
!! [[contact chameleon|Contact]]
{{Contact}}
!! [[Quotes about chameleon]]
{{Quotes about chameleon}}
!! [[Things I've said that I don't think totally suck|Quotes by chameleon]]
{{Quotes by chameleon}}
[[(context)|https://www.youtube.com/watch?v=UBKMu8AtZFo]]
I don't think I'm pretty enough or confident enough to post face and become a conservative e-thot, so for my inevitable pivot to the right I'd be one of those mgtow uncle tom women writing about how hypergamous I am or something like that. Could really get into the whole youtube game with a grift like that. The incels would love me
The chameleon standards superstructure (CSS) will do nothing less than perfect computing!
!! CSS 69 - Encoding
Everything will be encoded either UTF-8 or Code Page 437. Other encodings shall be cast into the sun and use thereof shall be punishable by having to read out every Unicode code point and its representation in UTF-8 in order; with the exception of use of EBCDIC which will be punishable by 48 hours in the stocks.
!! CSS 420 - Web
Lynx will be considered the new standard browser and all pages, with the exception of TiddlyWiki pages, must be able to perform all their functionality using it. Failure to do so will require those responsible to read out every character of one of their pages in verbal form (i.e. "ay" for 'a', "semicolon" for ';', etc), octal and binary representation, and semaphore, to a hostile crowd armed with rotten vegetables.
Use of modal dialogs which pop up unprompted shall be punishable by flaying alive.
!! CSS 1337 - spelling and punctuation
Words will be spelled in American English, except if you're being fancy, when they'll be spelled in British English. You can also spell words wrong. Casualness will be signaled by writing in all lower-case, anger by using ''CRUISE CONTROL,'' with or without bold face.
Double letters will be phased out; i.e. Tennessee is now spelled "Tenese" and pronounced "Ten-Eaze".
The use of the em dash, en dash, etc. will be phased out, and all dashes replaced by a single hyphen (-). Anyone attempting to use these dashes shall be forced to draw a single, unbroken dash from London to Newcastle using tartan paint.
!! comments
<<<
nedles to say -—– i'l sucesfuly never mispel a word in scrable again. swetothed subokeper comites enjoy the biternes of cofe, spoge, and pe. whiporwil po is never fodstufs except maybe in zos.
<<< [[h0p3]]-senpai
iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAYAAABjyArgAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AsVEBwx+pmbnwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAKRklEQVRo3qVaXY9dVRl+nnXOtJ3px3zRmWmn7YQykQhGYkEIKOiKF14YEi8M4coLP6IxMTEx/AO9MSGGaEhQ/P4I2GAwJiQquLEQC1WsobRSM1Bra9OWFoqFVuic9XixPvba++x9zpmyk5N9zt5rn/2uZz3v877vWosqzgvoADAAuii/d+BA9AD0AKwCcOF7/nG1e6u163m7+B3d9IrqJzehfj1+b31WDdb1apa5ljbtzxm4PhPqpjSZFK93EQ7aLWg7LhcCW+4pO6t2ndknb1tp2HRNLS/jgHuth67mocbnWPt+A23r02dVADnAAKDi7WxsOlXWreFgi4kc9hBbGrI2am0vHGgNrhLodg4cVlHzef/ZkQHf7TPHbuj740uF1sQDvRce1V1CDSCPCnzjA2rxt/KwvAMAUOjpgQS5sYHBJwNz4792G00qVgEY9EA4AOvsQIrgWKGhmLFuIIewMdcXNVxbs1w0/XH/YXkbrnliM0wPsPw4AOCZDLT8nw6rqGjx7hrgLAFWIyQM4F77LUAk0AHUIWQIdQh0CNcBrrXESqHRyMkakdbql6pd59U4uQZqDAmIwNxvNgEOuJMW+1VUHIUtTlU/uv2j2//CCIxIiIBM+G28NYs/Xo9lSxxtADnHk2uRQvX3xG4djmah/w3R3/YIa3kLZv8wCfXksxIRlDD/2EbcTovna+7fFvwaAG4+OpZY+kYcUYWnCcKzGGAAfnh4qRjFIVZlD9id5c3x44uVwSbkz1Jgt2C5IQP7jYYXNYXgTG8IwBBQ6K/xt+b3TuA2WrwQQGaL9GstAAMA1/vzv76eG+Ww46FusNe/YtsvxnG9JY4EFnMIZyrW1dzdvi8D9dVtvsMEnKHvcAQ59F4wHmwHbDixCDiAEiynM7BPZfa3ZxYiAQqkAegCeQgaYOFXE7iZFgczkAdxhIMBDkApgigsPWC8BneIE19axeIP1nkDglHbHh3HDZY4FLKORk9v0U57U3lh4ugCEHXeEDLwHhMZFaQqiSUEif6nC0Y7YvzYdsAJFGC5PQP7lfZoaQCIEIVzn7qYLs//eiNAYNsj4/gQLV4MIKslnHBQFlFBgMCx+4Slb5uKHOz43hhOfv5dAMD2n60HYAbWB42FhgD7YX9306F5oFOCGQFN4HYCuyLQBJQ7qncskAJcZDZAEuoJG/+54O/3BMvrAtD/CNp7EwBget8M0HMAgfOffBPQcurDGa5gfu+E99ZfbsAHaXGkgcn1LnbbCE5L7Pqml6K+kQkd3PHDdTj5uXczMowY0gnYO3zbLQe3eq9gYF6UgRzoDtJ1Gf9+HwcAxhF3YQCU8UnB3Q0gGVAOMsSml+YD0O8HAEw+Pwv2APS87p7/xAVAyzCrDm7sVZgru+G0jDNcwcKjE4lUN9Di5VoKh7VosFmXQU8lAE98eRWL3x/r4+jpey7hSKG+yi8fIxty6skDsyWwwTV9lsKggwHoMHDORJCZJEJ5WuKx9BKhTI6i5BpBjiDlcTfA5oNzoHMB2CBrGUnc2KvlObKZgigwtOOQzLs7KG+qZYcQCAHY+dAYTnzxih/Jn64fKRcVgI9ZYurZGajLrCOsZiFkVbQDa0nCsWSx1/0UKTxwLsQMA6/JRp7ZPl4FcLIMgAq2+ZwfoX0i2JXdJYMrSBCCsPiT9bieFisqWmXCtEmECuHYfb7R0v3E8a+5LHoLOx5eh8UfrSuFnu2pyu2W+KglpvdNV16lBGYWtKAkA4hMZtBhU+qwYtHTiWzO2jFLH02pFqBPMct0v5pqhoQBM8UUwBW4rgG07M9cwfxjGz3JmEnlaIVGO3fDIGPpAYPjX+1h54PdzP84NKjdaonZpyYhY0qmZB0Ss0I6nZgGLQIT818mbY6AKaVWUImZTKoVwltVMji2T1pSzxyJmScn8TpX0r25xzcBzpXZEEeb5OsOEoXVQuhaYul+Hzt2fbeDf39l1WcRD49V2p6+9zKO1vT3FkvM/m4SUmBZkhrUAFSW8rDPlFRcgImpEWgH+ACFECCdq8pAZUA5dKInP2Z/vwVmNQQ/pyBnai0yWiq55nIymvFOIay3xNIDhATsfLADdQ1OfuFK5Y8WHvGFRn5c88SWBCCjcSxBjI4gT6tgOMPbTcWDYmGl9ExV7Qj2pzyV+75XHFRjMuNj8g7g3N0X/byEQhTS6DOm3VGmZy8VwoQldn2nk6L1jofHSg3s+JbzeyfChJDxGkmFNMqDRrHMohJILBGMdSlKcRNLT1aMQ/KFBBBc1vVPBMWBYfY+IpTVNeZWiyD52lDlyG797WacvftiBZ/tP9+AU599B0draZrWkkXkx8VC2JwY2qumaTmjghYQAUyqPwqmDoXUSJ69TmFABEgBaJfPvvkozxjHA/oMRQakAHbQY4eaF/gvJmN6HE5lqR37IrfD3OObQCdwVaATTt17ORUagzKn7ijpVTwuBI3tAZhrmCNe2DtRkigjSr7gdOEjr2PqudnE3os3vYbNh+Z8WlUZKIHOy0oCi+G3C4OSkAPoVDI1DkacBAoM8Gql5All2wZw670Pg3v6nksAgENDwOUo05UasHpzulBaRozn5QET8zN/nMIbd73h8+Bg939vfg1b/j7n44cqc0m+xM1cXIKfV4g5byh8FBipGOwCEIiAuzjtCFxaPuXL8sPzySPSTFwGfiUtT5OIxJnPvIUXwjIRhgS5Wqm89rWqpvnQlwu1ruHebonpp6cCq4gLt54L3heiv1DqYwI0CzqBbVGqiUyygw4TCgvCmVQEsC9ddwobjy6UGUEA9s1bzqV+TO+bzgY6Fh2+3dlPv4UD2QTPMNRaGFx9lCMu+GrATGQsNGafmkx2X7jjPIo/+90Cdk/ZcuPh+aS5dGVkV3RlV32BXB6gSimhEyTBBEZf3n0KE3GyJ4sTF/ecRaGXEg0s97QCtj+r1kZdRGkIcmxdVGgbOY26tCj6yG9qKxB/VVqOtTdW3z/+yrZQ3MVCQ8ldlTLqzEYXXN4BxgGXl/5TdXUX2a0UAKurIX/p2x8RV4o5InOHpGlqZSEGrKoPmktnHiRCZJ7eN5Nm0wCg+Jt/b/GSKhtP7G7ivRyFXg/M3Oo9wsWUzrvFlgPXwPIDLc/uq8CqERdhRqzk1t4xDgB5fyEvE09OAc7PNUw/O+NzZWNg9xDFi+r7k+J4bdNR/+aj8sO2XTsp0wrsVslkCVP7Z9JUJZ38d+dgeReKLFNgwxrjKHGqUYNpO337Iq4m+PXthwipl9fPUC1R7SvITe6gtWw8YWDjGVjOp/nnmNJV8ucY1NQvH2o5D9rZ07JkRKh4F0AHgqns0rqazSb5iD9TCHe2pHHFQbUvzdcFnS3BgYOt82tyq7DcNaK87IvoV+Ye8n4eCfsi8s9AiaAdb3zZ29nOnrUmdHn7PxUKE+ctVhHtG9o4bFQ10spqoWMYvgkw3lejM3FEBlcAVvFWpdeCqeS0GGGJumnR7z3tDBu0i6dvgw4H6EabgmrAxhQNjEwMDM43g5oGzvwfSJgx053efNcAAAAASUVORK5CYII=
!! System requirements
* amd64 cpu
* few gigs of memory
* few gigs of hdd space
* half-decent gpu (or onboard graphics)
!! Kernel
* Microkernel (hurd or minix?)
* Drivers that don't suck (clearly labelled, easy to tell which one you need, don't crash the system)
* Don't fucking crash the system (recover from anything up to massive hardware faults)
* Drives (hdd, usb, floppy, cdrom, cartridge): uuid directory CRUDded in `/ext/`
!! Filesystem
* 8.3 case sensitive filenames
** If you enter a longer one, it bleeds into the extension, or is truncated. e.g. "shellcheck" -> "shellche.ck", "mylongfilename" -> "mylongfi.len"
* 12 character directories
* No slashes, nulls, tabs in filenames or dirnames
* Symlinks
* Mounting is done with symlinks.
* File tags
!! GUI
* Hybrid tile/float (i3-esque)
* Native widgets that don't suck & are easy; supported in go/lisp/c/python; windows, losenix, mac ports too.
* xorg/GTK/QT ghetto for firefox & terminal
!! Development
* Comprehensive posix/gnu toolset
* Shellcheck for shell
* Perl for when shell just falls short
* First class support for C, Go, Python, Lisp (chicken scheme); including gui + examples
* Good support for elisp (emacs)
* Third class support for haskell (just enough to rebuild shellcheck and pandoc)
* erl is a symlink to perl (let it fail. fuck you)
* git vc hell yes
* love2d and docs for fun
* static linking only
!! Users
* root is called tewi
* /home/ directory
* first class support for locking down nproc, memory usage, disk usage, etc
* `PATH=/home/$USER/bin;/local/bin;/bin`
!! Updates/packages
* Downloaded into `/src/` and built & installed
* Shell/Perl scripts to do this easily
!! Directory Structure
```
/bin/
/bin/ar # omniversal archiver
/bin/bash
/bin/busybox # shell utilities symlinked here
/bin/cc
/bin/cron
/bin/curl
/bin/discord
/bin/ed
/bin/emacs
/bin/erl # symlinked to perl
/bin/firefox
/bin/ghc # for pandoc + shellcheck
/bin/gimp
/bin/git
/bin/go
/bin/gomacs
/bin/init
/bin/links
/bin/lisp # symlink to scheme
/bin/love
/bin/lua
/bin/mspaint.exe
/bin/notepad # leafpad
/bin/paintbru.sh # mspaint.exe
/bin/pandoc
/bin/perl
/bin/python3
/bin/python # symlink to python3
/bin/scheme # chicken scheme
/bin/sed # gnu sed
/bin/shellche.ck
/bin/st
/bin/sudo
/bin/su # shell script: sudo -i $@
/bin/tabbed
/bin/term.sh # tabbed st
/bin/term # symlink to xterm
/bin/unar # omniversal unarchiver
/bin/vim
/bin/wget
/bin/xorg-ghetto/
/bin/xterm # symlink to term.sh
/bin/zsh
/dev/
/dev/null # null device
/dev/sdN # symlinked to /ext/UUID/*
/doc/
/doc/bread.txt # the conquest of bread
/doc/century.pgn # game of the century
/doc/charset/
/doc/charset/ascii.txt
/doc/charset/cp437.txt
/doc/charset/sjis.txt
/doc/charset/utf-8.txt
/doc/desert.txt # desert by anonymous
/doc/dril.txt # every dril tweet, updated fortnightly
/doc/expert.txt # expert programmer
/doc/fortune/
/doc/gettyb.txt # the gettysburg address
/doc/gui/
/doc/gui/gui-c.txt
/doc/gui/gui-go.txt
/doc/gui/gui-lisp.txt
/doc/gui/gui-pyth.txt
/doc/heart.txt # heart sutra
/doc/kjv.txt
/doc/k&r.txt
/doc/license/
/doc/love/
/doc/man/
/doc/markdown.txt
/doc/mim.txt # my immortal by tara gilesbie
/doc/perldoc/
/doc/posix-sh.txt
/doc/sicp.txt
/doc/zsh.txt.gz
/etc/
/ext/
/ext/UUID/
/home/
/lib/ # symlinked to /null/. fuck you
/local/
/local/bin/
/local/doc/
/local/src/
/null/ # null directory
/root/
/src/
/src/drivers/
/src/examples/
/src/examples/gui-c/
/src/examples/gui-go/
/src/examples/gui-lisp/
/src/examples/gui-python/
/src/headers/
/src/kernel/
/src/tiddlywiki/
/tmp/
/usr/ # symlinked to /
```
A text game I play sometimes where I mutate words to make them more diminutive. I think it comes from taking tumblr slang to its logical endpoint. Used to do it on 2dl a lot and with my friend Lily (lille). I've no idea what the rules are, lol. Guesstimate: it's "make everything one or two syllables" and "simplify sounds; even single vowels can be simplified".
* small → smol
* [[chameleon]] → chame
* [[Waifu]] → wifu
* snuggle → snugge
* [[Konata]] → Kona → kon
!! Adam Ragusea's Easy Pantry-ingredient Method
Adapted from [[the video.|https://www.youtube.com/watch?v=iKMI1xkU_oo]]
This is almost insultingly easy stuff. To do the rice, start it off after a good five minutes of the chana masala simmering. Makes about 10 servings, so have some tupperware ready.
!!! Equipment
* Large saucepan, like you'd use for a bolognese.
!!! Ingredients
* 2 14 oz (400g) cans chickpeas (garbanzos?), drained
*1 14 oz (400g) can crushed tomatoes
*1 4 oz (100g) can diced chiles
*1 tablespoon garam masala
*1 teaspoon onion powder
*1 teaspoon garlic powder
*1 teaspoon dried ginger
*salt
*olive oil
*vinegar or lemon juice
*fresh cilantro (optional)
!!! Method
# Heat a little oil in a pot over medium heat and fry the garam masala until fragrant.
# Stir in the chiles, tomatoes, garlic powder, onion power, ginger powder, drained chickpeas and enough water to cover everything.
# Simmer 20-30 minutes until thickened, taste and add salt and lemon/vinegar to taste, and stir in some cilantro leaves.
# Serve over basmati rice.
chanspeak is internet slang informed by spending time on imageboards; it takes its name from the largest English-speaking imageboard, 4chan.
The tag takes a green chevron from `>greentext`/meme arrows/comedy chevrons
<<list-links "[tag[chanspeak]]">>
//Named, of course, after [[Stirner's Critics|https://theanarchistlibrary.org/library/max-stirner-stirner-s-critics]].//
* Home game: [[Savage Asiopos|Game: Savage Asiopos]] (gm: Kirby)
* Name: Altani, aka "The Pondweed"
* Pronouns: she/her
* Race: Naiad
** A race of water-dwelling nymphs.
** Pro: Breath underwater, no penalties acting underwater
** Con: Must return to the water once a day or get sick and die
* Class: Healer
* Weapon: Spear (harpoon), dagger
* Cliche: [[Cloudcuckoolander|https://tvtropes.org/pmwiki/pmwiki.php/Main/CloudCuckoolander]]
** She often says and does bizarre or silly things.
** She has poor personal hygiene
** All the same, she's compassionate and wants to protect those she cares about
* 近藤りん
* she/her
* human
* Born in the 1960s. She's actually from the mid-80s when she returns to Nest (timey wimey).
** Due to being out of time with her friend and companion - and being from a different continent - she misses many cultural references.
* Japanese
* civvie: Computer Programmer
** Works for Sega, Nintendo, or some other Japanese developer as a game designer.
* fantasy: Riddling Sneak
** Typical rogue archetype, but with high intelligence.
* Quirks
** Speaks clipped and missing words, like Rorschach. Conveys that she's very smart, and her mouth is trying to keep up with her mind.
*** "No, not organic. Not entirely robotic either. Missing parts. No servos or motors. Looks more like toy... supposed to make noises..."
*** "Knew father. Good man. You take after. Will free him."
** Is ambidextrous and practical. Can take things apart and put them back together.
*** She has fixed her little brother's toys before, including electronics work. It's how she knew she was interested in how things tick.
* Equipment
** Her Talisman is a cloak that allows her to blend in.
*** If lost, it doesn't want to be found...
*** ...until she needs it.
My mother went off store-bought stuff at some point and used to make these home-made, baked chicken nuggets. They were so fucking good! I need to either ask her for the recipe or make a similar one. Here's some I found thanks to the big G:
* https://www.allrecipes.com/recipe/259115/best-and-easiest-chicken-nuggets/
* https://www.allrecipes.com/recipe/8849/baked-chicken-nuggets/
<<<
I can’t remember where I got it from but basically it was chicken breast cut into nuggets then dipped in seasoned flour then beaten egg then breadcrumbs. Then I would fry them gently
<<<
So she actually did fry them, hm.
(Recreating the food of your childhood is such a basic homecook move =w=.)
---
These seem to be a descendant of schnitzels. Ragusea-senpai did [[a video|https://www.youtube.com/watch?v=4eGNy2E7CVs]] on those!
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="600"
height="600"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
version="1.0"
sodipodi:docname="Circle_of_fifths_deluxe_4.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
style="display:inline"
inkscape:export-filename="/home/stephent/tmp/Circle_of_fifths_deluxe.exp.2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<filter
inkscape:collect="always"
id="filter3996">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="5.3247395"
id="feGaussianBlur3998" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="2.4966666"
inkscape:cx="300"
inkscape:cy="189.97185"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
width="600px"
height="600px"
inkscape:window-width="1598"
inkscape:window-height="847"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:showpageshadow="false"
borderlayer="true"
showborder="true"
inkscape:grid-bbox="false"
inkscape:guide-bbox="false"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid2656"
visible="true"
enabled="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
style="display:inline"
sodipodi:insensitive="true"
inkscape:label="bg">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:35;stroke-miterlimit:4;stroke-dasharray:none"
id="rect2656"
width="600"
height="600"
x="0"
y="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="dots"
style="opacity:0.5;display:none"
sodipodi:insensitive="true">
<g
id="g4325"
style="fill:#eeffff;fill-opacity:0.94117599">
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3139"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,394.46,185.673)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3143"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,5.47952,185.673)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3149"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,202.634,-11.4813)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3153"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,202.634,382.828)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3157"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,301.212,14.9321)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3163"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,104.057,14.9321)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3167"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,104.057,356.415)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3171"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,301.212,356.415)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3175"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,31.8929,87.096)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3179"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,373.375,87.096)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3183"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,373.375,284.251)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="use3187"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.324537,0,0,0.324546,31.8929,284.251)" />
</g>
<path
transform="matrix(0.304529,0,0,0.304537,208.483,191.18)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="use3232"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<g
id="g4311"
style="fill:#eeffff;fill-opacity:0.94117599">
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3250"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,358.855,220.66)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3252"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,112.715,219.349)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3254"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,237.471,96.1433)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3256"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,237.471,342.319)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3258"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,299.849,112.634)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3260"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,175.093,112.634)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3262"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,175.093,325.829)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3264"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,299.849,325.829)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3266"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,129.429,157.687)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3268"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,345.513,157.687)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3270"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,345.513,280.775)" />
<path
sodipodi:type="arc"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3272"
sodipodi:cx="300.52039"
sodipodi:cy="275.23596"
sodipodi:rx="6.5659914"
sodipodi:ry="6.5659914"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:start="1.3046667"
sodipodi:end="7.5767256"
sodipodi:open="true"
transform="matrix(0.205361,0,0,0.202621,129.429,280.775)" />
</g>
<path
transform="matrix(0.421594,0,0,0.421605,425.958,158.959)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4341"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,-79.3529,158.959)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4343"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,176.763,-97.1572)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4345"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,176.763,415.075)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4347"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,48.7052,-62.8445)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4351"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,48.7052,380.763)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4353"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,304.822,380.763)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4355"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,-45.0402,30.901)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4357"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,398.567,287.017)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4361"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,-45.0402,287.017)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path4363"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,304.822,-62.8445)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path2642"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.421594,0,0,0.421605,398.567,30.901)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 302.24724,281.5708 A 6.5659914,6.5659914 0 1 1 302.31761,281.5512"
sodipodi:ry="6.5659914"
sodipodi:rx="6.5659914"
sodipodi:cy="275.23596"
sodipodi:cx="300.52039"
id="path2644"
style="fill:#eeffff;fill-opacity:0.94117599;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="circle"
style="display:inline"
sodipodi:insensitive="true">
<path
sodipodi:type="arc"
style="opacity:0.07999998;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:32.6225853;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
id="path3130"
sodipodi:cx="303.04578"
sodipodi:cy="280.79181"
sodipodi:rx="158.59395"
sodipodi:ry="158.59395"
d="M 303.61956,122.1989 A 158.59395,158.59395 0 1 1 303.61619,122.19889"
sodipodi:start="4.7160069"
sodipodi:end="10.999171"
transform="matrix(1.0053631,0,0,1.0178135,-4.670816,-10.794147)"
sodipodi:open="true" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Major text"
style="display:inline">
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 309.39279,67.614845 C 309.5334,68.51721 309.60371,69.44299 309.60373,70.392189 C 309.60371,70.579708 309.59785,70.83166 309.58615,71.148048 C 309.42207,71.183223 309.29902,71.200801 309.21701,71.200783 C 309.14668,71.200801 309.04707,71.189082 308.91818,71.165627 C 308.42598,69.794552 307.62324,68.739866 306.50998,68.001564 C 305.39668,67.263305 304.01973,66.894164 302.37912,66.894142 C 301.51192,66.894164 300.7795,66.993774 300.18185,67.19297 C 299.12716,67.556273 298.20138,68.060179 297.40451,68.704689 C 296.60763,69.337521 295.9338,70.099239 295.38303,70.989845 C 294.83224,71.868769 294.39279,72.941033 294.06467,74.206642 C 293.74826,75.460562 293.59005,76.743764 293.59006,78.056252 C 293.59005,80.564073 293.97091,82.638289 294.73264,84.278908 C 295.49435,85.907817 296.53732,87.073832 297.86154,87.776955 C 299.18575,88.468362 300.52169,88.814064 301.86935,88.814064 L 302.69553,88.796486 C 303.63301,88.679299 304.27168,88.567971 304.61154,88.462502 C 305.46699,88.216409 306.17012,87.9293 306.72092,87.601173 C 307.2834,87.261332 307.82832,86.786723 308.35568,86.177345 C 308.89472,85.567974 309.35176,84.85899 309.72678,84.050392 L 309.93771,83.98008 C 309.99629,83.980085 310.08418,84.015241 310.20139,84.085548 C 310.18965,84.366803 310.17793,84.548444 310.16623,84.63047 C 309.67402,86.610942 309.3166,87.964456 309.09396,88.691017 C 308.90644,88.737893 308.67207,88.808205 308.39084,88.901955 C 307.01973,89.370704 305.18574,89.605079 302.88889,89.60508 C 301.03731,89.605079 299.64864,89.476173 298.72287,89.218361 C 297.8088,88.972267 296.80685,88.585549 295.71701,88.058205 C 294.63888,87.519144 293.68966,86.81016 292.86935,85.931252 C 292.04904,85.052349 291.38693,83.944929 290.88303,82.608986 C 290.37912,81.261338 290.12717,79.796495 290.12717,78.214455 C 290.12717,76.714467 290.32638,75.407828 290.72482,74.294533 C 291.12326,73.169549 291.73849,72.032831 292.57053,70.884377 C 293.40255,69.735958 294.38107,68.780881 295.50607,68.019142 C 296.64278,67.257445 297.90255,66.718383 299.28537,66.401955 C 300.25801,66.19104 301.63497,66.085571 303.41623,66.085548 C 304.71699,66.085571 305.9416,66.261353 307.09006,66.612892 C 308.23848,66.952758 309.00605,67.286742 309.39279,67.614845"
id="text2190" />
<path
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 276.65918,46.526421 C 276.88118,46.376031 277.28223,46.268609 277.8623,46.204156 C 278.31348,46.182671 278.58203,46.143283 278.66797,46.085991 C 278.72527,46.043024 278.76822,45.989312 278.79688,45.924859 C 278.90429,45.659885 278.98308,44.94016 279.03321,43.765679 C 279.09766,42.240292 279.2015,40.210021 279.34473,37.674859 C 279.45931,35.741276 279.5166,34.534571 279.5166,34.054741 L 279.5166,33.775444 C 279.00098,33.668036 278.18457,33.553452 277.06739,33.431694 C 276.99578,33.324286 276.95996,33.241929 276.95996,33.184625 C 276.95996,33.148831 276.98502,33.084377 277.03516,32.991265 C 277.1569,32.94831 277.25,32.926826 277.31446,32.926811 C 277.37174,32.926826 277.49707,32.941148 277.69043,32.969781 C 278.04134,33.019924 278.52473,33.044989 279.14062,33.044975 C 279.34114,33.044989 279.68489,33.030666 280.17188,33.002007 C 280.51562,32.980536 280.70898,32.969795 280.75196,32.969781 C 280.86654,32.969795 280.99902,32.987697 281.14942,33.023491 C 281.22101,33.095119 281.27473,33.163153 281.31054,33.227593 L 281.76172,34.237359 L 284.80176,40.961968 L 286.05859,43.787163 C 287.05403,41.817767 287.82746,40.066792 288.37891,38.534234 C 288.4147,38.419658 288.45768,38.315818 288.50781,38.22271 C 288.57226,38.100974 288.63313,37.964906 288.69043,37.814507 C 288.74771,37.664126 288.98046,37.091209 289.38867,36.095757 C 289.55336,35.694726 289.68586,35.350977 289.78614,35.064507 C 290.19432,33.918686 290.43423,33.263413 290.50585,33.098687 C 290.64192,33.04857 290.76008,33.023505 290.86035,33.023491 C 290.97492,33.023505 291.12173,33.030666 291.30078,33.044975 C 291.7018,33.066474 292.35351,33.077216 293.25585,33.077203 C 293.81443,33.077216 294.27278,33.070054 294.63085,33.055718 C 294.64517,33.134507 294.65233,33.191799 294.65234,33.227593 C 294.65233,33.277737 294.64158,33.34577 294.62011,33.431694 C 294.39094,33.553452 294.11521,33.621485 293.79297,33.635796 C 293.15559,33.671617 292.75097,33.721746 292.5791,33.786187 C 292.40722,33.850653 292.29621,33.93301 292.24609,34.033257 C 292.20311,34.13353 292.16373,34.462957 292.12793,35.021538 L 292.13867,35.515679 L 292.12793,36.031304 C 292.12791,37.105532 292.15657,38.910218 292.21386,41.445366 L 292.20312,43.550835 L 292.21386,44.90435 C 292.21385,45.4343 292.23892,45.749403 292.28906,45.849663 C 292.33918,45.942763 292.48242,46.032281 292.71875,46.118218 C 293.10546,46.247125 293.73566,46.379611 294.60938,46.515679 C 294.65949,46.551485 294.68456,46.598036 294.68457,46.655326 C 294.68456,46.719781 294.68097,46.791395 294.67383,46.870171 L 294.17969,46.870171 C 293.75715,46.870171 293.29882,46.855848 292.80469,46.827203 C 292.31054,46.805718 292.04555,46.794975 292.00977,46.794975 C 290.54164,46.794975 289.5677,46.809297 289.0879,46.837944 C 288.79427,46.859429 288.60806,46.870171 288.52929,46.870171 C 288.47916,46.870171 288.42545,46.855848 288.36817,46.827203 L 288.36817,46.687554 C 288.36815,46.6231 288.37889,46.555067 288.4004,46.483453 C 288.63671,46.383192 288.95898,46.315158 289.36719,46.27935 C 289.81835,46.157607 290.14778,46.0287 290.35547,45.892632 C 290.41992,45.620497 290.45213,45.065485 290.45215,44.227593 L 290.41992,42.057671 C 290.41992,41.821347 290.43065,41.380918 290.45215,40.736382 C 290.48079,40.091857 290.4951,39.042703 290.49511,37.588921 C 290.4951,36.435936 290.46646,35.562239 290.40918,34.967828 C 290.28742,35.21849 290.04751,35.762761 289.68946,36.60064 L 289.52832,37.008843 L 289.50683,37.073296 L 287.91699,40.833062 L 287.34766,42.283257 L 286.60645,44.044975 C 286.28418,44.854222 286.00845,45.570367 285.77929,46.193413 C 285.67903,46.479872 285.59668,46.705457 285.53223,46.870171 L 285.28516,46.859429 C 284.47591,44.49615 283.50911,42.071999 282.38477,39.586968 C 281.26757,37.10195 280.4834,35.461979 280.03223,34.667046 C 279.97493,34.975 279.91049,35.870182 279.83886,37.352593 C 279.74576,39.157288 279.69922,41.14459 279.69922,43.314507 C 279.69922,43.994847 279.74935,44.761122 279.8496,45.613335 C 279.87826,45.856825 279.9821,46.039442 280.16114,46.161187 C 280.34016,46.27577 280.80208,46.340223 281.54688,46.354546 C 281.83333,46.354546 282.10547,46.376031 282.36328,46.419 C 282.41341,46.526421 282.43848,46.605197 282.43848,46.655326 C 282.43848,46.691134 282.42056,46.752007 282.38477,46.837944 L 279.04395,46.719781 C 278.80045,46.719781 278.4209,46.737683 277.90527,46.773491 C 277.61882,46.794975 277.20703,46.809297 276.66992,46.81646 L 276.65918,46.526421 M 303.58984,45.312554 C 303.63281,45.405653 303.65429,45.473688 303.65429,45.516656 C 303.65429,45.624078 303.56835,45.813857 303.39648,46.085991 C 303.17447,46.444064 302.92741,46.705457 302.65527,46.870171 C 302.48338,46.977592 302.24706,47.031304 301.94629,47.031304 C 301.43067,47.031304 301.04395,46.873752 300.78614,46.558647 C 300.62857,46.37245 300.51757,46.039442 300.45312,45.559625 L 299.25,46.397515 C 298.82748,46.641004 298.5052,46.794975 298.28321,46.859429 C 297.92513,46.952527 297.49544,46.999076 296.99415,46.999076 C 296.62891,46.999076 296.33886,46.891654 296.12402,46.676812 C 295.91634,46.454806 295.8125,46.17193 295.8125,45.828179 C 295.8125,45.334039 296.11328,44.74322 296.71484,44.055718 C 297.32357,43.368221 298.14714,42.806047 299.18554,42.369194 C 299.91601,42.061256 300.3636,41.864316 300.52832,41.778375 C 300.54264,41.542051 300.5498,41.284239 300.5498,41.004937 C 300.5498,40.095438 300.4209,39.479553 300.16308,39.157281 C 299.91242,38.835022 299.55078,38.673889 299.07812,38.673882 C 298.58398,38.673889 298.12207,38.867249 297.69239,39.25396 C 297.42741,39.497457 297.22689,39.95579 297.09082,40.62896 C 297.04785,40.815164 296.96549,41.015684 296.84375,41.230522 C 296.53581,41.431048 296.28875,41.531308 296.10254,41.531304 C 295.945,41.531308 295.80176,41.48476 295.67285,41.391656 C 295.60125,41.34153 295.56543,41.284239 295.56543,41.219781 C 295.56543,41.033588 295.76237,40.614643 296.15625,39.962944 C 296.55728,39.304098 297.05859,38.813538 297.66016,38.491265 C 298.26888,38.161847 298.79882,37.997133 299.25,37.997125 C 299.86589,37.997133 300.32422,38.054424 300.625,38.169 C 300.92578,38.27643 301.19076,38.469788 301.41992,38.749076 C 301.64907,39.028381 301.78873,39.332743 301.83886,39.662163 C 301.8675,39.819721 301.88182,40.381896 301.88183,41.348687 L 301.8496,43.056694 L 301.86035,44.302788 C 301.86034,44.467503 301.85677,44.607152 301.8496,44.721734 C 301.84244,44.929418 301.83886,45.083388 301.83886,45.183647 C 301.83886,45.419977 301.9069,45.609754 302.04297,45.752984 C 302.17904,45.896214 302.34016,45.967828 302.52636,45.967826 C 302.7985,45.967828 303.03125,45.83176 303.2246,45.559625 L 303.35352,45.38775 C 303.38931,45.366267 303.46809,45.3412 303.58984,45.312554 M 300.43165,45.001031 C 300.48177,44.091527 300.50683,43.450578 300.50683,43.078179 C 300.50683,42.884823 300.49609,42.62343 300.4746,42.294 C 299.99478,42.465877 299.48632,42.727272 298.94922,43.078179 C 298.4121,43.429094 297.986,43.833715 297.6709,44.292046 C 297.44174,44.621474 297.32715,44.932997 297.32715,45.226616 C 297.32715,45.505914 297.42025,45.738662 297.60645,45.924859 C 297.7998,46.111057 298.03971,46.204156 298.32617,46.204156 C 298.54817,46.204156 298.81674,46.125379 299.13183,45.967826 C 299.54719,45.760145 299.98047,45.437879 300.43165,45.001031 M 305.16895,33.775444 C 305.16895,33.503322 305.25846,33.277737 305.4375,33.098687 C 305.6237,32.912502 305.84571,32.819404 306.10352,32.81939 C 306.36848,32.819404 306.59049,32.908922 306.76953,33.087944 C 306.95572,33.266994 307.04883,33.499742 307.04883,33.786187 C 307.04883,34.079818 306.94857,34.337631 306.74804,34.559625 C 306.60482,34.717189 306.39355,34.795964 306.11426,34.795953 C 305.84929,34.795964 305.6237,34.702865 305.4375,34.516656 C 305.25846,34.323309 305.16895,34.076238 305.16895,33.775444 M 304.24511,52.31646 L 305.06152,51.317437 C 305.25489,51.009489 305.40527,50.687224 305.5127,50.35064 C 305.62728,50.014048 305.70605,49.598684 305.74902,49.104546 C 305.81348,48.280976 305.84571,47.55767 305.84571,46.934625 C 305.84571,46.755587 305.83853,46.504937 305.82422,46.182671 L 305.83496,44.50689 C 305.84212,42.408587 305.82781,41.055072 305.79199,40.446343 C 305.77051,40.066792 305.71321,39.830464 305.62011,39.737359 C 305.48406,39.60846 305.17252,39.522522 304.68554,39.479546 C 304.63541,39.472392 304.56381,39.46523 304.47071,39.458062 L 304.49219,39.049859 C 305.43034,38.813538 306.11067,38.416077 306.53321,37.857475 C 306.6263,37.742901 306.73014,37.628318 306.84473,37.513725 L 306.91992,37.502984 C 306.95572,37.502992 307.00585,37.517316 307.07031,37.545953 L 307.10254,41.456109 C 307.15266,44.184626 307.17773,45.667046 307.17773,45.903375 C 307.17773,47.278373 307.10612,48.273814 306.9629,48.889703 C 306.82683,49.512747 306.56543,50.132212 306.17871,50.7481 C 305.90658,51.177784 305.51627,51.621793 305.00781,52.080132 L 304.56739,52.477593 L 304.41699,52.563531 C 304.35254,52.506232 304.29525,52.423876 304.24511,52.31646 M 309.60547,42.455132 C 309.60547,41.968158 309.70572,41.448952 309.90625,40.897515 C 310.11393,40.338927 310.42546,39.841206 310.84082,39.40435 C 311.25618,38.960348 311.69661,38.630921 312.1621,38.416069 C 312.8138,38.115296 313.60873,37.964906 314.54688,37.964897 C 315.88607,37.964906 317.00324,38.423238 317.89844,39.339897 C 318.80078,40.25657 319.25195,41.359434 319.25196,42.648491 C 319.25195,43.794328 318.77929,44.818414 317.83398,45.720757 C 316.89583,46.615939 315.70703,47.063529 314.26758,47.063531 C 313.37956,47.063529 312.54166,46.830783 311.75391,46.365288 C 311.16666,46.014377 310.66179,45.495173 310.23926,44.807671 C 309.81674,44.120174 309.60547,43.335995 309.60547,42.455132 M 314.35352,46.644585 C 314.89779,46.644585 315.42056,46.497775 315.92188,46.204156 C 316.43032,45.910536 316.83494,45.441461 317.13574,44.796929 C 317.43651,44.145238 317.5869,43.393286 317.58692,42.541069 C 317.5869,41.982481 317.46875,41.334369 317.23242,40.596734 C 317.00324,39.85911 316.64518,39.307678 316.15821,38.942437 C 315.67838,38.570049 315.11263,38.383852 314.46094,38.383843 C 313.98828,38.383852 313.50489,38.494854 313.01074,38.71685 C 312.52377,38.938863 312.1084,39.364969 311.76465,39.995171 C 311.42806,40.625385 311.25977,41.520566 311.25977,42.680718 C 311.25977,43.984106 311.55339,44.972387 312.14062,45.645562 C 312.73502,46.311576 313.47266,46.644585 314.35352,46.644585 M 320.47656,46.805718 L 320.43359,46.666069 C 320.43359,46.615939 320.46582,46.540743 320.53027,46.440484 L 321.16406,46.311576 L 322.05567,46.150444 C 322.12728,46.114638 322.17741,46.064508 322.20605,46.000054 C 322.24902,45.906955 322.27051,45.631239 322.27051,45.172906 C 322.27051,42.738013 322.25618,41.334369 322.22754,40.961968 C 322.1989,40.582416 322.13444,40.342507 322.03418,40.242241 C 321.93391,40.141987 321.67611,40.063212 321.26074,40.005913 C 321.01725,39.970112 320.8239,39.923563 320.68067,39.866265 L 320.72364,39.544 C 321.47558,39.236064 321.98047,38.971091 322.23828,38.749076 C 322.59634,38.42682 322.90071,38.004294 323.15136,37.4815 L 323.5166,37.492241 C 323.55957,37.850323 323.58105,38.645245 323.58105,39.877007 L 323.57031,40.059625 C 323.57031,40.102599 323.57748,40.170632 323.59179,40.263725 C 323.86393,39.769592 324.2041,39.314839 324.6123,38.899468 L 324.85938,38.652397 C 324.95964,38.537823 325.05632,38.448305 325.14942,38.383843 C 325.6507,38.08307 326.02311,37.93268 326.2666,37.932671 C 326.5817,37.93268 326.83951,38.040102 327.04004,38.254937 C 327.24054,38.462627 327.34081,38.720439 327.34082,39.028375 C 327.34081,39.271871 327.2692,39.461649 327.12598,39.59771 C 326.93261,39.776753 326.71061,39.866272 326.45996,39.866265 C 326.34538,39.866272 326.11978,39.805399 325.78321,39.683647 C 325.44661,39.56191 325.2246,39.501038 325.11719,39.501031 C 324.91666,39.501038 324.77701,39.533264 324.69824,39.59771 C 324.49772,39.75527 324.25424,40.077534 323.96777,40.564507 C 323.74576,40.929747 323.63476,41.266336 323.63477,41.574272 L 323.68848,43.346734 L 323.70996,45.473687 C 323.73145,45.717178 323.76009,45.874728 323.7959,45.946343 C 323.82455,45.996473 323.89616,46.057346 324.01074,46.12896 C 324.78418,46.193413 325.2425,46.239964 325.38574,46.268609 C 325.486,46.27577 325.5612,46.282932 325.61133,46.290093 C 325.91927,46.297254 326.13411,46.340223 326.25585,46.419 C 326.32031,46.454806 326.35254,46.508518 326.35254,46.580132 C 326.35254,46.6231 326.32389,46.680393 326.2666,46.752007 L 325.07422,46.741265 L 324.62304,46.730522 L 323.96777,46.741265 L 322.87207,46.741265 L 322.28125,46.773491 L 320.47656,46.805718"
id="text3300" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 407.72403,94.230392 L 407.91739,96.902267 C 407.98768,97.710879 408.02283,98.26166 408.02286,98.554611 L 407.53067,98.642502 C 406.74549,96.861271 405.76698,95.525334 404.59512,94.634689 C 403.43495,93.744086 402.01112,93.298774 400.32364,93.298752 C 398.26112,93.298774 396.65566,93.550727 395.50723,94.054611 C 393.84316,94.769476 392.41933,96.011662 391.23575,97.781174 C 390.05215,99.550721 389.46035,101.68353 389.46036,104.17961 C 389.46035,105.62103 389.67715,106.91595 390.11075,108.06438 C 390.54434,109.21282 391.15371,110.28509 391.93887,111.28117 C 392.73574,112.26555 393.67324,113.12102 394.75137,113.84758 C 395.45449,114.32805 396.29238,114.69133 397.26505,114.93742 C 397.81581,115.06633 398.63612,115.13078 399.72598,115.13078 C 400.42909,115.13078 401.20839,115.03117 402.06387,114.83195 C 402.91932,114.63274 403.56385,114.36907 403.99747,114.04094 C 404.43104,113.7011 404.72401,113.32024 404.87637,112.89836 C 405.04042,112.47649 405.12245,111.65618 405.12247,110.43742 C 405.12245,108.41009 404.98768,107.23235 404.71817,106.90422 C 404.44862,106.56439 403.59901,106.34173 402.16934,106.23625 L 401.46622,106.18352 L 400.99161,106.2011 C 400.92128,106.18939 400.82753,106.17181 400.71036,106.14836 L 400.44669,105.70891 C 400.44667,105.65032 400.48769,105.57415 400.56973,105.48039 C 401.17909,105.38665 402.50331,105.33978 404.54239,105.33977 C 404.9994,105.33978 405.74354,105.3515 406.77481,105.37492 L 408.58536,105.44524 L 410.22012,105.42766 C 410.5365,105.42767 410.91736,105.43939 411.3627,105.46281 C 411.44471,105.47454 411.49744,105.49798 411.5209,105.53313 C 411.54431,105.55657 411.55603,105.60345 411.55606,105.67375 C 411.55603,105.80267 411.52674,105.96673 411.46817,106.16594 C 410.97596,106.27142 410.5951,106.32415 410.32559,106.32414 L 409.18301,106.30656 C 408.79627,106.30657 408.48572,106.44134 408.25137,106.71086 C 408.13416,106.83978 408.07557,107.27923 408.07559,108.02922 L 408.09317,110.33195 C 408.09315,111.91399 408.02869,112.9218 407.89981,113.35539 C 407.82947,113.61321 407.68299,113.84758 407.46036,114.05852 C 407.23768,114.25774 406.76893,114.49797 406.05411,114.77922 C 405.03456,115.18938 404.10878,115.46477 403.27676,115.60539 C 401.72987,115.87492 400.23573,116.00969 398.79434,116.00969 C 396.47402,116.00969 394.56972,115.71672 393.08145,115.13078 C 391.60488,114.53313 390.32754,113.70696 389.24942,112.65227 C 388.18301,111.59758 387.42129,110.53118 386.96426,109.45305 C 386.27286,107.87103 385.92715,106.2597 385.92715,104.61906 C 385.92715,102.5683 386.46621,100.56439 387.54434,98.607346 C 388.63418,96.638615 390.38613,95.039007 392.8002,93.808517 C 394.49941,92.941353 396.808,92.507759 399.72598,92.507736 C 401.74159,92.507759 403.38807,92.68354 404.66544,93.03508 C 405.95448,93.386665 406.97401,93.785102 407.72403,94.230392"
id="text3347" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 458.13507,187.35625 C 458.56866,187.16875 459.07257,187.0457 459.64679,186.98711 C 460.47882,186.89336 461.09991,186.69414 461.51007,186.38945 C 461.82647,185.74492 461.98468,184.1043 461.98468,181.46758 L 461.98468,178.69023 L 462.01984,177.02031 L 461.98468,175.78984 L 462.01984,173.52226 L 461.9671,167.80937 C 461.9671,167.16486 461.87335,166.74299 461.68585,166.54375 C 461.41632,166.2508 460.70147,165.98127 459.54132,165.73515 C 459.06085,165.62971 458.76788,165.53596 458.66241,165.4539 C 458.55694,165.36018 458.49249,165.19025 458.46906,164.94414 C 458.73859,164.88557 458.92609,164.85627 459.03156,164.85625 L 460.2796,164.85625 L 460.92999,164.83867 C 461.36358,164.83869 461.84405,164.88557 462.3714,164.97929 C 463.44952,165.04963 464.55694,165.08479 465.69366,165.08476 C 466.02178,165.08479 466.49053,165.06721 467.09991,165.03203 C 468.71709,164.9383 469.87725,164.89143 470.58038,164.8914 C 471.99834,164.89143 473.33427,165.03205 474.5882,165.31328 C 475.8538,165.59455 477.15458,166.11603 478.49054,166.87773 C 479.32255,167.35822 480.17216,168.11994 481.03937,169.16289 C 481.91825,170.19416 482.58036,171.32501 483.0257,172.55547 C 483.4827,173.77423 483.71122,175.15118 483.71124,176.68633 C 483.71122,178.05743 483.45926,179.4168 482.95538,180.76445 C 482.46317,182.11211 481.77177,183.28399 480.88116,184.28008 C 479.99052,185.26445 479.08817,186.00859 478.17413,186.5125 C 477.26005,187.00469 475.86552,187.43242 473.99054,187.7957 C 473.21709,187.93632 471.82842,188.00664 469.82452,188.00664 C 468.50029,188.00664 467.42217,187.96562 466.59015,187.88359 C 466.26202,187.83672 465.91045,187.81328 465.53546,187.81328 C 465.47686,187.81328 465.41241,187.81914 465.3421,187.83086 L 458.17023,187.9539 L 458.13507,187.81328 C 458.11163,187.75468 458.09991,187.69023 458.09991,187.61992 L 458.13507,187.35625 M 467.08234,186.6707 C 467.97295,186.97539 468.87529,187.12773 469.78937,187.12773 C 470.97295,187.12773 472.1331,186.94609 473.26984,186.58281 C 474.40654,186.20781 475.40849,185.68633 476.2757,185.01836 C 477.15458,184.33867 477.87529,183.57695 478.43781,182.7332 C 479.00028,181.87774 479.39872,181.11016 479.63312,180.43047 C 479.96122,179.43438 480.12528,178.13946 480.12531,176.5457 C 480.12528,175.02228 479.80302,173.4754 479.15851,171.90508 C 478.71317,170.81525 477.92802,169.77228 476.80304,168.77617 C 475.68974,167.7801 474.37138,167.05353 472.84796,166.59648 C 471.32451,166.12775 469.67803,165.89338 467.90851,165.89336 C 466.68975,165.89338 465.78741,166.02814 465.20148,166.29765 C 465.13116,166.36799 465.06084,166.45002 464.99054,166.54375 C 464.92022,166.83674 464.88506,167.10627 464.88507,167.35234 C 464.88506,167.5047 464.89092,167.68635 464.90265,167.89726 C 464.9378,169.25666 464.95538,170.3465 464.95538,171.16679 L 464.93781,175.15703 C 464.9378,181.01641 465.04327,184.28008 465.25421,184.94804 C 465.47686,185.6043 466.08623,186.17851 467.08234,186.6707"
id="text3351" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 477.87912,286.24121 C 478.04318,286.14746 478.18967,286.10059 478.31857,286.10059 L 478.72287,286.10059 C 478.8049,286.10059 478.94553,286.09473 479.14474,286.08301 C 480.04709,286.00098 480.58029,285.91895 480.74435,285.83691 C 481.15451,285.61426 481.50607,285.22754 481.79904,284.67676 C 482.40841,283.48145 483.09396,281.78809 483.85568,279.59668 C 484.21896,278.55372 484.44747,277.92091 484.54123,277.69824 C 484.83419,276.99513 485.11544,276.25685 485.38498,275.4834 L 487.03732,270.86035 C 487.29513,270.13381 487.91622,268.46974 488.9006,265.86816 C 489.14669,265.21194 489.44551,264.33303 489.79709,263.23145 L 490.30685,263.19629 L 490.92209,263.21387 C 491.42598,264.20998 491.87129,265.28225 492.25803,266.43066 C 492.46895,267.04006 492.81465,267.94826 493.29514,269.15527 L 495.96701,276.37988 L 497.39084,280.2998 C 498.14082,282.52637 498.63301,283.89746 498.8674,284.41309 C 499.10176,284.91699 499.31855,285.25098 499.51779,285.41504 C 499.57636,285.46192 499.79316,285.53223 500.16818,285.62598 C 500.55488,285.71973 500.82441,285.79004 500.97678,285.83691 C 501.51582,285.98926 501.89081,286.11816 502.10178,286.22363 C 502.14863,286.35254 502.17206,286.45215 502.17209,286.52246 C 502.17206,286.58105 502.15449,286.66895 502.11935,286.78613 C 501.74433,286.79785 501.48066,286.80371 501.32834,286.80371 C 500.73066,286.80371 499.67597,286.78613 498.16428,286.75098 L 496.40646,286.69824 L 494.27951,286.7334 C 494.13887,286.7334 493.99239,286.72754 493.84006,286.71582 C 493.69942,286.69238 493.57637,286.68066 493.47092,286.68066 L 493.0842,286.68066 C 492.95528,286.66895 492.83809,286.63379 492.73264,286.5752 C 492.73262,286.41113 492.76192,286.25293 492.82053,286.10059 C 492.96114,286.03027 493.09004,285.98926 493.20724,285.97754 L 495.05295,285.85449 C 495.5334,285.83106 495.89668,285.7666 496.14279,285.66113 C 496.21309,285.4502 496.24824,285.29199 496.24826,285.18652 C 496.24824,284.97559 496.0959,284.43067 495.79123,283.55176 C 495.58027,282.96582 495.39277,282.40918 495.22873,281.88184 C 495.07637,281.3545 494.45528,279.62012 493.36545,276.67871 C 492.88496,276.59669 492.46309,276.55567 492.09982,276.55566 L 488.3381,276.59082 L 487.23068,276.57324 C 486.83224,276.57325 486.39278,276.60255 485.91232,276.66113 C 485.75997,277.01271 485.66036,277.26466 485.61349,277.41699 L 484.06662,282.25098 C 483.41036,284.09082 483.08224,285.10449 483.08224,285.29199 C 483.08224,285.39746 483.13497,285.57324 483.24045,285.81934 C 483.48654,285.88965 483.81466,285.9541 484.22482,286.0127 L 486.61545,286.22363 C 486.74435,286.3291 486.8088,286.42285 486.80881,286.50488 C 486.8088,286.56348 486.79122,286.65137 486.75607,286.76855 C 486.22872,286.78027 485.82442,286.78613 485.54318,286.78613 C 484.60568,286.78613 483.51583,286.75684 482.27365,286.69824 C 481.69943,286.6748 481.28927,286.66309 481.04318,286.66309 C 480.79709,286.66309 480.36935,286.6748 479.75998,286.69824 C 479.36154,286.72168 479.07443,286.7334 478.89865,286.7334 C 478.6174,286.7334 478.25412,286.71582 477.80881,286.68066 L 477.80881,286.5752 C 477.80881,286.49316 477.83225,286.38184 477.87912,286.24121 M 486.26389,275.69434 C 487.51778,275.76466 488.94747,275.79982 490.55295,275.7998 C 491.467,275.79982 492.26973,275.77052 492.96115,275.71191 C 492.84395,275.25489 492.70918,274.82716 492.55685,274.42871 C 491.79512,272.38966 491.37325,271.26466 491.29123,271.05371 L 489.69162,266.99316 L 489.51584,266.67676 C 489.44551,266.8174 489.1877,267.42092 488.7424,268.4873 C 487.99239,270.31545 487.45333,271.73927 487.12521,272.75879 C 486.97286,273.21583 486.81466,273.67286 486.6506,274.12988 C 486.48653,274.57521 486.38106,274.89161 486.3342,275.0791 C 486.29903,275.25489 486.24044,275.43653 486.15842,275.62402 L 486.26389,275.69434"
id="text3355" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 459.9632,384.37033 C 460.08038,384.26486 460.17999,384.20041 460.26202,384.17697 C 460.46124,384.11838 460.80108,384.0715 461.28156,384.03635 C 462.41827,383.96603 463.12139,383.86057 463.39093,383.71994 C 463.55499,383.48557 463.63702,383.15744 463.63702,382.73557 L 463.61945,381.5051 L 463.63702,377.04025 L 463.60187,374.93088 L 463.61945,370.51877 L 463.53156,365.509 C 463.51983,364.31371 463.44366,363.63988 463.30304,363.48752 C 463.0921,363.26488 462.46515,363.13598 461.42218,363.1008 C 460.97687,363.0891 460.58429,363.05395 460.24445,362.99533 C 460.0921,362.91332 460.01593,362.80785 460.01593,362.67892 C 460.01593,362.5852 460.04523,362.47387 460.10382,362.34494 C 460.20929,362.28637 460.30304,362.25707 460.38507,362.25705 C 460.54913,362.25707 460.74835,362.26293 460.98273,362.27463 C 461.67413,362.33324 462.38897,362.36254 463.12726,362.36252 L 464.42804,362.32736 L 467.52179,362.39767 C 469.06865,362.3977 470.27568,362.38012 471.14288,362.34494 C 472.01006,362.30981 472.59599,362.29223 472.9007,362.29221 C 473.17021,362.29223 473.83818,362.31567 474.9046,362.36252 L 477.4007,362.34494 L 477.69952,362.39767 L 479.15851,362.34494 L 479.33429,362.43283 C 479.39286,362.5266 479.43388,362.62621 479.45734,362.73166 C 479.45732,362.89574 479.42802,363.1477 479.36945,363.48752 C 479.32255,363.82738 479.29911,364.03832 479.29913,364.12033 C 479.29911,365.3391 479.34013,366.37035 479.42218,367.21408 C 479.41044,367.28441 479.37528,367.33129 479.31671,367.35471 C 479.18779,367.35472 479.0706,367.33715 478.96515,367.30197 C 478.83622,367.07933 478.66044,366.68676 478.43781,366.12424 C 478.22685,365.56176 477.90458,364.91137 477.47101,364.17307 C 477.17802,363.6809 476.94951,363.38793 476.78546,363.29416 C 476.62138,363.20043 476.28154,363.15356 475.76593,363.15353 C 475.66044,363.15356 475.12724,363.14184 474.16632,363.11838 C 473.90849,363.10668 473.65654,363.10082 473.41046,363.1008 L 468.4007,363.20627 L 467.96124,363.20627 C 467.3167,363.20629 466.92998,363.28832 466.80109,363.45236 C 466.60186,363.73363 466.50225,364.5598 466.50226,365.93088 C 466.50225,366.07152 466.53155,367.47777 466.59015,370.14963 L 466.59015,372.59299 C 466.71905,372.62816 466.85967,372.64573 467.01202,372.64572 L 467.31085,372.64572 C 467.51006,372.64573 467.80303,372.65159 468.18976,372.6633 C 468.79912,372.68675 469.20928,372.69847 469.42023,372.69846 C 469.56084,372.69847 469.68389,372.69261 469.78937,372.68088 C 471.05498,372.63401 472.68389,372.61058 474.67609,372.61057 C 475.29716,372.50511 475.66044,372.38206 475.76593,372.24142 C 475.94169,372.0305 476.0706,371.47972 476.15265,370.58908 C 476.24638,369.69847 476.4456,369.19457 476.75031,369.07736 C 476.90263,369.07738 477.04326,369.10667 477.17218,369.16525 C 477.1956,369.25902 477.20732,369.34691 477.20734,369.42892 C 477.20732,369.51097 477.1956,369.64574 477.17218,369.83322 C 477.11357,370.26683 477.08427,371.6262 477.08429,373.91135 C 477.08427,374.52073 477.11357,375.20042 477.17218,375.95041 C 477.24247,376.70042 477.27763,377.10471 477.27765,377.1633 C 477.27763,377.26878 477.26005,377.4094 477.22491,377.58517 C 477.13115,377.63206 477.05497,377.65549 476.9964,377.65549 L 476.87335,377.65549 C 476.68583,377.32737 476.50419,376.8176 476.32843,376.12619 C 476.02373,374.94261 475.70146,374.20433 475.36163,373.91135 C 475.03349,373.60667 474.49443,373.45433 473.74445,373.45432 C 473.58037,373.45433 473.28154,373.46605 472.84796,373.48947 C 472.41435,373.5012 471.76982,373.50706 470.91437,373.50705 L 469.77179,373.50705 C 468.14287,373.50706 467.07647,373.54222 466.57257,373.61252 L 466.55499,374.1926 L 466.57257,377.42697 L 466.55499,379.46603 L 466.57257,381.45236 C 466.58428,382.64768 466.66045,383.33908 466.80109,383.52658 C 467.0003,383.78439 467.43389,383.9133 468.10187,383.9133 L 469.17413,383.89572 C 469.26787,383.89572 469.63115,383.90744 470.26398,383.93088 C 470.9085,383.9426 471.69951,383.94846 472.63702,383.94846 C 474.89873,383.94846 476.40458,383.85471 477.1546,383.66721 C 477.90458,383.46799 478.51982,383.12229 479.00031,382.6301 C 479.49247,382.13791 480.10771,381.07737 480.84601,379.44846 C 481.06864,378.96799 481.2913,378.72776 481.51398,378.72775 C 481.61942,378.72776 481.73661,378.77463 481.86554,378.86838 C 481.52567,380.02854 481.33231,380.79026 481.28546,381.15353 C 481.15653,381.97385 481.08036,382.81174 481.05695,383.66721 C 481.05692,384.05393 480.96317,384.37619 480.7757,384.634 L 480.38898,384.634 L 475.44952,384.68674 L 473.23468,384.66916 L 467.96124,384.73947 L 465.81671,384.73947 C 465.54717,384.73947 465.29522,384.74533 465.06085,384.75705 C 462.95147,384.8508 461.39874,384.89767 460.40265,384.89767 C 460.22687,384.89767 460.10382,384.86838 460.03351,384.80978 C 459.97491,384.75119 459.94562,384.6633 459.94562,384.54611 L 459.9632,384.37033"
id="text3359" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 388.74844,435.35263 L 388.74844,434.80771 C 388.94766,434.76086 389.10586,434.73156 389.22305,434.71982 L 390.8754,434.63193 C 392.24649,434.51476 393.78164,434.42101 395.48087,434.35068 C 396.16055,434.32726 397.23281,434.31554 398.69766,434.31552 C 400.68984,434.31554 402.14882,434.46203 403.07462,434.75497 C 404.42226,435.18859 405.42421,435.84484 406.08047,436.72372 C 406.74843,437.59093 407.08241,438.55773 407.08243,439.62411 C 407.08241,441.35851 405.84608,442.81749 403.37344,444.00107 L 403.28555,444.14169 C 404.55116,444.48155 405.58827,444.95616 406.39688,445.56552 C 407.20546,446.17491 407.82655,446.91905 408.26016,447.79794 C 408.57655,448.44248 408.73475,449.28623 408.73477,450.32919 C 408.73475,452.07529 407.93788,453.63388 406.34415,455.00497 C 404.7621,456.36435 402.57655,457.04404 399.78751,457.04404 L 397.16837,457.04404 L 394.51407,457.13193 C 392.17031,457.15536 390.79922,457.16708 390.40079,457.16708 C 389.99063,457.16708 389.58633,457.14951 389.1879,457.11435 L 389.1879,456.92099 C 389.1879,456.78037 389.21719,456.68076 389.27579,456.62216 C 389.3461,456.55185 389.48086,456.49326 389.68008,456.44638 C 391.14493,456.14169 391.9711,455.93662 392.1586,455.83115 C 392.35781,455.71396 392.49258,455.53232 392.5629,455.28622 C 392.70352,454.81748 392.77383,453.61045 392.77383,451.66513 C 392.77383,451.48936 392.76797,451.2667 392.75626,450.99716 C 392.73281,450.21201 392.7211,449.76084 392.7211,449.64365 L 392.7211,447.81552 C 392.7211,444.72178 392.68594,442.02061 392.61563,439.71201 L 392.59805,436.1788 L 392.58047,435.73935 C 391.58438,435.59875 390.70547,435.51086 389.94376,435.47568 C 389.45157,435.46398 389.05313,435.42296 388.74844,435.35263 M 395.72696,444.24716 C 396.31289,444.36436 396.92812,444.42296 397.57266,444.42294 C 400.1039,444.42296 401.8207,443.86632 402.72305,442.75302 C 403.62538,441.63976 404.07655,440.53233 404.07657,439.43076 C 404.07655,438.93859 403.99452,438.44054 403.83047,437.93661 C 403.67812,437.42101 403.39687,436.95812 402.98672,436.54794 C 402.58827,436.13781 402.09023,435.83312 401.49258,435.63388 C 400.47304,435.29406 399.43007,435.12414 398.36368,435.12411 C 397.36758,435.12414 396.44179,435.23547 395.58633,435.4581 C 395.57461,435.70421 395.56875,435.88585 395.56876,436.00302 C 395.56875,436.12023 395.58047,436.45421 395.60391,437.00497 C 395.61562,437.35656 395.62148,437.70812 395.62149,438.05966 L 395.56876,440.18661 L 395.58633,441.45224 L 395.70938,443.93076 L 395.72696,444.24716 M 399.85782,456.20029 C 401.01796,456.11826 401.99062,455.87216 402.77579,455.46201 C 403.13905,455.27451 403.56679,454.94052 404.05899,454.46005 C 404.56288,453.96787 404.9496,453.38193 405.21915,452.70224 C 405.50038,452.02256 405.641,451.36631 405.64102,450.73349 C 405.641,450.25303 405.5414,449.66123 405.34219,448.9581 C 405.15468,448.25498 404.82655,447.63975 404.35782,447.1124 C 403.90077,446.57334 403.21523,446.13389 402.30118,445.79404 C 401.3871,445.44249 400.37929,445.2667 399.27774,445.26669 C 397.14492,445.2667 395.94961,445.30772 395.6918,445.38974 C 395.68008,445.65928 395.67422,445.8585 395.67422,445.9874 L 395.6918,446.63779 L 395.67422,447.95615 L 395.67422,449.45029 C 395.70937,452.2042 395.77383,453.8331 395.86758,454.33701 C 395.96133,454.84091 396.27773,455.27451 396.8168,455.63779 C 397.36758,456.00107 398.38125,456.18857 399.85782,456.20029"
id="text3363" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 192.37599,115.71965 L 192.39357,115.2802 C 192.65138,115.15129 193.07912,115.03996 193.67677,114.94621 C 194.28615,114.84074 194.70216,114.74114 194.92482,114.64738 C 195.15919,114.54192 195.35255,114.40715 195.5049,114.24309 C 195.61036,113.72746 195.6631,112.79582 195.6631,111.44817 L 195.41701,97.772385 L 195.46974,95.504807 C 195.46974,95.036077 195.38185,94.713812 195.20607,94.53801 C 195.042,94.362249 194.60255,94.204047 193.88771,94.0634 C 193.17286,93.911078 192.75099,93.788031 192.62209,93.69426 C 192.49318,93.600531 192.42873,93.500922 192.42873,93.395432 C 192.42873,93.33686 192.4463,93.260688 192.48146,93.166916 C 192.6338,93.073188 192.79201,93.026313 192.95607,93.026291 C 193.13185,93.026313 193.48927,93.038032 194.02834,93.061447 L 194.52052,93.061447 C 194.68458,93.06147 195.14747,93.049751 195.90919,93.026291 L 198.35255,93.026291 L 203.39748,92.9384 L 208.74123,92.727463 L 209.21584,92.727463 L 209.97169,92.709885 C 210.18261,92.709907 210.37011,92.768501 210.53419,92.885666 C 210.60449,93.073188 210.6455,93.207954 210.65724,93.289963 L 210.63966,93.993088 L 210.79787,97.139572 C 210.79785,97.268497 210.78613,97.432559 210.76271,97.63176 C 210.57519,97.713809 210.40527,97.754824 210.25294,97.754807 C 210.14746,97.754824 210.06543,97.719668 210.00685,97.649338 C 209.91308,97.520449 209.85449,97.274356 209.83107,96.911057 C 209.78418,96.407169 209.60254,95.756779 209.28615,94.959885 C 209.13379,94.584906 208.88183,94.327093 208.53029,94.186447 C 207.82715,93.916937 206.64355,93.782172 204.97951,93.78215 C 204.19434,93.782172 203.46192,93.805609 202.78224,93.852463 C 202.10254,93.887641 201.68653,93.905219 201.53419,93.905197 L 200.1631,93.887619 C 199.60059,93.887641 199.1377,93.969672 198.77443,94.133713 C 198.52833,94.239203 198.40528,94.491156 198.40529,94.889572 L 198.40529,95.153244 C 198.44044,95.75092 198.45802,96.413029 198.45802,97.139572 L 198.40529,101.92082 C 198.40528,102.38959 198.44044,102.8349 198.51076,103.25676 L 199.02052,103.29192 L 200.0049,103.23918 L 203.36232,103.23918 C 204.70996,103.23919 205.64746,103.14544 206.17482,102.95793 C 206.52637,102.82904 206.79004,102.63568 206.96584,102.37785 C 207.02441,102.29584 207.1709,101.83295 207.40529,100.98918 L 207.6338,99.530197 C 207.77441,99.459901 207.87988,99.424744 207.95021,99.424728 C 208.00879,99.424744 208.10254,99.454041 208.23146,99.512619 C 208.27832,99.782166 208.30762,100.19232 208.31935,100.74309 L 208.53029,107.21184 C 208.33105,107.29388 208.17871,107.33489 208.07326,107.33488 L 207.8799,107.29973 C 207.69238,106.12786 207.39941,105.20794 207.00099,104.53996 C 206.86035,104.3056 206.70215,104.17083 206.52638,104.13567 C 206.22168,104.06536 204.82715,104.03021 202.34279,104.0302 C 201.56934,104.03021 201.03614,104.03607 200.74318,104.04778 C 200.04005,104.08294 199.61817,104.10052 199.47755,104.10051 L 199.30177,104.10051 C 198.9502,104.10052 198.69825,104.1474 198.54591,104.24113 C 198.49903,104.38177 198.47559,104.48138 198.4756,104.53996 L 198.4756,105.75285 C 198.47559,105.89349 198.48145,106.47942 198.49318,107.51067 L 198.45802,113.32903 C 198.45802,113.49309 198.50489,113.69817 198.59865,113.94426 C 198.84473,114.14348 199.29005,114.27825 199.93459,114.34856 C 200.59083,114.40715 201.20606,114.55949 201.78029,114.80559 C 202.1084,114.95793 202.27247,115.12785 202.27248,115.31535 C 202.27247,115.39738 202.24903,115.47356 202.20216,115.54387 C 202.15528,115.61418 202.07325,115.66692 201.95607,115.70207 C 200.99512,115.50285 199.66505,115.40324 197.96584,115.40324 C 197.06349,115.40324 196.10841,115.48528 195.1006,115.64934 C 194.40919,115.75481 193.61818,115.80754 192.72755,115.80754 L 192.37599,115.71965"
id="text3387" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 183.4258,456.6749 C 183.85939,456.4874 184.3633,456.36435 184.93752,456.30576 C 185.76954,456.21201 186.39064,456.01279 186.8008,455.7081 C 187.1172,455.06357 187.2754,453.42295 187.27541,450.78622 L 187.27541,448.00888 L 187.31056,446.33896 L 187.27541,445.10849 L 187.31056,442.84091 L 187.25783,437.12802 C 187.25782,436.48351 187.16407,436.06164 186.97658,435.8624 C 186.70704,435.56945 185.9922,435.29992 184.83205,435.0538 C 184.35158,434.94836 184.05861,434.85461 183.95314,434.77255 C 183.84767,434.67882 183.78322,434.5089 183.75978,434.26279 C 184.02931,434.20422 184.21681,434.17492 184.32228,434.1749 L 185.57033,434.1749 L 186.22072,434.15732 C 186.65431,434.15734 187.13478,434.20422 187.66212,434.29794 C 188.74024,434.36828 189.84766,434.40343 190.98439,434.40341 C 191.31251,434.40343 191.78126,434.38586 192.39064,434.35068 C 194.00782,434.25695 195.16797,434.21008 195.87111,434.21005 C 197.28906,434.21008 198.625,434.3507 199.87892,434.63193 C 201.14453,434.9132 202.44531,435.43468 203.78127,436.19638 C 204.61327,436.67687 205.46288,437.43859 206.33009,438.48154 C 207.20898,439.5128 207.87108,440.64366 208.31642,441.87411 C 208.77343,443.09288 209.00194,444.46983 209.00197,446.00497 C 209.00194,447.37608 208.74999,448.73545 208.24611,450.0831 C 207.7539,451.43076 207.06249,452.60264 206.17189,453.59872 C 205.28124,454.5831 204.3789,455.32724 203.46486,455.83115 C 202.55078,456.32333 201.15625,456.75107 199.28127,457.11435 C 198.50781,457.25497 197.11914,457.32529 195.11525,457.32529 C 193.79102,457.32529 192.7129,457.28427 191.88087,457.20224 C 191.55274,457.15536 191.20118,457.13193 190.82619,457.13193 C 190.76759,457.13193 190.70313,457.13779 190.63283,457.14951 L 183.46095,457.27255 L 183.4258,457.13193 C 183.40236,457.07333 183.39064,457.00888 183.39064,456.93857 L 183.4258,456.6749 M 192.37306,455.98935 C 193.26368,456.29404 194.16602,456.44638 195.08009,456.44638 C 196.26367,456.44638 197.42383,456.26474 198.56056,455.90146 C 199.69726,455.52646 200.69922,455.00498 201.56642,454.33701 C 202.44531,453.65732 203.16601,452.8956 203.72853,452.05185 C 204.29101,451.19639 204.68945,450.42881 204.92384,449.74911 C 205.25195,448.75303 205.41601,447.45811 205.41603,445.86435 C 205.41601,444.34092 205.09374,442.79405 204.44923,441.22372 C 204.0039,440.1339 203.21875,439.09093 202.09377,438.09482 C 200.98047,437.09874 199.66211,436.37218 198.13869,435.91513 C 196.61524,435.4464 194.96875,435.21203 193.19923,435.21201 C 191.98048,435.21203 191.07813,435.34679 190.4922,435.6163 C 190.42188,435.68664 190.35157,435.76867 190.28127,435.8624 C 190.21095,436.15539 190.17579,436.42492 190.1758,436.67099 C 190.17579,436.82335 190.18165,437.00499 190.19337,437.21591 C 190.22852,438.57531 190.2461,439.66515 190.24611,440.48544 L 190.22853,444.47568 C 190.22852,450.33506 190.33399,453.59873 190.54494,454.26669 C 190.76759,454.92295 191.37696,455.49716 192.37306,455.98935"
id="text3371" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 213.19728,449.72568 L 213.19728,456.28818 L 214.34572,454.95224 C 214.79884,454.40536 215.22072,453.85849 215.61134,453.31161 C 215.79884,453.03036 215.97071,452.76474 216.12697,452.51474 C 216.25196,452.28036 216.4004,452.00693 216.57228,451.69443 C 216.69728,451.4288 216.82228,451.13974 216.94728,450.82724 C 217.04103,450.63974 217.0879,450.44443 217.08791,450.2413 C 217.0879,449.9288 217.04103,449.6163 216.94728,449.3038 C 216.85353,448.97568 216.73634,448.72568 216.59572,448.5538 C 216.47071,448.36631 216.29884,448.22568 216.08009,448.13193 C 215.86134,448.06943 215.61915,448.02256 215.35353,447.9913 C 214.88478,447.99131 214.40822,448.21006 213.92384,448.64755 C 213.43947,449.06943 213.19728,449.4288 213.19728,449.72568 M 212.00197,458.88974 L 212.00197,432.59286 L 213.19728,432.59286 L 213.19728,447.94443 C 214.44728,446.96006 215.61915,446.46787 216.71291,446.46786 C 217.2129,446.46787 217.68946,446.6085 218.14259,446.88974 C 218.62696,447.20224 219.0254,447.61631 219.33791,448.13193 C 219.63477,448.67881 219.78321,449.22568 219.78322,449.77255 C 219.78321,450.64755 219.4004,451.53037 218.63478,452.42099 C 218.22852,452.90536 217.75196,453.45224 217.20509,454.06161 C 216.65821,454.67099 216.17384,455.16317 215.75197,455.53818 L 212.00197,458.88974"
id="text3477" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 111.92104,384.81857 C 112.08511,384.72482 112.23159,384.67795 112.3605,384.67795 L 112.76479,384.67795 C 112.84682,384.67795 112.98745,384.67209 113.18667,384.66037 C 114.08901,384.57834 114.62221,384.49631 114.78628,384.41428 C 115.19643,384.19162 115.54799,383.8049 115.84097,383.25412 C 116.45034,382.05881 117.13588,380.36545 117.89761,378.17404 C 118.26088,377.13108 118.4894,376.49827 118.58315,376.2756 C 118.87611,375.57249 119.15736,374.83421 119.4269,374.06076 L 121.07925,369.43771 C 121.33705,368.71117 121.95814,367.04711 122.94253,364.44553 C 123.18861,363.7893 123.48744,362.91039 123.83901,361.80881 L 124.34878,361.77365 L 124.96401,361.79123 C 125.46791,362.78735 125.91322,363.85961 126.29995,365.00803 C 126.51087,365.61742 126.85658,366.52562 127.33706,367.73264 L 130.00893,374.95724 L 131.43276,378.87717 C 132.18274,381.10373 132.67493,382.47483 132.90932,382.99045 C 133.14368,383.49436 133.36048,383.82834 133.55972,383.9924 C 133.61829,384.03928 133.83508,384.10959 134.21011,384.20334 C 134.5968,384.29709 134.86633,384.3674 135.0187,384.41428 C 135.55774,384.56662 135.93274,384.69553 136.1437,384.80099 C 136.19055,384.9299 136.21399,385.02951 136.21401,385.09982 C 136.21399,385.15842 136.19641,385.24631 136.16128,385.36349 C 135.78625,385.37521 135.52258,385.38107 135.37026,385.38107 C 134.77258,385.38107 133.7179,385.36349 132.2062,385.32834 L 130.44839,385.2756 L 128.32143,385.31076 C 128.18079,385.31076 128.03431,385.3049 127.88198,385.29318 C 127.74134,385.26974 127.61829,385.25803 127.51284,385.25803 L 127.12612,385.25803 C 126.9972,385.24631 126.88001,385.21115 126.77456,385.15256 C 126.77454,384.9885 126.80384,384.83029 126.86245,384.67795 C 127.00306,384.60764 127.13197,384.56662 127.24917,384.5549 L 129.09487,384.43185 C 129.57532,384.40842 129.9386,384.34396 130.18472,384.23849 C 130.25501,384.02756 130.29017,383.86936 130.29018,383.76389 C 130.29017,383.55295 130.13782,383.00803 129.83315,382.12912 C 129.6222,381.54319 129.4347,380.98655 129.27065,380.4592 C 129.11829,379.93186 128.4972,378.19749 127.40737,375.25607 C 126.92689,375.17405 126.50501,375.13304 126.14175,375.13303 L 122.38003,375.16818 L 121.27261,375.1506 C 120.87416,375.15061 120.43471,375.17991 119.95425,375.23849 C 119.8019,375.59007 119.70229,375.84202 119.65542,375.99435 L 118.10854,380.82834 C 117.45229,382.66819 117.12416,383.68186 117.12417,383.86935 C 117.12416,383.97482 117.1769,384.15061 117.28237,384.3967 C 117.52846,384.46701 117.85658,384.53146 118.26675,384.59006 L 120.65737,384.80099 C 120.78627,384.90646 120.85072,385.00021 120.85073,385.08224 C 120.85072,385.14084 120.83314,385.22873 120.798,385.34592 C 120.27064,385.35764 119.86635,385.36349 119.58511,385.36349 C 118.6476,385.36349 117.55776,385.3342 116.31557,385.2756 C 115.74135,385.25217 115.3312,385.24045 115.08511,385.24045 C 114.83901,385.24045 114.41128,385.25217 113.8019,385.2756 C 113.40346,385.29904 113.11635,385.31076 112.94057,385.31076 C 112.65932,385.31076 112.29604,385.29318 111.85073,385.25803 L 111.85073,385.15256 C 111.85073,385.07053 111.87417,384.9592 111.92104,384.81857 M 120.30581,374.2717 C 121.55971,374.34202 122.98939,374.37718 124.59487,374.37717 C 125.50892,374.37718 126.31165,374.34788 127.00307,374.28928 C 126.88587,373.83226 126.75111,373.40452 126.59878,373.00607 C 125.83705,370.96702 125.41517,369.84203 125.33315,369.63107 L 123.73354,365.57053 L 123.55776,365.25412 C 123.48744,365.39476 123.22963,365.99828 122.78432,367.06467 C 122.03431,368.89281 121.49525,370.31663 121.16714,371.33615 C 121.01478,371.7932 120.85658,372.25023 120.69253,372.70724 C 120.52846,373.15257 120.42299,373.46898 120.37612,373.65646 C 120.34096,373.83226 120.28236,374.0139 120.20034,374.20139 L 120.30581,374.2717"
id="text3375" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 140.40932,377.56174 L 140.40932,384.12424 L 141.55775,382.7883 C 142.01088,382.24142 142.43275,381.69455 142.82338,381.14767 C 143.01088,380.86642 143.18275,380.6008 143.339,380.3508 C 143.464,380.11642 143.61244,379.84299 143.78432,379.53049 C 143.90931,379.26486 144.03431,378.9758 144.15932,378.6633 C 144.25306,378.4758 144.29994,378.28049 144.29994,378.07736 C 144.29994,377.76486 144.25306,377.45236 144.15932,377.13986 C 144.06556,376.81174 143.94837,376.56174 143.80775,376.38986 C 143.68275,376.20237 143.51088,376.06174 143.29213,375.96799 C 143.07338,375.90549 142.83119,375.85862 142.56557,375.82736 C 142.09681,375.82737 141.62025,376.04612 141.13588,376.48361 C 140.6515,376.90549 140.40932,377.26486 140.40932,377.56174 M 139.214,386.7258 L 139.214,360.42892 L 140.40932,360.42892 L 140.40932,375.78049 C 141.65931,374.79612 142.83119,374.30393 143.92494,374.30392 C 144.42494,374.30393 144.9015,374.44455 145.35463,374.7258 C 145.839,375.0383 146.23743,375.45237 146.54994,375.96799 C 146.84681,376.51487 146.99525,377.06174 146.99525,377.60861 C 146.99525,378.48361 146.61243,379.36642 145.84682,380.25705 C 145.44056,380.74142 144.964,381.2883 144.41713,381.89767 C 143.87025,382.50705 143.38588,382.99923 142.964,383.37424 L 139.214,386.7258"
id="text3481" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 84.676582,285.79297 C 84.793769,285.6875 84.893378,285.62305 84.97541,285.59961 C 85.174628,285.54102 85.514471,285.49414 85.994942,285.45898 C 87.131657,285.38867 87.834781,285.2832 88.104317,285.14258 C 88.268375,284.9082 88.350406,284.58008 88.35041,284.1582 L 88.332832,282.92773 L 88.35041,278.46289 L 88.315254,276.35352 L 88.332832,271.94141 L 88.244942,266.93164 C 88.233219,265.73635 88.157047,265.06252 88.016426,264.91016 C 87.805485,264.68752 87.178532,264.55862 86.135567,264.52344 C 85.690252,264.51174 85.297675,264.47658 84.957832,264.41797 C 84.805488,264.33596 84.729316,264.23049 84.729317,264.10156 C 84.729316,264.00783 84.758613,263.89651 84.817207,263.76758 C 84.922675,263.70901 85.016425,263.67971 85.098457,263.67969 C 85.262518,263.67971 85.461737,263.68557 85.696114,263.69727 C 86.387517,263.75588 87.10236,263.78518 87.840645,263.78516 L 89.141426,263.75 L 92.235176,263.82031 C 93.782041,263.82033 94.989071,263.80276 95.85627,263.76758 C 96.723444,263.73244 97.309381,263.71487 97.614082,263.71484 C 97.8836,263.71487 98.551568,263.7383 99.617989,263.78516 L 102.11408,263.76758 L 102.41291,263.82031 L 103.87189,263.76758 L 104.04768,263.85547 C 104.10625,263.94924 104.14727,264.04885 104.17072,264.1543 C 104.1707,264.31838 104.14141,264.57033 104.08283,264.91016 C 104.03594,265.25002 104.0125,265.46096 104.01252,265.54297 C 104.0125,266.76174 104.05352,267.79299 104.13557,268.63672 C 104.12383,268.70705 104.08867,268.75392 104.0301,268.77734 C 103.90117,268.77736 103.78398,268.75978 103.67854,268.72461 C 103.54961,268.50197 103.37383,268.10939 103.15119,267.54688 C 102.94024,266.98439 102.61797,266.334 102.18439,265.5957 C 101.89141,265.10354 101.66289,264.81057 101.49885,264.7168 C 101.33477,264.62307 100.99492,264.57619 100.47932,264.57617 C 100.37383,264.57619 99.840629,264.56447 98.879707,264.54102 C 98.62188,264.52932 98.369927,264.52346 98.123848,264.52344 L 93.114082,264.62891 L 92.674629,264.62891 C 92.03009,264.62893 91.643371,264.71096 91.514473,264.875 C 91.315247,265.15627 91.215637,265.98244 91.215645,267.35352 C 91.215637,267.49416 91.244934,268.90041 91.303535,271.57227 L 91.303535,274.01562 C 91.432434,274.05079 91.573059,274.06837 91.72541,274.06836 L 92.024239,274.06836 C 92.223449,274.06837 92.516417,274.07423 92.903145,274.08594 C 93.51251,274.10939 93.922666,274.12111 94.133614,274.12109 C 94.274228,274.12111 94.397275,274.11525 94.502754,274.10352 C 95.768367,274.05665 97.397272,274.03322 99.389473,274.0332 C 100.01055,273.92775 100.37383,273.8047 100.47932,273.66406 C 100.65508,273.45314 100.78399,272.90236 100.86604,272.01172 C 100.95977,271.12111 101.15899,270.6172 101.46369,270.5 C 101.61602,270.50002 101.75664,270.52931 101.88557,270.58789 C 101.90899,270.68166 101.9207,270.76955 101.92072,270.85156 C 101.9207,270.93361 101.90899,271.06837 101.88557,271.25586 C 101.82695,271.68947 101.79766,273.04884 101.79768,275.33398 C 101.79766,275.94337 101.82695,276.62306 101.88557,277.37305 C 101.95586,278.12305 101.99102,278.52735 101.99104,278.58594 C 101.99102,278.69141 101.97344,278.83204 101.9383,279.00781 C 101.84453,279.05469 101.76836,279.07813 101.70979,279.07812 L 101.58674,279.07812 C 101.39922,278.75001 101.21758,278.24024 101.04182,277.54883 C 100.73711,276.36524 100.41485,275.62696 100.07502,275.33398 C 99.746879,275.02931 99.207817,274.87696 98.457832,274.87695 C 98.293755,274.87696 97.994928,274.88868 97.561348,274.91211 C 97.127741,274.92384 96.48321,274.9297 95.627754,274.92969 L 94.485176,274.92969 C 92.856261,274.9297 91.789856,274.96485 91.285957,275.03516 L 91.268379,275.61523 L 91.285957,278.84961 L 91.268379,280.88867 L 91.285957,282.875 C 91.297669,284.07031 91.37384,284.76172 91.514473,284.94922 C 91.713684,285.20703 92.147277,285.33594 92.815254,285.33594 L 93.88752,285.31836 C 93.98126,285.31836 94.344541,285.33008 94.977364,285.35352 C 95.621883,285.36524 96.412898,285.37109 97.35041,285.37109 C 99.612113,285.37109 101.11797,285.27734 101.86799,285.08984 C 102.61797,284.89063 103.2332,284.54492 103.71369,284.05273 C 104.20586,283.56055 104.82109,282.5 105.55939,280.87109 C 105.78203,280.39063 106.00469,280.1504 106.22736,280.15039 C 106.33281,280.1504 106.45,280.19727 106.57893,280.29102 C 106.23906,281.45118 106.0457,282.21289 105.99885,282.57617 C 105.86992,283.39649 105.79375,284.23438 105.77033,285.08984 C 105.77031,285.47656 105.67656,285.79883 105.48908,286.05664 L 105.10236,286.05664 L 100.16291,286.10938 L 97.948067,286.0918 L 92.674629,286.16211 L 90.530098,286.16211 C 90.26056,286.16211 90.008607,286.16797 89.774239,286.17969 C 87.66486,286.27344 86.112127,286.32031 85.116035,286.32031 C 84.940253,286.32031 84.817206,286.29102 84.746895,286.23242 C 84.6883,286.17383 84.659003,286.08594 84.659004,285.96875 L 84.676582,285.79297"
id="text3379" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 110.77425,278.98438 L 110.77425,285.54688 L 111.92268,284.21094 C 112.37581,283.66406 112.79768,283.11719 113.18831,282.57031 C 113.3758,282.28906 113.54768,282.02344 113.70393,281.77344 C 113.82893,281.53906 113.97737,281.26562 114.14925,280.95312 C 114.27424,280.6875 114.39924,280.39844 114.52425,280.08594 C 114.61799,279.89844 114.66487,279.70313 114.66487,279.5 C 114.66487,279.1875 114.61799,278.875 114.52425,278.5625 C 114.43049,278.23438 114.3133,277.98438 114.17268,277.8125 C 114.04768,277.625 113.8758,277.48438 113.65706,277.39062 C 113.4383,277.32813 113.19612,277.28125 112.9305,277.25 C 112.46174,277.25 111.98518,277.46875 111.50081,277.90625 C 111.01643,278.32813 110.77425,278.6875 110.77425,278.98438 M 109.57893,288.14844 L 109.57893,261.85156 L 110.77425,261.85156 L 110.77425,277.20312 C 112.02424,276.21875 113.19612,275.72657 114.28987,275.72656 C 114.78987,275.72657 115.26643,275.86719 115.71956,276.14844 C 116.20393,276.46094 116.60236,276.875 116.91487,277.39062 C 117.21174,277.9375 117.36018,278.48438 117.36018,279.03125 C 117.36018,279.90625 116.97736,280.78906 116.21175,281.67969 C 115.80549,282.16406 115.32893,282.71094 114.78206,283.32031 C 114.23518,283.92968 113.7508,284.42187 113.32893,284.79688 L 109.57893,288.14844"
id="text3485" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 114.0392,166.03398 L 114.0392,165.48906 C 114.23842,165.44221 114.39662,165.41291 114.51381,165.40117 L 116.16615,165.31328 C 117.53724,165.19611 119.0724,165.10236 120.77162,165.03203 C 121.4513,165.00861 122.52357,164.99689 123.98842,164.99687 C 125.98059,164.99689 127.43958,165.14338 128.36537,165.43633 C 129.71301,165.86994 130.71496,166.52619 131.37123,167.40508 C 132.03918,168.27228 132.37317,169.23908 132.37318,170.30547 C 132.37317,172.03986 131.13684,173.49884 128.6642,174.68242 L 128.57631,174.82304 C 129.84192,175.1629 130.87903,175.63751 131.68764,176.24687 C 132.49621,176.85626 133.11731,177.6004 133.55092,178.47929 C 133.8673,179.12383 134.02551,179.96758 134.02553,181.01054 C 134.02551,182.75664 133.22863,184.31523 131.6349,185.68633 C 130.05286,187.0457 127.86731,187.72539 125.07826,187.72539 L 122.45912,187.72539 L 119.80482,187.81328 C 117.46107,187.83672 116.08998,187.84843 115.69154,187.84843 C 115.28139,187.84843 114.87709,187.83086 114.47865,187.7957 L 114.47865,187.60234 C 114.47865,187.46172 114.50795,187.36211 114.56654,187.30351 C 114.63686,187.2332 114.77162,187.17461 114.97084,187.12773 C 116.43568,186.82304 117.26185,186.61797 117.44936,186.5125 C 117.64857,186.39531 117.78334,186.21367 117.85365,185.96758 C 117.99427,185.49883 118.06459,184.2918 118.06459,182.34648 C 118.06459,182.17071 118.05873,181.94805 118.04701,181.67851 C 118.02357,180.89336 118.01185,180.44219 118.01186,180.325 L 118.01186,178.49687 C 118.01185,175.40313 117.9767,172.70197 117.90639,170.39336 L 117.88881,166.86015 L 117.87123,166.4207 C 116.87513,166.2801 115.99623,166.19221 115.23451,166.15703 C 114.74232,166.14533 114.34389,166.10432 114.0392,166.03398 M 121.01772,174.92851 C 121.60364,175.04571 122.21888,175.10431 122.86342,175.10429 C 125.39466,175.10431 127.11145,174.54767 128.01381,173.43437 C 128.91614,172.32111 129.36731,171.21369 129.36732,170.11211 C 129.36731,169.61994 129.28528,169.12189 129.12123,168.61797 C 128.96887,168.10236 128.68762,167.63947 128.27748,167.22929 C 127.87903,166.81916 127.38098,166.51447 126.78334,166.31523 C 125.7638,165.97541 124.72083,165.80549 123.65443,165.80547 C 122.65833,165.80549 121.73255,165.91682 120.87709,166.13945 C 120.86536,166.38557 120.85951,166.56721 120.85951,166.68437 C 120.85951,166.80158 120.87122,167.13556 120.89467,167.68633 C 120.90638,168.03791 120.91224,168.38947 120.91225,168.74101 L 120.85951,170.86797 L 120.87709,172.13359 L 121.00014,174.61211 L 121.01772,174.92851 M 125.14857,186.88164 C 126.30872,186.79961 127.28137,186.55351 128.06654,186.14336 C 128.42981,185.95586 128.85754,185.62187 129.34975,185.1414 C 129.85364,184.64922 130.24036,184.06328 130.5099,183.38359 C 130.79114,182.70391 130.93176,182.04766 130.93178,181.41484 C 130.93176,180.93438 130.83215,180.34258 130.63295,179.63945 C 130.44543,178.93633 130.11731,178.3211 129.64857,177.79375 C 129.19153,177.2547 128.50598,176.81524 127.59193,176.47539 C 126.67786,176.12384 125.67005,175.94806 124.5685,175.94804 C 122.43568,175.94806 121.24036,175.98907 120.98256,176.07109 C 120.97083,176.34063 120.96497,176.53985 120.96498,176.66875 L 120.98256,177.31914 L 120.96498,178.6375 L 120.96498,180.13164 C 121.00013,182.88555 121.06458,184.51445 121.15834,185.01836 C 121.25208,185.52226 121.56849,185.95586 122.10756,186.31914 C 122.65833,186.68242 123.672,186.86992 125.14857,186.88164"
id="text3383" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 138.22084,180.40703 L 138.22084,186.96953 L 139.36928,185.63359 C 139.8224,185.08671 140.24427,184.53984 140.6349,183.99297 C 140.8224,183.71171 140.99427,183.44609 141.15053,183.19609 C 141.27552,182.96172 141.42396,182.68828 141.59584,182.37578 C 141.72084,182.11015 141.84584,181.82109 141.97084,181.50859 C 142.06459,181.32109 142.11146,181.12578 142.11147,180.92265 C 142.11146,180.61016 142.06459,180.29766 141.97084,179.98515 C 141.87709,179.65703 141.7599,179.40703 141.61928,179.23515 C 141.49427,179.04766 141.3224,178.90703 141.10365,178.81328 C 140.8849,178.75078 140.64271,178.70391 140.37709,178.67265 C 139.90834,178.67266 139.43178,178.89141 138.9474,179.3289 C 138.46303,179.75078 138.22084,180.11016 138.22084,180.40703 M 137.02553,189.57109 L 137.02553,163.27422 L 138.22084,163.27422 L 138.22084,178.62578 C 139.47084,177.64141 140.64271,177.14922 141.73647,177.14922 C 142.23646,177.14922 142.71302,177.28985 143.16615,177.57109 C 143.65052,177.8836 144.04896,178.29766 144.36147,178.81328 C 144.65833,179.36016 144.80677,179.90703 144.80678,180.4539 C 144.80677,181.3289 144.42396,182.21172 143.65834,183.10234 C 143.25208,183.58671 142.77552,184.13359 142.22865,184.74297 C 141.68177,185.35234 141.1974,185.84452 140.77553,186.21953 L 137.02553,189.57109"
id="text3489" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 278.7131,460.86368 L 278.90646,463.53555 C 278.97675,464.34416 279.01191,464.89495 279.01193,465.1879 L 278.51974,465.27579 C 277.73457,463.49456 276.75605,462.15862 275.5842,461.26797 C 274.42402,460.37737 273.0002,459.93206 271.31271,459.93204 C 269.2502,459.93206 267.64473,460.18401 266.49631,460.6879 C 264.83224,461.40276 263.40841,462.64495 262.22482,464.41446 C 261.04122,466.18401 260.44943,468.31682 260.44943,470.8129 C 260.44943,472.25431 260.66622,473.54923 261.09982,474.69766 C 261.53341,475.84611 262.14278,476.91837 262.92795,477.91446 C 263.72481,478.89884 264.66231,479.75431 265.74045,480.48087 C 266.44356,480.96134 267.28145,481.32462 268.25412,481.57071 C 268.80489,481.69962 269.6252,481.76407 270.71506,481.76407 C 271.41817,481.76407 272.19746,481.66446 273.05295,481.46524 C 273.9084,481.26602 274.55293,481.00235 274.98654,480.67422 C 275.42012,480.33438 275.71308,479.95352 275.86545,479.53165 C 276.02949,479.10977 276.11152,478.28946 276.11154,477.07071 C 276.11152,475.04337 275.97676,473.86564 275.70724,473.53751 C 275.43769,473.19767 274.58808,472.97502 273.15842,472.86954 L 272.45529,472.8168 L 271.98068,472.83438 C 271.91035,472.82267 271.8166,472.80509 271.69943,472.78165 L 271.43576,472.34219 C 271.43574,472.28361 271.47676,472.20744 271.55881,472.11368 C 272.16817,472.01994 273.49238,471.97306 275.53146,471.97305 C 275.98847,471.97306 276.73261,471.98478 277.76389,472.00821 L 279.57443,472.07852 L 281.2092,472.06094 C 281.52558,472.06095 281.90644,472.07267 282.35178,472.0961 C 282.43378,472.10783 282.48651,472.13127 282.50998,472.16641 C 282.53339,472.18986 282.54511,472.23673 282.54514,472.30704 C 282.54511,472.43595 282.51581,472.60002 282.45724,472.79922 C 281.96503,472.9047 281.58417,472.95744 281.31467,472.95743 L 280.17209,472.93985 C 279.78535,472.93986 279.4748,473.07462 279.24045,473.34415 C 279.12324,473.47306 279.06464,473.91251 279.06467,474.66251 L 279.08224,476.96524 C 279.08222,478.54728 279.01777,479.55509 278.88889,479.98868 C 278.81855,480.24649 278.67207,480.48087 278.44943,480.6918 C 278.22675,480.89102 277.758,481.13126 277.04318,481.41251 C 276.02363,481.82266 275.09785,482.09805 274.26584,482.23868 C 272.71895,482.50821 271.22481,482.64297 269.78342,482.64297 C 267.46309,482.64297 265.5588,482.35001 264.07053,481.76407 C 262.59396,481.16641 261.31661,480.34024 260.23849,479.28555 C 259.17208,478.23087 258.41037,477.16446 257.95334,476.08633 C 257.26193,474.50431 256.91623,472.89298 256.91623,471.25235 C 256.91623,469.20158 257.45529,467.19768 258.53342,465.24063 C 259.62326,463.2719 261.37521,461.67229 263.78928,460.4418 C 265.48848,459.57464 267.79708,459.14104 270.71506,459.14102 C 272.73066,459.14104 274.37715,459.31683 275.65451,459.66837 C 276.94355,460.01995 277.96308,460.41839 278.7131,460.86368"
id="text3367" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 340.34201,474.78613 L 340.34201,469.60645 L 337.69357,470.19238 L 337.69357,475.37207 L 340.34201,474.78613 M 343.41232,474.08301 L 343.41232,477.85645 L 341.53732,478.30176 L 341.53732,485.0752 L 340.34201,485.0752 L 340.34201,478.53613 L 337.69357,479.16895 L 337.69357,485.91895 L 336.54514,485.91895 L 336.54514,479.4502 L 334.67014,479.87207 L 334.67014,476.14551 C 335.92013,476.1455 336.54513,475.98144 336.54514,475.65332 L 336.54514,470.47363 L 334.67014,470.94238 L 334.67014,467.30957 L 336.54514,466.81738 L 336.59201,459.90332 L 337.69357,459.90332 L 337.69357,466.53613 L 340.34201,465.9502 L 340.34201,458.89551 L 341.53732,458.89551 L 341.53732,465.66895 L 343.41232,465.24707 L 343.41232,468.87988 L 341.53732,469.3252 L 341.53732,474.50488 L 343.41232,474.08301"
id="text3419" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 286.74045,475.12891 L 286.74045,481.69141 L 287.88889,480.35547 C 288.34201,479.80859 288.76388,479.26172 289.15451,478.71484 C 289.34201,478.43359 289.51388,478.16797 289.67014,477.91797 C 289.79513,477.68359 289.94357,477.41016 290.11545,477.09766 C 290.24044,476.83203 290.36544,476.54297 290.49045,476.23047 C 290.58419,476.04297 290.63107,475.84766 290.63107,475.64453 C 290.63107,475.33203 290.58419,475.01953 290.49045,474.70703 C 290.39669,474.37891 290.27951,474.12891 290.13889,473.95703 C 290.01388,473.76953 289.84201,473.62891 289.62326,473.53516 C 289.40451,473.47266 289.16232,473.42579 288.8967,473.39453 C 288.42795,473.39454 287.95138,473.61328 287.46701,474.05078 C 286.98263,474.47266 286.74045,474.83203 286.74045,475.12891 M 285.54514,484.29297 L 285.54514,457.99609 L 286.74045,457.99609 L 286.74045,473.34766 C 287.99045,472.36329 289.16232,471.8711 290.25607,471.87109 C 290.75607,471.8711 291.23263,472.01172 291.68576,472.29297 C 292.17013,472.60547 292.56857,473.01954 292.88107,473.53516 C 293.17794,474.08203 293.32638,474.62891 293.32639,475.17578 C 293.32638,476.05078 292.94357,476.93359 292.17795,477.82422 C 291.77169,478.30859 291.29513,478.85547 290.74826,479.46484 C 290.20138,480.07422 289.71701,480.5664 289.29514,480.94141 L 285.54514,484.29297"
id="text3423" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 313.24826,483.3631 L 313.26584,482.92365 C 313.52365,482.79474 313.95138,482.68341 314.54904,482.58966 C 315.15841,482.48419 315.57443,482.38458 315.79709,482.29083 C 316.03146,482.18536 316.22482,482.0506 316.37717,481.88654 C 316.48263,481.37091 316.53537,480.43927 316.53537,479.09161 L 316.28928,465.41583 L 316.34201,463.14825 C 316.34201,462.67952 316.25412,462.35726 316.07834,462.18146 C 315.91427,462.0057 315.47482,461.84749 314.75998,461.70685 C 314.04513,461.55453 313.62326,461.43148 313.49435,461.33771 C 313.36545,461.24398 313.30099,461.14437 313.30099,461.03888 C 313.30099,460.98031 313.31857,460.90414 313.35373,460.81036 C 313.50607,460.71664 313.66427,460.66976 313.82834,460.66974 C 314.00412,460.66976 314.36154,460.68148 314.9006,460.7049 L 315.39279,460.7049 C 315.55685,460.70492 316.01974,460.6932 316.78146,460.66974 L 319.22482,460.66974 L 324.26974,460.58185 L 329.61349,460.37091 L 330.0881,460.37091 L 330.84396,460.35333 C 331.05488,460.35336 331.24238,460.41195 331.40646,460.52911 C 331.47676,460.71664 331.51777,460.8514 331.52951,460.93341 L 331.51193,461.63654 L 331.67014,464.78302 C 331.67012,464.91194 331.6584,465.07601 331.63498,465.27521 C 331.44746,465.35726 331.27754,465.39827 331.12521,465.39825 C 331.01973,465.39827 330.93769,465.36312 330.87912,465.29279 C 330.78535,465.1639 330.72676,464.9178 330.70334,464.5545 C 330.65645,464.05062 330.4748,463.40023 330.15842,462.60333 C 330.00606,462.22835 329.7541,461.97054 329.40256,461.8299 C 328.69942,461.56039 327.51582,461.42562 325.85178,461.4256 C 325.06661,461.42562 324.33419,461.44906 323.65451,461.49591 C 322.97481,461.53109 322.5588,461.54867 322.40646,461.54865 L 321.03537,461.53107 C 320.47286,461.53109 320.00997,461.61312 319.6467,461.77716 C 319.4006,461.88265 319.27755,462.1346 319.27756,462.53302 L 319.27756,462.79669 C 319.31271,463.39437 319.33028,464.05648 319.33029,464.78302 L 319.27756,469.56427 C 319.27755,470.03303 319.31271,470.47835 319.38303,470.90021 L 319.89279,470.93536 L 320.87717,470.88263 L 324.23459,470.88263 C 325.58223,470.88264 326.51973,470.78889 327.04709,470.60138 C 327.39864,470.47249 327.66231,470.27913 327.8381,470.0213 C 327.89668,469.93928 328.04317,469.47639 328.27756,468.63263 L 328.50607,467.17365 C 328.64668,467.10335 328.75215,467.06819 328.82248,467.06818 C 328.88106,467.06819 328.97481,467.09749 329.10373,467.15607 C 329.15059,467.42561 329.17988,467.83577 329.19162,468.38654 L 329.40256,474.85529 C 329.20332,474.93733 329.05098,474.97834 328.94553,474.97833 L 328.75217,474.94318 C 328.56465,473.77131 328.27168,472.85139 327.87326,472.18341 C 327.73262,471.94905 327.57442,471.81428 327.39865,471.77911 C 327.09395,471.70881 325.69942,471.67366 323.21506,471.67365 C 322.44161,471.67366 321.90841,471.67952 321.61545,471.69122 C 320.91231,471.72639 320.49044,471.74397 320.34982,471.74396 L 320.17404,471.74396 C 319.82247,471.74397 319.57052,471.79084 319.41818,471.88458 C 319.3713,472.02522 319.34786,472.12483 319.34787,472.18341 L 319.34787,473.3963 C 319.34786,473.53694 319.35372,474.12287 319.36545,475.15411 L 319.33029,480.97247 C 319.33028,481.13654 319.37716,481.34162 319.47092,481.58771 C 319.717,481.78693 320.16232,481.92169 320.80685,481.992 C 321.46309,482.0506 322.07833,482.20294 322.65256,482.44904 C 322.98067,482.60138 323.14473,482.7713 323.14474,482.9588 C 323.14473,483.04083 323.1213,483.117 323.07443,483.18732 C 323.02755,483.25763 322.94552,483.31036 322.82834,483.34552 C 321.86739,483.1463 320.53731,483.04669 318.8381,483.04669 C 317.93575,483.04669 316.98068,483.12872 315.97287,483.29279 C 315.28146,483.39825 314.49045,483.45099 313.59982,483.45099 L 313.24826,483.3631"
id="text3445" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 308.70139,457.18692 L 310.24826,457.18692 L 297.85568,487.12247 L 296.32639,487.12247 L 308.70139,457.18692"
id="text3527" />
<path
inkscape:connector-curvature="0"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="m 59.295307,521.27822 c 0.14061,0.90236 0.21092,1.82814 0.21094,2.77734 -2e-5,0.18752 -0.006,0.43947 -0.0176,0.75586 -0.16408,0.0352 -0.28713,0.0527 -0.36914,0.0527 -0.0703,2e-5 -0.16994,-0.0117 -0.29883,-0.0352 -0.4922,-1.37107 -1.29494,-2.42576 -2.4082,-3.16406 -1.1133,-0.73826 -2.49025,-1.1074 -4.13086,-1.10742 -0.8672,2e-5 -1.59962,0.0996 -2.19727,0.29882 -1.05469,0.36331 -1.98047,0.86721 -2.77734,1.51172 -0.79688,0.63283 -1.47071,1.39455 -2.02148,2.28516 -0.55079,0.87892 -0.99024,1.95119 -1.31836,3.2168 -0.31641,1.25392 -0.47462,2.53712 -0.47461,3.84961 -10e-6,2.50782 0.38085,4.58203 1.14258,6.22265 0.76171,1.62891 1.80468,2.79493 3.1289,3.49805 1.32421,0.69141 2.66015,1.03711 4.00781,1.03711 l 0.82618,-0.0176 c 0.93748,-0.11719 1.57615,-0.22852 1.91601,-0.33399 0.85545,-0.24609 1.55858,-0.5332 2.10938,-0.86133 0.56248,-0.33984 1.1074,-0.81445 1.63476,-1.42382 0.53904,-0.60937 0.99608,-1.31836 1.3711,-2.12696 l 0.21093,-0.0703 c 0.0586,10e-6 0.14647,0.0352 0.26368,0.10547 -0.0117,0.28126 -0.0235,0.4629 -0.0352,0.54492 -0.49221,1.98048 -0.84963,3.33399 -1.07227,4.06055 -0.18752,0.0469 -0.42189,0.11719 -0.70312,0.21094 -1.37111,0.46875 -3.2051,0.70312 -5.50195,0.70312 -1.85158,0 -3.24025,-0.1289 -4.16602,-0.38672 -0.91407,-0.24609 -1.91602,-0.63281 -3.00586,-1.16015 -1.07813,-0.53906 -2.02735,-1.24805 -2.84766,-2.12695 -0.82031,-0.87891 -1.48242,-1.98633 -1.98632,-3.32227 -0.50391,-1.34765 -0.75586,-2.81249 -0.75586,-4.39453 0,-1.49999 0.19921,-2.80663 0.59765,-3.91992 0.39844,-1.12499 1.01367,-2.26171 1.84571,-3.41016 0.83202,-1.14842 1.81054,-2.1035 2.93554,-2.86523 1.13671,-0.7617 2.39648,-1.30076 3.7793,-1.61719 0.97264,-0.21092 2.3496,-0.31639 4.13086,-0.31641 1.30076,2e-5 2.52537,0.17581 3.67383,0.52735 1.14842,0.33986 1.91599,0.67385 2.30273,1.00195"
id="text2190-6" />
<path
inkscape:connector-curvature="0"
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="m 69.391555,532.68597 0,-5.17968 -2.64844,0.58593 0,5.17969 2.64844,-0.58594 m 3.07031,-0.70312 0,3.77344 -1.875,0.44531 0,6.77344 -1.19531,0 0,-6.53907 -2.64844,0.63282 0,6.75 -1.14843,0 0,-6.46875 -1.875,0.42187 0,-3.72656 c 1.24999,-10e-6 1.87499,-0.16407 1.875,-0.49219 l 0,-5.17969 -1.875,0.46875 0,-3.63281 1.875,-0.49219 0.0469,-6.91406 1.10156,0 0,6.63281 2.64844,-0.58593 0,-7.05469 1.19531,0 0,6.77344 1.875,-0.42188 0,3.63281 -1.875,0.44532 0,5.17968 1.875,-0.42187"
id="text3419-2" />
<path
inkscape:connector-curvature="0"
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="m 540.33671,519.67617 c 0.14061,0.90236 0.21092,1.82814 0.21094,2.77734 -2e-5,0.18752 -0.006,0.43947 -0.0176,0.75586 -0.16408,0.0352 -0.28713,0.0527 -0.36914,0.0527 -0.0703,2e-5 -0.16994,-0.0117 -0.29883,-0.0352 -0.4922,-1.37107 -1.29494,-2.42576 -2.4082,-3.16406 -1.1133,-0.73826 -2.49025,-1.1074 -4.13086,-1.10742 -0.8672,2e-5 -1.59962,0.0996 -2.19727,0.29882 -1.05469,0.36331 -1.98047,0.86721 -2.77734,1.51172 -0.79688,0.63283 -1.47071,1.39455 -2.02148,2.28516 -0.55079,0.87892 -0.99024,1.95119 -1.31836,3.2168 -0.31641,1.25392 -0.47462,2.53712 -0.47461,3.84961 -10e-6,2.50782 0.38085,4.58203 1.14258,6.22265 0.76171,1.62891 1.80468,2.79493 3.1289,3.49805 1.32421,0.69141 2.66015,1.03711 4.00781,1.03711 l 0.82618,-0.0176 c 0.93748,-0.11719 1.57615,-0.22852 1.91601,-0.33399 0.85545,-0.24609 1.55858,-0.5332 2.10938,-0.86133 0.56248,-0.33984 1.1074,-0.81445 1.63476,-1.42382 0.53904,-0.60937 0.99608,-1.31836 1.3711,-2.12696 l 0.21093,-0.0703 c 0.0586,1e-5 0.14647,0.0352 0.26368,0.10547 -0.0117,0.28126 -0.0235,0.4629 -0.0352,0.54492 -0.49221,1.98048 -0.84963,3.33399 -1.07227,4.06055 -0.18752,0.0469 -0.42189,0.11719 -0.70312,0.21094 -1.37111,0.46875 -3.2051,0.70312 -5.50195,0.70312 -1.85158,0 -3.24025,-0.1289 -4.16602,-0.38672 -0.91407,-0.24609 -1.91602,-0.63281 -3.00586,-1.16015 -1.07813,-0.53906 -2.02735,-1.24805 -2.84766,-2.12695 -0.82031,-0.87891 -1.48242,-1.98633 -1.98632,-3.32227 -0.50391,-1.34765 -0.75586,-2.81249 -0.75586,-4.39453 0,-1.49999 0.19921,-2.80663 0.59765,-3.91992 0.39844,-1.12499 1.01367,-2.26171 1.84571,-3.41016 0.83202,-1.14842 1.81054,-2.1035 2.93554,-2.86523 1.13671,-0.7617 2.39648,-1.30076 3.7793,-1.61719 0.97264,-0.21092 2.3496,-0.31639 4.13086,-0.31641 1.30076,2e-5 2.52537,0.17581 3.67383,0.52735 1.14842,0.33986 1.91599,0.67385 2.30273,1.00195"
id="text2190-6-3" />
<path
inkscape:connector-curvature="0"
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#7e0513;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="m 547.63849,534.29145 0,6.5625 1.14844,-1.33594 c 0.45312,-0.54688 0.875,-1.09375 1.26562,-1.64063 0.1875,-0.28125 0.35937,-0.54687 0.51563,-0.79687 0.12499,-0.23438 0.27343,-0.50781 0.44531,-0.82031 0.125,-0.26563 0.25,-0.55469 0.375,-0.86719 0.0937,-0.1875 0.14062,-0.38281 0.14063,-0.58594 -1e-5,-0.3125 -0.0469,-0.625 -0.14063,-0.9375 -0.0937,-0.32812 -0.21094,-0.57812 -0.35156,-0.75 -0.12501,-0.18749 -0.29688,-0.32812 -0.51563,-0.42187 -0.21875,-0.0625 -0.46094,-0.10937 -0.72656,-0.14063 -0.46875,1e-5 -0.94531,0.21876 -1.42969,0.65625 -0.48437,0.42188 -0.72656,0.78125 -0.72656,1.07813 m -1.19531,9.16406 0,-26.29688 1.19531,0 0,15.35157 c 1.25,-0.98437 2.42187,-1.47656 3.51563,-1.47657 0.49999,10e-6 0.97655,0.14064 1.42968,0.42188 0.48437,0.3125 0.88281,0.72657 1.19532,1.24219 0.29686,0.54688 0.4453,1.09375 0.44531,1.64062 -10e-6,0.875 -0.38282,1.75782 -1.14844,2.64844 -0.40626,0.48437 -0.88282,1.03125 -1.42969,1.64062 -0.54688,0.60938 -1.03125,1.10156 -1.45312,1.47657 l -3.75,3.35156"
id="text3477-8" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="minor text"
style="display:inline">
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 180.7581,278.68262 L 180.77568,279.8252 C 179.8616,280.79785 178.95926,281.47754 178.06865,281.86426 C 177.17801,282.25098 176.12919,282.44434 174.92216,282.44434 C 173.60966,282.44434 172.42607,282.10449 171.37138,281.4248 C 170.31669,280.7334 169.50224,279.76074 168.92802,278.50684 C 168.36552,277.25293 168.08427,276.02247 168.08427,274.81543 C 168.08427,273.49122 168.42412,272.24317 169.10381,271.07129 C 169.79521,269.88771 170.70341,269.0088 171.82841,268.43457 C 172.96513,267.84865 174.38895,267.55568 176.0999,267.55566 C 177.74051,267.55568 178.98856,267.83693 179.84404,268.39941 C 180.3245,268.72755 180.56473,269.14943 180.56474,269.66504 C 180.56473,270.04005 180.44168,270.3506 180.1956,270.59668 C 179.9495,270.84278 179.63309,270.96583 179.24638,270.96582 C 178.66043,270.96583 178.0159,270.60255 177.31279,269.87598 C 176.87919,269.43068 176.48661,269.12599 176.13506,268.96191 C 175.78348,268.78615 175.39091,268.69826 174.95732,268.69824 C 173.91435,268.69826 173.04716,269.12599 172.35576,269.98145 C 171.39482,271.20021 170.91435,272.7295 170.91435,274.56934 C 170.91435,276.46778 171.40654,277.9795 172.39091,279.10449 C 173.37528,280.22949 174.52372,280.79199 175.83623,280.79199 C 176.75028,280.79199 177.55887,280.64551 178.26201,280.35254 C 178.97684,280.04785 179.80887,279.49121 180.7581,278.68262"
id="text3335" />
<path
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 275.49924,193.39243 C 275.72125,193.24204 276.12229,193.13462 276.70237,193.07016 C 277.15354,193.04868 277.4221,193.00929 277.50803,192.95199 C 277.56532,192.90902 277.60828,192.85532 277.63694,192.79087 C 277.74437,192.52589 277.82313,191.80616 277.87326,190.63168 C 277.93772,189.1063 278.04156,187.07603 278.18479,184.54087 C 278.29937,182.60728 278.35667,181.40058 278.35667,180.92074 L 278.35667,180.64145 C 277.84104,180.53404 277.02464,180.41946 275.90745,180.2977 C 275.83584,180.19029 275.80002,180.10794 275.80002,180.05063 C 275.80002,180.01484 275.82509,179.95038 275.87522,179.85728 C 275.99696,179.81432 276.09006,179.79283 276.15451,179.79282 C 276.21181,179.79283 276.33714,179.80716 276.53049,179.83579 C 276.8814,179.88593 277.3648,179.911 277.98069,179.91098 C 278.18121,179.911 278.52496,179.89667 279.01194,179.86802 C 279.35569,179.84654 279.54904,179.8358 279.59201,179.83579 C 279.70659,179.8358 279.83908,179.8537 279.98948,179.88949 C 280.06108,179.96113 280.1148,180.02915 280.15062,180.0936 L 280.60178,181.10337 L 283.64183,187.82797 L 284.89866,190.65317 C 285.89409,188.68377 286.66753,186.93279 287.21897,185.40025 C 287.25476,185.28567 287.29773,185.18183 287.34788,185.08871 C 287.41231,184.96698 287.47319,184.83091 287.53049,184.68052 C 287.58777,184.53013 287.82052,183.95721 288.22874,182.96177 C 288.39343,182.56073 288.52592,182.21698 288.6262,181.93052 C 289.0344,180.78469 289.27429,180.12942 289.34593,179.96469 C 289.48197,179.91457 289.60014,179.88951 289.70042,179.88949 C 289.81498,179.88951 289.96179,179.89667 290.14085,179.91098 C 290.54186,179.93248 291.19356,179.94321 292.09593,179.94321 C 292.6545,179.94321 293.11284,179.93606 293.47093,179.92172 C 293.48523,180.00051 293.49239,180.05781 293.49241,180.0936 C 293.49239,180.14374 293.48164,180.21178 293.46018,180.2977 C 293.23101,180.41946 292.95528,180.48749 292.63303,180.50181 C 291.99565,180.53763 291.59102,180.58775 291.41917,180.65219 C 291.24727,180.71665 291.13628,180.79901 291.08616,180.89927 C 291.04318,180.99953 291.00378,181.32897 290.96799,181.88755 L 290.97874,182.38168 L 290.96799,182.89731 C 290.96798,183.97154 290.99663,185.77623 291.05393,188.31137 L 291.04319,190.41684 L 291.05393,191.77036 C 291.05391,192.30031 291.07898,192.61541 291.12913,192.71567 C 291.17923,192.80877 291.32247,192.89829 291.55881,192.98422 C 291.94552,193.11313 292.57572,193.24561 293.44944,193.38168 C 293.49954,193.41749 293.52461,193.46404 293.52464,193.52134 C 293.52461,193.58579 293.52104,193.6574 293.51389,193.73618 L 293.01975,193.73618 C 292.59721,193.73617 292.13889,193.72186 291.64475,193.69321 C 291.15059,193.67172 290.88561,193.66098 290.84982,193.66098 C 289.38171,193.66098 288.40775,193.6753 287.92795,193.70395 C 287.63433,193.72543 287.44813,193.73617 287.36937,193.73618 C 287.31922,193.73617 287.26551,193.72186 287.20823,193.69321 L 287.20823,193.55356 C 287.20822,193.48911 287.21896,193.42107 287.24045,193.34946 C 287.47677,193.2492 287.79904,193.18116 288.20725,193.14536 C 288.6584,193.02362 288.98784,192.89471 289.19553,192.75864 C 289.25997,192.4865 289.2922,191.9315 289.29221,191.0936 L 289.25999,188.92368 C 289.25997,188.68735 289.2707,188.24692 289.29221,187.60239 C 289.32085,186.95786 289.33516,185.90871 289.33518,184.45493 C 289.33516,183.30194 289.30652,182.42824 289.24924,181.83384 C 289.12748,182.0845 288.88757,182.62877 288.52951,183.46665 L 288.36839,183.87485 L 288.3469,183.93931 L 286.75705,187.69907 L 286.18772,189.14927 L 285.44651,190.91098 C 285.12423,191.72023 284.84851,192.43637 284.61937,193.05942 C 284.51909,193.34588 284.43673,193.57146 284.37229,193.73618 L 284.12522,193.72543 C 283.31596,191.36215 282.34917,188.93801 281.22482,186.45297 C 280.10764,183.96796 279.32346,182.32799 278.87229,181.53306 C 278.815,181.841 278.75054,182.73618 278.67893,184.2186 C 278.58583,186.0233 278.53928,188.0106 278.53928,190.18052 C 278.53928,190.86085 278.5894,191.62713 278.68968,192.47934 C 278.71831,192.72284 278.82215,192.90545 279.0012,193.02719 C 279.18023,193.14177 279.64214,193.20623 280.38694,193.22056 C 280.67339,193.22056 280.94553,193.24204 281.20335,193.285 C 281.25346,193.39243 281.27854,193.47121 281.27854,193.52134 C 281.27854,193.55714 281.26063,193.61802 281.22482,193.70395 L 277.88401,193.58579 C 277.64051,193.58579 277.26096,193.60369 276.74533,193.63949 C 276.45888,193.66098 276.0471,193.6753 275.50999,193.68246 L 275.49924,193.39243 M 295.2219,180.43735 C 295.2219,180.20103 295.31141,179.99694 295.49045,179.82505 C 295.67665,179.65319 295.89866,179.56725 296.15647,179.56723 C 296.42143,179.56725 296.65418,179.66392 296.85471,179.85728 C 297.05523,180.05064 297.15549,180.25832 297.15549,180.48032 C 297.15549,180.70234 297.05523,180.91359 296.85471,181.11411 C 296.65418,181.30748 296.42143,181.40415 296.15647,181.40415 C 295.89149,181.40415 295.66949,181.31464 295.49045,181.13559 C 295.31141,180.95656 295.2219,180.72382 295.2219,180.43735 M 294.31955,186.00181 L 294.33031,185.69027 C 294.79578,185.55422 295.04643,185.47544 295.08225,185.45395 C 295.34006,185.33937 295.60862,185.16392 295.88792,184.92759 C 296.17437,184.69127 296.41428,184.42629 296.60764,184.13266 C 296.69357,184.11835 296.76161,184.11118 296.81174,184.11118 L 296.94065,184.12192 C 296.96929,184.46567 296.98362,184.71633 296.98362,184.87387 C 296.98362,184.90969 296.97645,185.07082 296.96214,185.35728 L 296.96214,185.92661 L 296.97288,189.02036 L 296.94065,192.29672 C 296.93348,192.5617 296.97645,192.7479 297.06955,192.85532 C 297.16265,192.95558 297.43837,193.07016 297.8967,193.19907 C 298.18315,193.27784 298.398,193.34588 298.54124,193.40317 C 298.56272,193.4533 298.57346,193.49627 298.57346,193.53208 C 298.57346,193.57505 298.55556,193.62875 298.51975,193.69321 C 298.24045,193.68605 297.88237,193.66815 297.44553,193.63949 C 296.85112,193.58936 296.45725,193.56431 296.26389,193.56431 C 296.17078,193.56431 295.59788,193.58221 294.54514,193.61802 C 294.33031,193.62518 294.12263,193.64308 293.9221,193.67172 C 293.88629,193.67172 293.82899,193.66098 293.75022,193.63949 C 293.71442,193.58936 293.69651,193.54639 293.69651,193.51059 C 293.69651,193.41034 293.76453,193.33155 293.90062,193.27427 C 293.92926,193.25994 294.29449,193.17759 294.99631,193.02719 C 295.22549,192.98422 295.37587,192.91261 295.44749,192.81235 C 295.56924,192.66196 295.63009,192.42205 295.63011,192.09262 C 295.64443,191.54119 295.65158,190.03013 295.65158,187.55942 C 295.65158,187.06529 295.63009,186.75734 295.58714,186.63559 C 295.55132,186.54966 295.45464,186.45299 295.2971,186.34556 C 295.1467,186.23098 294.82085,186.11639 294.31955,186.00181 M 299.17502,193.29574 C 299.35406,193.24561 299.56174,193.20264 299.79808,193.16684 C 300.24924,193.10239 300.51781,193.02719 300.60374,192.94125 C 300.69683,192.85532 300.74339,192.65838 300.74339,192.35043 L 300.76487,191.96371 C 300.77203,191.82049 300.77562,191.63786 300.77562,191.41587 L 300.75413,188.11802 C 300.75413,187.67401 300.69683,187.38755 300.58225,187.25864 C 300.38889,187.05812 300.03081,186.91848 299.50803,186.83969 L 299.50803,186.45297 C 300.03081,186.30975 300.43187,186.12355 300.71116,185.89438 C 301.11937,185.57212 301.46312,185.13527 301.74241,184.58384 L 302.10764,184.59458 C 302.12913,184.93118 302.13987,185.17107 302.13987,185.31431 L 302.13987,186.02329 L 302.15062,186.21665 C 302.23654,186.15936 302.33681,186.08775 302.45139,186.00181 C 302.88107,185.67955 303.3215,185.41815 303.77268,185.21762 C 304.22384,185.00995 304.62489,184.86672 304.9758,184.78793 C 305.1978,184.73065 305.44846,184.70201 305.72776,184.70199 C 306.31498,184.70201 306.81987,184.85955 307.24241,185.17465 C 307.66492,185.48977 307.93706,185.86216 308.05881,186.29184 C 308.18772,186.71437 308.25217,187.55942 308.25218,188.82699 L 308.25218,190.44907 C 308.25217,190.49204 308.245,190.63527 308.23069,190.87875 C 308.22351,191.12225 308.21994,191.40154 308.21995,191.71665 C 308.21994,192.21795 308.24141,192.53663 308.2844,192.6727 C 308.3202,192.7658 308.41329,192.85889 308.5637,192.95199 C 309.25119,193.04509 309.65222,193.1561 309.76683,193.285 L 309.76683,193.37094 C 309.76681,193.44255 309.74532,193.53208 309.70237,193.63949 L 309.49826,193.63949 L 308.08031,193.62875 L 306.68381,193.65025 C 306.16819,193.66456 305.69194,193.66098 305.25511,193.63949 L 305.19065,193.41391 C 305.19065,193.37094 305.2157,193.31365 305.26585,193.24204 C 305.4592,193.1561 305.73132,193.0988 306.08225,193.07016 C 306.28992,193.05583 306.43315,193.03436 306.51194,193.00571 C 306.5907,192.97706 306.68739,192.91978 306.80198,192.83384 C 306.88791,192.66196 306.93087,192.51873 306.93089,192.40415 C 306.93087,192.35402 306.92372,192.25375 306.9094,192.10337 C 306.88791,191.77393 306.87358,190.95395 306.86643,189.6434 L 306.86643,189.08481 L 306.88792,188.22543 C 306.88791,187.30161 306.7017,186.66424 306.32933,186.31333 C 305.95692,185.96241 305.4592,185.78696 304.83616,185.78696 C 304.35634,185.78696 303.88726,185.89439 303.42893,186.10922 C 302.97059,186.31692 302.52658,186.63201 302.0969,187.05454 C 302.08257,187.39829 302.07542,187.69192 302.07542,187.9354 L 302.10764,190.30942 C 302.10764,191.54835 302.12554,192.30746 302.16136,192.58677 C 302.17567,192.70134 302.20074,192.78012 302.23656,192.82309 C 302.29384,192.88038 302.40842,192.92693 302.58031,192.96275 C 302.75217,192.99855 302.94911,193.04868 303.17112,193.11313 C 303.40027,193.17759 303.55067,193.21697 303.62229,193.2313 C 303.76551,193.2671 303.86219,193.33871 303.91232,193.44614 L 303.90158,193.66098 L 302.77366,193.66098 L 300.45335,193.62875 C 299.91624,193.64308 299.57607,193.65025 299.43283,193.65025 L 299.16428,193.65025 L 299.14281,193.51059 C 299.14281,193.46045 299.15354,193.38884 299.17502,193.29574 M 310.76585,189.32114 C 310.76585,188.83416 310.8661,188.31496 311.06663,187.76353 C 311.27431,187.20493 311.58584,186.70721 312.0012,186.27036 C 312.41656,185.82636 312.85699,185.49692 313.32249,185.28208 C 313.97417,184.9813 314.76909,184.83091 315.70725,184.8309 C 317.04643,184.83091 318.16362,185.28924 319.05881,186.2059 C 319.96116,187.12257 320.41231,188.22544 320.41232,189.51449 C 320.41231,190.66034 319.93967,191.68442 318.99437,192.58677 C 318.05621,193.48195 316.86741,193.92954 315.42795,193.92954 C 314.53993,193.92954 313.70203,193.69679 312.91428,193.2313 C 312.32703,192.88038 311.82216,192.36118 311.39964,191.67368 C 310.9771,190.98618 310.76585,190.20201 310.76585,189.32114 M 315.51389,193.51059 C 316.05815,193.51059 316.58094,193.36378 317.08225,193.07016 C 317.5907,192.77654 317.99532,192.30746 318.29612,191.66293 C 318.5969,191.01125 318.74728,190.25929 318.74729,189.40708 C 318.74728,188.84848 318.62913,188.20038 318.39281,187.46275 C 318.16362,186.72511 317.80554,186.17368 317.31857,185.80844 C 316.83875,185.43605 316.273,185.24986 315.62131,185.24985 C 315.14866,185.24986 314.66525,185.36087 314.17112,185.58286 C 313.68413,185.80487 313.26877,186.23098 312.92502,186.86118 C 312.58844,187.49139 312.42014,188.38657 312.42014,189.54672 C 312.42014,190.85011 312.71375,191.83839 313.301,192.51157 C 313.8954,193.17759 314.63303,193.51059 315.51389,193.51059 M 321.63694,193.67172 L 321.59397,193.53208 C 321.59397,193.48195 321.6262,193.40675 321.69065,193.3065 L 322.32444,193.17759 L 323.21604,193.01645 C 323.28765,192.98065 323.33779,192.93052 323.36643,192.86606 C 323.4094,192.77295 323.43089,192.49724 323.43089,192.03891 C 323.43089,189.60402 323.41656,188.20038 323.38792,187.82797 C 323.35928,187.44842 323.29482,187.20851 323.19455,187.10824 C 323.09429,187.00799 322.83648,186.92922 322.42112,186.87192 C 322.17763,186.83612 321.98428,186.78957 321.84104,186.73228 L 321.88401,186.41 C 322.63596,186.10207 323.14085,185.8371 323.39866,185.61509 C 323.75674,185.29283 324.06109,184.87029 324.31174,184.3475 L 324.67698,184.35824 C 324.71995,184.71633 324.74143,185.51125 324.74143,186.74302 L 324.73069,186.92563 C 324.73069,186.9686 324.73784,187.03663 324.75218,187.12973 C 325.02431,186.6356 325.36447,186.18085 325.77268,185.76547 L 326.01975,185.5184 C 326.12,185.40383 326.21668,185.31431 326.30979,185.24985 C 326.81108,184.94908 327.18348,184.79868 327.42698,184.79868 C 327.74208,184.79868 327.99989,184.90611 328.20042,185.12094 C 328.40092,185.32864 328.50119,185.58645 328.5012,185.89438 C 328.50119,186.13788 328.42958,186.32766 328.28636,186.46371 C 328.09298,186.64276 327.87098,186.73228 327.62033,186.73228 C 327.50574,186.73228 327.28016,186.67141 326.94357,186.54965 C 326.60699,186.42792 326.38498,186.36705 326.27756,186.36704 C 326.07703,186.36705 325.93739,186.39927 325.85862,186.46371 C 325.65809,186.62127 325.4146,186.94355 325.12815,187.43052 C 324.90614,187.79576 324.79514,188.13234 324.79514,188.44027 L 324.84886,190.21275 L 324.87033,192.33969 C 324.89181,192.58318 324.92047,192.74074 324.95627,192.81235 C 324.98491,192.86248 325.05652,192.92335 325.17112,192.99496 C 325.94455,193.05942 326.40288,193.10597 326.54612,193.13462 C 326.64638,193.14177 326.72157,193.14893 326.7717,193.1561 C 327.07964,193.16326 327.29449,193.20623 327.41624,193.285 C 327.48069,193.32081 327.51292,193.37452 327.51292,193.44614 C 327.51292,193.48911 327.48426,193.54639 327.42698,193.61802 L 326.2346,193.60728 L 325.78343,193.59652 L 325.12815,193.60728 L 324.03245,193.60728 L 323.44163,193.63949 L 321.63694,193.67172"
id="text3339" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 187.47885,217.18254 C 187.33822,217.11223 186.88705,216.91887 186.12534,216.60246 C 185.23471,216.02824 184.67221,215.60051 184.43784,215.31926 C 184.20346,215.03801 184.08627,214.72746 184.08627,214.38762 C 184.08627,214.08293 184.17416,213.83684 184.34995,213.64934 C 184.60776,213.37981 185.11752,213.122 185.87924,212.8759 C 186.64096,212.62981 187.26791,212.38958 187.7601,212.1552 C 187.60775,212.04973 187.36752,211.89739 187.0394,211.69817 C 185.2933,210.62005 184.42026,209.12591 184.42026,207.21574 C 184.42026,205.64544 184.97104,204.32122 186.0726,203.24309 C 187.18588,202.15326 188.6097,201.60834 190.34409,201.60832 C 191.12923,201.60834 191.84994,201.71966 192.5062,201.94231 C 192.88118,202.05951 193.43782,202.35248 194.17612,202.82121 C 194.64486,203.11419 194.92025,203.27826 195.00229,203.3134 C 195.18978,203.37201 195.40071,203.4013 195.6351,203.40129 C 195.83431,203.4013 196.31478,203.35443 197.07651,203.26067 C 197.84993,203.15521 198.30696,203.10248 198.4476,203.10246 C 198.71712,203.10248 198.93977,203.15521 199.11557,203.26067 C 199.25618,203.49505 199.32649,203.88763 199.32651,204.4384 C 199.32649,204.62591 199.27376,204.76654 199.1683,204.86028 C 199.07454,204.95404 198.93391,205.00091 198.74643,205.0009 C 198.41829,205.00091 197.87337,204.9013 197.11166,204.70207 C 196.36165,204.49115 195.90462,204.38568 195.74057,204.38567 C 195.68196,204.38568 195.57064,204.3974 195.40659,204.42082 C 195.91048,205.42865 196.16243,206.34857 196.16245,207.18059 C 196.16243,208.01263 195.89876,208.87395 195.37143,209.76457 C 194.84407,210.6552 194.11751,211.33489 193.19174,211.80363 C 192.26595,212.27239 191.32845,212.50676 190.37924,212.50676 C 190.30892,212.50676 190.1097,212.5009 189.78159,212.48918 C 188.70345,212.48919 187.71322,212.75872 186.81088,213.29778 C 186.37729,213.56731 186.16049,213.81926 186.16049,214.05363 C 186.16049,214.29973 186.37143,214.53996 186.7933,214.77434 C 187.90658,215.37199 190.01595,215.7177 193.12143,215.81145 C 194.46907,215.85832 195.5179,216.05168 196.26791,216.39153 C 197.0179,216.73137 197.5804,217.22941 197.95541,217.88567 C 198.34212,218.55363 198.53548,219.23918 198.53549,219.94231 C 198.53548,220.89152 198.21321,221.77043 197.5687,222.57903 C 196.92415,223.38761 195.94563,224.04386 194.63315,224.54778 C 193.32064,225.05167 191.81478,225.30363 190.11557,225.30363 C 188.24056,225.30363 186.7933,225.07511 185.77377,224.61809 C 184.75424,224.16105 184.02768,223.663 183.59409,223.12395 C 183.17221,222.58488 182.96127,222.05168 182.96127,221.52434 C 182.96127,221.0673 183.19565,220.49308 183.6644,219.80168 C 184.13315,219.12199 185.1058,218.40715 186.58237,217.65715 C 187.01596,217.43449 187.31478,217.27629 187.47885,217.18254 M 186.77573,207.14543 C 186.77572,208.20013 186.93393,209.08489 187.25034,209.79973 C 187.56674,210.50286 188.00033,211.0302 188.55112,211.38176 C 189.10189,211.72161 189.65853,211.89153 190.22104,211.89153 C 191.24056,211.89153 192.08431,211.50481 192.75229,210.73137 C 193.43197,209.94622 193.77181,208.75677 193.77182,207.16301 C 193.77181,205.55755 193.42025,204.3388 192.71713,203.50676 C 192.014,202.66302 191.16439,202.24115 190.1683,202.24113 C 189.05502,202.24115 188.21127,202.63959 187.63705,203.43645 C 187.06283,204.23333 186.77572,205.46966 186.77573,207.14543 M 186.19565,223.42278 C 187.26205,224.24308 188.6097,224.65324 190.23862,224.65324 C 191.39876,224.65324 192.55306,224.46574 193.70151,224.09074 C 194.86165,223.72746 195.7054,223.20011 196.23276,222.50871 C 196.77181,221.82902 197.04134,221.18449 197.04135,220.57512 C 197.04134,220.20011 196.94759,219.82512 196.7601,219.45012 C 196.57259,219.08683 196.31478,218.78215 195.98666,218.53606 C 195.67024,218.30168 195.24837,218.11418 194.72104,217.97356 C 194.34603,217.86809 193.81282,217.79191 193.12143,217.74504 C 191.15267,217.5927 189.94564,217.51652 189.50034,217.51653 C 188.24642,217.51652 187.12728,217.9384 186.14291,218.78215 C 185.38119,219.4384 185.00033,220.22355 185.00034,221.13762 C 185.00033,221.98136 185.39877,222.74308 186.19565,223.42278"
id="text3561" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 240.27083,167.16316 L 240.28841,166.6534 L 240.27083,164.59676 L 240.28841,160.71199 C 240.28839,159.63389 240.17121,158.94834 239.93684,158.65535 C 239.70246,158.3624 239.01691,158.06357 237.8802,157.75887 C 237.79816,157.73545 237.66926,157.70029 237.49348,157.6534 L 237.49348,157.46004 C 237.49347,157.34287 237.50519,157.21397 237.52864,157.07332 C 239.12238,156.90928 240.49347,156.63389 241.64192,156.24715 L 242.53841,156.22957 C 242.58527,157.02647 242.6087,157.91709 242.60872,158.90144 L 242.53841,165.66902 L 242.66145,173.29793 L 242.60872,177.35847 C 242.6087,178.19051 242.6673,178.65926 242.7845,178.76472 C 243.01886,178.9991 243.53448,179.12215 244.33138,179.13387 C 244.49542,179.13387 244.71808,179.14558 244.99934,179.16902 L 244.99934,179.48543 C 244.99933,179.56746 244.99347,179.65535 244.98177,179.7491 C 244.61847,179.83113 244.24347,179.9073 243.85677,179.97762 L 241.30794,180.4698 C 240.93292,180.54011 240.6341,180.57527 240.41145,180.57527 L 240.41145,178.88777 C 240.21222,178.94637 239.90168,179.06355 239.47981,179.23933 C 237.65168,180.01277 235.97004,180.39949 234.43489,180.39949 C 233.5091,180.39949 232.56574,180.10066 231.60481,179.50301 C 230.64387,178.89363 229.90559,178.04988 229.38997,176.97176 C 228.87434,175.89364 228.61653,174.79207 228.61653,173.66707 C 228.61653,172.65926 228.78645,171.69833 229.1263,170.78426 C 229.46614,169.85848 229.91145,169.09091 230.46223,168.48152 C 230.81379,168.0831 231.31184,167.69052 231.95638,167.30379 C 232.6009,166.90536 233.1341,166.65341 233.55598,166.54793 C 234.59895,166.27841 235.29621,166.14364 235.64778,166.14363 C 237.2298,166.14364 238.53058,166.37802 239.55013,166.84676 C 239.86652,166.99911 240.10675,167.10458 240.27083,167.16316 M 240.28841,178.02644 C 240.33527,177.24129 240.35871,175.6241 240.35872,173.17488 C 240.35871,171.10067 240.2591,169.79403 240.05989,169.25496 C 239.87238,168.70419 239.39191,168.18856 238.61848,167.70808 C 237.84504,167.21591 236.97785,166.96982 236.01692,166.9698 C 234.66926,166.96982 233.52668,167.4913 232.58919,168.53426 C 231.65168,169.57724 231.18293,171.11825 231.18294,173.1573 C 231.18293,174.95028 231.68684,176.37996 232.69466,177.44637 C 233.71418,178.51277 234.97981,179.04598 236.49153,179.04597 C 237.35871,179.04598 238.14972,178.92879 238.86458,178.69441 C 239.57941,178.46004 240.05402,178.23738 240.28841,178.02644"
id="text3573" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 305.69858,156.49104 C 305.76888,156.64339 305.80403,156.75472 305.80405,156.82503 C 305.80403,157.00081 305.66341,157.31136 305.38217,157.75667 C 305.01888,158.34261 304.61458,158.77034 304.16928,159.03987 C 303.88802,159.21565 303.5013,159.30354 303.00912,159.30354 C 302.16536,159.30354 301.53255,159.04573 301.11069,158.53011 C 300.85287,158.22542 300.67122,157.6805 300.56577,156.89534 L 298.59702,158.26643 C 297.9056,158.66487 297.37826,158.91682 297.01498,159.02229 C 296.42904,159.17464 295.72592,159.25081 294.90561,159.25081 C 294.30795,159.25081 293.83334,159.07503 293.48178,158.72346 C 293.14194,158.36018 292.97201,157.89729 292.97202,157.33479 C 292.97201,156.5262 293.4642,155.55941 294.44858,154.4344 C 295.44467,153.30941 296.79232,152.38949 298.49155,151.67464 C 299.68685,151.17074 300.41927,150.84847 300.68881,150.70784 C 300.71224,150.32113 300.72396,149.89926 300.72397,149.44221 C 300.72396,147.95394 300.51302,146.94613 300.09116,146.41878 C 299.68099,145.89145 299.0892,145.62778 298.31577,145.62776 C 297.50717,145.62778 296.75131,145.94418 296.04819,146.57698 C 295.61459,146.97543 295.28646,147.72543 295.06381,148.82698 C 294.9935,149.13168 294.85873,149.4598 294.65952,149.81136 C 294.15561,150.13949 293.75131,150.30355 293.44662,150.30354 C 293.18881,150.30355 292.95444,150.22738 292.7435,150.07503 C 292.62631,149.99301 292.56772,149.89926 292.56772,149.79378 C 292.56772,149.4891 292.88998,148.80355 293.53452,147.73714 C 294.19076,146.65902 295.01107,145.85629 295.99545,145.32893 C 296.99154,144.78989 297.85873,144.52035 298.59702,144.52034 C 299.60482,144.52035 300.35482,144.6141 300.84702,144.80159 C 301.33919,144.97739 301.77279,145.29379 302.1478,145.75081 C 302.52279,146.20785 302.7513,146.7059 302.83334,147.24495 C 302.88021,147.50277 302.90364,148.42269 302.90366,150.00471 L 302.85092,152.79964 L 302.8685,154.8387 C 302.86849,155.10823 302.86263,155.33675 302.85092,155.52425 C 302.83919,155.86409 302.83333,156.11605 302.83334,156.28011 C 302.83333,156.66683 302.94466,156.97737 303.16733,157.21175 C 303.38997,157.44612 303.65364,157.56331 303.95834,157.56331 C 304.40364,157.56331 304.7845,157.34065 305.10092,156.89534 L 305.31186,156.61409 C 305.37044,156.57894 305.49935,156.53792 305.69858,156.49104 M 300.53061,155.98128 C 300.61263,154.493 300.65365,153.44417 300.65366,152.83479 C 300.65365,152.51839 300.63607,152.09066 300.60092,151.55159 C 299.81576,151.83285 298.98373,152.26058 298.10483,152.83479 C 297.22592,153.40902 296.52865,154.07113 296.01303,154.82112 C 295.63803,155.36019 295.45053,155.86995 295.45053,156.35042 C 295.45053,156.80745 295.60287,157.18831 295.90756,157.493 C 296.22396,157.79768 296.61654,157.95003 297.0853,157.95003 C 297.44857,157.95003 297.88802,157.82112 298.40366,157.56331 C 299.08334,157.22347 299.79232,156.69612 300.53061,155.98128"
id="text3577" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 367.73376,166.11726 L 360.68494,166.17 L 359.349,166.17 C 358.80993,166.17001 358.25915,166.19344 357.69666,166.24031 C 357.59118,166.59188 357.53845,166.83212 357.53845,166.96101 L 357.55603,167.1368 L 357.55603,167.31258 L 357.53845,168.1739 C 357.53845,168.88875 357.7611,169.76766 358.20642,170.81062 C 358.66345,171.84188 359.30798,172.63289 360.14001,173.18367 C 360.98376,173.72273 362.03258,174.00984 363.2865,174.045 C 363.95446,174.00984 364.48766,173.92781 364.88611,173.7989 C 365.28453,173.67 365.84703,173.37117 366.57361,172.90242 L 367.83923,171.86531 L 367.9447,172.56844 C 367.94469,172.65047 367.93883,172.73836 367.92712,172.83211 C 367.39977,173.50008 366.7318,174.08602 365.92322,174.58992 C 365.11461,175.09383 364.2943,175.46297 363.46228,175.69734 C 363.06383,175.80281 362.40758,175.85554 361.49353,175.85555 C 360.66149,175.85554 359.84118,175.68562 359.03259,175.34578 C 357.83728,174.83015 356.89392,174.00398 356.20251,172.86726 C 355.52283,171.71883 355.18298,170.33016 355.18298,168.70125 C 355.18298,168.18563 355.27673,167.52352 355.46423,166.71492 C 355.66345,165.90634 356.01501,165.04501 356.51892,164.13094 C 356.85876,163.50985 357.27478,163.00009 357.76697,162.60164 C 358.47009,162.03915 359.08532,161.64657 359.61267,161.4239 C 360.37438,161.10751 361.25915,160.94931 362.26697,160.9493 C 363.3568,160.94931 364.24743,161.14853 364.93884,161.54695 C 365.87633,162.07431 366.5736,162.754 367.03064,163.58601 C 367.49938,164.41806 367.73375,165.17977 367.73376,165.87117 L 367.73376,166.11726 M 357.92517,165.48445 L 358.75134,165.48445 C 359.34899,165.48446 361.13024,165.39071 364.09509,165.2032 C 364.56383,165.17977 364.85094,165.1329 364.95642,165.06258 C 365.16735,164.83993 365.27282,164.64071 365.27283,164.46492 C 365.27282,164.10165 365.15563,163.69149 364.92126,163.23445 C 364.68688,162.76571 364.3236,162.40829 363.83142,162.16219 C 363.35094,161.90439 362.78844,161.77548 362.14392,161.77547 C 360.78454,161.77548 359.6947,162.28525 358.87439,163.30476 C 358.24157,164.07821 357.92517,164.80477 357.92517,165.48445"
id="text3581" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 399.04529,202.83879 L 399.04529,202.7509 C 399.04529,202.63374 399.09216,202.46967 399.18591,202.25871 C 400.46325,202.03608 401.82263,201.69624 403.26404,201.23918 C 403.34606,201.22749 403.47497,201.22163 403.65076,201.2216 C 403.70935,201.40913 403.73864,201.53217 403.73865,201.59074 L 403.73865,206.82903 L 403.72107,208.49895 L 403.73865,210.36223 L 403.70349,211.87395 C 403.70349,211.93255 403.7152,212.13177 403.73865,212.4716 L 405.18005,211.92668 C 405.33239,211.87982 405.8363,211.72748 406.69177,211.46965 C 407.78161,211.29388 408.41442,211.20599 408.59021,211.20598 C 409.76207,211.20599 410.81676,211.39349 411.75427,211.76848 C 412.32848,212.00287 412.89684,212.39544 413.45935,212.94621 C 414.02184,213.48529 414.43785,214.0595 414.7074,214.66887 C 415.17613,215.78216 415.41051,216.7431 415.41052,217.55168 C 415.41051,218.82903 415.32847,219.7138 415.16443,220.20598 C 414.76597,221.37786 414.27965,222.30364 413.70544,222.98332 C 413.13121,223.66301 412.32848,224.24309 411.29724,224.72356 C 410.26598,225.20402 409.17028,225.44426 408.01013,225.44426 C 406.94372,225.44426 405.93591,225.24504 404.98669,224.8466 C 404.03747,224.44817 403.50427,224.24895 403.38708,224.24895 C 403.0238,224.24895 402.56091,224.72942 401.99841,225.69035 L 401.48865,225.67278 C 401.44177,224.88762 401.41833,223.92082 401.41833,222.77238 L 401.45349,220.15324 L 401.43591,218.81731 L 401.47107,214.98528 L 401.43591,214.24699 L 401.50623,212.43645 L 401.50623,210.88957 L 401.5238,210.25676 C 401.5238,210.12787 401.51794,209.6181 401.50623,208.72746 L 401.50623,207.67278 C 401.54138,205.63373 401.45349,204.456 401.24255,204.13957 C 400.90271,203.63569 400.17029,203.20209 399.04529,202.83879 M 407.3949,224.47746 C 409.17614,224.47746 410.52965,223.97942 411.45544,222.98332 C 412.39293,221.97551 412.86168,220.48137 412.86169,218.5009 C 412.86168,216.6845 412.33434,215.2138 411.27966,214.08879 C 410.22496,212.9638 408.92418,212.4013 407.37732,212.40129 C 406.25231,212.4013 405.30895,212.58294 404.54724,212.94621 C 404.0902,213.16888 403.83239,213.37396 403.7738,213.56145 C 403.72692,213.74896 403.70349,215.00286 403.70349,217.32317 C 403.70349,220.07708 403.76208,221.6884 403.87927,222.15715 C 404.07849,222.88371 404.44177,223.4052 404.96912,223.7216 C 405.80114,224.22551 406.60973,224.47746 407.3949,224.47746"
id="text3585" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 189.51791,334.61044 C 192.43587,334.68077 193.98861,334.71593 194.17612,334.71591 C 194.19954,334.97374 194.21126,335.1671 194.21127,335.29599 C 194.21126,335.44835 194.19368,335.67686 194.15854,335.98154 C 193.86556,336.02842 193.56673,336.05186 193.26205,336.05185 L 192.59409,336.05185 C 191.14095,336.05186 190.13314,336.1046 189.57065,336.21005 C 189.5472,336.4796 189.53549,336.68467 189.53549,336.82529 C 189.53549,336.88389 189.54134,336.97178 189.55307,337.08896 C 189.61166,338.92881 189.64095,340.04209 189.64096,340.4288 L 189.6058,344.94638 C 189.6058,345.61435 189.71713,346.17099 189.93979,346.6163 C 190.06869,346.87412 190.30892,347.07919 190.66049,347.23154 C 190.88314,347.33701 191.4222,347.44248 192.27768,347.54794 C 192.9222,347.64169 193.35579,347.70615 193.57846,347.7413 C 193.57845,347.9874 193.56087,348.1749 193.52573,348.3038 L 193.27963,348.32138 C 192.71712,348.28622 191.9847,348.25693 191.08237,348.23349 L 189.78159,348.18076 L 185.3519,348.32138 L 184.77182,348.32138 L 184.75424,347.77646 C 184.93002,347.7413 185.05893,347.71201 185.14096,347.68857 C 186.14877,347.50107 186.79916,347.29013 187.09213,347.05576 C 187.20932,346.96201 187.29135,346.79209 187.33823,346.54599 C 187.36166,346.40537 187.37338,345.74912 187.37338,344.57724 C 187.37338,341.2374 187.34408,338.57139 187.28549,336.57919 C 186.9808,336.48545 186.51205,336.42686 185.87924,336.40341 C 185.64486,336.40342 185.27572,336.37999 184.77182,336.3331 L 184.73666,336.13974 C 184.73666,335.99913 184.79526,335.88194 184.91245,335.78818 C 184.95932,335.74132 185.45151,335.49522 186.38901,335.0499 C 186.75229,334.88585 187.0101,334.68077 187.16245,334.43466 C 187.24447,334.30577 187.29135,334.03624 187.30307,333.62607 C 187.31478,333.43858 187.34994,333.11632 187.40854,332.65927 C 187.54916,331.45226 187.66049,330.70812 187.74252,330.42685 C 187.95346,329.64171 188.30502,328.86242 188.79721,328.08896 C 189.30111,327.30382 189.90463,326.61828 190.60776,326.03232 C 191.12337,325.61047 191.70345,325.29406 192.34799,325.0831 C 193.00423,324.87219 193.74837,324.76672 194.58041,324.76669 C 195.69368,324.76672 196.50813,324.94836 197.02377,325.31161 C 197.37532,325.55773 197.5511,325.87414 197.55112,326.26083 C 197.5511,326.58898 197.42806,326.87023 197.18198,327.10458 C 196.93587,327.33898 196.63118,327.45617 196.26791,327.45615 C 195.82259,327.45617 195.34212,327.34484 194.82651,327.12216 C 193.85384,326.73546 193.30306,326.52453 193.17416,326.48935 C 192.9515,326.43078 192.72298,326.40148 192.48862,326.40146 C 191.84408,326.40148 191.25228,326.60656 190.71323,327.01669 C 190.18588,327.42687 189.85189,327.93078 189.71127,328.52841 C 189.57064,329.12609 189.50033,330.46788 189.50034,332.5538 C 189.50033,333.30382 189.50619,333.98936 189.51791,334.61044"
id="text3597" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 243.29524,383.58197 L 243.29524,390.14447 L 244.44368,388.80853 C 244.8968,388.26166 245.31868,387.71478 245.7093,387.16791 C 245.8968,386.88666 246.06868,386.62103 246.22493,386.37103 C 246.34993,386.13666 246.49836,385.86322 246.67024,385.55072 C 246.79524,385.2851 246.92024,384.99603 247.04524,384.68353 C 247.13899,384.49603 247.18586,384.30072 247.18587,384.0976 C 247.18586,383.7851 247.13899,383.4726 247.04524,383.1601 C 246.95149,382.83197 246.8343,382.58197 246.69368,382.4101 C 246.56868,382.2226 246.3968,382.08197 246.17805,381.98822 C 245.9593,381.92572 245.71711,381.87885 245.45149,381.8476 C 244.98274,381.8476 244.50618,382.06635 244.0218,382.50385 C 243.53743,382.92572 243.29524,383.2851 243.29524,383.58197 M 242.09993,392.74603 L 242.09993,366.44916 L 243.29524,366.44916 L 243.29524,381.80072 C 244.54524,380.81635 245.71711,380.32416 246.81087,380.32416 C 247.31086,380.32416 247.78742,380.46479 248.24055,380.74603 C 248.72492,381.05854 249.12336,381.4726 249.43587,381.98822 C 249.73273,382.5351 249.88117,383.08197 249.88118,383.62885 C 249.88117,384.50385 249.49836,385.38666 248.73274,386.27728 C 248.32649,386.76166 247.84992,387.30853 247.30305,387.91791 C 246.75618,388.52728 246.2718,389.01947 245.84993,389.39447 L 242.09993,392.74603"
id="text3553" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 223.7347,368.98041 L 223.7347,368.89252 C 223.73469,368.77535 223.78157,368.61129 223.87532,368.40033 C 225.15266,368.1777 226.51204,367.83785 227.95345,367.3808 C 228.03547,367.3691 228.16438,367.36324 228.34016,367.36322 C 228.39875,367.55074 228.42805,367.67379 228.42805,367.73236 L 228.42805,372.97064 L 228.41048,374.64056 L 228.42805,376.50385 L 228.3929,378.01556 C 228.39289,378.07417 228.40461,378.27339 228.42805,378.61322 L 229.86946,378.0683 C 230.0218,378.02144 230.5257,377.86909 231.38118,377.61127 C 232.47101,377.4355 233.10383,377.34761 233.27962,377.3476 C 234.45148,377.34761 235.50617,377.53511 236.44368,377.9101 C 237.01788,378.14448 237.58624,378.53706 238.14876,379.08783 C 238.71124,379.6269 239.12726,380.20112 239.3968,380.81049 C 239.86554,381.92378 240.09991,382.88471 240.09993,383.6933 C 240.09991,384.97065 240.01788,385.85541 239.85384,386.3476 C 239.45538,387.51947 238.96905,388.44525 238.39485,389.12494 C 237.82062,389.80463 237.01788,390.38471 235.98665,390.86517 C 234.95539,391.34564 233.85968,391.58588 232.69954,391.58588 C 231.63312,391.58588 230.62531,391.38666 229.6761,390.98822 C 228.72688,390.58978 228.19367,390.39056 228.07649,390.39056 C 227.71321,390.39056 227.25032,390.87103 226.68782,391.83197 L 226.17805,391.81439 C 226.13118,391.02924 226.10774,390.06244 226.10774,388.914 L 226.1429,386.29486 L 226.12532,384.95892 L 226.16048,381.12689 L 226.12532,380.38861 L 226.19563,378.57806 L 226.19563,377.03119 L 226.21321,376.39838 C 226.21321,376.26949 226.20735,375.75972 226.19563,374.86908 L 226.19563,373.81439 C 226.23079,371.77535 226.1429,370.59762 225.93196,370.28119 C 225.59211,369.7773 224.85969,369.34371 223.7347,368.98041 M 232.0843,390.61908 C 233.86554,390.61908 235.21906,390.12103 236.14485,389.12494 C 237.08234,388.11713 237.55109,386.62299 237.5511,384.64252 C 237.55109,382.82612 237.02374,381.35542 235.96907,380.23041 C 234.91437,379.10542 233.61359,378.54292 232.06673,378.54291 C 230.94172,378.54292 229.99836,378.72456 229.23665,379.08783 C 228.77961,379.3105 228.5218,379.51558 228.46321,379.70306 C 228.41633,379.89058 228.39289,381.14448 228.3929,383.46478 C 228.39289,386.21869 228.45149,387.83002 228.56868,388.29877 C 228.76789,389.02533 229.13117,389.54682 229.65852,389.86322 C 230.49055,390.36713 231.29914,390.61908 232.0843,390.61908"
id="text3601" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 413.07297,273.06641 C 415.99093,273.13673 417.54366,273.17189 417.73117,273.17188 C 417.7546,273.4297 417.76632,273.62306 417.76633,273.75195 C 417.76632,273.90431 417.74874,274.13283 417.71359,274.4375 C 417.42061,274.48439 417.12179,274.50782 416.81711,274.50781 L 416.14914,274.50781 C 414.69601,274.50782 413.68819,274.56056 413.1257,274.66602 C 413.10226,274.93556 413.09054,275.14064 413.09055,275.28125 C 413.09054,275.33986 413.0964,275.42775 413.10812,275.54492 C 413.16671,277.38477 413.19601,278.49806 413.19601,278.88477 L 413.16086,283.40234 C 413.16085,284.07032 413.27218,284.62696 413.49484,285.07227 C 413.62374,285.33008 413.86398,285.53516 414.21555,285.6875 C 414.43819,285.79297 414.97726,285.89844 415.83273,286.00391 C 416.47725,286.09766 416.91085,286.16211 417.13351,286.19727 C 417.1335,286.44336 417.11593,286.63086 417.08078,286.75977 L 416.83469,286.77734 C 416.27218,286.74219 415.53976,286.71289 414.63742,286.68945 L 413.33664,286.63672 L 408.90695,286.77734 L 408.32687,286.77734 L 408.3093,286.23242 C 408.48508,286.19727 408.61398,286.16797 408.69601,286.14453 C 409.70382,285.95703 410.35421,285.74609 410.64719,285.51172 C 410.76437,285.41797 410.8464,285.24805 410.89328,285.00195 C 410.91671,284.86133 410.92843,284.20508 410.92844,283.0332 C 410.92843,279.69337 410.89914,277.02735 410.84055,275.03516 C 410.53585,274.94142 410.0671,274.88282 409.4343,274.85938 C 409.19992,274.85939 408.83078,274.83595 408.32687,274.78906 L 408.29172,274.5957 C 408.29172,274.45509 408.35031,274.3379 408.4675,274.24414 C 408.51437,274.19728 409.00656,273.95118 409.94406,273.50586 C 410.30734,273.34181 410.56515,273.13673 410.7175,272.89062 C 410.79953,272.76173 410.8464,272.4922 410.85812,272.08203 C 410.86984,271.89455 410.90499,271.57228 410.96359,271.11523 C 411.10421,269.90822 411.21554,269.16408 411.29758,268.88281 C 411.50851,268.09767 411.86007,267.31838 412.35226,266.54492 C 412.85616,265.75979 413.45968,265.07424 414.16281,264.48828 C 414.67843,264.06643 415.25851,263.75002 415.90305,263.53906 C 416.55929,263.32815 417.30343,263.22268 418.13547,263.22266 C 419.24874,263.22268 420.06319,263.40432 420.57883,263.76758 C 420.93038,264.01369 421.10616,264.3301 421.10617,264.7168 C 421.10616,265.04494 420.98311,265.32619 420.73703,265.56055 C 420.49092,265.79494 420.18624,265.91213 419.82297,265.91211 C 419.37764,265.91213 418.89717,265.8008 418.38156,265.57812 C 417.40889,265.19143 416.85811,264.98049 416.72922,264.94531 C 416.50655,264.88674 416.27804,264.85744 416.04367,264.85742 C 415.39913,264.85744 414.80733,265.06252 414.26828,265.47266 C 413.74093,265.88283 413.40695,266.38674 413.26633,266.98438 C 413.1257,267.58205 413.05538,268.92385 413.05539,271.00977 C 413.05538,271.75978 413.06124,272.44533 413.07297,273.06641"
id="text3621" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 429.77805,277.37891 L 429.77805,272.19922 L 427.12961,272.78516 L 427.12961,277.96484 L 429.77805,277.37891 M 432.84836,276.67578 L 432.84836,280.44922 L 430.97336,280.89453 L 430.97336,287.66797 L 429.77805,287.66797 L 429.77805,281.12891 L 427.12961,281.76172 L 427.12961,288.51172 L 425.98117,288.51172 L 425.98117,282.04297 L 424.10617,282.46484 L 424.10617,278.73828 C 425.35617,278.73828 425.98117,278.57422 425.98117,278.24609 L 425.98117,273.06641 L 424.10617,273.53516 L 424.10617,269.90234 L 425.98117,269.41016 L 426.02805,262.49609 L 427.12961,262.49609 L 427.12961,269.12891 L 429.77805,268.54297 L 429.77805,261.48828 L 430.97336,261.48828 L 430.97336,268.26172 L 432.84836,267.83984 L 432.84836,271.47266 L 430.97336,271.91797 L 430.97336,277.09766 L 432.84836,276.67578"
id="text3627" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 352.02771,389.15619 C 351.88708,389.08588 351.43591,388.89252 350.67419,388.57611 C 349.78357,388.00189 349.22107,387.57416 348.98669,387.29291 C 348.75232,387.01166 348.63513,386.70111 348.63513,386.36127 C 348.63513,386.05658 348.72302,385.81049 348.8988,385.62299 C 349.15661,385.35346 349.66638,385.09564 350.4281,384.84955 C 351.18982,384.60346 351.81677,384.36322 352.30896,384.12885 C 352.15661,384.02338 351.91638,383.87104 351.58826,383.67181 C 349.84216,382.59369 348.96911,381.09956 348.96912,379.18939 C 348.96911,377.61909 349.5199,376.29487 350.62146,375.21674 C 351.73474,374.12691 353.15856,373.58198 354.89294,373.58197 C 355.67809,373.58198 356.39879,373.69331 357.05505,373.91595 C 357.43004,374.03316 357.98668,374.32612 358.72498,374.79486 C 359.19371,375.08784 359.4691,375.2519 359.55115,375.28705 C 359.73864,375.34565 359.94957,375.37495 360.18396,375.37494 C 360.38317,375.37495 360.86363,375.32808 361.62537,375.23431 C 362.39879,375.12886 362.85582,375.07612 362.99646,375.07611 C 363.26598,375.07612 363.48863,375.12886 363.66443,375.23431 C 363.80504,375.4687 363.87535,375.86128 363.87537,376.41205 C 363.87535,376.59956 363.82262,376.74018 363.71716,376.83392 C 363.6234,376.92768 363.48277,376.97456 363.29529,376.97455 C 362.96715,376.97456 362.42223,376.87495 361.66052,376.67572 C 360.91051,376.46479 360.45348,376.35933 360.28943,376.35931 C 360.23082,376.35933 360.11949,376.37104 359.95544,376.39447 C 360.45934,377.40229 360.71129,378.32221 360.7113,379.15424 C 360.71129,379.98628 360.44762,380.8476 359.92029,381.73822 C 359.39293,382.62885 358.66637,383.30854 357.7406,383.77728 C 356.81481,384.24604 355.87731,384.48041 354.9281,384.48041 C 354.85778,384.48041 354.65856,384.47455 354.33044,384.46283 C 353.25231,384.46283 352.26208,384.73236 351.35974,385.27142 C 350.92614,385.54096 350.70935,385.79291 350.70935,386.02728 C 350.70935,386.27338 350.92028,386.51361 351.34216,386.74799 C 352.45544,387.34564 354.56481,387.69135 357.67029,387.7851 C 359.01793,387.83197 360.06676,388.02533 360.81677,388.36517 C 361.56676,388.70502 362.12926,389.20306 362.50427,389.85931 C 362.89098,390.52728 363.08433,391.21283 363.08435,391.91595 C 363.08433,392.86517 362.76207,393.74407 362.11755,394.55267 C 361.47301,395.36126 360.49449,396.01751 359.18201,396.52142 C 357.8695,397.02532 356.36364,397.27727 354.66443,397.27728 C 352.78942,397.27727 351.34216,397.04876 350.32263,396.59174 C 349.3031,396.1347 348.57654,395.63665 348.14294,395.0976 C 347.72107,394.55853 347.51013,394.02532 347.51013,393.49799 C 347.51013,393.04095 347.74451,392.46673 348.21326,391.77533 C 348.68201,391.09564 349.65466,390.3808 351.13123,389.6308 C 351.56482,389.40814 351.86364,389.24994 352.02771,389.15619 M 351.32458,379.11908 C 351.32458,380.17377 351.48278,381.05854 351.79919,381.77338 C 352.1156,382.47651 352.54919,383.00385 353.09998,383.35541 C 353.65075,383.69526 354.20739,383.86518 354.7699,383.86517 C 355.78942,383.86518 356.63317,383.47846 357.30115,382.70502 C 357.98082,381.91987 358.32067,380.73041 358.32068,379.13666 C 358.32067,377.5312 357.96911,376.31245 357.26599,375.48041 C 356.56286,374.63667 355.71325,374.2148 354.71716,374.21478 C 353.60388,374.2148 352.76013,374.61323 352.18591,375.4101 C 351.61169,376.20698 351.32458,377.44331 351.32458,379.11908 M 350.74451,395.39642 C 351.81091,396.21673 353.15856,396.62688 354.78748,396.62689 C 355.94762,396.62688 357.10192,396.43938 358.25037,396.06439 C 359.41051,395.7011 360.25426,395.17376 360.78162,394.48236 C 361.32066,393.80267 361.5902,393.15814 361.59021,392.54877 C 361.5902,392.17376 361.49645,391.79876 361.30896,391.42377 C 361.12145,391.06048 360.86363,390.7558 360.53552,390.5097 C 360.2191,390.27533 359.79723,390.08783 359.2699,389.9472 C 358.89489,389.84173 358.36168,389.76556 357.67029,389.71869 C 355.70153,389.56634 354.4945,389.49017 354.04919,389.49017 C 352.79528,389.49017 351.67614,389.91205 350.69177,390.7558 C 349.93005,391.41204 349.54919,392.1972 349.54919,393.11127 C 349.54919,393.95501 349.94763,394.71673 350.74451,395.39642"
id="text3613" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 372.54724,377.80853 L 372.54724,372.62885 L 369.8988,373.21478 L 369.8988,378.39447 L 372.54724,377.80853 M 375.61755,377.10541 L 375.61755,380.87885 L 373.74255,381.32416 L 373.74255,388.0976 L 372.54724,388.0976 L 372.54724,381.55853 L 369.8988,382.19135 L 369.8988,388.94135 L 368.75037,388.94135 L 368.75037,382.4726 L 366.87537,382.89447 L 366.87537,379.16791 C 368.12536,379.1679 368.75036,379.00384 368.75037,378.67572 L 368.75037,373.49603 L 366.87537,373.96478 L 366.87537,370.33197 L 368.75037,369.83978 L 368.79724,362.92572 L 369.8988,362.92572 L 369.8988,369.55853 L 372.54724,368.9726 L 372.54724,361.91791 L 373.74255,361.91791 L 373.74255,368.69135 L 375.61755,368.26947 L 375.61755,371.90228 L 373.74255,372.3476 L 373.74255,377.52728 L 375.61755,377.10541"
id="text3641" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 311.38254,399.34573 L 311.40012,398.83597 L 311.38254,396.77933 L 311.40012,392.89456 C 311.4001,391.81646 311.28292,391.13091 311.04855,390.83792 C 310.81417,390.54497 310.12862,390.24615 308.99191,389.94144 C 308.90987,389.91802 308.78097,389.88287 308.60519,389.83597 L 308.60519,389.64261 C 308.60518,389.52544 308.6169,389.39654 308.64035,389.25589 C 310.23409,389.09185 311.60518,388.81646 312.75363,388.42972 L 313.65012,388.41214 C 313.69698,389.20904 313.72041,390.09966 313.72043,391.08401 L 313.65012,397.85159 L 313.77316,405.4805 L 313.72043,409.54105 C 313.72041,410.37308 313.77901,410.84183 313.89621,410.9473 C 314.13057,411.18167 314.64619,411.30472 315.44308,411.31644 C 315.60713,411.31644 315.82979,411.32816 316.11105,411.35159 L 316.11105,411.668 C 316.11104,411.75003 316.10518,411.83792 316.09348,411.93167 C 315.73018,412.0137 315.35518,412.08987 314.96848,412.16019 L 312.41965,412.65237 C 312.04463,412.72269 311.74581,412.75784 311.52316,412.75784 L 311.52316,411.07034 C 311.32393,411.12894 311.01338,411.24613 310.59152,411.42191 C 308.76339,412.19534 307.08175,412.58206 305.5466,412.58206 C 304.62081,412.58206 303.67745,412.28323 302.71652,411.68558 C 301.75558,411.0762 301.0173,410.23245 300.50168,409.15433 C 299.98605,408.07621 299.72824,406.97465 299.72824,405.84964 C 299.72824,404.84183 299.89816,403.8809 300.23801,402.96683 C 300.57785,402.04106 301.02316,401.27348 301.57394,400.66409 C 301.9255,400.26567 302.42355,399.87309 303.06808,399.48636 C 303.71261,399.08793 304.24581,398.83598 304.66769,398.7305 C 305.71066,398.46098 306.40792,398.32622 306.75949,398.3262 C 308.34151,398.32622 309.64229,398.56059 310.66183,399.02933 C 310.97823,399.18168 311.21846,399.28715 311.38254,399.34573 M 311.40012,410.20901 C 311.44698,409.42386 311.47042,407.80668 311.47043,405.35745 C 311.47042,403.28324 311.37081,401.9766 311.1716,401.43753 C 310.98409,400.88676 310.50362,400.37114 309.73019,399.89066 C 308.95675,399.39848 308.08956,399.15239 307.12863,399.15237 C 305.78097,399.15239 304.63839,399.67387 303.7009,400.71683 C 302.76339,401.75981 302.29464,403.30082 302.29465,405.33987 C 302.29464,407.13285 302.79855,408.56253 303.80637,409.62894 C 304.82589,410.69534 306.09151,411.22855 307.60324,411.22855 C 308.47042,411.22855 309.26143,411.11136 309.97629,410.87698 C 310.69112,410.64261 311.16573,410.41995 311.40012,410.20901"
id="text3609" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 323.78293,403.32104 L 323.78293,398.14136 L 321.13449,398.72729 L 321.13449,403.90698 L 323.78293,403.32104 M 326.85324,402.61792 L 326.85324,406.39136 L 324.97824,406.83667 L 324.97824,413.61011 L 323.78293,413.61011 L 323.78293,407.07104 L 321.13449,407.70386 L 321.13449,414.45386 L 319.98605,414.45386 L 319.98605,407.98511 L 318.11105,408.40698 L 318.11105,404.68042 C 319.36105,404.68042 319.98605,404.51635 319.98605,404.18823 L 319.98605,399.00854 L 318.11105,399.47729 L 318.11105,395.84448 L 319.98605,395.35229 L 320.03293,388.43823 L 321.13449,388.43823 L 321.13449,395.07104 L 323.78293,394.48511 L 323.78293,387.43042 L 324.97824,387.43042 L 324.97824,394.20386 L 326.85324,393.78198 L 326.85324,397.41479 L 324.97824,397.86011 L 324.97824,403.03979 L 326.85324,402.61792"
id="text3645" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 284.06934,396.0603 L 277.02051,396.11304 L 275.68457,396.11304 C 275.1455,396.11305 274.59472,396.13648 274.03223,396.18335 C 273.92675,396.53492 273.87402,396.77516 273.87402,396.90405 L 273.8916,397.07983 L 273.8916,397.25562 L 273.87402,398.11694 C 273.87402,398.83179 274.09668,399.7107 274.54199,400.75366 C 274.99902,401.78492 275.64355,402.57593 276.47559,403.12671 C 277.31933,403.66577 278.36816,403.95288 279.62207,403.98804 C 280.29003,403.95288 280.82323,403.87085 281.22168,403.74194 C 281.62011,403.61304 282.18261,403.31421 282.90918,402.84546 L 284.1748,401.80835 L 284.28027,402.51147 C 284.28026,402.59351 284.2744,402.6814 284.2627,402.77515 C 283.73534,403.44312 283.06737,404.02905 282.25879,404.53296 C 281.45018,405.03687 280.62987,405.40601 279.79785,405.64038 C 279.3994,405.74585 278.74316,405.79858 277.8291,405.79858 C 276.99706,405.79858 276.17675,405.62866 275.36816,405.28882 C 274.17285,404.77319 273.22949,403.94702 272.53809,402.8103 C 271.8584,401.66187 271.51855,400.2732 271.51855,398.64429 C 271.51855,398.12867 271.6123,397.46656 271.7998,396.65796 C 271.99902,395.84937 272.35058,394.98805 272.85449,394.07397 C 273.19433,393.45289 273.61035,392.94313 274.10254,392.54468 C 274.80566,391.98219 275.42089,391.58961 275.94824,391.36694 C 276.70995,391.05055 277.59472,390.89235 278.60254,390.89233 C 279.69237,390.89235 280.583,391.09157 281.27441,391.48999 C 282.2119,392.01735 282.90917,392.69703 283.36621,393.52905 C 283.83495,394.36109 284.06932,395.12281 284.06934,395.81421 L 284.06934,396.0603 M 274.26074,395.42749 L 275.08691,395.42749 C 275.68456,395.4275 277.46581,395.33375 280.43066,395.14624 C 280.8994,395.12281 281.18651,395.07594 281.29199,395.00562 C 281.50292,394.78297 281.60839,394.58375 281.6084,394.40796 C 281.60839,394.04469 281.4912,393.63453 281.25684,393.17749 C 281.02245,392.70875 280.65917,392.35133 280.16699,392.10522 C 279.68651,391.84743 279.12401,391.71852 278.47949,391.71851 C 277.12011,391.71852 276.03027,392.22828 275.20996,393.2478 C 274.57714,394.02125 274.26074,394.74781 274.26074,395.42749"
id="text3605" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 287.47559,398.8551 L 287.47559,405.4176 L 288.62402,404.08167 C 289.07715,403.53479 289.49902,402.98791 289.88965,402.44104 C 290.07714,402.15979 290.24902,401.89416 290.40527,401.64417 C 290.53027,401.40979 290.67871,401.13635 290.85059,400.82385 C 290.97558,400.55823 291.10058,400.26917 291.22559,399.95667 C 291.31933,399.76917 291.36621,399.57385 291.36621,399.37073 C 291.36621,399.05823 291.31933,398.74573 291.22559,398.43323 C 291.13183,398.10511 291.01464,397.85511 290.87402,397.68323 C 290.74902,397.49573 290.57714,397.35511 290.3584,397.26135 C 290.13964,397.19886 289.89746,397.15198 289.63184,397.12073 C 289.16308,397.12073 288.68652,397.33948 288.20215,397.77698 C 287.71777,398.19886 287.47558,398.55823 287.47559,398.8551 M 286.28027,408.01917 L 286.28027,381.72229 L 287.47559,381.72229 L 287.47559,397.07385 C 288.72558,396.08948 289.89746,395.5973 290.99121,395.59729 C 291.49121,395.5973 291.96777,395.73792 292.4209,396.01917 C 292.90527,396.33167 293.3037,396.74573 293.61621,397.26135 C 293.91308,397.80823 294.06152,398.35511 294.06152,398.90198 C 294.06152,399.77698 293.6787,400.65979 292.91309,401.55042 C 292.50683,402.03479 292.03027,402.58166 291.4834,403.19104 C 290.93652,403.80041 290.45214,404.2926 290.03027,404.6676 L 286.28027,408.01917"
id="text3719" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 302.85764,383.48944 L 304.40451,383.48944 L 292.01193,413.42499 L 290.48264,413.42499 L 302.85764,383.48944"
id="text3735" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 407.50635,344.29404 L 407.52393,345.43661 C 406.60985,346.40927 405.70751,347.08896 404.81689,347.47568 C 403.92626,347.8624 402.87743,348.05576 401.67041,348.05576 C 400.3579,348.05576 399.17431,347.71591 398.11963,347.03622 C 397.06494,346.34482 396.25049,345.37216 395.67627,344.11826 C 395.11377,342.86435 394.83252,341.63389 394.83252,340.42685 C 394.83252,339.10264 395.17236,337.85459 395.85205,336.68271 C 396.54345,335.49913 397.45166,334.62022 398.57666,334.04599 C 399.71337,333.46007 401.1372,333.1671 402.84814,333.16708 C 404.48876,333.1671 405.7368,333.44835 406.59229,334.01083 C 407.07274,334.33897 407.31297,334.76085 407.31299,335.27646 C 407.31297,335.65147 407.18993,335.96202 406.94385,336.2081 C 406.69774,336.4542 406.38133,336.57725 405.99463,336.57724 C 405.40868,336.57725 404.76415,336.21397 404.06104,335.4874 C 403.62743,335.0421 403.23485,334.73741 402.8833,334.57333 C 402.53173,334.39757 402.13915,334.30968 401.70557,334.30966 C 400.66259,334.30968 399.7954,334.73741 399.104,335.59286 C 398.14306,336.81163 397.66259,338.34092 397.6626,340.18076 C 397.66259,342.0792 398.15478,343.59092 399.13916,344.71591 C 400.12353,345.84091 401.27196,346.40341 402.58447,346.40341 C 403.49853,346.40341 404.30712,346.25693 405.01025,345.96396 C 405.72509,345.65927 406.55712,345.10263 407.50635,344.29404"
id="text3617" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#1a571a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 416.55295,338.92294 L 416.55295,333.74326 L 413.90451,334.32919 L 413.90451,339.50888 L 416.55295,338.92294 M 419.62326,338.21982 L 419.62326,341.99326 L 417.74826,342.43857 L 417.74826,349.21201 L 416.55295,349.21201 L 416.55295,342.67294 L 413.90451,343.30576 L 413.90451,350.05576 L 412.75607,350.05576 L 412.75607,343.58701 L 410.88107,344.00888 L 410.88107,340.28232 C 412.13107,340.28231 412.75607,340.11825 412.75607,339.79013 L 412.75607,334.61044 L 410.88107,335.07919 L 410.88107,331.44638 L 412.75607,330.95419 L 412.80295,324.04013 L 413.90451,324.04013 L 413.90451,330.67294 L 416.55295,330.08701 L 416.55295,323.03232 L 417.74826,323.03232 L 417.74826,329.80576 L 419.62326,329.38388 L 419.62326,333.01669 L 417.74826,333.46201 L 417.74826,338.64169 L 419.62326,338.21982"
id="text3637" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="numbers"
style="display:inline"
sodipodi:insensitive="true">
<g
id="g3842"
style="opacity:1;fill:#ffffff;fill-opacity:0.88085178;stroke:none;filter:url(#filter3996)">
<path
transform="matrix(0.86328,0,0,0.86328,81.0873,44.6071)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path3841"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,-79.868,44.6071)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path3856"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,0.609704,23.1552)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path3904"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,-138.782,103.216)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path3966"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,-138.782,263.337)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path3994"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,-160.346,183.512)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path4046"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,140.001,103.216)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path4092"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,157.215,186.134)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path4106"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(0.86328,0,0,0.86328,140.001,263.337)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path4120"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:1.15837002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(1.7817,0,0,0.86328,-398.035,321.946)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path4008"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:0.806319;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(1.7817,0,0,0.86328,-317.068,343.398)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path4198"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:0.806319;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
<path
transform="matrix(1.7817,0,0,0.86328,-237.08,321.946)"
sodipodi:open="true"
sodipodi:end="7.5767256"
sodipodi:start="1.3046667"
d="M 351.92336,126.40735 A 20.892857,20.892857 0 1 1 352.1473,126.34496"
sodipodi:ry="20.892857"
sodipodi:rx="20.892857"
sodipodi:cy="106.25"
sodipodi:cx="346.42856"
id="path4222"
style="fill:#ffffff;fill-opacity:0.88085178;fill-rule:nonzero;stroke:none;stroke-width:0.806319;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
sodipodi:type="arc" />
</g>
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 390.30072,137.81105 L 390.30072,133.92628 L 388.31439,134.36574 L 388.31439,138.2505 L 390.30072,137.81105 M 392.60345,137.28371 L 392.60345,140.11378 L 391.1972,140.44777 L 391.1972,145.52785 L 390.30072,145.52785 L 390.30072,140.62355 L 388.31439,141.09816 L 388.31439,146.16066 L 387.45306,146.16066 L 387.45306,141.3091 L 386.04681,141.6255 L 386.04681,138.83058 C 386.98431,138.83058 387.45306,138.70753 387.45306,138.46144 L 387.45306,134.57668 L 386.04681,134.92824 L 386.04681,132.20363 L 387.45306,131.83449 L 387.48822,126.64894 L 388.31439,126.64894 L 388.31439,131.62355 L 390.30072,131.1841 L 390.30072,125.89308 L 391.1972,125.89308 L 391.1972,130.97316 L 392.60345,130.65675 L 392.60345,133.38136 L 391.1972,133.71535 L 391.1972,137.60011 L 392.60345,137.28371"
id="text3806" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 380.04959,145.18994 L 373.78787,145.18994 C 373.77875,145.10791 373.7742,145.03955 373.7742,144.98486 C 373.7742,144.82992 373.8061,144.7251 373.8699,144.67041 C 373.9337,144.60661 374.13422,144.54281 374.47147,144.479 C 375.00011,144.36963 375.42849,144.23747 375.75662,144.08252 C 375.84776,143.882 375.89334,143.69515 375.89334,143.52197 L 375.89334,142.67432 C 375.89334,142.57406 375.90701,142.11377 375.93436,141.29346 C 375.94347,140.98357 375.95258,139.64372 375.9617,137.27393 L 375.98904,134.06104 L 375.9617,132.18799 C 375.96169,131.91456 375.97081,131.05324 375.98904,129.604 C 373.92003,131.08058 372.78527,131.81886 372.58475,131.81885 C 372.51183,131.81886 372.43435,131.7824 372.35233,131.70947 C 372.27029,131.62745 372.22928,131.54998 372.22928,131.47705 C 372.22928,131.38592 372.26118,131.313 372.32498,131.2583 C 372.45258,131.13983 372.75792,130.94386 373.241,130.67041 C 373.31391,130.63397 373.62836,130.38787 374.18436,129.93213 C 375.06847,129.19386 375.7156,128.61509 376.12576,128.1958 C 376.53591,127.77655 376.78656,127.53957 376.87772,127.48486 C 377.06,127.47577 377.20128,127.47121 377.30154,127.47119 C 377.53852,127.47121 377.68435,127.51222 377.73904,127.59424 C 377.80284,127.66717 377.83474,127.94517 377.83475,128.42822 L 377.73904,140.60986 L 377.73904,141.81299 C 377.73904,142.10466 377.73448,142.40088 377.72537,142.70166 C 377.71625,142.99333 377.71169,143.20752 377.7117,143.34424 C 377.71169,143.67236 377.75271,143.88656 377.83475,143.98682 C 377.88943,144.05062 378.05805,144.13265 378.34061,144.23291 L 379.27029,144.42432 C 379.67133,144.52458 379.89008,144.59294 379.92654,144.62939 C 380.01768,144.71143 380.06325,144.83903 380.06326,145.01221 L 380.04959,145.18994"
id="text3843" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 227.59517,139.36407 L 227.59517,144.28595 L 228.4565,143.284 C 228.79634,142.87384 229.11274,142.46368 229.40572,142.05353 C 229.54634,141.84259 229.67524,141.64337 229.79243,141.45587 C 229.88618,141.28009 229.99751,141.07501 230.12642,140.84064 C 230.22017,140.64142 230.31392,140.42462 230.40767,140.19025 C 230.47798,140.04962 230.51313,139.90314 230.51314,139.75079 C 230.51313,139.51642 230.47798,139.28205 230.40767,139.04767 C 230.33735,138.80158 230.24946,138.61408 230.144,138.48517 C 230.05024,138.34455 229.92134,138.23908 229.75728,138.16876 C 229.59321,138.12189 229.41157,138.08673 229.21236,138.06329 C 228.86079,138.0633 228.50337,138.22736 228.14009,138.55548 C 227.77681,138.87189 227.59517,139.14142 227.59517,139.36407 M 226.69868,146.23712 L 226.69868,126.51447 L 227.59517,126.51447 L 227.59517,138.02814 C 228.53267,137.28986 229.41157,136.92072 230.23189,136.92072 C 230.60688,136.92072 230.96431,137.02619 231.30415,137.23712 C 231.66743,137.4715 231.96626,137.78205 232.20064,138.16876 C 232.42329,138.57892 232.53462,138.98908 232.53462,139.39923 C 232.53462,140.05548 232.24751,140.71759 231.67329,141.38556 C 231.3686,141.74884 231.01118,142.159 230.60103,142.61603 C 230.19087,143.07306 229.82759,143.4422 229.51118,143.72345 L 226.69868,146.23712"
id="text3858" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 218.61781,145.18994 L 212.35609,145.18994 C 212.34698,145.10791 212.34242,145.03955 212.34242,144.98486 C 212.34242,144.82992 212.37432,144.7251 212.43813,144.67041 C 212.50192,144.60661 212.70244,144.54281 213.03969,144.479 C 213.56833,144.36963 213.99671,144.23747 214.32484,144.08252 C 214.41598,143.882 214.46156,143.69515 214.46156,143.52197 L 214.46156,142.67432 C 214.46156,142.57406 214.47523,142.11377 214.50258,141.29346 C 214.51169,140.98357 214.5208,139.64372 214.52992,137.27393 L 214.55727,134.06104 L 214.52992,132.18799 C 214.52992,131.91456 214.53903,131.05324 214.55727,129.604 C 212.48825,131.08058 211.35349,131.81886 211.15297,131.81885 C 211.08005,131.81886 211.00258,131.7824 210.92055,131.70947 C 210.83851,131.62745 210.7975,131.54998 210.7975,131.47705 C 210.7975,131.38592 210.8294,131.313 210.8932,131.2583 C 211.02081,131.13983 211.32614,130.94386 211.80922,130.67041 C 211.88213,130.63397 212.19659,130.38787 212.75258,129.93213 C 213.63669,129.19386 214.28382,128.61509 214.69398,128.1958 C 215.10413,127.77655 215.35479,127.53957 215.44594,127.48486 C 215.62822,127.47577 215.7695,127.47121 215.86977,127.47119 C 216.10674,127.47121 216.25257,127.51222 216.30727,127.59424 C 216.37106,127.66717 216.40296,127.94517 216.40297,128.42822 L 216.30727,140.60986 L 216.30727,141.81299 C 216.30726,142.10466 216.3027,142.40088 216.29359,142.70166 C 216.28447,142.99333 216.27991,143.20752 216.27992,143.34424 C 216.27991,143.67236 216.32093,143.88656 216.40297,143.98682 C 216.45765,144.05062 216.62627,144.13265 216.90883,144.23291 L 217.83852,144.42432 C 218.23955,144.52458 218.4583,144.59294 218.49477,144.62939 C 218.5859,144.71143 218.63148,144.83903 218.63148,145.01221 L 218.61781,145.18994"
id="text3867" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 298.15457,113.19114 L 298.15457,117.322 L 301.33621,116.46067 L 301.33621,112.5759 L 298.15457,113.19114 M 297.08231,120.20481 L 297.08231,104.5427 L 297.97879,104.5427 L 297.97879,110.62473 L 302.26785,109.55247 L 302.26785,125.21458 L 301.40652,125.21458 L 301.40652,119.13255 L 297.08231,120.20481"
id="text3906" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 168.68118,197.97282 L 168.68118,202.8947 L 169.54251,201.89275 C 169.88235,201.48259 170.19876,201.07243 170.49173,200.66228 C 170.63235,200.45134 170.76126,200.25212 170.87845,200.06462 C 170.9722,199.88884 171.08352,199.68376 171.21243,199.44939 C 171.30618,199.25017 171.39993,199.03337 171.49368,198.799 C 171.56399,198.65837 171.59915,198.51189 171.59915,198.35954 C 171.59915,198.12517 171.56399,197.89079 171.49368,197.65642 C 171.42337,197.41033 171.33548,197.22283 171.23001,197.09392 C 171.13626,196.9533 171.00735,196.84783 170.84329,196.77751 C 170.67923,196.73064 170.49759,196.69548 170.29837,196.67204 C 169.94681,196.67205 169.58938,196.83611 169.2261,197.16423 C 168.86282,197.48064 168.68118,197.75017 168.68118,197.97282 M 167.7847,204.84587 L 167.7847,185.12321 L 168.68118,185.12321 L 168.68118,196.63689 C 169.61868,195.89861 170.49759,195.52947 171.3179,195.52946 C 171.6929,195.52947 172.05032,195.63494 172.39017,195.84587 C 172.75344,196.08025 173.05227,196.3908 173.28665,196.77751 C 173.5093,197.18767 173.62063,197.59783 173.62064,198.00798 C 173.62063,198.66423 173.33352,199.32634 172.75931,199.99431 C 172.45462,200.35759 172.09719,200.76774 171.68704,201.22478 C 171.27688,201.68181 170.9136,202.05095 170.5972,202.3322 L 167.7847,204.84587"
id="text3968" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 161.71359,203.79869 C 160.34639,203.744 158.51437,203.71666 156.2175,203.71666 L 153.2507,203.79869 L 151.92453,203.75768 L 150.8718,203.79869 C 150.76242,203.78958 150.60291,203.76679 150.39328,203.73033 C 150.55734,203.34752 150.76698,202.99661 151.02219,202.6776 C 151.77869,201.74791 152.88612,200.54935 154.34445,199.08189 C 156.38611,197.03112 157.73051,195.4224 158.37766,194.25572 C 159.02478,193.07995 159.34835,191.97709 159.34836,190.94713 C 159.34835,189.981 159.02022,189.1698 158.36398,188.51353 C 157.70773,187.8573 156.90109,187.52918 155.94406,187.52916 C 155.36984,187.52918 154.81385,187.66589 154.27609,187.93932 C 153.73833,188.20365 153.30539,188.54089 152.97726,188.95103 C 152.76763,189.21537 152.48963,189.74402 152.14328,190.53697 C 151.95187,190.97448 151.83794,191.21146 151.80148,191.24791 C 151.74679,191.31172 151.68299,191.34363 151.61008,191.34361 C 151.53716,191.34363 151.46424,191.30717 151.39133,191.23424 C 151.32752,191.15222 151.29562,191.05196 151.29562,190.93346 C 151.29562,190.52331 151.5007,189.86706 151.91086,188.96471 C 152.33013,188.06238 152.9408,187.356 153.74289,186.84557 C 154.55408,186.33517 155.49288,186.07996 156.5593,186.07994 C 157.95382,186.07996 159.11593,186.53569 160.04562,187.44713 C 160.98441,188.34949 161.45382,189.42956 161.45383,190.68736 C 161.45382,191.68086 161.13481,192.69258 160.4968,193.72252 C 159.85876,194.74336 158.39132,196.31107 156.09445,198.42564 C 155.33794,199.11836 154.80018,199.62877 154.48117,199.95689 C 154.16216,200.28502 153.51958,200.99596 152.55344,202.08971 C 153.94796,202.1444 155.21489,202.17174 156.35422,202.17174 C 156.6003,202.17174 156.86918,202.16262 157.16086,202.14439 C 157.69861,202.12617 158.01306,202.11705 158.10422,202.11705 L 160.00461,202.15807 C 160.21423,202.15807 160.42843,202.05781 160.64719,201.85728 C 160.86593,201.65677 161.16215,201.09166 161.53586,200.16197 L 161.86398,200.1483 C 161.90954,200.1483 161.9779,200.15286 162.06906,200.16197 C 162.11462,200.25312 162.13741,200.32148 162.13742,200.36705 L 162.11008,200.47643 C 162.03715,200.74075 161.97335,201.22382 161.91867,201.92564 C 161.8822,202.3358 161.81384,202.96015 161.71359,203.79869"
id="text3972" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 168.68118,358.09421 L 168.68118,363.01608 L 169.54251,362.01413 C 169.88235,361.60397 170.19876,361.19382 170.49173,360.78366 C 170.63235,360.57272 170.76126,360.3735 170.87845,360.186 C 170.9722,360.01022 171.08352,359.80515 171.21243,359.57077 C 171.30618,359.37155 171.39993,359.15476 171.49368,358.92038 C 171.56399,358.77976 171.59915,358.63327 171.59915,358.48093 C 171.59915,358.24655 171.56399,358.01218 171.49368,357.7778 C 171.42337,357.53171 171.33548,357.34421 171.23001,357.2153 C 171.13626,357.07468 171.00735,356.96921 170.84329,356.8989 C 170.67923,356.85202 170.49759,356.81687 170.29837,356.79343 C 169.94681,356.79343 169.58938,356.95749 169.2261,357.28561 C 168.86282,357.60202 168.68118,357.87155 168.68118,358.09421 M 167.7847,364.96725 L 167.7847,345.2446 L 168.68118,345.2446 L 168.68118,356.75827 C 169.61868,356.01999 170.49759,355.65085 171.3179,355.65085 C 171.6929,355.65085 172.05032,355.75632 172.39017,355.96725 C 172.75344,356.20163 173.05227,356.51218 173.28665,356.8989 C 173.5093,357.30905 173.62063,357.71921 173.62064,358.12936 C 173.62063,358.78561 173.33352,359.44772 172.75931,360.11569 C 172.45462,360.47897 172.09719,360.88913 171.68704,361.34616 C 171.27688,361.80319 170.9136,362.17233 170.5972,362.45358 L 167.7847,364.96725"
id="text3996" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 158.95189,346.11926 L 159.5808,346.11926 C 159.57167,346.40183 159.56711,346.57045 159.56712,346.62512 L 159.60814,348.63489 L 159.52611,350.43958 L 159.5808,352.44934 L 159.5808,354.03528 L 159.60814,356.19543 C 159.60813,356.53268 159.59901,357.0431 159.5808,357.72668 L 159.8679,357.74036 L 160.83861,357.74036 L 161.7683,357.75403 L 162.53392,357.72668 C 162.55214,358.00924 162.56125,358.21888 162.56126,358.35559 C 162.56125,358.49232 162.55214,358.70195 162.53392,358.9845 C 161.9688,359.01185 161.66347,359.02552 161.6179,359.02551 L 160.93431,359.01184 L 160.38744,359.01184 C 160.24159,359.01185 159.97271,359.00273 159.5808,358.9845 C 159.56256,360.27877 159.56256,361.99687 159.5808,364.13879 C 159.5261,364.19348 159.46685,364.22994 159.40306,364.24817 L 158.5554,364.27551 C 158.3731,364.27551 158.09511,364.2664 157.72142,364.24817 C 157.74876,363.17265 157.76243,362.40247 157.76244,361.93762 C 157.76243,361.52747 157.75331,361.15377 157.73509,360.81653 C 157.70774,360.19674 157.69407,359.84127 157.69408,359.75012 C 157.69407,359.58606 157.70318,359.33086 157.72142,358.9845 C 157.3386,359.03007 157.04238,359.05286 156.83275,359.05286 C 156.72337,359.05286 156.60032,359.0483 156.46361,359.03918 C 155.54303,358.99362 155.0235,358.97083 154.90501,358.97083 C 154.78652,358.97083 154.49485,359.00273 154.03001,359.06653 L 152.62181,358.9845 L 151.85619,359.02551 L 151.33665,358.94348 L 150.6804,359.0802 L 150.55736,358.9845 C 150.53913,358.78398 150.53001,358.63359 150.53001,358.53333 C 150.53001,358.43307 150.53913,358.28268 150.55736,358.08215 C 150.81257,357.74492 151.28197,357.06133 151.96556,356.03137 L 154.63158,352.16223 C 155.28782,351.18698 155.83925,350.41224 156.28587,349.83801 C 156.73248,349.26381 157.17454,348.64857 157.61205,347.99231 C 158.04954,347.32696 158.49615,346.70261 158.95189,346.11926 M 157.72142,357.72668 L 157.73509,355.4845 L 157.72142,353.70715 L 157.72142,349.12708 C 156.97402,350.11146 155.93496,351.6017 154.60423,353.59778 C 153.08209,355.87643 152.17975,357.25273 151.8972,357.72668 C 152.29824,357.70846 152.59902,357.69935 152.79955,357.69934 L 156.54564,357.75403 C 156.81907,357.75403 157.211,357.74492 157.72142,357.72668"
id="text4000" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 147.11752,278.26947 L 147.11752,283.19135 L 147.97885,282.18939 C 148.31869,281.77923 148.6351,281.36908 148.92807,280.95892 C 149.06869,280.74798 149.1976,280.54877 149.31479,280.36127 C 149.40854,280.18549 149.51986,279.98041 149.64877,279.74603 C 149.74252,279.54681 149.83627,279.33002 149.93002,279.09564 C 150.00033,278.95502 150.03549,278.80853 150.03549,278.65619 C 150.03549,278.42182 150.00033,278.18744 149.93002,277.95306 C 149.85971,277.70697 149.77182,277.51947 149.66635,277.39056 C 149.5726,277.24994 149.44369,277.14447 149.27963,277.07416 C 149.11557,277.02729 148.93393,276.99213 148.73471,276.96869 C 148.38315,276.96869 148.02572,277.13275 147.66245,277.46088 C 147.29916,277.77728 147.11752,278.04682 147.11752,278.26947 M 146.22104,285.14252 L 146.22104,265.41986 L 147.11752,265.41986 L 147.11752,276.93353 C 148.05502,276.19526 148.93393,275.82611 149.75424,275.82611 C 150.12924,275.82611 150.48666,275.93158 150.82651,276.14252 C 151.18978,276.3769 151.48861,276.68744 151.72299,277.07416 C 151.94564,277.48432 152.05697,277.89447 152.05698,278.30463 C 152.05697,278.96088 151.76986,279.62299 151.19565,280.29095 C 150.89096,280.65424 150.53353,281.06439 150.12338,281.52142 C 149.71322,281.97845 149.34994,282.34759 149.03354,282.62885 L 146.22104,285.14252"
id="text4048" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 130.55228,270.34143 L 130.1011,270.09534 C 130.67532,268.70082 131.35891,267.721 132.15189,267.15588 C 132.94485,266.58168 133.86998,266.29457 134.92728,266.29456 C 135.91164,266.29457 136.70005,266.51332 137.29251,266.95081 C 138.17662,267.60707 138.61867,268.34535 138.61868,269.16565 C 138.61867,269.83103 138.39081,270.50095 137.93509,271.17542 C 137.48847,271.84991 136.70005,272.60642 135.56985,273.44495 L 135.89798,273.43127 C 136.60891,273.43129 137.2925,273.61358 137.94876,273.97815 C 138.61412,274.33363 139.1382,274.89417 139.52103,275.65979 C 139.90383,276.41631 140.09523,277.23206 140.09525,278.10706 C 140.09523,279.86617 139.4481,281.37464 138.15384,282.63245 C 136.86867,283.88114 135.22805,284.50549 133.23196,284.50549 C 131.71894,284.50549 130.6024,284.28674 129.88235,283.84924 C 129.49043,283.62138 129.29446,283.33427 129.29446,282.98792 C 129.29446,282.79651 129.37194,282.62333 129.52689,282.46838 C 129.69095,282.31344 129.89147,282.23596 130.12845,282.23596 C 130.42923,282.23596 130.79381,282.40003 131.2222,282.72815 C 132.23391,283.50289 133.11347,283.89026 133.86087,283.89026 C 134.99107,283.89026 135.99368,283.4163 136.86868,282.46838 C 137.74367,281.51136 138.18117,280.30823 138.18118,278.85901 C 138.18117,277.65589 137.88495,276.67152 137.29251,275.90588 C 136.70917,275.13115 135.96633,274.74378 135.064,274.74377 C 134.38951,274.74378 133.68769,275.06279 132.95853,275.70081 L 132.6304,275.15393 C 133.08613,274.76201 133.49628,274.42933 133.86087,274.15588 C 134.97284,273.3447 135.80227,272.54717 136.34915,271.76331 C 136.74107,271.19821 136.93703,270.70147 136.93704,270.27307 C 136.93703,269.55303 136.68183,268.94691 136.17142,268.45471 C 135.66099,267.95343 134.99107,267.70278 134.16165,267.70276 C 132.79446,267.70278 131.59134,268.58233 130.55228,270.34143"
id="text4052" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 449.21475,196.41982 L 449.21475,192.53505 L 447.22842,192.9745 L 447.22842,196.85927 L 449.21475,196.41982 M 451.51749,195.89247 L 451.51749,198.72255 L 450.11124,199.05653 L 450.11124,204.13661 L 449.21475,204.13661 L 449.21475,199.23232 L 447.22842,199.70692 L 447.22842,204.76942 L 446.3671,204.76942 L 446.3671,199.91786 L 444.96085,200.23427 L 444.96085,197.43935 C 445.89835,197.43934 446.36709,197.3163 446.3671,197.07021 L 446.3671,193.18544 L 444.96085,193.537 L 444.96085,190.81239 L 446.3671,190.44325 L 446.40225,185.25771 L 447.22842,185.25771 L 447.22842,190.23232 L 449.21475,189.79286 L 449.21475,184.50185 L 450.11124,184.50185 L 450.11124,189.58192 L 451.51749,189.26552 L 451.51749,191.99013 L 450.11124,192.32411 L 450.11124,196.20888 L 451.51749,195.89247"
id="text4094" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 440.97339,203.79871 C 439.60619,203.74402 437.77416,203.71667 435.47729,203.71667 L 432.5105,203.79871 L 431.18433,203.75769 L 430.13159,203.79871 C 430.02222,203.78959 429.86271,203.76681 429.65308,203.73035 C 429.81714,203.34753 430.02677,202.99662 430.28198,202.67761 C 431.03849,201.74793 432.14591,200.54936 433.60425,199.08191 C 435.64591,197.03113 436.99031,195.42241 437.63745,194.25574 C 438.28458,193.07997 438.60814,191.9771 438.60815,190.94714 C 438.60814,189.98101 438.28002,189.16981 437.62378,188.51355 C 436.96752,187.85732 436.16088,187.52919 435.20386,187.52917 C 434.62963,187.52919 434.07364,187.66591 433.53589,187.93933 C 432.99812,188.20367 432.56518,188.54091 432.23706,188.95105 C 432.02742,189.21539 431.74943,189.74403 431.40308,190.53699 C 431.21167,190.9745 431.09774,191.21148 431.06128,191.24792 C 431.00659,191.31174 430.94279,191.34364 430.86987,191.34363 C 430.79695,191.34364 430.72404,191.30718 430.65112,191.23425 C 430.58732,191.15223 430.55542,191.05197 430.55542,190.93347 C 430.55542,190.52333 430.7605,189.86708 431.17065,188.96472 C 431.58992,188.06239 432.2006,187.35601 433.00269,186.84558 C 433.81388,186.33518 434.75268,186.07997 435.81909,186.07996 C 437.21361,186.07997 438.37572,186.5357 439.30542,187.44714 C 440.24421,188.3495 440.71361,189.42958 440.71362,190.68738 C 440.71361,191.68088 440.3946,192.6926 439.75659,193.72253 C 439.11856,194.74338 437.65111,196.31108 435.35425,198.42566 C 434.59773,199.11837 434.05997,199.62879 433.74097,199.95691 C 433.42195,200.28504 432.77937,200.99597 431.81323,202.08972 C 433.20776,202.14441 434.47469,202.17175 435.61401,202.17175 C 435.8601,202.17175 436.12898,202.16264 436.42065,202.14441 C 436.95841,202.12618 437.27286,202.11707 437.36401,202.11707 L 439.2644,202.15808 C 439.47403,202.15808 439.68822,202.05782 439.90698,201.8573 C 440.12572,201.65678 440.42194,201.09168 440.79565,200.16199 L 441.12378,200.14832 C 441.16934,200.14832 441.2377,200.15288 441.32886,200.16199 C 441.37442,200.25314 441.3972,200.3215 441.39722,200.36707 L 441.36987,200.47644 C 441.29694,200.74077 441.23314,201.22384 441.17847,201.92566 C 441.142,202.33582 441.07364,202.96017 440.97339,203.79871"
id="text4098" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 466.42825,279.33765 L 466.42825,275.45288 L 464.44193,275.89233 L 464.44193,279.7771 L 466.42825,279.33765 M 468.73099,278.8103 L 468.73099,281.64038 L 467.32474,281.97437 L 467.32474,287.05444 L 466.42825,287.05444 L 466.42825,282.15015 L 464.44193,282.62476 L 464.44193,287.68726 L 463.5806,287.68726 L 463.5806,282.83569 L 462.17435,283.1521 L 462.17435,280.35718 C 463.11185,280.35717 463.5806,280.23413 463.5806,279.98804 L 463.5806,276.10327 L 462.17435,276.45483 L 462.17435,273.73022 L 463.5806,273.36108 L 463.61575,268.17554 L 464.44193,268.17554 L 464.44193,273.15015 L 466.42825,272.71069 L 466.42825,267.41968 L 467.32474,267.41968 L 467.32474,272.49976 L 468.73099,272.18335 L 468.73099,274.90796 L 467.32474,275.24194 L 467.32474,279.12671 L 468.73099,278.8103"
id="text4108" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 448.58923,272.96262 L 448.13806,272.71652 C 448.71228,271.32201 449.39587,270.34219 450.18884,269.77707 C 450.98181,269.20287 451.90694,268.91576 452.96423,268.91574 C 453.9486,268.91576 454.73701,269.13451 455.32947,269.57199 C 456.21357,270.22826 456.65563,270.96654 456.65564,271.78683 C 456.65563,272.45221 456.42776,273.12213 455.97205,273.7966 C 455.52542,274.47109 454.73701,275.2276 453.60681,276.06613 L 453.93494,276.05246 C 454.64587,276.05247 455.32946,276.23476 455.98572,276.59933 C 456.65107,276.95481 457.17516,277.51536 457.55798,278.28098 C 457.94078,279.03749 458.13219,279.85325 458.1322,280.72824 C 458.13219,282.48736 457.48506,283.99582 456.1908,285.25363 C 454.90563,286.50233 453.26501,287.12668 451.26892,287.12668 C 449.7559,287.12668 448.63936,286.90793 447.91931,286.47043 C 447.52738,286.24256 447.33142,285.95546 447.33142,285.6091 C 447.33142,285.4177 447.40889,285.24452 447.56384,285.08957 C 447.7279,284.93462 447.92842,284.85715 448.16541,284.85715 C 448.46618,284.85715 448.83077,285.02121 449.25916,285.34933 C 450.27087,286.12407 451.15043,286.51144 451.89783,286.51144 C 453.02803,286.51144 454.03063,286.03749 454.90564,285.08957 C 455.78063,284.13254 456.21813,282.92942 456.21814,281.48019 C 456.21813,280.27708 455.92191,279.2927 455.32947,278.52707 C 454.74613,277.75234 454.00329,277.36497 453.10095,277.36496 C 452.42647,277.36497 451.72464,277.68398 450.99548,278.32199 L 450.66736,277.77512 C 451.12308,277.3832 451.53324,277.05052 451.89783,276.77707 C 453.0098,275.96588 453.83923,275.16836 454.38611,274.38449 C 454.77803,273.8194 454.97399,273.32266 454.974,272.89426 C 454.97399,272.17422 454.71878,271.5681 454.20837,271.0759 C 453.69795,270.57461 453.02803,270.32396 452.19861,270.32394 C 450.83142,270.32396 449.62829,271.20352 448.58923,272.96262"
id="text4112" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 449.21475,356.5412 L 449.21475,352.65643 L 447.22842,353.09589 L 447.22842,356.98065 L 449.21475,356.5412 M 451.51749,356.01385 L 451.51749,358.84393 L 450.11124,359.17792 L 450.11124,364.258 L 449.21475,364.258 L 449.21475,359.3537 L 447.22842,359.82831 L 447.22842,364.89081 L 446.3671,364.89081 L 446.3671,360.03925 L 444.96085,360.35565 L 444.96085,357.56073 C 445.89835,357.56073 446.36709,357.43768 446.3671,357.19159 L 446.3671,353.30682 L 444.96085,353.65839 L 444.96085,350.93378 L 446.3671,350.56464 L 446.40225,345.37909 L 447.22842,345.37909 L 447.22842,350.3537 L 449.21475,349.91425 L 449.21475,344.62323 L 450.11124,344.62323 L 450.11124,349.70331 L 451.51749,349.3869 L 451.51749,352.11151 L 450.11124,352.4455 L 450.11124,356.33026 L 451.51749,356.01385"
id="text4122" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 206.0296,416.24756 L 206.0296,421.16943 L 206.89093,420.16748 C 207.23077,419.75732 207.54718,419.34717 207.84015,418.93701 C 207.98077,418.72607 208.10968,418.52685 208.22687,418.33936 C 208.32061,418.16357 208.43194,417.9585 208.56085,417.72412 C 208.6546,417.5249 208.74835,417.30811 208.8421,417.07373 C 208.91241,416.93311 208.94757,416.78662 208.94757,416.63428 C 208.94757,416.3999 208.91241,416.16553 208.8421,415.93115 C 208.77179,415.68506 208.6839,415.49756 208.57843,415.36865 C 208.48468,415.22803 208.35577,415.12256 208.19171,415.05225 C 208.02765,415.00537 207.84601,414.97022 207.64679,414.94678 C 207.29522,414.94678 206.9378,415.11084 206.57452,415.43896 C 206.21124,415.75537 206.0296,416.0249 206.0296,416.24756 M 205.13312,423.12061 L 205.13312,403.39795 L 206.0296,403.39795 L 206.0296,414.91162 C 206.9671,414.17334 207.84601,413.8042 208.66632,413.8042 C 209.04132,413.8042 209.39874,413.90967 209.73859,414.12061 C 210.10186,414.35498 210.40069,414.66553 210.63507,415.05225 C 210.85772,415.4624 210.96905,415.87256 210.96906,416.28271 C 210.96905,416.93897 210.68194,417.60107 210.10773,418.26904 C 209.80303,418.63232 209.44561,419.04248 209.03546,419.49951 C 208.6253,419.95654 208.26202,420.32568 207.94562,420.60693 L 205.13312,423.12061"
id="text4010" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 200.09465,406.19092 C 199.07381,406.27296 198.24894,406.31398 197.62004,406.31396 C 197.15519,406.31398 196.663,406.30031 196.14348,406.27295 C 195.86092,406.25474 195.6923,406.24562 195.63762,406.24561 C 194.52564,406.24562 193.92863,406.26841 193.8466,406.31396 C 193.81014,406.33221 193.78735,406.37323 193.77824,406.43701 C 193.7509,406.58286 193.63241,408.20981 193.42278,411.31787 C 193.83293,411.10825 194.22941,410.96241 194.61223,410.88037 C 194.99504,410.78924 195.50089,410.74366 196.12981,410.74365 C 196.57641,410.74366 196.88631,410.77101 197.05949,410.82568 C 197.92537,411.10825 198.54972,411.36345 198.93254,411.59131 C 199.46118,411.91944 199.88956,412.29314 200.2177,412.7124 C 200.55493,413.13168 200.86482,413.74692 201.14738,414.55811 C 201.34789,415.14145 201.44815,415.75212 201.44817,416.39014 C 201.44815,417.08285 201.34789,417.72998 201.14738,418.33154 C 200.95597,418.92399 200.71443,419.42074 200.42278,419.82178 C 200.1311,420.22282 199.69816,420.64209 199.12395,421.07959 C 198.54972,421.50798 197.87068,421.8361 197.08684,422.06396 C 196.31209,422.29183 195.79256,422.41032 195.52824,422.41943 L 193.54582,422.2417 C 192.99894,422.15055 192.52043,422.00472 192.11028,421.8042 C 191.70012,421.59456 191.42668,421.39404 191.28996,421.20264 C 191.20793,421.08415 191.16691,420.9292 191.16692,420.73779 C 191.16691,420.59196 191.26717,420.43246 191.4677,420.25928 C 191.67733,420.0861 191.93254,419.99951 192.23332,419.99951 C 192.37004,419.99951 192.52043,420.04053 192.68449,420.12256 L 193.76457,420.81982 C 194.01066,421.03858 194.316,421.24365 194.68059,421.43506 C 194.73527,421.4624 194.87199,421.4943 195.09074,421.53076 C 195.61938,421.60368 195.90649,421.64014 195.95207,421.64014 C 196.15259,421.64014 196.49438,421.55811 196.97746,421.39404 C 197.46053,421.22998 197.90714,420.95199 198.31731,420.56006 C 198.72745,420.15902 199.07836,419.65772 199.37004,419.05615 C 199.67081,418.44548 199.8212,417.771 199.82121,417.03271 C 199.8212,415.71111 199.40649,414.62191 198.57707,413.76514 C 197.74764,412.90837 196.74959,412.47999 195.58293,412.47998 C 195.06339,412.47999 194.58032,412.56658 194.13371,412.73975 C 193.69621,412.91293 193.39999,413.10434 193.24504,413.31396 L 193.03996,413.396 C 192.93058,413.44158 192.85311,413.46436 192.80754,413.46436 L 192.62981,413.42334 C 192.60246,413.25929 192.58879,413.13624 192.58879,413.0542 C 192.58879,412.98129 192.60246,412.85369 192.62981,412.67139 C 192.69361,412.22478 192.72551,411.7645 192.72551,411.29053 C 192.73462,410.80747 192.78475,410.37452 192.8759,409.9917 L 192.83488,409.33545 C 192.89868,408.99822 192.93514,408.67466 192.94426,408.36475 C 192.9716,406.26841 193.05819,405.06528 193.20403,404.75537 C 193.26782,404.60956 193.3772,404.53664 193.53215,404.53662 C 193.59595,404.53664 193.70077,404.54575 193.8466,404.56396 L 193.92863,404.57764 L 195.66496,404.56396 C 196.44881,404.60956 197.02759,404.63234 197.40129,404.63232 C 198.25805,404.63234 198.9462,404.5731 199.46574,404.45459 C 199.72094,404.21763 199.91691,404.09914 200.05363,404.09912 C 200.10831,404.09914 200.20857,404.10825 200.35442,404.12646 L 200.39543,404.29053 L 200.28606,404.86475 L 200.2177,405.78076 C 200.20857,405.84458 200.16756,405.9813 200.09465,406.19092"
id="text4014" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 226.34969,404.4751 C 227.47078,404.42954 228.9838,404.40676 230.88875,404.40674 C 231.75463,404.40676 232.74356,404.42043 233.85555,404.44775 C 234.53001,404.47511 234.97207,404.48879 235.18172,404.48877 L 236.50789,404.4751 L 236.82234,404.4751 C 236.89525,404.54803 236.9317,404.61639 236.93172,404.68018 C 236.9317,404.78957 236.82689,405.05389 236.61726,405.47314 C 236.51699,405.65545 236.07493,406.6535 235.29109,408.46729 C 234.90827,409.36053 234.43887,410.53175 233.88289,411.98096 L 232.16023,416.83447 C 231.75007,417.94646 231.48575,418.72119 231.36726,419.15869 L 231.05281,420.43018 C 230.9252,420.80387 230.8614,421.07731 230.8614,421.25049 C 230.8614,421.38721 230.93887,421.6014 231.09383,421.89307 C 230.98445,422.0389 230.73835,422.11182 230.35555,422.11182 C 230.18236,422.11182 230.0183,422.0389 229.86336,421.89307 C 229.91804,421.35531 230.09122,420.64437 230.38289,419.76025 C 230.49226,419.44125 230.67911,418.81234 230.94344,417.87354 C 231.20775,416.93474 231.46752,416.10531 231.72273,415.38525 L 233.28133,411.14697 C 233.72793,409.94386 234.16087,408.83644 234.58015,407.82471 C 234.72598,407.48748 234.83535,407.2505 234.90828,407.11377 C 235.09968,406.77654 235.19538,406.49855 235.19539,406.27979 L 235.01765,406.29346 L 234.86726,406.29346 L 233.06258,406.23877 C 233.00788,406.23879 232.81647,406.2479 232.48836,406.26611 C 232.16023,406.28436 231.91413,406.29347 231.75008,406.29346 L 229.63094,406.27979 L 228.98836,406.27979 L 228.08601,406.25244 C 227.55737,406.24334 227.22468,406.30714 227.08797,406.44385 C 226.96036,406.57147 226.88744,406.90871 226.86922,407.45557 C 226.8601,407.5923 226.82364,407.72446 226.75984,407.85205 C 226.65958,407.87941 226.58666,407.89308 226.54109,407.89307 C 226.44083,407.89308 226.30867,407.85662 226.14461,407.78369 C 226.15372,407.55584 226.15828,407.38722 226.15828,407.27783 L 226.18562,406.86768 L 226.14461,406.11572 C 226.14461,405.45949 226.16284,405.01743 226.1993,404.78955 C 226.21752,404.69842 226.26765,404.5936 226.34969,404.4751"
id="text4165" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 244.25729,415.04346 L 244.25729,411.15869 L 242.27097,411.59814 L 242.27097,415.48291 L 244.25729,415.04346 M 246.56003,414.51611 L 246.56003,417.34619 L 245.15378,417.68018 L 245.15378,422.76025 L 244.25729,422.76025 L 244.25729,417.85596 L 242.27097,418.33057 L 242.27097,423.39307 L 241.40964,423.39307 L 241.40964,418.5415 L 240.00339,418.85791 L 240.00339,416.06299 C 240.94089,416.06299 241.40964,415.93994 241.40964,415.69385 L 241.40964,411.80908 L 240.00339,412.16064 L 240.00339,409.43604 L 241.40964,409.06689 L 241.44479,403.88135 L 242.27097,403.88135 L 242.27097,408.85596 L 244.25729,408.4165 L 244.25729,403.12549 L 245.15378,403.12549 L 245.15378,408.20557 L 246.56003,407.88916 L 246.56003,410.61377 L 245.15378,410.94775 L 245.15378,414.83252 L 246.56003,414.51611"
id="text4171" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 224.00557,401.61768 L 225.20869,401.61768 L 215.57002,424.90088 L 214.38057,424.90088 L 224.00557,401.61768"
id="text4177" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 287.06308,437.69949 L 287.06308,442.62137 L 287.92441,441.61942 C 288.26425,441.20926 288.58066,440.7991 288.87363,440.38895 C 289.01425,440.17801 289.14315,439.97879 289.26035,439.79129 C 289.35409,439.61551 289.46542,439.41043 289.59433,439.17606 C 289.68808,438.97684 289.78183,438.76004 289.87558,438.52567 C 289.94589,438.38504 289.98104,438.23856 289.98105,438.08621 C 289.98104,437.85184 289.94589,437.61746 289.87558,437.38309 C 289.80526,437.137 289.71737,436.9495 289.61191,436.82059 C 289.51815,436.67996 289.38925,436.5745 289.22519,436.50418 C 289.06112,436.45731 288.87948,436.42215 288.68027,436.39871 C 288.3287,436.39872 287.97128,436.56278 287.608,436.8909 C 287.24472,437.20731 287.06308,437.47684 287.06308,437.69949 M 286.1666,444.57254 L 286.1666,424.84988 L 287.06308,424.84988 L 287.06308,436.36356 C 288.00058,435.62528 288.87948,435.25614 289.6998,435.25613 C 290.07479,435.25614 290.43222,435.36161 290.77206,435.57254 C 291.13534,435.80692 291.43417,436.11747 291.66855,436.50418 C 291.8912,436.91434 292.00253,437.3245 292.00253,437.73465 C 292.00253,438.3909 291.71542,439.05301 291.1412,439.72098 C 290.83651,440.08426 290.47909,440.49441 290.06894,440.95145 C 289.65878,441.40848 289.2955,441.77762 288.9791,442.05887 L 286.1666,444.57254"
id="text4200" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 315.28265,426.01117 C 315.36467,426.14791 315.42392,426.2983 315.46039,426.46234 C 315.40569,426.56262 315.3191,426.63098 315.20062,426.66742 C 314.8178,426.7677 314.2527,427.03202 313.50531,427.46039 C 313.33212,427.55155 312.80348,427.97538 311.91937,428.73187 C 311.52744,429.00532 311.05348,429.51574 310.4975,430.26312 C 309.74098,431.26574 309.19866,432.16352 308.87054,432.95648 C 308.54242,433.74035 308.25075,434.77029 307.99554,436.04633 C 307.92262,436.41092 307.87249,437.05349 307.84515,437.97406 L 307.80414,438.47992 C 307.80413,439.64659 308.14593,440.81326 308.82953,441.97992 C 309.52223,443.13747 310.38356,443.71625 311.41351,443.71625 C 311.95127,443.71625 312.45257,443.55219 312.91742,443.22406 C 313.39137,442.89594 313.76507,442.33995 314.03851,441.55609 C 314.31194,440.77224 314.44866,439.82432 314.44867,438.71234 C 314.44866,437.19933 314.15699,436.08279 313.57367,435.36273 C 312.99944,434.63357 312.30673,434.26899 311.49554,434.26898 C 311.24944,434.26899 311.03069,434.30545 310.83929,434.37836 L 310.72992,434.4057 C 310.61142,434.40571 310.48838,434.27355 310.36078,434.00922 C 310.59775,433.85428 310.88486,433.72667 311.22211,433.6264 C 311.55934,433.52615 311.77809,433.47602 311.87836,433.47601 C 311.94215,433.47602 312.35686,433.54438 313.1225,433.68109 L 313.51898,433.8725 C 313.95647,434.00923 314.28915,434.16873 314.51703,434.35101 C 314.93629,434.68826 315.30999,435.11209 315.63812,435.6225 C 315.80217,435.88683 316.02092,436.42459 316.29437,437.23578 C 316.31259,437.29047 316.37639,437.69151 316.48578,438.4389 L 316.41742,439.80609 C 316.226,440.62641 316.04371,441.20063 315.87054,441.52875 C 315.61533,442.03005 315.18694,442.57693 314.58539,443.16937 C 314.27548,443.47015 313.87444,443.71625 313.38226,443.90765 C 312.68955,444.17198 311.95582,444.30414 311.18109,444.30414 C 309.70452,444.30414 308.45127,443.71625 307.42133,442.54047 C 306.40049,441.35557 305.89007,439.64203 305.89008,437.39984 C 305.89007,436.15115 306.08148,434.97081 306.46429,433.85883 C 306.8471,432.73774 307.38942,431.71235 308.09125,430.78265 C 308.5652,430.15376 309.20778,429.47928 310.01898,428.75922 C 310.83929,428.03918 311.61403,427.47863 312.3432,427.07758 C 313.33668,426.54895 314.3165,426.19348 315.28265,426.01117"
id="text4208" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 325.22412,436.49539 L 325.22412,432.61063 L 323.23779,433.05008 L 323.23779,436.93484 L 325.22412,436.49539 M 327.52686,435.96805 L 327.52686,438.79813 L 326.12061,439.13211 L 326.12061,444.21219 L 325.22412,444.21219 L 325.22412,439.30789 L 323.23779,439.7825 L 323.23779,444.845 L 322.37646,444.845 L 322.37646,439.99344 L 320.97021,440.30984 L 320.97021,437.51492 C 321.90771,437.51492 322.37646,437.39187 322.37646,437.14578 L 322.37646,433.26102 L 320.97021,433.61258 L 320.97021,430.88797 L 322.37646,430.51883 L 322.41162,425.33328 L 323.23779,425.33328 L 323.23779,430.30789 L 325.22412,429.86844 L 325.22412,424.57742 L 326.12061,424.57742 L 326.12061,429.6575 L 327.52686,429.34109 L 327.52686,432.0657 L 326.12061,432.39969 L 326.12061,436.28445 L 327.52686,435.96805"
id="text4212" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 438.21164,346.11929 L 438.84055,346.11929 C 438.83142,346.40186 438.82686,346.57048 438.82687,346.62515 L 438.86789,348.63492 L 438.78586,350.43961 L 438.84055,352.44937 L 438.84055,354.03531 L 438.86789,356.19547 C 438.86788,356.53271 438.85877,357.04313 438.84055,357.72672 L 439.12766,357.74039 L 440.09836,357.74039 L 441.02805,357.75406 L 441.79367,357.72672 C 441.81189,358.00927 441.821,358.21891 441.82101,358.35562 C 441.821,358.49235 441.81189,358.70198 441.79367,358.98453 C 441.22855,359.01188 440.92322,359.02555 440.87766,359.02554 L 440.19406,359.01187 L 439.64719,359.01187 C 439.50134,359.01188 439.23246,359.00276 438.84055,358.98453 C 438.82231,360.2788 438.82231,361.9969 438.84055,364.13882 C 438.78585,364.19351 438.7266,364.22997 438.66281,364.2482 L 437.81516,364.27554 C 437.63285,364.27554 437.35486,364.26643 436.98117,364.2482 C 437.00851,363.17268 437.02218,362.4025 437.02219,361.93765 C 437.02218,361.5275 437.01306,361.1538 436.99484,360.81656 C 436.96749,360.19677 436.95382,359.8413 436.95383,359.75015 C 436.95382,359.58609 436.96293,359.33089 436.98117,358.98453 C 436.59835,359.03011 436.30213,359.05289 436.0925,359.05289 C 435.98312,359.05289 435.86007,359.04833 435.72336,359.03922 C 434.80278,358.99365 434.28325,358.97086 434.16476,358.97086 C 434.04627,358.97086 433.7546,359.00276 433.28976,359.06656 L 431.88156,358.98453 L 431.11594,359.02554 L 430.59641,358.94351 L 429.94016,359.08023 L 429.81711,358.98453 C 429.79888,358.78401 429.78976,358.63362 429.78976,358.53336 C 429.78976,358.4331 429.79888,358.28271 429.81711,358.08218 C 430.07232,357.74495 430.54172,357.06136 431.22531,356.0314 L 433.89133,352.16226 C 434.54757,351.18701 435.099,350.41228 435.54562,349.83804 C 435.99223,349.26384 436.43429,348.64861 436.8718,347.99234 C 437.30929,347.32699 437.7559,346.70264 438.21164,346.11929 M 436.98117,357.72672 L 436.99484,355.48453 L 436.98117,353.70718 L 436.98117,349.12711 C 436.23377,350.11149 435.19471,351.60173 433.86398,353.59781 C 432.34184,355.87646 431.4395,357.25276 431.15695,357.72672 C 431.55799,357.70849 431.85877,357.69938 432.0593,357.69937 L 435.80539,357.75406 C 436.07882,357.75407 436.47075,357.74495 436.98117,357.72672"
id="text4126" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 281.45798,425.56473 C 281.54,425.70146 281.59924,425.85185 281.63571,426.0159 C 281.58101,426.11618 281.49442,426.18454 281.37595,426.22098 C 280.99312,426.32126 280.42802,426.58558 279.68063,427.01395 C 279.50745,427.10511 278.9788,427.52894 278.0947,428.28543 C 277.70276,428.55888 277.2288,429.0693 276.67282,429.81668 C 275.91631,430.8193 275.37399,431.71708 275.04587,432.51004 C 274.71774,433.2939 274.42607,434.32385 274.17087,435.59988 C 274.09795,435.96447 274.04782,436.60705 274.02048,437.52762 L 273.97946,438.03348 C 273.97946,439.20015 274.32125,440.36681 275.00485,441.53348 C 275.69756,442.69103 276.55888,443.26981 277.58884,443.26981 C 278.12659,443.26981 278.62789,443.10574 279.09274,442.77762 C 279.56669,442.44949 279.94039,441.89351 280.21384,441.10965 C 280.48726,440.3258 280.62398,439.37788 280.62399,438.2659 C 280.62398,436.75289 280.33232,435.63635 279.74899,434.91629 C 279.17477,434.18713 278.48206,433.82255 277.67087,433.82254 C 277.42477,433.82255 277.20602,433.85901 277.01462,433.93192 L 276.90524,433.95926 C 276.78675,433.95927 276.6637,433.82711 276.5361,433.56277 C 276.77308,433.40784 277.06018,433.28023 277.39743,433.17996 C 277.73466,433.07971 277.95341,433.02958 278.05368,433.02957 C 278.11748,433.02958 278.53219,433.09794 279.29782,433.23465 L 279.69431,433.42606 C 280.1318,433.56278 280.46448,433.72229 280.69235,433.90457 C 281.11161,434.24182 281.48531,434.66565 281.81345,435.17606 C 281.9775,435.44039 282.19625,435.97815 282.4697,436.78934 C 282.48791,436.84403 282.55172,437.24507 282.6611,437.99246 L 282.59274,439.35965 C 282.40132,440.17997 282.21903,440.75418 282.04587,441.08231 C 281.79065,441.58361 281.36226,442.13048 280.76071,442.72293 C 280.45081,443.02371 280.04976,443.26981 279.55759,443.46121 C 278.86487,443.72553 278.13115,443.8577 277.35641,443.8577 C 275.87985,443.8577 274.62659,443.26981 273.59665,442.09402 C 272.57581,440.90913 272.0654,439.19559 272.0654,436.9534 C 272.0654,435.70471 272.2568,434.52437 272.63962,433.41238 C 273.02243,432.2913 273.56475,431.26591 274.26657,430.33621 C 274.74053,429.70732 275.3831,429.03284 276.19431,428.31277 C 277.01461,427.59274 277.78935,427.03219 278.51852,426.63113 C 279.512,426.10251 280.49182,425.74704 281.45798,425.56473"
id="text4204" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 384.96088,401.61768 L 386.164,401.61768 L 376.52533,424.90088 L 375.33588,424.90088 L 384.96088,401.61768"
id="text4240" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 303.85614,422.98032 L 305.05927,422.98032 L 295.42059,446.26352 L 294.23114,446.26352 L 303.85614,422.98032"
id="text4216" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 366.98489,416.24756 L 366.98489,421.16943 L 367.84622,420.16748 C 368.18606,419.75732 368.50247,419.34717 368.79544,418.93701 C 368.93606,418.72607 369.06497,418.52685 369.18216,418.33936 C 369.27591,418.16357 369.38723,417.9585 369.51614,417.72412 C 369.60989,417.5249 369.70364,417.30811 369.79739,417.07373 C 369.8677,416.93311 369.90286,416.78662 369.90286,416.63428 C 369.90286,416.3999 369.8677,416.16553 369.79739,415.93115 C 369.72708,415.68506 369.63919,415.49756 369.53372,415.36865 C 369.43997,415.22803 369.31106,415.12256 369.147,415.05225 C 368.98294,415.00537 368.8013,414.97022 368.60208,414.94678 C 368.25052,414.94678 367.8931,415.11084 367.52982,415.43896 C 367.16653,415.75537 366.98489,416.0249 366.98489,416.24756 M 366.08841,423.12061 L 366.08841,403.39795 L 366.98489,403.39795 L 366.98489,414.91162 C 367.92239,414.17334 368.8013,413.8042 369.62161,413.8042 C 369.99661,413.8042 370.35403,413.90967 370.69388,414.12061 C 371.05715,414.35498 371.35598,414.66553 371.59036,415.05225 C 371.81301,415.4624 371.92434,415.87256 371.92435,416.28271 C 371.92434,416.93897 371.63723,417.60107 371.06302,418.26904 C 370.75833,418.63232 370.40091,419.04248 369.99075,419.49951 C 369.58059,419.95654 369.21731,420.32568 368.90091,420.60693 L 366.08841,423.12061"
id="text4224" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 352.17691,404.68701 C 353.298,404.64146 354.81102,404.61867 356.71597,404.61865 C 357.58185,404.61867 358.57078,404.63234 359.68277,404.65967 C 360.35724,404.68703 360.7993,404.7007 361.00894,404.70068 L 362.33511,404.68701 L 362.64957,404.68701 C 362.72247,404.75995 362.75893,404.8283 362.75894,404.89209 C 362.75893,405.00148 362.65411,405.2658 362.44449,405.68506 C 362.34422,405.86737 361.90216,406.86541 361.11832,408.6792 C 360.73549,409.57244 360.26609,410.74366 359.71011,412.19287 L 357.98746,417.04639 C 357.57729,418.15837 357.31297,418.93311 357.19449,419.37061 L 356.88004,420.64209 C 356.75243,421.01579 356.68862,421.28923 356.68863,421.4624 C 356.68862,421.59912 356.7661,421.81331 356.92105,422.10498 C 356.81167,422.25081 356.56558,422.32373 356.18277,422.32373 C 356.00959,422.32373 355.84553,422.25081 355.69058,422.10498 C 355.74526,421.56722 355.91844,420.85628 356.21011,419.97217 C 356.31948,419.65316 356.50633,419.02425 356.77066,418.08545 C 357.03498,417.14665 357.29474,416.31723 357.54996,415.59717 L 359.10855,411.35889 C 359.55516,410.15577 359.9881,409.04835 360.40738,408.03662 C 360.5532,407.6994 360.66258,407.46242 360.7355,407.32568 C 360.9269,406.98846 361.0226,406.71046 361.02261,406.4917 L 360.84488,406.50537 L 360.69449,406.50537 L 358.8898,406.45068 C 358.83511,406.4507 358.6437,406.45981 358.31558,406.47803 C 357.98745,406.49627 357.74136,406.50539 357.5773,406.50537 L 355.45816,406.4917 L 354.81558,406.4917 L 353.91324,406.46436 C 353.38459,406.45526 353.05191,406.51906 352.91519,406.65576 C 352.78759,406.78338 352.71467,407.12062 352.69644,407.66748 C 352.68733,407.80421 352.65087,407.93637 352.58707,408.06396 C 352.4868,408.09132 352.41389,408.10499 352.36832,408.10498 C 352.26805,408.10499 352.13589,408.06854 351.97183,407.99561 C 351.98095,407.76776 351.9855,407.59914 351.9855,407.48975 L 352.01285,407.07959 L 351.97183,406.32764 C 351.97183,405.6714 351.99006,405.22935 352.02652,405.00146 C 352.04475,404.91034 352.09488,404.80552 352.17691,404.68701"
id="text4228" />
<path
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Garamond"
d="M 396.17804,405.979 C 395.1572,406.06105 394.33233,406.10207 393.70343,406.10205 C 393.23858,406.10207 392.74639,406.08839 392.22687,406.06104 C 391.94431,406.04282 391.77569,406.03371 391.72101,406.03369 C 390.60902,406.03371 390.01202,406.05649 389.92999,406.10205 C 389.89353,406.1203 389.87074,406.16131 389.86163,406.2251 C 389.83429,406.37095 389.7158,407.9979 389.50616,411.10596 C 389.91632,410.89633 390.3128,410.7505 390.69562,410.66846 C 391.07842,410.57732 391.58428,410.53175 392.2132,410.53174 C 392.6598,410.53175 392.9697,410.55909 393.14288,410.61377 C 394.00876,410.89633 394.63311,411.15154 395.01593,411.37939 C 395.54457,411.70753 395.97295,412.08123 396.30109,412.50049 C 396.63832,412.91977 396.94821,413.535 397.23077,414.34619 C 397.43128,414.92953 397.53154,415.54021 397.53156,416.17822 C 397.53154,416.87094 397.43128,417.51807 397.23077,418.11963 C 397.03936,418.71208 396.79782,419.20882 396.50616,419.60986 C 396.21449,420.01091 395.78155,420.43018 395.20734,420.86768 C 394.63311,421.29606 393.95407,421.62419 393.17023,421.85205 C 392.39548,422.07992 391.87595,422.1984 391.61163,422.20752 L 389.62921,422.02979 C 389.08233,421.93864 388.60382,421.79281 388.19366,421.59229 C 387.78351,421.38265 387.51007,421.18213 387.37335,420.99072 C 387.29132,420.87223 387.2503,420.71729 387.25031,420.52588 C 387.2503,420.38005 387.35056,420.22054 387.55109,420.04736 C 387.76072,419.87419 388.01593,419.7876 388.31671,419.7876 C 388.45343,419.7876 388.60382,419.82862 388.76788,419.91064 L 389.84796,420.60791 C 390.09405,420.82666 390.39939,421.03174 390.76398,421.22314 C 390.81866,421.25049 390.95538,421.28239 391.17413,421.31885 C 391.70277,421.39176 391.98988,421.42822 392.03546,421.42822 C 392.23598,421.42822 392.57777,421.34619 393.06085,421.18213 C 393.54392,421.01807 393.99053,420.74007 394.4007,420.34814 C 394.81084,419.9471 395.16175,419.4458 395.45343,418.84424 C 395.7542,418.23356 395.90459,417.55909 395.9046,416.8208 C 395.90459,415.49919 395.48988,414.41 394.66046,413.55322 C 393.83103,412.69646 392.83298,412.26808 391.66632,412.26807 C 391.14678,412.26808 390.66371,412.35466 390.2171,412.52783 C 389.7796,412.70102 389.48337,412.89242 389.32843,413.10205 L 389.12335,413.18408 C 389.01397,413.22966 388.9365,413.25245 388.89093,413.25244 L 388.7132,413.21143 C 388.68585,413.04737 388.67218,412.92433 388.67218,412.84229 C 388.67218,412.76938 388.68585,412.64177 388.7132,412.45947 C 388.77699,412.01287 388.8089,411.55258 388.8089,411.07861 C 388.81801,410.59555 388.86814,410.16261 388.95929,409.77979 L 388.91827,409.12354 C 388.98207,408.78631 389.01853,408.46274 389.02765,408.15283 C 389.05499,406.05649 389.14158,404.85337 389.28741,404.54346 C 389.35121,404.39764 389.46059,404.32472 389.61554,404.32471 C 389.67934,404.32472 389.78416,404.33384 389.92999,404.35205 L 390.01202,404.36572 L 391.74835,404.35205 C 392.5322,404.39764 393.11097,404.42043 393.48468,404.42041 C 394.34144,404.42043 395.02959,404.36118 395.54913,404.24268 C 395.80433,404.00571 396.00029,403.88722 396.13702,403.88721 C 396.1917,403.88722 396.29196,403.89634 396.43781,403.91455 L 396.47882,404.07861 L 396.36945,404.65283 L 396.30109,405.56885 C 396.29196,405.63267 396.25095,405.76938 396.17804,405.979"
id="text4232" />
<path
style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 405.21259,415.04346 L 405.21259,411.15869 L 403.22626,411.59814 L 403.22626,415.48291 L 405.21259,415.04346 M 407.51532,414.51611 L 407.51532,417.34619 L 406.10907,417.68018 L 406.10907,422.76025 L 405.21259,422.76025 L 405.21259,417.85596 L 403.22626,418.33057 L 403.22626,423.39307 L 402.36493,423.39307 L 402.36493,418.5415 L 400.95868,418.85791 L 400.95868,416.06299 C 401.89618,416.06299 402.36493,415.93994 402.36493,415.69385 L 402.36493,411.80908 L 400.95868,412.16064 L 400.95868,409.43604 L 402.36493,409.06689 L 402.40009,403.88135 L 403.22626,403.88135 L 403.22626,408.85596 L 405.21259,408.4165 L 405.21259,403.12549 L 406.10907,403.12549 L 406.10907,408.20557 L 407.51532,407.88916 L 407.51532,410.61377 L 406.10907,410.94775 L 406.10907,414.83252 L 407.51532,414.51611"
id="text4236" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="signatures"
style="display:inline"
sodipodi:insensitive="true">
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 534.74726,265.83426 L 534.74726,262.24624 L 532.91266,262.65213 L 532.91266,266.24015 L 534.74726,265.83426 M 536.8741,265.3472 L 536.8741,267.9611 L 535.57527,268.26957 L 535.57527,272.9616 L 534.74726,272.9616 L 534.74726,268.43193 L 532.91266,268.87028 L 532.91266,273.54608 L 532.11713,273.54608 L 532.11713,269.06511 L 530.8183,269.35734 L 530.8183,266.77592 C 531.68419,266.77591 532.11713,266.66227 532.11713,266.43497 L 532.11713,262.84695 L 530.8183,263.17166 L 530.8183,260.65517 L 532.11713,260.31423 L 532.1496,255.52479 L 532.91266,255.52479 L 532.91266,260.1194 L 534.74726,259.71352 L 534.74726,254.82666 L 535.57527,254.82666 L 535.57527,259.51869 L 536.8741,259.22646 L 536.8741,261.74294 L 535.57527,262.05142 L 535.57527,265.63944 L 536.8741,265.3472"
id="text4394" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 523.69522,281.07169 L 525.69218,289.7901 C 526.5364,289.36798 527.21288,288.75644 527.7216,287.9555 C 528.25194,287.15455 528.51712,286.26702 528.51714,285.29289 C 528.51712,284.89242 528.463,284.51901 528.35478,284.17265 C 528.21406,283.81548 528.01382,283.4583 527.75407,283.10111 C 527.35358,282.46253 526.79617,281.96464 526.08183,281.60746 C 525.37828,281.25029 524.58275,281.0717 523.69522,281.07169 M 522.07168,273.52223 L 523.06204,278.01943 C 523.44086,277.9545 523.83051,277.92203 524.23099,277.92202 C 525.42157,277.92203 526.48228,278.21968 527.41313,278.81497 C 528.36559,279.41028 529.12324,280.19499 529.68608,281.1691 C 530.21642,282.1757 530.4816,283.24183 530.48162,284.36747 C 530.4816,285.74208 530.0703,286.95973 529.24773,288.02044 C 528.40347,289.07033 527.26158,289.91457 525.82206,290.55316 L 527.02348,295.97578 C 527.06676,296.27884 527.08841,296.69013 527.08842,297.20967 C 527.08841,298.58426 526.65546,299.67744 525.78959,300.48922 C 524.90204,301.33345 523.68439,301.82052 522.13662,301.95041 C 521.64955,301.9504 521.19496,301.91793 520.77285,301.853 C 520.37237,301.80969 519.95025,301.69063 519.50649,301.49582 C 518.70554,301.20357 518.06153,300.77063 517.57448,300.19699 C 517.04412,299.64497 516.74647,299.01179 516.68153,298.29744 C 516.68153,297.72379 516.78976,297.18261 517.00624,296.6739 C 517.12529,296.40331 517.27141,296.1706 517.44459,295.97578 C 517.59612,295.77013 517.78553,295.58072 518.01283,295.40754 C 518.4133,295.1153 518.86789,294.93671 519.37661,294.87178 C 519.95025,294.87177 520.45896,294.98542 520.90273,295.21272 C 521.34649,295.42919 521.69826,295.73766 521.95803,296.13814 C 522.09873,296.3546 522.20156,296.55484 522.26651,296.73885 C 522.33144,296.95531 522.36391,297.1772 522.36392,297.4045 C 522.36391,297.97814 522.22861,298.4652 521.95803,298.86568 C 521.65496,299.2445 521.27073,299.50968 520.80532,299.66122 C 520.3399,299.86686 519.88531,299.96968 519.44155,299.96969 C 519.46319,300.33768 519.75001,300.62451 520.30202,300.83017 C 520.81072,301.02498 521.38979,301.12239 522.03921,301.1224 C 523.35968,300.97086 524.35545,300.54874 525.02652,299.85604 C 525.38369,299.50968 525.65969,299.11462 525.85453,298.67086 C 526.02769,298.22708 526.11428,297.71296 526.1143,297.1285 C 526.11428,296.42496 526.03852,295.78637 525.887,295.21272 L 524.89664,290.95904 C 524.0091,291.17552 523.11074,291.28375 522.20157,291.28375 C 520.55637,291.28375 519.03566,290.88328 517.63942,290.08233 C 516.22152,289.31386 515.06881,288.25315 514.18128,286.90019 C 513.49939,285.82866 513.09892,285.1089 512.97986,284.74089 C 512.82833,284.27548 512.75256,283.75054 512.75256,283.16605 L 512.65515,281.63993 C 512.65515,280.49264 512.88786,279.39404 513.35327,278.34414 C 513.79704,277.26179 514.39775,276.2552 515.1554,275.32436 C 515.83729,274.41519 516.47588,273.66295 517.07118,273.06764 L 520.36697,269.96667 C 520.08554,268.92763 519.86366,267.91021 519.70131,266.91442 C 519.57142,265.91867 519.50648,264.9662 519.50649,264.05699 C 519.50648,263.14784 519.6526,262.09254 519.94485,260.89109 C 520.2479,259.74382 520.69708,258.65605 521.29238,257.62777 C 521.60626,257.16239 521.93097,256.81062 522.26651,256.57247 C 522.52626,256.36686 522.91591,256.18827 523.43546,256.0367 C 523.67356,256.03674 523.90627,256.09086 524.13358,256.19906 C 524.41498,256.38309 524.68016,256.68615 524.92911,257.10824 C 525.45946,258.0391 525.91405,259.12146 526.29289,260.35532 C 526.46605,261.02641 526.59593,261.6163 526.68254,262.12498 C 526.79076,262.63372 526.84488,263.1316 526.84489,263.61863 C 526.84488,264.23561 526.79076,264.80926 526.68254,265.33959 C 526.57429,265.85914 526.41193,266.47068 526.19547,267.17419 C 525.94652,267.88857 525.72463,268.47845 525.52982,268.94384 C 525.23757,269.51752 524.91286,270.08034 524.5557,270.63233 C 523.89545,271.67141 523.06744,272.63471 522.07168,273.52223 M 524.71805,290.04986 L 522.80228,281.1691 C 521.97967,281.3964 521.28155,281.86182 520.70791,282.56534 C 520.08013,283.25806 519.76625,284.01571 519.76626,284.8383 C 519.76625,286.07219 520.54555,287.02467 522.10415,287.69573 C 522.23403,287.73903 522.29897,287.83644 522.29898,287.98797 C 522.29897,288.15032 522.16367,288.2315 521.89309,288.2315 C 520.78908,287.89597 519.89072,287.27361 519.19802,286.36443 C 518.47283,285.45525 518.11024,284.44866 518.11025,283.34464 C 518.11024,282.29476 518.52154,281.27193 519.34414,280.27615 C 520.13425,279.28039 521.0759,278.5931 522.16909,278.21426 L 521.25991,274.18788 C 520.66461,274.67496 520.08013,275.18908 519.50649,275.73024 C 518.91119,276.23897 518.40248,276.7152 517.98036,277.15896 C 517.07118,278.0465 516.30811,279.06933 515.69117,280.22745 C 515.08505,281.37476 514.78199,282.57618 514.78199,283.8317 C 514.78199,284.80584 514.9714,285.69337 515.35023,286.49431 C 515.7507,287.29526 516.32435,287.98256 517.07118,288.55621 C 517.82883,289.15151 518.69471,289.59527 519.66884,289.88751 C 520.64296,290.20139 521.67661,290.35834 522.7698,290.35833 C 523.0945,290.35834 523.39215,290.33669 523.66275,290.29339 C 523.95498,290.23928 524.30674,290.1581 524.71805,290.04986 M 525.31876,261.55674 L 525.15641,260.95603 C 525.05898,260.6097 524.84792,260.22547 524.52323,259.80332 C 524.27427,259.51111 523.99827,259.36499 523.69522,259.36496 C 523.44627,259.40829 523.22438,259.53817 523.02957,259.75461 C 523.00791,259.78711 522.72109,260.18758 522.16909,260.95603 C 521.68202,261.67042 521.31402,262.48218 521.06509,263.39134 C 520.95684,263.83513 520.85943,264.2789 520.77285,264.72264 C 520.7079,265.14479 520.67543,265.52902 520.67544,265.87535 C 520.67543,266.8495 520.83778,267.98057 521.1625,269.26855 C 521.76861,268.78151 522.34767,268.20786 522.89969,267.5476 C 523.34344,266.99562 523.81968,266.30832 524.3284,265.4857 C 524.72886,264.83632 525.00487,264.20314 525.15641,263.58616 C 525.26463,263.05584 525.31875,262.37936 525.31876,261.55674"
id="text4420" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 510.02456,284.58038 L 563.28593,284.58038"
id="path4428" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 510.02456,277.9452 L 563.28593,277.9452"
id="path4430" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 510.02456,271.31005 L 563.28593,271.31005"
id="path4432" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 510.02456,264.67486 L 563.28593,264.67486"
id="path4434" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 510.02456,291.21557 L 563.28593,291.21557"
id="path4436" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 542.62727,276.08997 L 542.62727,272.50195 L 540.79267,272.90783 L 540.79267,276.49586 L 542.62727,276.08997 M 544.75411,275.60291 L 544.75411,278.21681 L 543.45527,278.52528 L 543.45527,283.21731 L 542.62727,283.21731 L 542.62727,278.68763 L 540.79267,279.12599 L 540.79267,283.80178 L 539.99714,283.80178 L 539.99714,279.32081 L 538.6983,279.61305 L 538.6983,277.03162 C 539.56419,277.03162 539.99713,276.91797 539.99714,276.69068 L 539.99714,273.10266 L 538.6983,273.42737 L 538.6983,270.91088 L 539.99714,270.56994 L 540.02961,265.78049 L 540.79267,265.78049 L 540.79267,270.37511 L 542.62727,269.96923 L 542.62727,265.08237 L 543.45527,265.08237 L 543.45527,269.7744 L 544.75411,269.48216 L 544.75411,271.99865 L 543.45527,272.30712 L 543.45527,275.89515 L 544.75411,275.60291"
id="text4438" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 550.50727,263.05713 L 550.50727,259.46911 L 548.67267,259.875 L 548.67267,263.46302 L 550.50727,263.05713 M 552.63411,262.57007 L 552.63411,265.18397 L 551.33528,265.49244 L 551.33528,270.18447 L 550.50727,270.18447 L 550.50727,265.6548 L 548.67267,266.09315 L 548.67267,270.76895 L 547.87714,270.76895 L 547.87714,266.28798 L 546.57831,266.58021 L 546.57831,263.99879 C 547.4442,263.99878 547.87714,263.88514 547.87714,263.65784 L 547.87714,260.06982 L 546.57831,260.39453 L 546.57831,257.87804 L 547.87714,257.5371 L 547.90961,252.74766 L 548.67267,252.74766 L 548.67267,257.34227 L 550.50727,256.93639 L 550.50727,252.04953 L 551.33528,252.04953 L 551.33528,256.74156 L 552.63411,256.44933 L 552.63411,258.96581 L 551.33528,259.27429 L 551.33528,262.86231 L 552.63411,262.57007"
id="text4442" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 519.60212,138.38759 L 519.60212,134.79957 L 517.76752,135.20546 L 517.76752,138.79348 L 519.60212,138.38759 M 521.72896,137.90053 L 521.72896,140.51443 L 520.43013,140.8229 L 520.43013,145.51493 L 519.60212,145.51493 L 519.60212,140.98526 L 517.76752,141.42361 L 517.76752,146.09941 L 516.97199,146.09941 L 516.97199,141.61844 L 515.67316,141.91067 L 515.67316,139.32925 C 516.53904,139.32924 516.97199,139.2156 516.97199,138.9883 L 516.97199,135.40028 L 515.67316,135.72499 L 515.67316,133.2085 L 516.97199,132.86756 L 517.00446,128.07812 L 517.76752,128.07812 L 517.76752,132.67273 L 519.60212,132.26685 L 519.60212,127.37999 L 520.43013,127.37999 L 520.43013,132.07202 L 521.72896,131.77979 L 521.72896,134.29627 L 520.43013,134.60475 L 520.43013,138.19277 L 521.72896,137.90053"
id="text4499" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 508.55005,153.625 L 510.547,162.34341 C 511.39123,161.92129 512.06771,161.30976 512.57643,160.50881 C 513.10677,159.70787 513.37195,158.82033 513.37196,157.8462 C 513.37195,157.44574 513.31783,157.07232 513.20961,156.72596 C 513.06889,156.36879 512.86865,156.01161 512.6089,155.65443 C 512.20841,155.01584 511.651,154.51796 510.93665,154.16077 C 510.23311,153.8036 509.43757,153.62501 508.55005,153.625 M 506.92651,146.07554 L 507.91687,150.57275 C 508.29568,150.50782 508.68533,150.47535 509.08582,150.47533 C 510.2764,150.47535 511.33711,150.773 512.26796,151.36828 C 513.22042,151.96359 513.97807,152.7483 514.54091,153.72241 C 515.07125,154.72902 515.33643,155.79514 515.33645,156.92079 C 515.33643,158.29539 514.92513,159.51304 514.10256,160.57375 C 513.2583,161.62364 512.11641,162.46788 510.67689,163.10647 L 511.87831,168.5291 C 511.92159,168.83215 511.94323,169.24345 511.94325,169.76299 C 511.94323,171.13758 511.51029,172.23076 510.64442,173.04254 C 509.75687,173.88677 508.53922,174.37383 506.99145,174.50372 C 506.50438,174.50371 506.04979,174.47124 505.62768,174.40631 C 505.2272,174.36301 504.80508,174.24395 504.36132,174.04913 C 503.56036,173.75688 502.91636,173.32394 502.4293,172.7503 C 501.89894,172.19829 501.6013,171.56511 501.53636,170.85076 C 501.53635,170.2771 501.64459,169.73592 501.86107,169.22722 C 501.98012,168.95662 502.12624,168.72392 502.29942,168.5291 C 502.45095,168.32344 502.64036,168.13403 502.86766,167.96086 C 503.26813,167.66862 503.72272,167.49003 504.23143,167.42509 C 504.80508,167.42509 505.31379,167.53873 505.75756,167.76603 C 506.20132,167.9825 506.55309,168.29097 506.81286,168.69145 C 506.95356,168.90792 507.05638,169.10815 507.12133,169.29216 C 507.18627,169.50863 507.21874,169.73051 507.21875,169.95781 C 507.21874,170.53146 507.08344,171.01852 506.81286,171.419 C 506.50979,171.79782 506.12556,172.06299 505.66015,172.21453 C 505.19473,172.42017 504.74014,172.523 504.29638,172.523 C 504.31802,172.891 504.60484,173.17782 505.15685,173.38348 C 505.66555,173.5783 506.24461,173.67571 506.89404,173.67572 C 508.21451,173.52418 509.21028,173.10206 509.88135,172.40936 C 510.23852,172.06299 510.51452,171.66793 510.70936,171.22417 C 510.88252,170.7804 510.96911,170.26628 510.96912,169.68181 C 510.96911,168.97827 510.89335,168.33968 510.74183,167.76603 L 509.75147,163.51236 C 508.86392,163.72883 507.96557,163.83707 507.05639,163.83707 C 505.4112,163.83707 503.89048,163.43659 502.49425,162.63565 C 501.07635,161.86717 499.92364,160.80646 499.03611,159.45351 C 498.35422,158.38198 497.95375,157.66221 497.83469,157.2942 C 497.68316,156.82879 497.60739,156.30385 497.60739,155.71937 L 497.50998,154.19324 C 497.50998,153.04595 497.74269,151.94736 498.2081,150.89745 C 498.65187,149.81511 499.25258,148.80851 500.01023,147.87767 C 500.69211,146.9685 501.33071,146.21627 501.92601,145.62095 L 505.22179,142.51999 C 504.94037,141.48095 504.71849,140.46353 504.55614,139.46773 C 504.42625,138.47199 504.36131,137.51951 504.36132,136.6103 C 504.36131,135.70115 504.50743,134.64585 504.79967,133.4444 C 505.10273,132.29713 505.55191,131.20936 506.14721,130.18109 C 506.46109,129.71571 506.78579,129.36394 507.12133,129.12579 C 507.38109,128.92017 507.77074,128.74158 508.29028,128.59002 C 508.52839,128.59005 508.7611,128.64417 508.98841,128.75237 C 509.26981,128.93641 509.53499,129.23947 509.78394,129.66155 C 510.31428,130.59242 510.76887,131.67478 511.14771,132.90863 C 511.32088,133.57973 511.45076,134.16961 511.53736,134.67829 C 511.64559,135.18703 511.6997,135.68491 511.69972,136.17195 C 511.6997,136.78892 511.64559,137.36257 511.53736,137.8929 C 511.42911,138.41246 511.26676,139.02399 511.0503,139.7275 C 510.80135,140.44188 510.57946,141.03177 510.38465,141.49716 C 510.0924,142.07083 509.76769,142.63366 509.41053,143.18564 C 508.75028,144.22473 507.92227,145.18802 506.92651,146.07554 M 509.57288,162.60318 L 507.6571,153.72241 C 506.8345,153.94972 506.13638,154.41513 505.56274,155.11866 C 504.93496,155.81138 504.62108,156.56903 504.62108,157.39161 C 504.62108,158.62551 505.40037,159.57798 506.95898,160.24904 C 507.08885,160.29234 507.1538,160.38975 507.15381,160.54128 C 507.1538,160.70364 507.0185,160.78481 506.74792,160.78481 C 505.64391,160.44928 504.74555,159.82693 504.05284,158.91774 C 503.32766,158.00856 502.96507,157.00197 502.96507,155.89796 C 502.96507,154.84808 503.37636,153.82525 504.19896,152.82947 C 504.98908,151.83371 505.93073,151.14641 507.02392,150.76757 L 506.11474,146.74119 C 505.51943,147.22827 504.93496,147.74239 504.36132,148.28356 C 503.76601,148.79228 503.2573,149.26852 502.83519,149.71227 C 501.926,150.59982 501.16294,151.62265 500.546,152.78076 C 499.93987,153.92807 499.63681,155.12949 499.63682,156.38502 C 499.63681,157.35915 499.82623,158.24668 500.20506,159.04762 C 500.60553,159.84857 501.17918,160.53587 501.92601,161.10952 C 502.68365,161.70482 503.54954,162.14859 504.52367,162.44082 C 505.49779,162.75471 506.53144,162.91165 507.62463,162.91165 C 507.94933,162.91165 508.24698,162.89 508.51758,162.84671 C 508.80981,162.79259 509.16157,162.71141 509.57288,162.60318 M 510.17359,134.11005 L 510.01124,133.50934 C 509.91381,133.16302 509.70275,132.77878 509.37806,132.35663 C 509.1291,132.06442 508.8531,131.91831 508.55005,131.91827 C 508.3011,131.9616 508.07921,132.09148 507.8844,132.30792 C 507.86274,132.34043 507.57592,132.7409 507.02392,133.50934 C 506.53685,134.22373 506.16885,135.0355 505.91992,135.94465 C 505.81167,136.38845 505.71426,136.83221 505.62768,137.27596 C 505.56273,137.6981 505.53026,138.08234 505.53027,138.42867 C 505.53026,139.40282 505.69261,140.53388 506.01733,141.82187 C 506.62344,141.33483 507.2025,140.76118 507.75452,140.10091 C 508.19827,139.54894 508.67451,138.86164 509.18323,138.03902 C 509.58369,137.38963 509.85969,136.75645 510.01124,136.13948 C 510.11946,135.60915 510.17358,134.93268 510.17359,134.11005"
id="text4503" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 494.87943,157.13369 L 543.64987,157.13369"
id="path4507" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 494.87943,150.49851 L 543.64987,150.49851"
id="path4509" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 494.87943,143.86336 L 543.64987,143.86336"
id="path4511" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 494.87943,137.22817 L 543.64987,137.22817"
id="path4513" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 494.87943,163.76888 L 543.64987,163.76888"
id="path4515" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 527.48213,148.64328 L 527.48213,145.05526 L 525.64753,145.46115 L 525.64753,149.04917 L 527.48213,148.64328 M 529.60897,148.15622 L 529.60897,150.77012 L 528.31013,151.07859 L 528.31013,155.77062 L 527.48213,155.77062 L 527.48213,151.24095 L 525.64753,151.6793 L 525.64753,156.3551 L 524.85199,156.3551 L 524.85199,151.87413 L 523.55316,152.16637 L 523.55316,149.58494 C 524.41905,149.58494 524.85199,149.47129 524.85199,149.24399 L 524.85199,145.65597 L 523.55316,145.98068 L 523.55316,143.46419 L 524.85199,143.12325 L 524.88446,138.33381 L 525.64753,138.33381 L 525.64753,142.92842 L 527.48213,142.52254 L 527.48213,137.63568 L 528.31013,137.63568 L 528.31013,142.32771 L 529.60897,142.03548 L 529.60897,144.55196 L 528.31013,144.86044 L 528.31013,148.44846 L 529.60897,148.15622"
id="text4517" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 433.15956,58.642113 L 433.15956,55.05409 L 431.32496,55.459975 L 431.32496,59.047998 L 433.15956,58.642113 M 435.28639,58.155052 L 435.28639,60.768951 L 433.98756,61.077423 L 433.98756,65.769453 L 433.15956,65.769453 L 433.15956,61.239777 L 431.32496,61.678133 L 431.32496,66.353928 L 430.52942,66.353928 L 430.52942,61.872958 L 429.23059,62.165195 L 429.23059,59.583767 C 430.09648,59.583764 430.52942,59.470116 430.52942,59.242823 L 430.52942,55.6548 L 429.23059,55.979508 L 429.23059,53.463021 L 430.52942,53.122078 L 430.56189,48.332636 L 431.32496,48.332636 L 431.32496,52.927253 L 433.15956,52.521368 L 433.15956,47.634514 L 433.98756,47.634514 L 433.98756,52.326544 L 435.28639,52.034306 L 435.28639,54.550793 L 433.98756,54.859266 L 433.98756,58.447289 L 435.28639,58.155052"
id="text4543" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 422.10751,73.879525 L 424.10447,82.597934 C 424.9487,82.175816 425.62517,81.564283 426.13389,80.763334 C 426.66423,79.962392 426.92941,79.074858 426.92943,78.100729 C 426.92941,77.700262 426.87529,77.326848 426.76707,76.980487 C 426.62635,76.623315 426.42612,76.266137 426.16636,75.90895 C 425.76588,75.270367 425.20846,74.772482 424.49412,74.415294 C 423.79057,74.058125 422.99504,73.879536 422.10751,73.879525 M 420.48397,66.330065 L 421.47433,70.827271 C 421.85315,70.762342 422.2428,70.729872 422.64328,70.729858 C 423.83387,70.729872 424.89458,71.02752 425.82542,71.622805 C 426.77788,72.218115 427.53553,73.002825 428.09838,73.976938 C 428.62872,74.983542 428.89389,76.049665 428.89391,77.175311 C 428.89389,78.549914 428.4826,79.767568 427.66002,80.828276 C 426.81576,81.878167 425.67388,82.722407 424.23435,83.360998 L 425.43577,88.783621 C 425.47905,89.086677 425.5007,89.497973 425.50071,90.017511 C 425.5007,91.392101 425.06775,92.485283 424.20188,93.297062 C 423.31433,94.141292 422.09668,94.628354 420.54892,94.758247 C 420.06185,94.758237 419.60725,94.725766 419.18514,94.660835 C 418.78466,94.61753 418.36254,94.498471 417.91878,94.303656 C 417.11783,94.011409 416.47383,93.578466 415.98677,93.004824 C 415.45641,92.452813 415.15876,91.819633 415.09382,91.105283 C 415.09382,90.531626 415.20205,89.990446 415.41853,89.481743 C 415.53759,89.211148 415.6837,88.978441 415.85689,88.783621 C 416.00841,88.577968 416.19782,88.388555 416.42513,88.215382 C 416.82559,87.923141 417.28018,87.744552 417.7889,87.679614 C 418.36254,87.67961 418.87125,87.793258 419.31503,88.020557 C 419.75878,88.237025 420.11055,88.545497 420.37033,88.945975 C 420.51102,89.162442 420.61385,89.362678 420.6788,89.546685 C 420.74373,89.763151 420.7762,89.985035 420.77621,90.212336 C 420.7762,90.78598 420.64091,91.273041 420.37033,91.673522 C 420.06726,92.05234 419.68302,92.317518 419.21761,92.469056 C 418.75219,92.674696 418.2976,92.77752 417.85384,92.777529 C 417.87548,93.145522 418.16231,93.432347 418.71432,93.638005 C 419.22302,93.83282 419.80208,93.930232 420.4515,93.930242 C 421.77197,93.778702 422.76774,93.356582 423.43882,92.663881 C 423.79598,92.317518 424.07198,91.922457 424.26682,91.478697 C 424.43999,91.034923 424.52658,90.520802 424.52659,89.936334 C 424.52658,89.232795 424.45081,88.594203 424.29929,88.020557 L 423.30893,83.766883 C 422.42139,83.983355 421.52303,84.091591 420.61386,84.091591 C 418.96866,84.091591 417.44795,83.691118 416.05171,82.890171 C 414.63382,82.121698 413.4811,81.060986 412.59357,79.708033 C 411.91168,78.636503 411.51121,77.916734 411.39215,77.548725 C 411.24062,77.083318 411.16486,76.558374 411.16486,75.973892 L 411.06744,74.447764 C 411.06744,73.300474 411.30015,72.20188 411.76557,71.151979 C 412.20933,70.069633 412.81004,69.063039 413.5677,68.132195 C 414.24958,67.223029 414.88817,66.47079 415.48347,65.875474 L 418.77926,62.774513 C 418.49784,61.73547 418.27595,60.718053 418.11361,59.722258 C 417.98372,58.726513 417.91878,57.774037 417.91878,56.864828 C 417.91878,55.955674 418.06489,54.900374 418.35714,53.698926 C 418.66019,52.551656 419.10937,51.463885 419.70468,50.435611 C 420.01855,49.97023 420.34326,49.618463 420.6788,49.38031 C 420.93856,49.174696 421.32821,48.996107 421.84775,48.844542 C 422.08586,48.844577 422.31856,48.898695 422.54587,49.006896 C 422.82727,49.190932 423.09245,49.493992 423.3414,49.916078 C 423.87175,50.846941 424.32634,51.929299 424.70518,53.163157 C 424.87834,53.834251 425.00823,54.424136 425.09483,54.932816 C 425.20305,55.441554 425.25717,55.939439 425.25718,56.426472 C 425.25717,57.043445 425.20305,57.617095 425.09483,58.147425 C 424.98658,58.666983 424.82422,59.278516 424.60777,59.982025 C 424.35881,60.696406 424.13693,61.286291 423.94211,61.751683 C 423.64986,62.325356 423.32516,62.888182 422.96799,63.440164 C 422.30774,64.47925 421.47974,65.442549 420.48397,66.330065 M 423.13034,82.857701 L 421.21457,73.976938 C 420.39196,74.204243 419.69384,74.669658 419.1202,75.373182 C 418.49243,76.0659 418.17854,76.823552 418.17855,77.646138 C 418.17854,78.880033 418.95784,79.832509 420.51645,80.503568 C 420.64632,80.546866 420.71126,80.644278 420.71127,80.795805 C 420.71126,80.958162 420.57597,81.039339 420.30539,81.039336 C 419.20137,80.703808 418.30301,80.081452 417.61031,79.172265 C 416.88512,78.263089 416.52253,77.256495 416.52254,76.152481 C 416.52253,75.102601 416.93383,74.079772 417.75643,73.083991 C 418.54654,72.088232 419.4882,71.400934 420.58139,71.022095 L 419.6722,66.995717 C 419.0769,67.482795 418.49243,67.996916 417.91878,68.538079 C 417.32348,69.046804 416.81477,69.523042 416.39265,69.966795 C 415.48347,70.854343 414.7204,71.877172 414.10346,73.035285 C 413.49734,74.182596 413.19428,75.384014 413.19428,76.639543 C 413.19428,77.613674 413.38369,78.501208 413.76252,79.302148 C 414.16299,80.103099 414.73664,80.790397 415.48347,81.364044 C 416.24112,81.959344 417.10701,82.403111 418.08114,82.695347 C 419.05525,83.009232 420.0889,83.166174 421.1821,83.166173 C 421.50679,83.166174 421.80444,83.144527 422.07504,83.101232 C 422.36727,83.047115 422.71904,82.965938 423.13034,82.857701 M 423.73105,54.364577 L 423.5687,53.763867 C 423.47128,53.417543 423.26022,53.033305 422.93552,52.611154 C 422.68657,52.318949 422.41056,52.17283 422.10751,52.172798 C 421.85856,52.216124 421.63668,52.346007 421.44186,52.562448 C 421.42021,52.59495 421.13338,52.995423 420.58139,53.763867 C 420.09432,54.478254 419.72631,55.290023 419.47738,56.199177 C 419.36914,56.642972 419.27172,57.086739 419.18514,57.53048 C 419.12019,57.952626 419.08772,58.336863 419.08773,58.683193 C 419.08772,59.657341 419.25008,60.788406 419.57479,62.076391 C 420.1809,61.589352 420.75997,61.015701 421.31198,60.355439 C 421.75574,59.80346 422.23197,59.116162 422.7407,58.293543 C 423.14116,57.644154 423.41716,57.010974 423.5687,56.394002 C 423.67692,55.863674 423.73104,55.187199 423.73105,54.364577"
id="text4547" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 408.43689,77.388218 L 450.60145,77.388218"
id="path4551" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 408.43689,70.753036 L 450.60145,70.753036"
id="path4553" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 408.43689,64.117883 L 450.60145,64.117883"
id="path4555" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 408.43689,57.4827 L 450.60145,57.4827"
id="path4557" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 408.43689,84.023401 L 450.60145,84.023401"
id="path4559" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 514.6573,391.89243 L 514.6573,388.30441 L 512.8227,388.71029 L 512.8227,392.29832 L 514.6573,391.89243 M 516.78414,391.40537 L 516.78414,394.01927 L 515.4853,394.32774 L 515.4853,399.01977 L 514.6573,399.01977 L 514.6573,394.49009 L 512.8227,394.92845 L 512.8227,399.60424 L 512.02716,399.60424 L 512.02716,395.12327 L 510.72833,395.41551 L 510.72833,392.83408 C 511.59422,392.83408 512.02716,392.72043 512.02716,392.49314 L 512.02716,388.90512 L 510.72833,389.22982 L 510.72833,386.71334 L 512.02716,386.37239 L 512.05964,381.58295 L 512.8227,381.58295 L 512.8227,386.17757 L 514.6573,385.77169 L 514.6573,380.88483 L 515.4853,380.88483 L 515.4853,385.57686 L 516.78414,385.28462 L 516.78414,387.80111 L 515.4853,388.10958 L 515.4853,391.69761 L 516.78414,391.40537"
id="text4587" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 503.60526,407.12985 L 505.60221,415.84826 C 506.44644,415.42614 507.12291,414.81461 507.63164,414.01366 C 508.16198,413.21272 508.42715,412.32519 508.42717,411.35106 C 508.42715,410.95059 508.37304,410.57718 508.26482,410.23081 C 508.12409,409.87364 507.92386,409.51646 507.66411,409.15928 C 507.26362,408.52069 506.7062,408.02281 505.99186,407.66562 C 505.28831,407.30845 504.49278,407.12986 503.60526,407.12985 M 501.98172,399.58039 L 502.97208,404.0776 C 503.35089,404.01267 503.74054,403.9802 504.14102,403.98019 C 505.33161,403.9802 506.39232,404.27785 507.32316,404.87313 C 508.27562,405.46844 509.03327,406.25315 509.59612,407.22727 C 510.12646,408.23387 510.39163,409.29999 510.39165,410.42564 C 510.39163,411.80024 509.98034,413.0179 509.15776,414.0786 C 508.31351,415.1285 507.17162,415.97274 505.73209,416.61133 L 506.93351,422.03395 C 506.97679,422.337 506.99844,422.7483 506.99845,423.26784 C 506.99844,424.64243 506.5655,425.73561 505.69962,426.54739 C 504.81208,427.39162 503.59442,427.87868 502.04666,428.00858 C 501.55959,428.00856 501.105,427.97609 500.68288,427.91116 C 500.2824,427.86786 499.86028,427.7488 499.41652,427.55398 C 498.61557,427.26174 497.97157,426.82879 497.48451,426.25515 C 496.95415,425.70314 496.6565,425.06996 496.59156,424.35561 C 496.59156,423.78195 496.6998,423.24077 496.91627,422.73207 C 497.03533,422.46148 497.18145,422.22877 497.35463,422.03395 C 497.50615,421.8283 497.69557,421.63888 497.92287,421.46571 C 498.32333,421.17347 498.77793,420.99488 499.28664,420.92994 C 499.86028,420.92994 500.36899,421.04359 500.81277,421.27089 C 501.25653,421.48735 501.60829,421.79583 501.86807,422.1963 C 502.00877,422.41277 502.11159,422.61301 502.17654,422.79701 C 502.24147,423.01348 502.27394,423.23536 502.27395,423.46266 C 502.27394,424.03631 502.13865,424.52337 501.86807,424.92385 C 501.565,425.30267 501.18076,425.56785 500.71536,425.71938 C 500.24993,425.92502 499.79534,426.02785 499.35158,426.02786 C 499.37322,426.39585 499.66005,426.68268 500.21206,426.88833 C 500.72076,427.08315 501.29982,427.18056 501.94925,427.18057 C 503.26971,427.02903 504.26548,426.60691 504.93656,425.91421 C 505.29372,425.56785 505.56973,425.17278 505.76456,424.72903 C 505.93773,424.28525 506.02432,423.77113 506.02433,423.18666 C 506.02432,422.48312 505.94855,421.84453 505.79704,421.27089 L 504.80668,417.01721 C 503.91913,417.23368 503.02077,417.34192 502.1116,417.34192 C 500.4664,417.34192 498.94569,416.94145 497.54945,416.1405 C 496.13156,415.37203 494.97885,414.31131 494.09131,412.95836 C 493.40943,411.88683 493.00895,411.16706 492.88989,410.79905 C 492.73836,410.33365 492.6626,409.8087 492.6626,409.22422 L 492.56519,407.69809 C 492.56519,406.5508 492.79789,405.45221 493.26331,404.40231 C 493.70707,403.31996 494.30778,402.31337 495.06544,401.38252 C 495.74732,400.47336 496.38591,399.72112 496.98121,399.1258 L 500.277,396.02484 C 499.99558,394.9858 499.7737,393.96838 499.61135,392.97259 C 499.48146,391.97684 499.41652,391.02436 499.41652,390.11516 C 499.41652,389.206 499.56264,388.1507 499.85488,386.94925 C 500.15793,385.80198 500.60711,384.71421 501.20242,383.68594 C 501.51629,383.22056 501.841,382.86879 502.17654,382.63064 C 502.4363,382.42502 502.82595,382.24644 503.34549,382.09487 C 503.5836,382.0949 503.81631,382.14902 504.04361,382.25722 C 504.32501,382.44126 504.59019,382.74432 504.83915,383.16641 C 505.36949,384.09727 505.82408,385.17963 506.20292,386.41349 C 506.37608,387.08458 506.50597,387.67446 506.59257,388.18314 C 506.70079,388.69188 506.75491,389.18977 506.75492,389.6768 C 506.75491,390.29377 506.70079,390.86742 506.59257,391.39775 C 506.48432,391.91731 506.32197,392.52884 506.10551,393.23235 C 505.85655,393.94673 505.63467,394.53662 505.43986,395.00201 C 505.14761,395.57568 504.8229,396.13851 504.46573,396.69049 C 503.80548,397.72958 502.97748,398.69288 501.98172,399.58039 M 504.62809,416.10803 L 502.71231,407.22727 C 501.88971,407.45457 501.19159,407.91999 500.61794,408.62351 C 499.99017,409.31623 499.67628,410.07388 499.67629,410.89647 C 499.67628,412.13036 500.45558,413.08284 502.01419,413.7539 C 502.14406,413.79719 502.209,413.89461 502.20901,414.04613 C 502.209,414.20849 502.07371,414.28967 501.80313,414.28966 C 500.69911,413.95414 499.80075,413.33178 499.10805,412.42259 C 498.38286,411.51342 498.02027,410.50682 498.02028,409.40281 C 498.02027,408.35293 498.43157,407.3301 499.25417,406.33432 C 500.04428,405.33856 500.98594,404.65126 502.07913,404.27242 L 501.16995,400.24604 C 500.57464,400.73312 499.99017,401.24724 499.41652,401.78841 C 498.82122,402.29713 498.31251,402.77337 497.8904,403.21712 C 496.98121,404.10467 496.21815,405.1275 495.6012,406.28561 C 494.99508,407.43292 494.69202,408.63434 494.69202,409.88987 C 494.69202,410.864 494.88143,411.75154 495.26026,412.55248 C 495.66073,413.35343 496.23438,414.04072 496.98121,414.61437 C 497.73886,415.20967 498.60475,415.65344 499.57888,415.94567 C 500.55299,416.25956 501.58665,416.4165 502.67984,416.4165 C 503.00454,416.4165 503.30218,416.39486 503.57279,416.35156 C 503.86501,416.29744 504.21678,416.21627 504.62809,416.10803 M 505.2288,387.6149 L 505.06644,387.0142 C 504.96902,386.66787 504.75796,386.28363 504.43326,385.86148 C 504.18431,385.56928 503.90831,385.42316 503.60526,385.42313 C 503.3563,385.46645 503.13442,385.59634 502.9396,385.81278 C 502.91795,385.84528 502.63112,386.24575 502.07913,387.0142 C 501.59206,387.72858 501.22406,388.54035 500.97512,389.4495 C 500.86688,389.8933 500.76947,390.33707 500.68288,390.78081 C 500.61793,391.20295 500.58546,391.58719 500.58547,391.93352 C 500.58546,392.90767 500.74782,394.03873 501.07253,395.32672 C 501.67865,394.83968 502.25771,394.26603 502.80972,393.60577 C 503.25348,393.05379 503.72972,392.36649 504.23844,391.54387 C 504.6389,390.89448 504.9149,390.2613 505.06644,389.64433 C 505.17467,389.114 505.22878,388.43753 505.2288,387.6149"
id="text4591" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 489.93464,410.63852 L 552.59467,410.63852"
id="path4595" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 489.93464,404.00334 L 552.59467,404.00334"
id="path4597" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 489.93464,397.36819 L 552.59467,397.36819"
id="path4599" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 489.93464,390.733 L 552.59467,390.733"
id="path4601" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 489.93464,417.27371 L 552.59467,417.27371"
id="path4603" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 522.53736,402.14814 L 522.53736,398.56011 L 520.70276,398.966 L 520.70276,402.55402 L 522.53736,402.14814 M 524.6642,401.66107 L 524.6642,404.27497 L 523.36537,404.58345 L 523.36537,409.27548 L 522.53736,409.27548 L 522.53736,404.7458 L 520.70276,405.18416 L 520.70276,409.85995 L 519.90723,409.85995 L 519.90723,405.37898 L 518.6084,405.67122 L 518.6084,403.08979 C 519.47429,403.08979 519.90723,402.97614 519.90723,402.74885 L 519.90723,399.16082 L 518.6084,399.48553 L 518.6084,396.96904 L 519.90723,396.6281 L 519.9397,391.83866 L 520.70276,391.83866 L 520.70276,396.43328 L 522.53736,396.02739 L 522.53736,391.14054 L 523.36537,391.14054 L 523.36537,395.83257 L 524.6642,395.54033 L 524.6642,398.05682 L 523.36537,398.36529 L 523.36537,401.95331 L 524.6642,401.66107"
id="text4605" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 530.41737,389.11527 L 530.41737,385.52725 L 528.58277,385.93313 L 528.58277,389.52115 L 530.41737,389.11527 M 532.54421,388.62821 L 532.54421,391.24211 L 531.24537,391.55058 L 531.24537,396.24261 L 530.41737,396.24261 L 530.41737,391.71293 L 528.58277,392.15129 L 528.58277,396.82708 L 527.78724,396.82708 L 527.78724,392.34611 L 526.4884,392.63835 L 526.4884,390.05692 C 527.35429,390.05692 527.78723,389.94327 527.78724,389.71598 L 527.78724,386.12796 L 526.4884,386.45266 L 526.4884,383.93618 L 527.78724,383.59523 L 527.81971,378.80579 L 528.58277,378.80579 L 528.58277,383.40041 L 530.41737,382.99452 L 530.41737,378.10767 L 531.24537,378.10767 L 531.24537,382.7997 L 532.54421,382.50746 L 532.54421,385.02395 L 531.24537,385.33242 L 531.24537,388.92044 L 532.54421,388.62821"
id="text4609" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 538.29737,399.01609 L 538.29737,395.42806 L 536.46277,395.83395 L 536.46277,399.42197 L 538.29737,399.01609 M 540.42421,398.52903 L 540.42421,401.14292 L 539.12538,401.4514 L 539.12538,406.14343 L 538.29737,406.14343 L 538.29737,401.61375 L 536.46277,402.05211 L 536.46277,406.7279 L 535.66724,406.7279 L 535.66724,402.24693 L 534.36841,402.53917 L 534.36841,399.95774 C 535.2343,399.95774 535.66724,399.84409 535.66724,399.6168 L 535.66724,396.02877 L 534.36841,396.35348 L 534.36841,393.837 L 535.66724,393.49605 L 535.69971,388.70661 L 536.46277,388.70661 L 536.46277,393.30123 L 538.29737,392.89534 L 538.29737,388.00849 L 539.12538,388.00849 L 539.12538,392.70052 L 540.42421,392.40828 L 540.42421,394.92477 L 539.12538,395.23324 L 539.12538,398.82126 L 540.42421,398.52903"
id="text4613" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 422.0933,469.63791 L 422.0933,466.04989 L 420.2587,466.45578 L 420.2587,470.0438 L 422.0933,469.63791 M 424.22014,469.15085 L 424.22014,471.76475 L 422.92131,472.07322 L 422.92131,476.76525 L 422.0933,476.76525 L 422.0933,472.23558 L 420.2587,472.67393 L 420.2587,477.34973 L 419.46317,477.34973 L 419.46317,472.86876 L 418.16434,473.16099 L 418.16434,470.57957 C 419.03022,470.57956 419.46317,470.46592 419.46317,470.23862 L 419.46317,466.6506 L 418.16434,466.97531 L 418.16434,464.45882 L 419.46317,464.11788 L 419.49564,459.32844 L 420.2587,459.32844 L 420.2587,463.92305 L 422.0933,463.51717 L 422.0933,458.63031 L 422.92131,458.63031 L 422.92131,463.32234 L 424.22014,463.03011 L 424.22014,465.54659 L 422.92131,465.85507 L 422.92131,469.44309 L 424.22014,469.15085"
id="text4631" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 411.04126,484.87531 L 413.03821,493.59372 C 413.88244,493.1716 414.55892,492.56006 415.06764,491.75912 C 415.59798,490.95817 415.86316,490.07064 415.86317,489.09651 C 415.86316,488.69604 415.80904,488.32263 415.70082,487.97627 C 415.5601,487.6191 415.35986,487.26192 415.10011,486.90473 C 414.69962,486.26615 414.14221,485.76826 413.42786,485.41107 C 412.72432,485.05391 411.92878,484.87532 411.04126,484.87531 M 409.41772,477.32585 L 410.40808,481.82305 C 410.7869,481.75812 411.17654,481.72565 411.57703,481.72564 C 412.76761,481.72565 413.82832,482.0233 414.75917,482.61859 C 415.71163,483.2139 416.46928,483.99861 417.03212,484.97272 C 417.56246,485.97932 417.82764,487.04545 417.82766,488.17109 C 417.82764,489.54569 417.41634,490.76335 416.59377,491.82406 C 415.74951,492.87395 414.60762,493.71819 413.1681,494.35678 L 414.36952,499.7794 C 414.4128,500.08246 414.43444,500.49375 414.43446,501.01329 C 414.43444,502.38788 414.0015,503.48106 413.13563,504.29284 C 412.24808,505.13707 411.03043,505.62413 409.48266,505.75403 C 408.99559,505.75402 408.541,505.72155 408.11889,505.65662 C 407.71841,505.61331 407.29629,505.49425 406.85253,505.29944 C 406.05158,505.00719 405.40757,504.57425 404.92052,504.00061 C 404.39016,503.44859 404.09251,502.81541 404.02757,502.10106 C 404.02756,501.52741 404.1358,500.98623 404.35228,500.47752 C 404.47133,500.20693 404.61745,499.97422 404.79063,499.7794 C 404.94216,499.57375 405.13157,499.38434 405.35887,499.21116 C 405.75934,498.91892 406.21393,498.74033 406.72265,498.67539 C 407.29629,498.67539 407.805,498.78904 408.24877,499.01634 C 408.69253,499.23281 409.0443,499.54128 409.30407,499.94176 C 409.44477,500.15822 409.54759,500.35846 409.61255,500.54247 C 409.67748,500.75893 409.70995,500.98082 409.70996,501.20812 C 409.70995,501.78176 409.57465,502.26882 409.30407,502.6693 C 409.001,503.04812 408.61677,503.3133 408.15136,503.46484 C 407.68594,503.67048 407.23135,503.7733 406.78759,503.77331 C 406.80923,504.1413 407.09605,504.42813 407.64806,504.63379 C 408.15676,504.8286 408.73583,504.92601 409.38525,504.92602 C 410.70572,504.77448 411.70149,504.35236 412.37256,503.65966 C 412.72973,503.3133 413.00573,502.91824 413.20057,502.47448 C 413.37373,502.0307 413.46032,501.51658 413.46034,500.93212 C 413.46032,500.22858 413.38456,499.58998 413.23304,499.01634 L 412.24268,494.76266 C 411.35513,494.97914 410.45678,495.08737 409.5476,495.08737 C 407.90241,495.08737 406.3817,494.6869 404.98546,493.88595 C 403.56756,493.11748 402.41485,492.05677 401.52732,490.70381 C 400.84543,489.63228 400.44496,488.91251 400.3259,488.54451 C 400.17437,488.0791 400.0986,487.55415 400.0986,486.96967 L 400.00119,485.44355 C 400.00119,484.29625 400.2339,483.19766 400.69931,482.14776 C 401.14308,481.06541 401.74379,480.05882 402.50144,479.12798 C 403.18333,478.21881 403.82192,477.46657 404.41722,476.87126 L 407.713,473.77029 C 407.43158,472.73125 407.2097,471.71383 407.04735,470.71804 C 406.91746,469.72229 406.85252,468.76982 406.85253,467.86061 C 406.85252,466.95146 406.99864,465.89616 407.29088,464.69471 C 407.59394,463.54744 408.04312,462.45967 408.63842,461.43139 C 408.9523,460.96601 409.27701,460.61424 409.61255,460.37609 C 409.8723,460.17048 410.26195,459.99189 410.78149,459.84032 C 411.0196,459.84036 411.25231,459.89448 411.47962,460.00268 C 411.76102,460.18671 412.0262,460.48977 412.27515,460.91186 C 412.80549,461.84272 413.26009,462.92508 413.63892,464.15894 C 413.81209,464.83003 413.94197,465.41992 414.02857,465.9286 C 414.1368,466.43733 414.19091,466.93522 414.19093,467.42225 C 414.19091,468.03923 414.1368,468.61288 414.02857,469.14321 C 413.92032,469.66276 413.75797,470.2743 413.54151,470.97781 C 413.29256,471.69219 413.07067,472.28207 412.87586,472.74746 C 412.58361,473.32114 412.2589,473.88396 411.90174,474.43595 C 411.24149,475.47503 410.41348,476.43833 409.41772,477.32585 M 412.06409,493.85348 L 410.14831,484.97272 C 409.32571,485.20002 408.62759,485.66544 408.05395,486.36896 C 407.42617,487.06168 407.11229,487.81933 407.11229,488.64192 C 407.11229,489.87581 407.89159,490.82829 409.45019,491.49935 C 409.58007,491.54265 409.64501,491.64006 409.64502,491.79159 C 409.64501,491.95394 409.50971,492.03512 409.23913,492.03512 C 408.13512,491.69959 407.23676,491.07723 406.54406,490.16805 C 405.81887,489.25887 405.45628,488.25228 405.45628,487.14826 C 405.45628,486.09838 405.86757,485.07555 406.69017,484.07977 C 407.48029,483.08401 408.42194,482.39671 409.51513,482.01788 L 408.60595,477.9915 C 408.01065,478.47858 407.42617,478.9927 406.85253,479.53386 C 406.25722,480.04258 405.74852,480.51882 405.3264,480.96258 C 404.41721,481.85012 403.65415,482.87295 403.03721,484.03107 C 402.43109,485.17838 402.12803,486.3798 402.12803,487.63532 C 402.12803,488.60945 402.31744,489.49699 402.69627,490.29793 C 403.09674,491.09888 403.67039,491.78618 404.41722,492.35982 C 405.17487,492.95513 406.04075,493.39889 407.01488,493.69113 C 407.989,494.00501 409.02265,494.16196 410.11584,494.16195 C 410.44054,494.16196 410.73819,494.14031 411.00879,494.09701 C 411.30102,494.0429 411.65278,493.96172 412.06409,493.85348 M 412.6648,465.36036 L 412.50245,464.75965 C 412.40502,464.41332 412.19396,464.02909 411.86927,463.60693 C 411.62031,463.31473 411.34431,463.16861 411.04126,463.16858 C 410.79231,463.21191 410.57042,463.34179 410.37561,463.55823 C 410.35395,463.59073 410.06713,463.9912 409.51513,464.75965 C 409.02806,465.47404 408.66006,466.2858 408.41113,467.19496 C 408.30288,467.63875 408.20547,468.08252 408.11889,468.52626 C 408.05394,468.94841 408.02147,469.33264 408.02148,469.67897 C 408.02147,470.65312 408.18382,471.78419 408.50854,473.07217 C 409.11465,472.58513 409.69371,472.01148 410.24573,471.35122 C 410.68948,470.79924 411.16572,470.11194 411.67444,469.28932 C 412.0749,468.63993 412.3509,468.00675 412.50245,467.38978 C 412.61067,466.85945 412.66479,466.18298 412.6648,465.36036"
id="text4635" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 397.37063,488.384 L 473.66772,488.384"
id="path4639" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 397.37063,481.74882 L 473.66772,481.74882"
id="path4641" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 397.37063,475.11367 L 473.66772,475.11367"
id="path4643" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 397.37063,468.47848 L 473.66772,468.47848"
id="path4645" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 397.37063,495.01919 L 473.66772,495.01919"
id="path4647" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 429.97331,479.89359 L 429.97331,476.30557 L 428.13871,476.71145 L 428.13871,480.29947 L 429.97331,479.89359 M 432.10015,479.40653 L 432.10015,482.02043 L 430.80131,482.3289 L 430.80131,487.02093 L 429.97331,487.02093 L 429.97331,482.49125 L 428.13871,482.92961 L 428.13871,487.6054 L 427.34317,487.6054 L 427.34317,483.12443 L 426.04434,483.41667 L 426.04434,480.83524 C 426.91023,480.83524 427.34317,480.72159 427.34317,480.4943 L 427.34317,476.90628 L 426.04434,477.23098 L 426.04434,474.7145 L 427.34317,474.37355 L 427.37564,469.58411 L 428.13871,469.58411 L 428.13871,474.17873 L 429.97331,473.77284 L 429.97331,468.88599 L 430.80131,468.88599 L 430.80131,473.57802 L 432.10015,473.28578 L 432.10015,475.80227 L 430.80131,476.11074 L 430.80131,479.69876 L 432.10015,479.40653"
id="text4649" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 437.85334,466.86075 L 437.85334,463.27273 L 436.01874,463.67861 L 436.01874,467.26664 L 437.85334,466.86075 M 439.98018,466.37369 L 439.98018,468.98759 L 438.68135,469.29606 L 438.68135,473.98809 L 437.85334,473.98809 L 437.85334,469.45842 L 436.01874,469.89677 L 436.01874,474.57257 L 435.22321,474.57257 L 435.22321,470.0916 L 433.92438,470.38383 L 433.92438,467.80241 C 434.79026,467.8024 435.22321,467.68876 435.22321,467.46146 L 435.22321,463.87344 L 433.92438,464.19815 L 433.92438,461.68166 L 435.22321,461.34072 L 435.25568,456.55128 L 436.01874,456.55128 L 436.01874,461.14589 L 437.85334,460.74001 L 437.85334,455.85315 L 438.68135,455.85315 L 438.68135,460.54518 L 439.98018,460.25295 L 439.98018,462.76943 L 438.68135,463.07791 L 438.68135,466.66593 L 439.98018,466.37369"
id="text4653" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 445.73338,476.76157 L 445.73338,473.17355 L 443.89878,473.57943 L 443.89878,477.16746 L 445.73338,476.76157 M 447.86022,476.27451 L 447.86022,478.88841 L 446.56138,479.19688 L 446.56138,483.88891 L 445.73338,483.88891 L 445.73338,479.35923 L 443.89878,479.79759 L 443.89878,484.47338 L 443.10324,484.47338 L 443.10324,479.99241 L 441.80441,480.28465 L 441.80441,477.70322 C 442.6703,477.70322 443.10324,477.58957 443.10324,477.36228 L 443.10324,473.77426 L 441.80441,474.09897 L 441.80441,471.58248 L 443.10324,471.24154 L 443.13572,466.45209 L 443.89878,466.45209 L 443.89878,471.04671 L 445.73338,470.64083 L 445.73338,465.75397 L 446.56138,465.75397 L 446.56138,470.446 L 447.86022,470.15376 L 447.86022,472.67025 L 446.56138,472.97872 L 446.56138,476.56675 L 447.86022,476.27451"
id="text4657" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 453.61341,486.42487 L 453.61341,482.83685 L 451.77881,483.24273 L 451.77881,486.83076 L 453.61341,486.42487 M 455.74025,485.93781 L 455.74025,488.55171 L 454.44142,488.86018 L 454.44142,493.55221 L 453.61341,493.55221 L 453.61341,489.02253 L 451.77881,489.46089 L 451.77881,494.13668 L 450.98328,494.13668 L 450.98328,489.65571 L 449.68445,489.94795 L 449.68445,487.36652 C 450.55034,487.36652 450.98328,487.25287 450.98328,487.02558 L 450.98328,483.43756 L 449.68445,483.76226 L 449.68445,481.24578 L 450.98328,480.90483 L 451.01575,476.11539 L 451.77881,476.11539 L 451.77881,480.71001 L 453.61341,480.30413 L 453.61341,475.41727 L 454.44142,475.41727 L 454.44142,480.1093 L 455.74025,479.81706 L 455.74025,482.33355 L 454.44142,482.64202 L 454.44142,486.23005 L 455.74025,485.93781"
id="text4661" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 184.23323,66.952373 L 184.23323,71.498285 L 185.02877,70.572867 C 185.34265,70.194039 185.63489,69.815214 185.90548,69.436389 C 186.03536,69.241563 186.15442,69.057562 186.26266,68.884385 C 186.34924,68.722031 186.45207,68.532618 186.57113,68.316146 C 186.65772,68.132146 186.7443,67.931909 186.8309,67.715437 C 186.89583,67.585554 186.92831,67.45026 186.92831,67.309552 C 186.92831,67.093081 186.89583,66.876609 186.8309,66.660136 C 186.76595,66.432842 186.68477,66.259665 186.58737,66.140603 C 186.50077,66.010722 186.38171,65.91331 186.23019,65.848366 C 186.07865,65.805074 185.91089,65.772603 185.72689,65.750954 C 185.40218,65.750956 185.07206,65.902486 184.73653,66.205545 C 184.401,66.497784 184.23323,66.746726 184.23323,66.952373 M 183.40523,73.300414 L 183.40523,55.084297 L 184.23323,55.084297 L 184.23323,65.718483 C 185.09912,65.036599 185.91089,64.695656 186.66854,64.695653 C 187.01489,64.695656 187.34501,64.793069 187.6589,64.98789 C 187.99443,65.204365 188.27043,65.49119 188.48691,65.848366 C 188.69255,66.227194 188.79537,66.60602 188.79538,66.984844 C 188.79537,67.590966 188.5302,68.202499 187.99985,68.819444 C 187.71843,69.154975 187.38831,69.5338 187.00949,69.955922 C 186.63066,70.37804 186.29513,70.718983 186.00289,70.978752 L 183.40523,73.300414"
id="text4825" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 172.28217,71.274514 L 174.27912,79.992923 C 175.12335,79.570805 175.79982,78.959272 176.30855,78.158323 C 176.83889,77.357381 177.10406,76.469847 177.10408,75.495718 C 177.10406,75.095251 177.04995,74.721837 176.94173,74.375476 C 176.801,74.018304 176.60077,73.661126 176.34102,73.303939 C 175.94053,72.665356 175.38311,72.167471 174.66877,71.810283 C 173.96522,71.453114 173.16969,71.274525 172.28217,71.274514 M 170.65863,63.725054 L 171.64899,68.22226 C 172.0278,68.157331 172.41745,68.124861 172.81793,68.124847 C 174.00852,68.124861 175.06923,68.422509 176.00007,69.017794 C 176.95253,69.613104 177.71018,70.397814 178.27303,71.371927 C 178.80337,72.378531 179.06855,73.444654 179.06856,74.5703 C 179.06855,75.944903 178.65725,77.162557 177.83467,78.223265 C 176.99042,79.273156 175.84853,80.117396 174.409,80.755987 L 175.61042,86.17861 C 175.6537,86.481666 175.67535,86.892962 175.67536,87.4125 C 175.67535,88.78709 175.24241,89.880272 174.37653,90.692051 C 173.48899,91.536281 172.27133,92.023343 170.72357,92.153236 C 170.2365,92.153226 169.78191,92.120755 169.3598,92.055824 C 168.95931,92.012519 168.53719,91.89346 168.09343,91.698645 C 167.29248,91.406398 166.64848,90.973455 166.16142,90.399813 C 165.63106,89.847802 165.33341,89.214622 165.26847,88.500272 C 165.26847,87.926615 165.37671,87.385435 165.59318,86.876732 C 165.71224,86.606137 165.85836,86.37343 166.03154,86.17861 C 166.18306,85.972957 166.37248,85.783544 166.59978,85.610371 C 167.00024,85.31813 167.45484,85.139541 167.96355,85.074603 C 168.53719,85.074599 169.0459,85.188247 169.48968,85.415546 C 169.93344,85.632014 170.2852,85.940486 170.54498,86.340964 C 170.68568,86.557431 170.7885,86.757667 170.85345,86.941674 C 170.91838,87.15814 170.95085,87.380024 170.95086,87.607325 C 170.95085,88.180969 170.81556,88.66803 170.54498,89.068511 C 170.24191,89.447329 169.85767,89.712507 169.39227,89.864045 C 168.92684,90.069685 168.47225,90.172509 168.02849,90.172518 C 168.05013,90.540511 168.33696,90.827336 168.88897,91.032994 C 169.39767,91.227809 169.97673,91.325221 170.62616,91.325231 C 171.94662,91.173691 172.94239,90.751571 173.61347,90.05887 C 173.97064,89.712507 174.24664,89.317446 174.44147,88.873686 C 174.61464,88.429912 174.70123,87.915791 174.70124,87.331323 C 174.70123,86.627784 174.62546,85.989192 174.47395,85.415546 L 173.48359,81.161872 C 172.59604,81.378344 171.69768,81.48658 170.78851,81.48658 C 169.14332,81.48658 167.6226,81.086107 166.22636,80.28516 C 164.80847,79.516687 163.65576,78.455975 162.76822,77.103022 C 162.08634,76.031492 161.68586,75.311723 161.5668,74.943714 C 161.41527,74.478307 161.33951,73.953363 161.33951,73.368881 L 161.2421,71.842753 C 161.2421,70.695463 161.4748,69.596869 161.94022,68.546968 C 162.38398,67.464622 162.98469,66.458028 163.74235,65.527184 C 164.42423,64.618018 165.06282,63.865779 165.65812,63.270463 L 168.95391,60.169502 C 168.67249,59.130459 168.45061,58.113042 168.28826,57.117247 C 168.15837,56.121502 168.09343,55.169026 168.09343,54.259817 C 168.09343,53.350663 168.23955,52.295363 168.53179,51.093915 C 168.83484,49.946645 169.28402,48.858874 169.87933,47.8306 C 170.1932,47.365219 170.51791,47.013452 170.85345,46.775299 C 171.11321,46.569685 171.50286,46.391096 172.0224,46.239531 C 172.26051,46.239566 172.49322,46.293684 172.72052,46.401885 C 173.00192,46.585921 173.2671,46.888981 173.51606,47.311067 C 174.0464,48.24193 174.50099,49.324288 174.87983,50.558146 C 175.05299,51.22924 175.18288,51.819125 175.26948,52.327805 C 175.3777,52.836543 175.43182,53.334428 175.43183,53.821461 C 175.43182,54.438434 175.3777,55.012084 175.26948,55.542414 C 175.16123,56.061972 174.99888,56.673505 174.78242,57.377014 C 174.53346,58.091395 174.31158,58.68128 174.11677,59.146672 C 173.82452,59.720345 173.49981,60.283171 173.14264,60.835153 C 172.48239,61.874239 171.65439,62.837538 170.65863,63.725054 M 173.305,80.25269 L 171.38922,71.371927 C 170.56662,71.599232 169.8685,72.064647 169.29485,72.768171 C 168.66708,73.460889 168.35319,74.218541 168.3532,75.041127 C 168.35319,76.275022 169.13249,77.227498 170.6911,77.898557 C 170.82097,77.941855 170.88591,78.039267 170.88592,78.190794 C 170.88591,78.353151 170.75062,78.434328 170.48004,78.434325 C 169.37602,78.098797 168.47766,77.476441 167.78496,76.567254 C 167.05977,75.658078 166.69718,74.651484 166.69719,73.54747 C 166.69718,72.49759 167.10848,71.474761 167.93108,70.47898 C 168.7212,69.483221 169.66285,68.795923 170.75604,68.417084 L 169.84686,64.390706 C 169.25155,64.877784 168.66708,65.391905 168.09343,65.933068 C 167.49813,66.441793 166.98942,66.918031 166.56731,67.361784 C 165.65812,68.249332 164.89506,69.272161 164.27812,70.430274 C 163.67199,71.577585 163.36893,72.779003 163.36893,74.034532 C 163.36893,75.008663 163.55834,75.896197 163.93717,76.697137 C 164.33764,77.498088 164.91129,78.185386 165.65812,78.759033 C 166.41577,79.354333 167.28166,79.7981 168.25579,80.090336 C 169.2299,80.404221 170.26356,80.561163 171.35675,80.561162 C 171.68145,80.561163 171.9791,80.539516 172.2497,80.496221 C 172.54192,80.442104 172.89369,80.360927 173.305,80.25269 M 173.90571,51.759566 L 173.74335,51.158856 C 173.64593,50.812532 173.43487,50.428294 173.11017,50.006143 C 172.86122,49.713938 172.58522,49.567819 172.28217,49.567787 C 172.03321,49.611113 171.81133,49.740996 171.61652,49.957437 C 171.59486,49.989939 171.30803,50.390412 170.75604,51.158856 C 170.26897,51.873243 169.90097,52.685012 169.65203,53.594166 C 169.54379,54.037961 169.44638,54.481728 169.3598,54.925469 C 169.29485,55.347615 169.26237,55.731852 169.26238,56.078182 C 169.26237,57.05233 169.42473,58.183395 169.74944,59.47138 C 170.35556,58.984341 170.93462,58.41069 171.48663,57.750428 C 171.93039,57.198449 172.40663,56.511151 172.91535,55.688532 C 173.31581,55.039143 173.59181,54.405963 173.74335,53.788991 C 173.85158,53.258663 173.90569,52.582188 173.90571,51.759566"
id="text4829" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 158.61152,74.783205 L 204.19432,74.783205"
id="path4833" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 158.61152,68.148025 L 204.19432,68.148025"
id="path4835" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 158.61152,61.512865 L 204.19432,61.512865"
id="path4837" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 158.61152,54.877686 L 204.19432,54.877686"
id="path4839" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 158.61152,81.418385 L 204.19432,81.418385"
id="path4841" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 107.21301,518.22376 L 107.21301,514.63574 L 105.37841,515.04162 L 105.37841,518.62964 L 107.21301,518.22376 M 109.33985,517.7367 L 109.33985,520.3506 L 108.04101,520.65907 L 108.04101,525.3511 L 107.21301,525.3511 L 107.21301,520.82142 L 105.37841,521.25978 L 105.37841,525.93557 L 104.58287,525.93557 L 104.58287,521.4546 L 103.28404,521.74684 L 103.28404,519.16541 C 104.14993,519.16541 104.58287,519.05176 104.58287,518.82447 L 104.58287,515.23645 L 103.28404,515.56115 L 103.28404,513.04467 L 104.58287,512.70372 L 104.61535,507.91428 L 105.37841,507.91428 L 105.37841,512.5089 L 107.21301,512.10301 L 107.21301,507.21616 L 108.04101,507.21616 L 108.04101,511.90819 L 109.33985,511.61595 L 109.33985,514.13244 L 108.04101,514.44091 L 108.04101,518.02893 L 109.33985,517.7367"
id="text2481" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 96.160966,533.46115 L 98.15792,542.17956 C 99.002147,541.75744 99.678621,541.14591 100.18734,540.34496 C 100.71769,539.54402 100.98286,538.65648 100.98288,537.68236 C 100.98286,537.28189 100.92875,536.90848 100.82053,536.56211 C 100.6798,536.20494 100.47957,535.84776 100.21982,535.49058 C 99.819328,534.85199 99.261913,534.35411 98.54757,533.99692 C 97.844023,533.63975 97.048489,533.46116 96.160966,533.46115 M 94.537426,525.91169 L 95.527786,530.4089 C 95.906601,530.34397 96.29625,530.3115 96.696734,530.31149 C 97.887317,530.3115 98.948029,530.60915 99.878872,531.20443 C 100.83133,531.79974 101.58898,532.58445 102.15183,533.55856 C 102.68217,534.56517 102.94734,535.63129 102.94736,536.75694 C 102.94734,538.13154 102.53605,539.34919 101.71347,540.4099 C 100.86922,541.45979 99.727327,542.30403 98.287803,542.94262 L 99.489223,548.36525 C 99.532503,548.6683 99.55415,549.0796 99.554164,549.59914 C 99.55415,550.97373 99.121206,552.06691 98.255332,552.87869 C 97.367785,553.72292 96.150131,554.20998 94.602368,554.33987 C 94.115297,554.33986 93.660706,554.30739 93.238594,554.24246 C 92.838114,554.19916 92.415994,554.0801 91.972233,553.88528 C 91.171281,553.59304 90.527278,553.16009 90.040221,552.58645 C 89.50986,552.03444 89.212212,551.40126 89.147274,550.68691 C 89.14727,550.11325 89.255506,549.57207 89.471982,549.06337 C 89.591037,548.79277 89.737156,548.56007 89.910338,548.36525 C 90.061863,548.15959 90.251276,547.97018 90.478577,547.79701 C 90.879044,547.50477 91.333635,547.32618 91.84235,547.26124 C 92.415994,547.26124 92.924702,547.37488 93.368478,547.60218 C 93.812236,547.81865 94.164003,548.12712 94.423779,548.5276 C 94.564476,548.74407 94.6673,548.94431 94.732251,549.12831 C 94.797183,549.34478 94.829654,549.56666 94.829663,549.79396 C 94.829654,550.36761 94.694359,550.85467 94.423779,551.25515 C 94.120709,551.63397 93.736471,551.89914 93.271065,552.05068 C 92.805643,552.25632 92.351052,552.35915 91.907292,552.35916 C 91.928932,552.72715 92.215757,553.01397 92.767768,553.21963 C 93.276469,553.41445 93.855531,553.51186 94.504956,553.51187 C 95.825424,553.36033 96.821194,552.93821 97.492269,552.24551 C 97.849435,551.89914 98.125436,551.50408 98.320274,551.06032 C 98.493438,550.61655 98.580027,550.10243 98.58004,549.51796 C 98.580027,548.81442 98.504262,548.17583 98.352745,547.60218 L 97.362386,543.34851 C 96.474839,543.56498 95.576481,543.67322 94.667309,543.67322 C 93.022115,543.67322 91.5014,543.27275 90.105163,542.4718 C 88.687268,541.70332 87.534555,540.64261 86.647023,539.28966 C 85.965135,538.21813 85.564662,537.49836 85.445603,537.13035 C 85.294073,536.66494 85.218308,536.14 85.218308,535.55552 L 85.120895,534.02939 C 85.120895,532.8821 85.353603,531.78351 85.819018,530.73361 C 86.262784,529.65126 86.863493,528.64467 87.621147,527.71382 C 88.30303,526.80466 88.941622,526.05242 89.536924,525.4571 L 92.832709,522.35614 C 92.551288,521.3171 92.329405,520.29968 92.167058,519.30389 C 92.037168,518.30814 91.972227,517.35566 91.972233,516.44646 C 91.972227,515.5373 92.118345,514.482 92.410589,513.28055 C 92.713642,512.13328 93.162821,511.04551 93.758127,510.01724 C 94.072003,509.55186 94.39671,509.20009 94.732251,508.96194 C 94.992008,508.75632 95.381657,508.57773 95.9012,508.42617 C 96.139308,508.4262 96.372015,508.48032 96.599322,508.58852 C 96.880724,508.77256 97.145902,509.07562 97.394856,509.4977 C 97.9252,510.42857 98.379791,511.51093 98.75863,512.74478 C 98.931794,513.41588 99.061677,514.00576 99.148279,514.51444 C 99.256501,515.02318 99.310619,515.52107 99.310633,516.0081 C 99.310619,516.62507 99.256501,517.19872 99.148279,517.72905 C 99.040029,518.24861 98.877676,518.86014 98.661217,519.56365 C 98.412261,520.27803 98.190378,520.86792 97.995566,521.33331 C 97.703316,521.90698 97.378609,522.46981 97.021442,523.02179 C 96.361191,524.06088 95.533187,525.02418 94.537426,525.91169 M 97.183796,542.43933 L 95.268019,533.55856 C 94.445416,533.78587 93.747295,534.25128 93.173653,534.95481 C 92.545877,535.64753 92.231993,536.40518 92.232,537.22776 C 92.231993,538.46166 93.011291,539.41414 94.569897,540.08519 C 94.699771,540.12849 94.764712,540.22591 94.764722,540.37743 C 94.764712,540.53979 94.629417,540.62097 94.358837,540.62096 C 93.254822,540.28543 92.356464,539.66308 91.663761,538.75389 C 90.938574,537.84472 90.575984,536.83812 90.575989,535.73411 C 90.575984,534.68423 90.98728,533.6614 91.809879,532.66562 C 92.599995,531.66986 93.541647,530.98256 94.634839,530.60372 L 93.725656,526.57734 C 93.13035,527.06442 92.545877,527.57854 91.972233,528.11971 C 91.376929,528.62843 90.868221,529.10467 90.446106,529.54842 C 89.536919,530.43597 88.773856,531.4588 88.156915,532.61691 C 87.550791,533.76422 87.24773,534.96564 87.247733,536.22117 C 87.24773,537.1953 87.437143,538.08283 87.815971,538.88378 C 88.216442,539.68473 88.790092,540.37202 89.536924,540.94567 C 90.29457,541.54097 91.160457,541.98474 92.134587,542.27697 C 93.108703,542.59086 94.142356,542.7478 95.235548,542.7478 C 95.560246,542.7478 95.857895,542.72615 96.128495,542.68286 C 96.420721,542.62874 96.772488,542.54756 97.183796,542.43933 M 97.784506,513.9462 L 97.622152,513.34549 C 97.524727,512.99917 97.313667,512.61493 96.988971,512.19278 C 96.740017,511.90058 96.464016,511.75446 96.160966,511.75443 C 95.912013,511.79775 95.690129,511.92763 95.495315,512.14407 C 95.473657,512.17658 95.186832,512.57705 94.634839,513.34549 C 94.147768,514.05988 93.779766,514.87165 93.530832,515.7808 C 93.422587,516.2246 93.325175,516.66837 93.238594,517.11211 C 93.173645,517.53425 93.141174,517.91849 93.141182,518.26482 C 93.141174,519.23897 93.303528,520.37003 93.628244,521.65802 C 94.234356,521.17098 94.813418,520.59733 95.365432,519.93707 C 95.809188,519.38509 96.285426,518.69779 96.794147,517.87517 C 97.194608,517.22578 97.470609,516.5926 97.622152,515.97563 C 97.730375,515.4453 97.784493,514.76883 97.784506,513.9462"
id="text2485" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 82.49036,536.96982 L 158.78745,536.96982"
id="path2489" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 82.49036,530.33464 L 158.78745,530.33464"
id="path2491" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 82.49036,523.69949 L 158.78745,523.69949"
id="path2493" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 82.49036,517.0643 L 158.78745,517.0643"
id="path2495" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 82.49036,543.60501 L 158.78745,543.60501"
id="path2497" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 114.9301,528.47944 L 114.9301,524.89141 L 113.0955,525.2973 L 113.0955,528.88532 L 114.9301,528.47944 M 117.05694,527.99237 L 117.05694,530.60627 L 115.75811,530.91475 L 115.75811,535.60678 L 114.9301,535.60678 L 114.9301,531.0771 L 113.0955,531.51546 L 113.0955,536.19125 L 112.29997,536.19125 L 112.29997,531.71028 L 111.00114,532.00252 L 111.00114,529.42109 C 111.86702,529.42109 112.29997,529.30744 112.29997,529.08015 L 112.29997,525.49212 L 111.00114,525.81683 L 111.00114,523.30034 L 112.29997,522.9594 L 112.33244,518.16996 L 113.0955,518.16996 L 113.0955,522.76458 L 114.9301,522.35869 L 114.9301,517.47184 L 115.75811,517.47184 L 115.75811,522.16387 L 117.05694,521.87163 L 117.05694,524.38812 L 115.75811,524.69659 L 115.75811,528.28461 L 117.05694,527.99237"
id="text2499" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 122.64721,515.4466 L 122.64721,511.85858 L 120.81261,512.26446 L 120.81261,515.85248 L 122.64721,515.4466 M 124.77405,514.95954 L 124.77405,517.57344 L 123.47522,517.88191 L 123.47522,522.57394 L 122.64721,522.57394 L 122.64721,518.04426 L 120.81261,518.48262 L 120.81261,523.15841 L 120.01708,523.15841 L 120.01708,518.67744 L 118.71825,518.96968 L 118.71825,516.38825 C 119.58413,516.38825 120.01708,516.2746 120.01708,516.04731 L 120.01708,512.45929 L 118.71825,512.78399 L 118.71825,510.26751 L 120.01708,509.92656 L 120.04955,505.13712 L 120.81261,505.13712 L 120.81261,509.73174 L 122.64721,509.32585 L 122.64721,504.439 L 123.47522,504.439 L 123.47522,509.13103 L 124.77405,508.83879 L 124.77405,511.35528 L 123.47522,511.66375 L 123.47522,515.25177 L 124.77405,514.95954"
id="text2503" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 130.36431,525.34742 L 130.36431,521.75939 L 128.52971,522.16528 L 128.52971,525.7533 L 130.36431,525.34742 M 132.49115,524.86035 L 132.49115,527.47425 L 131.19232,527.78273 L 131.19232,532.47476 L 130.36431,532.47476 L 130.36431,527.94508 L 128.52971,528.38344 L 128.52971,533.05923 L 127.73418,533.05923 L 127.73418,528.57826 L 126.43535,528.8705 L 126.43535,526.28907 C 127.30124,526.28907 127.73418,526.17542 127.73418,525.94813 L 127.73418,522.3601 L 126.43535,522.68481 L 126.43535,520.16832 L 127.73418,519.82738 L 127.76665,515.03794 L 128.52971,515.03794 L 128.52971,519.63256 L 130.36431,519.22667 L 130.36431,514.33982 L 131.19232,514.33982 L 131.19232,519.03185 L 132.49115,518.73961 L 132.49115,521.2561 L 131.19232,521.56457 L 131.19232,525.15259 L 132.49115,524.86035"
id="text2507" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 138.08148,535.01069 L 138.08148,531.42266 L 136.24688,531.82855 L 136.24688,535.41657 L 138.08148,535.01069 M 140.20832,534.52362 L 140.20832,537.13752 L 138.90948,537.446 L 138.90948,542.13803 L 138.08148,542.13803 L 138.08148,537.60835 L 136.24688,538.04671 L 136.24688,542.7225 L 135.45134,542.7225 L 135.45134,538.24153 L 134.15251,538.53377 L 134.15251,535.95234 C 135.0184,535.95234 135.45134,535.83869 135.45134,535.6114 L 135.45134,532.02337 L 134.15251,532.34808 L 134.15251,529.83159 L 135.45134,529.49065 L 135.48381,524.70121 L 136.24688,524.70121 L 136.24688,529.29583 L 138.08148,528.88994 L 138.08148,524.00309 L 138.90948,524.00309 L 138.90948,528.69512 L 140.20832,528.40288 L 140.20832,530.91937 L 138.90948,531.22784 L 138.90948,534.81586 L 140.20832,534.52362"
id="text2511" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 145.79858,521.65833 L 145.79858,518.07031 L 143.96398,518.47619 L 143.96398,522.06421 L 145.79858,521.65833 M 147.92542,521.17127 L 147.92542,523.78517 L 146.62659,524.09364 L 146.62659,528.78567 L 145.79858,528.78567 L 145.79858,524.25599 L 143.96398,524.69435 L 143.96398,529.37014 L 143.16845,529.37014 L 143.16845,524.88917 L 141.86961,525.18141 L 141.86961,522.59998 C 142.7355,522.59998 143.16844,522.48633 143.16845,522.25904 L 143.16845,518.67102 L 141.86961,518.99572 L 141.86961,516.47924 L 143.16845,516.13829 L 143.20092,511.34885 L 143.96398,511.34885 L 143.96398,515.94347 L 145.79858,515.53758 L 145.79858,510.65073 L 146.62659,510.65073 L 146.62659,515.34276 L 147.92542,515.05052 L 147.92542,517.56701 L 146.62659,517.87548 L 146.62659,521.4635 L 147.92542,521.17127"
id="text2515" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 153.51568,531.55915 L 153.51568,527.97112 L 151.68108,528.37701 L 151.68108,531.96503 L 153.51568,531.55915 M 155.64252,531.07209 L 155.64252,533.68598 L 154.34369,533.99446 L 154.34369,538.68649 L 153.51568,538.68649 L 153.51568,534.15681 L 151.68108,534.59517 L 151.68108,539.27096 L 150.88555,539.27096 L 150.88555,534.78999 L 149.58672,535.08223 L 149.58672,532.5008 C 150.4526,532.5008 150.88555,532.38715 150.88555,532.15986 L 150.88555,528.57183 L 149.58672,528.89654 L 149.58672,526.38006 L 150.88555,526.03911 L 150.91802,521.24967 L 151.68108,521.24967 L 151.68108,525.84429 L 153.51568,525.4384 L 153.51568,520.55155 L 154.34369,520.55155 L 154.34369,525.24358 L 155.64252,524.95134 L 155.64252,527.46783 L 154.34369,527.7763 L 154.34369,531.36432 L 155.64252,531.07209"
id="text2519" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 461.52176,526.04162 L 461.52176,530.58753 L 462.3173,529.66212 C 462.63118,529.28329 462.92342,528.90446 463.19401,528.52564 C 463.32389,528.33081 463.44295,528.14681 463.55119,527.97363 C 463.63777,527.81128 463.7406,527.62187 463.85966,527.4054 C 463.94624,527.22139 464.03283,527.02116 464.11943,526.80469 C 464.18436,526.6748 464.21683,526.53951 464.21684,526.3988 C 464.21683,526.18233 464.18436,525.96586 464.11943,525.74938 C 464.05448,525.52209 463.9733,525.34891 463.87589,525.22985 C 463.7893,525.09997 463.67024,525.00256 463.51872,524.93761 C 463.36718,524.89432 463.19942,524.86185 463.01542,524.8402 C 462.69071,524.8402 462.36059,524.99174 462.02506,525.29479 C 461.68953,525.58703 461.52176,525.83598 461.52176,526.04162 M 460.69376,532.38966 L 460.69376,514.17355 L 461.52176,514.17355 L 461.52176,524.80773 C 462.38765,524.12585 463.19942,523.78491 463.95707,523.7849 C 464.30342,523.78491 464.63354,523.88232 464.94743,524.07714 C 465.28296,524.29361 465.55896,524.58044 465.77544,524.93761 C 465.98108,525.31644 466.0839,525.69527 466.08391,526.07409 C 466.0839,526.68021 465.81872,527.29175 465.28837,527.90869 C 465.00696,528.24422 464.67684,528.62305 464.29801,529.04517 C 463.91919,529.46729 463.58365,529.80823 463.29142,530.068 L 460.69376,532.38966"
id="text2600" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 449.57068,530.36374 L 451.56763,539.08215 C 452.41186,538.66003 453.08833,538.0485 453.59706,537.24755 C 454.1274,536.44661 454.39258,535.55907 454.39259,534.58494 C 454.39258,534.18448 454.33846,533.81106 454.23024,533.4647 C 454.08952,533.10753 453.88928,532.75035 453.62953,532.39317 C 453.22904,531.75458 452.67163,531.2567 451.95728,530.89951 C 451.25374,530.54234 450.4582,530.36375 449.57068,530.36374 M 447.94714,522.81428 L 448.9375,527.31149 C 449.31631,527.24656 449.70596,527.21409 450.10645,527.21407 C 451.29703,527.21409 452.35774,527.51174 453.28859,528.10702 C 454.24105,528.70233 454.9987,529.48704 455.56154,530.46115 C 456.09188,531.46776 456.35706,532.53388 456.35708,533.65953 C 456.35706,535.03413 455.94576,536.25178 455.12319,537.31249 C 454.27893,538.36238 453.13704,539.20662 451.69752,539.84521 L 452.89894,545.26784 C 452.94222,545.57089 452.96386,545.98219 452.96388,546.50173 C 452.96386,547.87632 452.53092,548.9695 451.66505,549.78128 C 450.7775,550.62551 449.55985,551.11257 448.01208,551.24246 C 447.52501,551.24245 447.07042,551.20998 446.64831,551.14505 C 446.24783,551.10174 445.82571,550.98269 445.38195,550.78787 C 444.58099,550.49562 443.93699,550.06268 443.44993,549.48904 C 442.91957,548.93703 442.62193,548.30385 442.55699,547.5895 C 442.55698,547.01584 442.66522,546.47466 442.8817,545.96596 C 443.00075,545.69536 443.14687,545.46266 443.32005,545.26784 C 443.47158,545.06218 443.66099,544.87277 443.88829,544.6996 C 444.28876,544.40736 444.74335,544.22877 445.25206,544.16383 C 445.82571,544.16383 446.33442,544.27747 446.77819,544.50477 C 447.22195,544.72124 447.57372,545.02971 447.83349,545.43019 C 447.97419,545.64666 448.07701,545.84689 448.14196,546.0309 C 448.2069,546.24737 448.23937,546.46925 448.23938,546.69655 C 448.23937,547.27019 448.10407,547.75726 447.83349,548.15774 C 447.53042,548.53655 447.14619,548.80173 446.68078,548.95327 C 446.21536,549.15891 445.76077,549.26173 445.31701,549.26174 C 445.33865,549.62974 445.62547,549.91656 446.17748,550.12222 C 446.68618,550.31703 447.26524,550.41445 447.91467,550.41446 C 449.23514,550.26292 450.23091,549.8408 450.90198,549.1481 C 451.25915,548.80173 451.53515,548.40667 451.72999,547.96291 C 451.90315,547.51914 451.98974,547.00502 451.98975,546.42055 C 451.98974,545.71701 451.91398,545.07842 451.76246,544.50477 L 450.7721,540.2511 C 449.88455,540.46757 448.9862,540.57581 448.07702,540.57581 C 446.43183,540.57581 444.91111,540.17533 443.51488,539.37439 C 442.09698,538.60591 440.94427,537.5452 440.05674,536.19225 C 439.37485,535.12072 438.97438,534.40095 438.85532,534.03294 C 438.70379,533.56753 438.62802,533.04259 438.62802,532.45811 L 438.53061,530.93198 C 438.53061,529.78469 438.76332,528.68609 439.22873,527.63619 C 439.6725,526.55385 440.27321,525.54725 441.03086,524.61641 C 441.71274,523.70724 442.35134,522.955 442.94664,522.35969 L 446.24242,519.25873 C 445.961,518.21968 445.73912,517.20227 445.57677,516.20647 C 445.44688,515.21073 445.38194,514.25825 445.38195,513.34904 C 445.38194,512.43989 445.52806,511.38459 445.8203,510.18314 C 446.12336,509.03587 446.57253,507.9481 447.16784,506.91983 C 447.48172,506.45444 447.80642,506.10268 448.14196,505.86452 C 448.40172,505.65891 448.79137,505.48032 449.31091,505.32876 C 449.54902,505.32879 449.78173,505.38291 450.00904,505.49111 C 450.29044,505.67515 450.55562,505.97821 450.80457,506.40029 C 451.33491,507.33116 451.7895,508.41351 452.16834,509.64737 C 452.34151,510.31847 452.47139,510.90835 452.55799,511.41703 C 452.66621,511.92577 452.72033,512.42365 452.72035,512.91069 C 452.72033,513.52766 452.66621,514.10131 452.55799,514.63164 C 452.44974,515.1512 452.28739,515.76273 452.07093,516.46624 C 451.82198,517.18062 451.60009,517.77051 451.40528,518.2359 C 451.11303,518.80957 450.78832,519.3724 450.43116,519.92438 C 449.77091,520.96346 448.9429,521.92676 447.94714,522.81428 M 450.59351,539.34192 L 448.67773,530.46115 C 447.85513,530.68846 447.15701,531.15387 446.58337,531.8574 C 445.95559,532.55012 445.64171,533.30777 445.64171,534.13035 C 445.64171,535.36425 446.421,536.31672 447.97961,536.98778 C 448.10948,537.03108 448.17443,537.12849 448.17444,537.28002 C 448.17443,537.44238 448.03913,537.52355 447.76855,537.52355 C 446.66454,537.18802 445.76618,536.56567 445.07347,535.65648 C 444.34829,534.7473 443.9857,533.74071 443.9857,532.6367 C 443.9857,531.58682 444.39699,530.56399 445.21959,529.56821 C 446.00971,528.57245 446.95136,527.88515 448.04455,527.50631 L 447.13537,523.47993 C 446.54006,523.96701 445.95559,524.48113 445.38195,525.02229 C 444.78664,525.53102 444.27793,526.00726 443.85582,526.45101 C 442.94663,527.33856 442.18357,528.36139 441.56663,529.5195 C 440.9605,530.66681 440.65744,531.86823 440.65745,533.12376 C 440.65744,534.09789 440.84686,534.98542 441.22569,535.78636 C 441.62616,536.58731 442.19981,537.27461 442.94664,537.84826 C 443.70428,538.44356 444.57017,538.88733 445.5443,539.17956 C 446.51842,539.49345 447.55207,539.65039 448.64526,539.65039 C 448.96996,539.65039 449.26761,539.62874 449.53821,539.58545 C 449.83043,539.53133 450.1822,539.45015 450.59351,539.34192 M 451.19422,510.84879 L 451.03187,510.24808 C 450.93444,509.90176 450.72338,509.51752 450.39869,509.09537 C 450.14973,508.80316 449.87373,508.65704 449.57068,508.65701 C 449.32173,508.70034 449.09984,508.83022 448.90503,509.04666 C 448.88337,509.07916 448.59655,509.47964 448.04455,510.24808 C 447.55748,510.96247 447.18948,511.77424 446.94055,512.68339 C 446.8323,513.12719 446.73489,513.57095 446.64831,514.01469 C 446.58336,514.43684 446.55089,514.82108 446.5509,515.16741 C 446.55089,516.14156 446.71324,517.27262 447.03796,518.56061 C 447.64407,518.07357 448.22313,517.49992 448.77515,516.83965 C 449.2189,516.28767 449.69514,515.60038 450.20386,514.77776 C 450.60432,514.12837 450.88032,513.49519 451.03187,512.87822 C 451.14009,512.34789 451.19421,511.67141 451.19422,510.84879"
id="text2604" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 435.90005,533.87243 L 512.19714,533.87243"
id="path2608" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 435.90005,527.23725 L 512.19714,527.23725"
id="path2610" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 435.90005,520.60209 L 512.19714,520.60209"
id="path2612" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 435.90005,513.96691 L 512.19714,513.96691"
id="path2614" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 435.90005,540.50761 L 512.19714,540.50761"
id="path2616" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 468.55655,515.40441 L 468.55655,519.95033 L 469.35209,519.02491 C 469.66597,518.64608 469.95821,518.26726 470.2288,517.88843 C 470.35868,517.69361 470.47774,517.5096 470.58598,517.33643 C 470.67256,517.17407 470.77539,516.98466 470.89445,516.76819 C 470.98103,516.58419 471.06762,516.38395 471.15422,516.16748 C 471.21915,516.0376 471.25162,515.9023 471.25163,515.76159 C 471.25162,515.54512 471.21915,515.32865 471.15422,515.11218 C 471.08927,514.88488 471.00809,514.71171 470.91068,514.59264 C 470.82409,514.46276 470.70503,514.36535 470.55351,514.30041 C 470.40197,514.25712 470.23421,514.22465 470.05021,514.203 C 469.7255,514.203 469.39538,514.35453 469.05985,514.65759 C 468.72432,514.94983 468.55655,515.19877 468.55655,515.40441 M 467.72855,521.75246 L 467.72855,503.53634 L 468.55655,503.53634 L 468.55655,514.17052 C 469.42244,513.48864 470.23421,513.1477 470.99186,513.14769 C 471.33821,513.1477 471.66833,513.24511 471.98222,513.43993 C 472.31775,513.65641 472.59375,513.94323 472.81023,514.30041 C 473.01587,514.67924 473.11869,515.05806 473.1187,515.43689 C 473.11869,516.04301 472.85352,516.65454 472.32316,517.27149 C 472.04175,517.60702 471.71163,517.98584 471.3328,518.40796 C 470.95398,518.83008 470.61844,519.17102 470.32621,519.43079 L 467.72855,521.75246"
id="text2618" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 475.59134,528.37158 L 475.59134,532.91749 L 476.38688,531.99207 C 476.70076,531.61324 476.993,531.23442 477.26359,530.85559 C 477.39347,530.66077 477.51253,530.47677 477.62077,530.30359 C 477.70735,530.14124 477.81018,529.95182 477.92924,529.73535 C 478.01582,529.55135 478.10241,529.35111 478.18901,529.13464 C 478.25394,529.00476 478.28641,528.86946 478.28642,528.72876 C 478.28641,528.51229 478.25394,528.29581 478.18901,528.07934 C 478.12406,527.85205 478.04288,527.67887 477.94547,527.55981 C 477.85888,527.42993 477.73982,527.33251 477.5883,527.26757 C 477.43676,527.22428 477.269,527.19181 477.085,527.17016 C 476.76029,527.17016 476.43017,527.32169 476.09464,527.62475 C 475.75911,527.91699 475.59134,528.16593 475.59134,528.37158 M 474.76334,534.71962 L 474.76334,516.5035 L 475.59134,516.5035 L 475.59134,527.13769 C 476.45723,526.4558 477.269,526.11486 478.02665,526.11486 C 478.373,526.11486 478.70312,526.21227 479.01701,526.40709 C 479.35254,526.62357 479.62854,526.91039 479.84502,527.26757 C 480.05066,527.6464 480.15348,528.02522 480.15349,528.40405 C 480.15348,529.01017 479.88831,529.6217 479.35795,530.23865 C 479.07654,530.57418 478.74642,530.953 478.36759,531.37513 C 477.98877,531.79724 477.65323,532.13819 477.361,532.39796 L 474.76334,534.71962"
id="text2622" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 482.62613,519.16528 L 482.62613,523.71119 L 483.42167,522.78577 C 483.73555,522.40694 484.02779,522.02812 484.29838,521.64929 C 484.42826,521.45447 484.54732,521.27047 484.65556,521.09729 C 484.74214,520.93494 484.84497,520.74552 484.96403,520.52905 C 485.05061,520.34505 485.1372,520.14482 485.2238,519.92834 C 485.28873,519.79846 485.3212,519.66317 485.32121,519.52246 C 485.3212,519.30599 485.28873,519.08952 485.2238,518.87304 C 485.15885,518.64575 485.07767,518.47257 484.98026,518.35351 C 484.89367,518.22363 484.77461,518.12622 484.62309,518.06127 C 484.47155,518.01798 484.30379,517.98551 484.11979,517.96386 C 483.79508,517.96386 483.46496,518.11539 483.12943,518.41845 C 482.7939,518.71069 482.62613,518.95963 482.62613,519.16528 M 481.79813,525.51332 L 481.79813,507.2972 L 482.62613,507.2972 L 482.62613,517.93139 C 483.49202,517.24951 484.30379,516.90856 485.06144,516.90856 C 485.40779,516.90856 485.73791,517.00597 486.0518,517.2008 C 486.38733,517.41727 486.66333,517.7041 486.87981,518.06127 C 487.08545,518.4401 487.18827,518.81893 487.18828,519.19775 C 487.18827,519.80387 486.9231,520.4154 486.39274,521.03235 C 486.11133,521.36788 485.78121,521.74671 485.40238,522.16883 C 485.02356,522.59095 484.68802,522.93189 484.39579,523.19166 L 481.79813,525.51332"
id="text2626" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 489.66092,532.39996 L 489.66092,536.94587 L 490.45646,536.02045 C 490.77034,535.64163 491.06258,535.2628 491.33317,534.88398 C 491.46305,534.68915 491.58211,534.50515 491.69035,534.33197 C 491.77693,534.16962 491.87976,533.9802 491.99882,533.76373 C 492.0854,533.57973 492.17199,533.3795 492.25859,533.16302 C 492.32352,533.03314 492.35599,532.89785 492.356,532.75714 C 492.35599,532.54067 492.32352,532.3242 492.25859,532.10772 C 492.19364,531.88043 492.11246,531.70725 492.01505,531.58819 C 491.92846,531.45831 491.8094,531.3609 491.65788,531.29595 C 491.50634,531.25266 491.33858,531.22019 491.15458,531.19854 C 490.82987,531.19854 490.49975,531.35007 490.16422,531.65313 C 489.82869,531.94537 489.66092,532.19431 489.66092,532.39996 M 488.83292,538.748 L 488.83292,520.53188 L 489.66092,520.53188 L 489.66092,531.16607 C 490.52681,530.48419 491.33858,530.14324 492.09623,530.14324 C 492.44258,530.14324 492.7727,530.24065 493.08659,530.43548 C 493.42212,530.65195 493.69812,530.93878 493.9146,531.29595 C 494.12024,531.67478 494.22306,532.05361 494.22307,532.43243 C 494.22306,533.03855 493.95789,533.65008 493.42753,534.26703 C 493.14612,534.60256 492.816,534.98139 492.43717,535.40351 C 492.05835,535.82563 491.72281,536.16657 491.43058,536.42634 L 488.83292,538.748"
id="text2630" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 496.69571,522.43341 L 496.69571,526.97932 L 497.49125,526.0539 C 497.80513,525.67507 498.09737,525.29625 498.36796,524.91742 C 498.49784,524.7226 498.6169,524.5386 498.72514,524.36542 C 498.81172,524.20306 498.91455,524.01365 499.03361,523.79718 C 499.12019,523.61318 499.20678,523.41294 499.29338,523.19647 C 499.35831,523.06659 499.39078,522.93129 499.39079,522.79059 C 499.39078,522.57411 499.35831,522.35764 499.29338,522.14117 C 499.22843,521.91388 499.14725,521.7407 499.04984,521.62164 C 498.96325,521.49176 498.84419,521.39434 498.69267,521.3294 C 498.54113,521.28611 498.37337,521.25364 498.18937,521.23199 C 497.86466,521.23199 497.53454,521.38352 497.19901,521.68658 C 496.86348,521.97882 496.69571,522.22776 496.69571,522.43341 M 495.86771,528.78145 L 495.86771,510.56533 L 496.69571,510.56533 L 496.69571,521.19952 C 497.5616,520.51763 498.37337,520.17669 499.13102,520.17669 C 499.47737,520.17669 499.80749,520.2741 500.12138,520.46892 C 500.45691,520.6854 500.73291,520.97222 500.94939,521.3294 C 501.15503,521.70823 501.25785,522.08705 501.25786,522.46588 C 501.25785,523.072 500.99268,523.68353 500.46232,524.30048 C 500.18091,524.63601 499.85079,525.01483 499.47196,525.43696 C 499.09314,525.85907 498.7576,526.20002 498.46537,526.45979 L 495.86771,528.78145"
id="text2634" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 503.7305,535.62182 L 503.7305,540.16773 L 504.52604,539.24232 C 504.83992,538.86349 505.13216,538.48466 505.40275,538.10584 C 505.53263,537.91101 505.65169,537.72701 505.75993,537.55383 C 505.84651,537.39148 505.94934,537.20207 506.0684,536.9856 C 506.15498,536.80159 506.24157,536.60136 506.32817,536.38489 C 506.3931,536.255 506.42557,536.11971 506.42558,535.979 C 506.42557,535.76253 506.3931,535.54606 506.32817,535.32958 C 506.26322,535.10229 506.18204,534.92911 506.08463,534.81005 C 505.99804,534.68017 505.87898,534.58276 505.72746,534.51781 C 505.57592,534.47452 505.40816,534.44205 505.22416,534.4204 C 504.89945,534.42041 504.56933,534.57194 504.2338,534.87499 C 503.89827,535.16723 503.7305,535.41618 503.7305,535.62182 M 502.9025,541.96986 L 502.9025,523.75375 L 503.7305,523.75375 L 503.7305,534.38793 C 504.59639,533.70605 505.40816,533.36511 506.16581,533.3651 C 506.51216,533.36511 506.84228,533.46252 507.15617,533.65734 C 507.4917,533.87381 507.7677,534.16064 507.98418,534.51781 C 508.18982,534.89664 508.29264,535.27547 508.29265,535.65429 C 508.29264,536.26042 508.02747,536.87195 507.49711,537.48889 C 507.2157,537.82442 506.88558,538.20325 506.50675,538.62537 C 506.12793,539.04749 505.79239,539.38843 505.50016,539.6482 L 502.9025,541.96986"
id="text2638" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 84.767672,147.59404 L 84.767672,152.13995 L 85.563207,151.21453 C 85.877089,150.8357 86.169326,150.45688 86.439918,150.07805 C 86.569799,149.88323 86.688858,149.69922 86.797097,149.52605 C 86.883683,149.36369 86.986507,149.17428 87.105569,148.95781 C 87.192155,148.77381 87.278744,148.57357 87.365336,148.3571 C 87.430274,148.22722 87.462745,148.09192 87.462748,147.95121 C 87.462745,147.73474 87.430274,147.51827 87.365336,147.3018 C 87.300391,147.0745 87.219214,146.90133 87.121805,146.78227 C 87.035213,146.65238 86.916153,146.55497 86.764626,146.49003 C 86.613093,146.44674 86.445327,146.41427 86.261329,146.39262 C 85.936619,146.39262 85.606499,146.54415 85.270969,146.84721 C 84.935437,147.13945 84.767671,147.38839 84.767672,147.59404 M 83.939667,153.94208 L 83.939667,135.72596 L 84.767672,135.72596 L 84.767672,146.36015 C 85.633558,145.67826 86.445327,145.33732 87.202982,145.33732 C 87.549333,145.33732 87.879453,145.43473 88.193341,145.62955 C 88.528868,145.84603 88.80487,146.13285 89.021346,146.49003 C 89.226989,146.86886 89.329814,147.24768 89.329819,147.62651 C 89.329814,148.23263 89.064636,148.84416 88.534284,149.46111 C 88.252867,149.79664 87.922747,150.17546 87.543925,150.59758 C 87.165096,151.0197 86.829565,151.36065 86.53733,151.62041 L 83.939667,153.94208"
id="text2648" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 72.816598,151.91618 L 74.813552,160.63459 C 75.657779,160.21248 76.334253,159.60094 76.842977,158.79999 C 77.373318,157.99905 77.638496,157.11152 77.638511,156.13739 C 77.638496,155.73692 77.584378,155.36351 77.476157,155.01715 C 77.335435,154.65997 77.135199,154.3028 76.875448,153.94561 C 76.47496,153.30703 75.917545,152.80914 75.203202,152.45195 C 74.499655,152.09478 73.704121,151.91619 72.816598,151.91618 M 71.193058,144.36672 L 72.183418,148.86393 C 72.562233,148.799 72.951882,148.76653 73.352366,148.76652 C 74.542949,148.76653 75.603661,149.06418 76.534504,149.65946 C 77.486965,150.25477 78.244616,151.03948 78.80746,152.0136 C 79.337799,153.0202 79.602977,154.08632 79.602995,155.21197 C 79.602977,156.58657 79.19168,157.80423 78.369104,158.86494 C 77.524848,159.91483 76.382959,160.75907 74.943435,161.39766 L 76.144855,166.82028 C 76.188135,167.12334 76.209782,167.53463 76.209796,168.05417 C 76.209782,169.42876 75.776838,170.52194 74.910964,171.33372 C 74.023417,172.17795 72.805764,172.66501 71.258,172.79491 C 70.770929,172.7949 70.316338,172.76243 69.894226,172.69749 C 69.493746,172.65419 69.071626,172.53513 68.627865,172.34032 C 67.826913,172.04807 67.18291,171.61512 66.695853,171.04148 C 66.165492,170.48947 65.867844,169.85629 65.802906,169.14194 C 65.802902,168.56828 65.911138,168.02711 66.127614,167.5184 C 66.246669,167.24781 66.392788,167.0151 66.56597,166.82028 C 66.717495,166.61463 66.906908,166.42521 67.134209,166.25204 C 67.534676,165.9598 67.989267,165.78121 68.497982,165.71627 C 69.071626,165.71627 69.580334,165.82992 70.02411,166.05722 C 70.467869,166.27368 70.819635,166.58216 71.079411,166.98263 C 71.220108,167.1991 71.322932,167.39934 71.387883,167.58334 C 71.452815,167.79981 71.485286,168.02169 71.485295,168.249 C 71.485286,168.82264 71.349991,169.3097 71.079411,169.71018 C 70.776341,170.089 70.392103,170.35418 69.926697,170.50572 C 69.461275,170.71136 69.006684,170.81418 68.562924,170.81419 C 68.584564,171.18218 68.871389,171.46901 69.4234,171.67466 C 69.932101,171.86948 70.511163,171.96689 71.160588,171.9669 C 72.481056,171.81536 73.476826,171.39324 74.147901,170.70054 C 74.505067,170.35418 74.781068,169.95912 74.975906,169.51536 C 75.14907,169.07158 75.235659,168.55746 75.235672,167.97299 C 75.235659,167.26945 75.159894,166.63086 75.008377,166.05722 L 74.018018,161.80354 C 73.130471,162.02001 72.232113,162.12825 71.322942,162.12825 C 69.677747,162.12825 68.157032,161.72778 66.760795,160.92683 C 65.3429,160.15836 64.190188,159.09765 63.302655,157.74469 C 62.620767,156.67316 62.220295,155.95339 62.101235,155.58538 C 61.949705,155.11998 61.87394,154.59503 61.87394,154.01055 L 61.776527,152.48442 C 61.776527,151.33713 62.009235,150.23854 62.47465,149.18864 C 62.918416,148.10629 63.519125,147.0997 64.276779,146.16885 C 64.958662,145.25969 65.597254,144.50745 66.192556,143.91213 L 69.488342,140.81117 C 69.206921,139.77213 68.985037,138.75471 68.82269,137.75892 C 68.6928,136.76317 68.627859,135.8107 68.627865,134.90149 C 68.627859,133.99233 68.773977,132.93703 69.066221,131.73558 C 69.369274,130.58831 69.818453,129.50054 70.413759,128.47227 C 70.727635,128.00689 71.052342,127.65512 71.387883,127.41697 C 71.64764,127.21136 72.037289,127.03277 72.556832,126.8812 C 72.79494,126.88124 73.027647,126.93535 73.254954,127.04355 C 73.536356,127.22759 73.801534,127.53065 74.050488,127.95274 C 74.580832,128.8836 75.035423,129.96596 75.414262,131.19982 C 75.587426,131.87091 75.717309,132.4608 75.803911,132.96948 C 75.912133,133.47821 75.966251,133.9761 75.966265,134.46313 C 75.966251,135.0801 75.912133,135.65375 75.803911,136.18408 C 75.695661,136.70364 75.533308,137.31517 75.316849,138.01868 C 75.067893,138.73306 74.84601,139.32295 74.651198,139.78834 C 74.358948,140.36201 74.034241,140.92484 73.677074,141.47682 C 73.016823,142.51591 72.188819,143.47921 71.193058,144.36672 M 73.839428,160.89436 L 71.923651,152.0136 C 71.101048,152.2409 70.402927,152.70632 69.829285,153.40984 C 69.201509,154.10256 68.887625,154.86021 68.887632,155.6828 C 68.887625,156.91669 69.666923,157.86917 71.225529,158.54023 C 71.355403,158.58353 71.420344,158.68094 71.420354,158.83246 C 71.420344,158.99482 71.285049,159.076 71.014469,159.076 C 69.910454,158.74047 69.012096,158.11811 68.319393,157.20892 C 67.594206,156.29975 67.231616,155.29315 67.231621,154.18914 C 67.231616,153.13926 67.642912,152.11643 68.465511,151.12065 C 69.255627,150.12489 70.197279,149.43759 71.290471,149.05875 L 70.381288,145.03238 C 69.785982,145.51945 69.201509,146.03357 68.627865,146.57474 C 68.032561,147.08346 67.523853,147.5597 67.101738,148.00345 C 66.192551,148.891 65.429488,149.91383 64.812547,151.07194 C 64.206423,152.21926 63.903362,153.42067 63.903365,154.6762 C 63.903362,155.65033 64.092775,156.53787 64.471603,157.33881 C 64.872074,158.13976 65.445724,158.82706 66.192556,159.4007 C 66.950202,159.996 67.816089,160.43977 68.790219,160.73201 C 69.764335,161.04589 70.797988,161.20283 71.89118,161.20283 C 72.215878,161.20283 72.513527,161.18119 72.784127,161.13789 C 73.076353,161.08377 73.42812,161.0026 73.839428,160.89436 M 74.440138,132.40124 L 74.277784,131.80053 C 74.180359,131.4542 73.969299,131.06996 73.644603,130.64781 C 73.395649,130.35561 73.119648,130.20949 72.816598,130.20946 C 72.567645,130.25278 72.345761,130.38267 72.150947,130.59911 C 72.129289,130.63161 71.842464,131.03208 71.290471,131.80053 C 70.8034,132.51491 70.435398,133.32668 70.186464,134.23584 C 70.078219,134.67963 69.980807,135.1234 69.894226,135.56714 C 69.829277,135.98929 69.796806,136.37352 69.796814,136.71985 C 69.796806,137.694 69.95916,138.82507 70.283876,140.11305 C 70.889988,139.62601 71.46905,139.05236 72.021064,138.3921 C 72.46482,137.84012 72.941058,137.15282 73.449779,136.3302 C 73.85024,135.68081 74.126241,135.04763 74.277784,134.43066 C 74.386007,133.90033 74.440125,133.22386 74.440138,132.40124"
id="text2652" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 59.145963,155.42488 L 108.16893,155.42488"
id="path2656" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 59.145963,148.7897 L 108.16893,148.7897"
id="path2658" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 59.145963,142.15454 L 108.16893,142.15454"
id="path2660" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 59.145963,135.51936 L 108.16893,135.51936"
id="path2662" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 59.145963,162.06006 L 108.16893,162.06006"
id="path2664" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 91.802462,136.95687 L 91.802462,141.50279 L 92.597997,140.57737 C 92.911879,140.19854 93.204116,139.81971 93.474708,139.44089 C 93.604589,139.24606 93.723648,139.06206 93.831887,138.88889 C 93.918473,138.72653 94.021297,138.53712 94.140359,138.32065 C 94.226945,138.13665 94.313534,137.93641 94.400126,137.71994 C 94.465064,137.59006 94.497535,137.45476 94.497538,137.31405 C 94.497535,137.09758 94.465064,136.88111 94.400126,136.66464 C 94.335181,136.43734 94.254004,136.26417 94.156595,136.1451 C 94.070003,136.01522 93.950943,135.91781 93.799416,135.85287 C 93.647883,135.80958 93.480117,135.7771 93.296119,135.75545 C 92.971409,135.75546 92.641289,135.90699 92.305759,136.21005 C 91.970227,136.50229 91.802461,136.75123 91.802462,136.95687 M 90.974457,143.30492 L 90.974457,125.0888 L 91.802462,125.0888 L 91.802462,135.72298 C 92.668348,135.0411 93.480117,134.70016 94.237772,134.70015 C 94.584123,134.70016 94.914243,134.79757 95.228131,134.99239 C 95.563658,135.20887 95.83966,135.49569 96.056136,135.85287 C 96.261779,136.2317 96.364604,136.61052 96.364609,136.98935 C 96.364604,137.59547 96.099426,138.207 95.569074,138.82395 C 95.287657,139.15948 94.957537,139.5383 94.578715,139.96042 C 94.199886,140.38254 93.864355,140.72348 93.57212,140.98325 L 90.974457,143.30492"
id="text2666" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 45.442954,273.65216 L 45.442954,278.19807 L 46.238488,277.27265 C 46.552371,276.89382 46.844607,276.515 47.1152,276.13617 C 47.24508,275.94135 47.36414,275.75735 47.472378,275.58417 C 47.558964,275.42181 47.661788,275.2324 47.780851,275.01593 C 47.867436,274.83193 47.954025,274.63169 48.040617,274.41522 C 48.105555,274.28534 48.138026,274.15004 48.13803,274.00934 C 48.138026,273.79286 48.105555,273.57639 48.040617,273.35992 C 47.975672,273.13263 47.894495,272.95945 47.797086,272.84039 C 47.710494,272.71051 47.591435,272.61309 47.439908,272.54815 C 47.288374,272.50486 47.120609,272.47239 46.93661,272.45074 C 46.6119,272.45074 46.281781,272.60227 45.946251,272.90533 C 45.610718,273.19757 45.442953,273.44651 45.442954,273.65216 M 44.614948,280.0002 L 44.614948,261.78408 L 45.442954,261.78408 L 45.442954,272.41827 C 46.30884,271.73638 47.120609,271.39544 47.878263,271.39544 C 48.224615,271.39544 48.554734,271.49285 48.868623,271.68767 C 49.20415,271.90415 49.480151,272.19097 49.696628,272.54815 C 49.902271,272.92698 50.005095,273.3058 50.0051,273.68463 C 50.005095,274.29075 49.739917,274.90228 49.209566,275.51923 C 48.928148,275.85476 48.598029,276.23358 48.219207,276.65571 C 47.840377,277.07782 47.504846,277.41877 47.212612,277.67854 L 44.614948,280.0002"
id="text2692" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 33.491883,277.97431 L 35.488837,286.69271 C 36.333064,286.2706 37.009539,285.65906 37.518262,284.85811 C 38.048603,284.05717 38.313781,283.16964 38.313797,282.19551 C 38.313781,281.79504 38.259663,281.42163 38.151443,281.07527 C 38.01072,280.7181 37.810484,280.36092 37.550733,280.00373 C 37.150245,279.36515 36.59283,278.86726 35.878487,278.51007 C 35.17494,278.1529 34.379407,277.97432 33.491883,277.97431 M 31.868344,270.42485 L 32.858703,274.92205 C 33.237518,274.85712 33.627167,274.82465 34.027652,274.82464 C 35.218235,274.82465 36.278946,275.1223 37.20979,275.71759 C 38.162251,276.31289 38.919902,277.09761 39.482745,278.07172 C 40.013084,279.07832 40.278262,280.14445 40.27828,281.27009 C 40.278262,282.64469 39.866966,283.86235 39.04439,284.92306 C 38.200133,285.97295 37.058245,286.81719 35.618721,287.45578 L 36.82014,292.8784 C 36.86342,293.18146 36.885067,293.59275 36.885082,294.11229 C 36.885067,295.48688 36.452124,296.58006 35.58625,297.39184 C 34.698702,298.23607 33.481049,298.72313 31.933285,298.85303 C 31.446214,298.85302 30.991624,298.82055 30.569512,298.75562 C 30.169031,298.71231 29.746911,298.59325 29.303151,298.39844 C 28.502198,298.10619 27.858195,297.67325 27.371138,297.0996 C 26.840778,296.54759 26.543129,295.91441 26.478191,295.20006 C 26.478187,294.62641 26.586423,294.08523 26.802899,293.57652 C 26.921955,293.30593 27.068073,293.07322 27.241255,292.8784 C 27.392781,292.67275 27.582193,292.48334 27.809494,292.31016 C 28.209962,292.01792 28.664552,291.83933 29.173268,291.77439 C 29.746911,291.77439 30.25562,291.88804 30.699395,292.11534 C 31.143154,292.33181 31.49492,292.64028 31.754696,293.04075 C 31.895393,293.25722 31.998217,293.45746 32.063168,293.64146 C 32.1281,293.85793 32.160571,294.07981 32.160581,294.30712 C 32.160571,294.88076 32.025276,295.36782 31.754696,295.7683 C 31.451626,296.14712 31.067389,296.4123 30.601983,296.56384 C 30.13656,296.76948 29.681969,296.8723 29.238209,296.87231 C 29.25985,297.2403 29.546675,297.52713 30.098685,297.73278 C 30.607386,297.9276 31.186448,298.02501 31.835873,298.02502 C 33.156341,297.87348 34.152111,297.45136 34.823186,296.75866 C 35.180352,296.4123 35.456354,296.01724 35.651191,295.57348 C 35.824356,295.1297 35.910944,294.61558 35.910958,294.03111 C 35.910944,293.32758 35.835179,292.68898 35.683662,292.11534 L 34.693303,287.86166 C 33.805756,288.07813 32.907399,288.18637 31.998227,288.18637 C 30.353032,288.18637 28.832318,287.7859 27.43608,286.98495 C 26.018185,286.21648 24.865473,285.15577 23.97794,283.80281 C 23.296053,282.73128 22.89558,282.01151 22.776521,281.64351 C 22.62499,281.1781 22.549225,280.65315 22.549225,280.06867 L 22.451813,278.54254 C 22.451813,277.39525 22.68452,276.29666 23.149935,275.24676 C 23.593701,274.16441 24.19441,273.15782 24.952064,272.22697 C 25.633948,271.31781 26.272539,270.56557 26.867841,269.97025 L 30.163627,266.86929 C 29.882206,265.83025 29.660322,264.81283 29.497976,263.81704 C 29.368085,262.82129 29.303144,261.86882 29.303151,260.95961 C 29.303144,260.05045 29.449262,258.99515 29.741507,257.79371 C 30.04456,256.64644 30.493739,255.55867 31.089045,254.53039 C 31.40292,254.06501 31.727628,253.71324 32.063168,253.47509 C 32.322925,253.26948 32.712574,253.09089 33.232117,252.93932 C 33.470225,252.93936 33.702932,252.99347 33.930239,253.10168 C 34.211641,253.28571 34.476819,253.58877 34.725774,254.01086 C 35.256117,254.94172 35.710708,256.02408 36.089547,257.25794 C 36.262711,257.92903 36.392594,258.51892 36.479197,259.0276 C 36.587419,259.53633 36.641537,260.03422 36.641551,260.52125 C 36.641537,261.13822 36.587419,261.71187 36.479197,262.2422 C 36.370947,262.76176 36.208593,263.3733 35.992135,264.0768 C 35.743179,264.79119 35.521295,265.38107 35.326483,265.84646 C 35.034234,266.42014 34.709526,266.98296 34.35236,267.53494 C 33.692109,268.57403 32.864104,269.53733 31.868344,270.42485 M 34.514714,286.95248 L 32.598937,278.07172 C 31.776334,278.29902 31.078212,278.76444 30.50457,279.46796 C 29.876794,280.16068 29.56291,280.91833 29.562917,281.74092 C 29.56291,282.97481 30.342208,283.92729 31.900814,284.59835 C 32.030688,284.64165 32.09563,284.73906 32.095639,284.89059 C 32.09563,285.05294 31.960335,285.13412 31.689754,285.13412 C 30.585739,284.79859 29.687381,284.17623 28.994678,283.26705 C 28.269491,282.35787 27.906901,281.35128 27.906907,280.24726 C 27.906901,279.19738 28.318197,278.17455 29.140797,277.17877 C 29.930912,276.18301 30.872564,275.49571 31.965756,275.11688 L 31.056574,271.0905 C 30.461268,271.57758 29.876794,272.0917 29.303151,272.63286 C 28.707847,273.14158 28.199138,273.61782 27.777023,274.06157 C 26.867837,274.94912 26.104774,275.97195 25.487832,277.13006 C 24.881708,278.27738 24.578648,279.47879 24.57865,280.73432 C 24.578648,281.70845 24.768061,282.59599 25.146889,283.39693 C 25.547359,284.19788 26.121009,284.88518 26.867841,285.45882 C 27.625488,286.05412 28.491375,286.49789 29.465505,286.79013 C 30.439621,287.10401 31.473273,287.26095 32.566466,287.26095 C 32.891163,287.26095 33.188812,287.23931 33.459413,287.19601 C 33.751639,287.14189 34.103405,287.06072 34.514714,286.95248 M 35.115423,258.45936 L 34.953069,257.85865 C 34.855645,257.51232 34.644585,257.12809 34.319889,256.70593 C 34.070934,256.41373 33.794933,256.26761 33.491883,256.26758 C 33.24293,256.3109 33.021046,256.44079 32.826232,256.65723 C 32.804575,256.68973 32.51775,257.0902 31.965756,257.85865 C 31.478685,258.57303 31.110683,259.3848 30.861749,260.29396 C 30.753505,260.73775 30.656092,261.18152 30.569512,261.62526 C 30.504562,262.04741 30.472091,262.43164 30.472099,262.77797 C 30.472091,263.75212 30.634445,264.88319 30.959161,266.17117 C 31.565274,265.68413 32.144336,265.11048 32.696349,264.45022 C 33.140106,263.89824 33.616344,263.21094 34.125064,262.38832 C 34.525525,261.73893 34.801527,261.10575 34.953069,260.48878 C 35.061293,259.95845 35.115411,259.28198 35.115423,258.45936"
id="text2696" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 19.821245,281.48299 L 74.868337,281.48299"
id="path2700" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 19.821245,274.84781 L 74.868337,274.84781"
id="path2702" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 19.821245,268.21265 L 74.868337,268.21265"
id="path2704" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 19.821245,261.57747 L 74.868337,261.57747"
id="path2706" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 19.821245,288.11817 L 74.868337,288.11817"
id="path2708" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 52.477744,263.01501 L 52.477744,267.56092 L 53.273278,266.6355 C 53.587161,266.25668 53.879397,265.87785 54.14999,265.49903 C 54.27987,265.3042 54.39893,265.1202 54.507168,264.94702 C 54.593754,264.78467 54.696578,264.59526 54.815641,264.37878 C 54.902226,264.19478 54.988815,263.99455 55.075407,263.77807 C 55.140345,263.64819 55.172816,263.5129 55.17282,263.37219 C 55.172816,263.15572 55.140345,262.93925 55.075407,262.72277 C 55.010462,262.49548 54.929285,262.3223 54.831876,262.20324 C 54.745284,262.07336 54.626225,261.97595 54.474698,261.911 C 54.323165,261.86771 54.155399,261.83524 53.9714,261.81359 C 53.64669,261.81359 53.316571,261.96512 52.981041,262.26818 C 52.645508,262.56042 52.477743,262.80936 52.477744,263.01501 M 51.649738,269.36305 L 51.649738,251.14693 L 52.477744,251.14693 L 52.477744,261.78112 C 53.34363,261.09924 54.155399,260.75829 54.913053,260.75829 C 55.259405,260.75829 55.589524,260.85571 55.903413,261.05053 C 56.23894,261.267 56.514941,261.55383 56.731418,261.911 C 56.937061,262.28983 57.039885,262.66866 57.03989,263.04748 C 57.039885,263.6536 56.774707,264.26514 56.244356,264.88208 C 55.962938,265.21761 55.632819,265.59644 55.253997,266.01856 C 54.875168,266.44068 54.539636,266.78162 54.247402,267.04139 L 51.649738,269.36305"
id="text2710" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 59.512534,275.98214 L 59.512534,280.52805 L 60.308068,279.60264 C 60.621951,279.22381 60.914187,278.84498 61.18478,278.46616 C 61.31466,278.27133 61.43372,278.08733 61.541958,277.91416 C 61.628544,277.7518 61.731368,277.56239 61.850431,277.34592 C 61.937017,277.16192 62.023605,276.96168 62.110197,276.74521 C 62.175135,276.61532 62.207606,276.48003 62.20761,276.33932 C 62.207606,276.12285 62.175135,275.90638 62.110197,275.68991 C 62.045252,275.46261 61.964075,275.28943 61.866666,275.17037 C 61.780074,275.04049 61.661015,274.94308 61.509488,274.87814 C 61.357955,274.83484 61.190189,274.80237 61.00619,274.78072 C 60.68148,274.78073 60.351361,274.93226 60.015831,275.23531 C 59.680298,275.52755 59.512533,275.7765 59.512534,275.98214 M 58.684528,282.33018 L 58.684528,264.11407 L 59.512534,264.11407 L 59.512534,274.74825 C 60.37842,274.06637 61.190189,273.72543 61.947843,273.72542 C 62.294195,273.72543 62.624314,273.82284 62.938203,274.01766 C 63.27373,274.23413 63.549731,274.52096 63.766208,274.87814 C 63.971851,275.25696 64.074675,275.63579 64.074681,276.01461 C 64.074675,276.62074 63.809497,277.23227 63.279146,277.84921 C 62.997728,278.18474 62.667609,278.56357 62.288787,278.98569 C 61.909958,279.40781 61.574426,279.74875 61.282192,280.00852 L 58.684528,282.33018"
id="text2714" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 70.769892,403.71029 L 70.769892,408.2562 L 71.565427,407.33079 C 71.879309,406.95196 72.171546,406.57313 72.442138,406.19431 C 72.572019,405.99948 72.691078,405.81548 72.799317,405.6423 C 72.885903,405.47995 72.988727,405.29054 73.10779,405.07407 C 73.194375,404.89006 73.280964,404.68983 73.367556,404.47336 C 73.432494,404.34347 73.464965,404.20818 73.464968,404.06747 C 73.464965,403.851 73.432494,403.63453 73.367556,403.41806 C 73.302611,403.19076 73.221434,403.01758 73.124025,402.89852 C 73.037433,402.76864 72.918374,402.67123 72.766846,402.60629 C 72.615313,402.56299 72.447548,402.53052 72.263549,402.50887 C 71.938839,402.50888 71.608719,402.66041 71.27319,402.96346 C 70.937657,403.2557 70.769891,403.50465 70.769892,403.71029 M 69.941887,410.05833 L 69.941887,391.84222 L 70.769892,391.84222 L 70.769892,402.4764 C 71.635778,401.79452 72.447548,401.45358 73.205202,401.45357 C 73.551553,401.45358 73.881673,401.55099 74.195561,401.74581 C 74.531088,401.96228 74.80709,402.24911 75.023567,402.60629 C 75.22921,402.98511 75.332034,403.36394 75.332039,403.74276 C 75.332034,404.34889 75.066856,404.96042 74.536505,405.57736 C 74.255087,405.91289 73.924967,406.29172 73.546145,406.71384 C 73.167316,407.13596 72.831785,407.4769 72.539551,407.73667 L 69.941887,410.05833"
id="text2736" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 58.818822,408.03244 L 60.815776,416.75085 C 61.660003,416.32873 62.336477,415.7172 62.845201,414.91625 C 63.375542,414.11531 63.640719,413.22777 63.640735,412.25364 C 63.640719,411.85318 63.586602,411.47976 63.478381,411.1334 C 63.337659,410.77623 63.137423,410.41905 62.877672,410.06187 C 62.477184,409.42328 61.919769,408.9254 61.205426,408.56821 C 60.501879,408.21104 59.706345,408.03245 58.818822,408.03244 M 57.195282,400.48298 L 58.185642,404.98019 C 58.564457,404.91526 58.954106,404.88279 59.35459,404.88277 C 60.545173,404.88279 61.605885,405.18044 62.536728,405.77572 C 63.489189,406.37103 64.24684,407.15574 64.809684,408.12985 C 65.340023,409.13646 65.605201,410.20258 65.605219,411.32823 C 65.605201,412.70283 65.193904,413.92048 64.371328,414.98119 C 63.527072,416.03108 62.385183,416.87532 60.945659,417.51391 L 62.147079,422.93654 C 62.190359,423.23959 62.212006,423.65089 62.21202,424.17043 C 62.212006,425.54502 61.779062,426.6382 60.913188,427.44998 C 60.025641,428.29421 58.807987,428.78127 57.260224,428.91116 C 56.773153,428.91115 56.318562,428.87868 55.89645,428.81375 C 55.49597,428.77045 55.07385,428.65139 54.630089,428.45657 C 53.829137,428.16433 53.185134,427.73138 52.698077,427.15774 C 52.167716,426.60573 51.870068,425.97255 51.80513,425.2582 C 51.805126,424.68454 51.913362,424.14336 52.129838,423.63466 C 52.248893,423.36406 52.395012,423.13136 52.568194,422.93654 C 52.719719,422.73088 52.909132,422.54147 53.136433,422.3683 C 53.5369,422.07606 53.991491,421.89747 54.500206,421.83253 C 55.07385,421.83253 55.582558,421.94617 56.026334,422.17347 C 56.470092,422.38994 56.821859,422.69841 57.081635,423.09889 C 57.222332,423.31536 57.325156,423.51559 57.390107,423.6996 C 57.455039,423.91607 57.48751,424.13795 57.487519,424.36525 C 57.48751,424.9389 57.352215,425.42596 57.081635,425.82644 C 56.778565,426.20526 56.394327,426.47043 55.928921,426.62197 C 55.463499,426.82761 55.008908,426.93044 54.565148,426.93044 C 54.586788,427.29844 54.873613,427.58526 55.425624,427.79092 C 55.934325,427.98574 56.513387,428.08315 57.162811,428.08316 C 58.48328,427.93162 59.47905,427.5095 60.150125,426.8168 C 60.507291,426.47043 60.783292,426.07537 60.97813,425.63161 C 61.151294,425.18784 61.237883,424.67372 61.237896,424.08925 C 61.237883,423.38571 61.162118,422.74712 61.010601,422.17347 L 60.020242,417.9198 C 59.132695,418.13627 58.234337,418.24451 57.325165,418.24451 C 55.679971,418.24451 54.159256,417.84403 52.763019,417.04309 C 51.345124,416.27461 50.192411,415.2139 49.304879,413.86095 C 48.622991,412.78942 48.222518,412.06965 48.103459,411.70164 C 47.951929,411.23623 47.876164,410.71129 47.876164,410.12681 L 47.778751,408.60068 C 47.778751,407.45339 48.011459,406.3548 48.476873,405.30489 C 48.92064,404.22255 49.521349,403.21595 50.279003,402.28511 C 50.960886,401.37595 51.599478,400.62371 52.19478,400.02839 L 55.490565,396.92743 C 55.209144,395.88839 54.987261,394.87097 54.824914,393.87517 C 54.695024,392.87943 54.630083,391.92695 54.630089,391.01774 C 54.630083,390.10859 54.776201,389.05329 55.068445,387.85184 C 55.371498,386.70457 55.820677,385.6168 56.415983,384.58853 C 56.729859,384.12315 57.054566,383.77138 57.390107,383.53323 C 57.649864,383.32761 58.039513,383.14902 58.559056,382.99746 C 58.797164,382.99749 59.029871,383.05161 59.257178,383.15981 C 59.53858,383.34385 59.803758,383.64691 60.052712,384.06899 C 60.583056,384.99986 61.037647,386.08222 61.416486,387.31607 C 61.58965,387.98717 61.719533,388.57705 61.806135,389.08573 C 61.914357,389.59447 61.968475,390.09235 61.968489,390.57939 C 61.968475,391.19636 61.914357,391.77001 61.806135,392.30034 C 61.697885,392.8199 61.535532,393.43143 61.319073,394.13494 C 61.070117,394.84932 60.848234,395.43921 60.653422,395.9046 C 60.361172,396.47827 60.036465,397.0411 59.679298,397.59308 C 59.019047,398.63217 58.191043,399.59546 57.195282,400.48298 M 59.841652,417.01062 L 57.925875,408.12985 C 57.103272,408.35716 56.405151,408.82257 55.831509,409.5261 C 55.203733,410.21882 54.889849,410.97647 54.889856,411.79905 C 54.889849,413.03295 55.669147,413.98542 57.227753,414.65648 C 57.357627,414.69978 57.422568,414.79719 57.422578,414.94872 C 57.422568,415.11108 57.287273,415.19226 57.016693,415.19225 C 55.912678,414.85672 55.01432,414.23437 54.321617,413.32518 C 53.59643,412.416 53.23384,411.40941 53.233845,410.3054 C 53.23384,409.25552 53.645136,408.23269 54.467735,407.23691 C 55.257851,406.24115 56.199503,405.55385 57.292695,405.17501 L 56.383512,401.14863 C 55.788206,401.63571 55.203733,402.14983 54.630089,402.691 C 54.034785,403.19972 53.526077,403.67596 53.103962,404.11971 C 52.194775,405.00726 51.431712,406.03009 50.814771,407.1882 C 50.208647,408.33551 49.905586,409.53693 49.905589,410.79246 C 49.905586,411.76659 50.094999,412.65412 50.473827,413.45506 C 50.874298,414.25601 51.447948,414.94331 52.19478,415.51696 C 52.952426,416.11226 53.818313,416.55603 54.792443,416.84826 C 55.766559,417.16215 56.800212,417.31909 57.893404,417.31909 C 58.218102,417.31909 58.515751,417.29744 58.786351,417.25415 C 59.078577,417.20003 59.430344,417.11885 59.841652,417.01062 M 60.442362,388.51749 L 60.280008,387.91678 C 60.182583,387.57046 59.971523,387.18622 59.646827,386.76407 C 59.397873,386.47186 59.121872,386.32575 58.818822,386.32571 C 58.569869,386.36904 58.347985,386.49892 58.153171,386.71536 C 58.131513,386.74787 57.844688,387.14834 57.292695,387.91678 C 56.805624,388.63117 56.437622,389.44294 56.188688,390.35209 C 56.080443,390.79589 55.983031,391.23965 55.89645,391.6834 C 55.831501,392.10554 55.79903,392.48978 55.799038,392.83611 C 55.79903,393.81026 55.961384,394.94132 56.2861,396.22931 C 56.892212,395.74227 57.471274,395.16862 58.023288,394.50835 C 58.467044,393.95638 58.943282,393.26908 59.452003,392.44646 C 59.852464,391.79707 60.128465,391.16389 60.280008,390.54692 C 60.388231,390.01659 60.442349,389.34012 60.442362,388.51749"
id="text2740" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 45.148182,411.54113 L 106.16671,411.54113"
id="path2744" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 45.148182,404.90595 L 106.16671,404.90595"
id="path2746" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 45.148182,398.27079 L 106.16671,398.27079"
id="path2748" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 45.148182,391.63561 L 106.16671,391.63561"
id="path2750" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 45.148182,418.17631 L 106.16671,418.17631"
id="path2752" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 77.804682,393.07315 L 77.804682,397.61906 L 78.600217,396.69364 C 78.914099,396.31481 79.206336,395.93599 79.476928,395.55716 C 79.606809,395.36234 79.725868,395.17834 79.834107,395.00516 C 79.920693,394.8428 80.023517,394.65339 80.14258,394.43692 C 80.229165,394.25292 80.315754,394.05268 80.402346,393.83621 C 80.467284,393.70633 80.499755,393.57103 80.499758,393.43033 C 80.499755,393.21385 80.467284,392.99738 80.402346,392.78091 C 80.337401,392.55362 80.256224,392.38044 80.158815,392.26138 C 80.072223,392.1315 79.953164,392.03408 79.801636,391.96914 C 79.650103,391.92585 79.482338,391.89338 79.298339,391.87173 C 78.973629,391.87173 78.643509,392.02326 78.30798,392.32632 C 77.972447,392.61856 77.804681,392.8675 77.804682,393.07315 M 76.976677,399.42119 L 76.976677,381.20507 L 77.804682,381.20507 L 77.804682,391.83926 C 78.670568,391.15737 79.482338,390.81643 80.239992,390.81643 C 80.586344,390.81643 80.916463,390.91384 81.230351,391.10866 C 81.565878,391.32514 81.84188,391.61196 82.058357,391.96914 C 82.264,392.34797 82.366824,392.72679 82.366829,393.10562 C 82.366824,393.71174 82.101646,394.32327 81.571295,394.94022 C 81.289877,395.27575 80.959757,395.65457 80.580935,396.0767 C 80.202106,396.49881 79.866575,396.83976 79.574341,397.09953 L 76.976677,399.42119"
id="text2754" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 84.839472,406.04028 L 84.839472,410.58619 L 85.635007,409.66077 C 85.948889,409.28194 86.241126,408.90312 86.511718,408.52429 C 86.641599,408.32947 86.760658,408.14547 86.868897,407.97229 C 86.955483,407.80994 87.058307,407.62052 87.17737,407.40405 C 87.263955,407.22005 87.350544,407.01982 87.437136,406.80334 C 87.502074,406.67346 87.534545,406.53817 87.534548,406.39746 C 87.534545,406.18099 87.502074,405.96452 87.437136,405.74804 C 87.372191,405.52075 87.291014,405.34757 87.193605,405.22851 C 87.107013,405.09863 86.987954,405.00122 86.836426,404.93627 C 86.684893,404.89298 86.517128,404.86051 86.333129,404.83886 C 86.008419,404.83886 85.6783,404.99039 85.34277,405.29345 C 85.007237,405.58569 84.839471,405.83463 84.839472,406.04028 M 84.011467,412.38832 L 84.011467,394.1722 L 84.839472,394.1722 L 84.839472,404.80639 C 85.705358,404.12451 86.517128,403.78356 87.274782,403.78356 C 87.621134,403.78356 87.951253,403.88097 88.265141,404.0758 C 88.600668,404.29227 88.87667,404.5791 89.093147,404.93627 C 89.29879,405.3151 89.401614,405.69393 89.401619,406.07275 C 89.401614,406.67887 89.136436,407.2904 88.606085,407.90735 C 88.324667,408.24288 87.994547,408.62171 87.615725,409.04383 C 87.236896,409.46595 86.901365,409.80689 86.609131,410.06666 L 84.011467,412.38832"
id="text2758" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 91.874262,396.83395 L 91.874262,401.37986 L 92.669797,400.45444 C 92.983679,400.07562 93.275916,399.69679 93.546508,399.31797 C 93.676389,399.12314 93.795448,398.93914 93.903687,398.76596 C 93.990273,398.60361 94.093097,398.41419 94.21216,398.19772 C 94.298745,398.01372 94.385334,397.81349 94.471926,397.59701 C 94.536864,397.46713 94.569335,397.33184 94.569338,397.19113 C 94.569335,396.97466 94.536864,396.75819 94.471926,396.54171 C 94.406981,396.31442 94.325804,396.14124 94.228395,396.02218 C 94.141803,395.8923 94.022744,395.79489 93.871216,395.72994 C 93.719683,395.68665 93.551918,395.65418 93.367919,395.63253 C 93.043209,395.63253 92.71309,395.78406 92.37756,396.08712 C 92.042027,396.37936 91.874261,396.6283 91.874262,396.83395 M 91.046257,403.18199 L 91.046257,384.96587 L 91.874262,384.96587 L 91.874262,395.60006 C 92.740149,394.91818 93.551918,394.57723 94.309572,394.57723 C 94.655924,394.57723 94.986043,394.67465 95.299931,394.86947 C 95.635458,395.08594 95.91146,395.37277 96.127937,395.72994 C 96.33358,396.10877 96.436404,396.4876 96.436409,396.86642 C 96.436404,397.47254 96.171226,398.08408 95.640875,398.70102 C 95.359457,399.03655 95.029337,399.41538 94.650515,399.8375 C 94.271686,400.25962 93.936155,400.60056 93.643921,400.86033 L 91.046257,403.18199"
id="text2762" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 158.87609,479.45578 L 158.87609,484.00169 L 159.67162,483.07627 C 159.9855,482.69744 160.27774,482.31862 160.54833,481.93979 C 160.67821,481.74497 160.79727,481.56097 160.90551,481.38779 C 160.9921,481.22543 161.09492,481.03602 161.21398,480.81955 C 161.30057,480.63555 161.38716,480.43531 161.47375,480.21884 C 161.53869,480.08896 161.57116,479.95366 161.57116,479.81295 C 161.57116,479.59648 161.53869,479.38001 161.47375,479.16354 C 161.4088,478.93625 161.32763,478.76307 161.23022,478.64401 C 161.14363,478.51413 161.02457,478.41671 160.87304,478.35177 C 160.72151,478.30848 160.55374,478.27601 160.36974,478.25436 C 160.04503,478.25436 159.71491,478.40589 159.37938,478.70895 C 159.04385,479.00119 158.87608,479.25013 158.87609,479.45578 M 158.04808,485.80382 L 158.04808,467.5877 L 158.87609,467.5877 L 158.87609,478.22189 C 159.74197,477.54 160.55374,477.19906 161.3114,477.19906 C 161.65775,477.19906 161.98787,477.29647 162.30175,477.49129 C 162.63728,477.70777 162.91328,477.99459 163.12976,478.35177 C 163.3354,478.7306 163.43823,479.10942 163.43823,479.48825 C 163.43823,480.09437 163.17305,480.7059 162.6427,481.32285 C 162.36128,481.65838 162.03116,482.0372 161.65234,482.45932 C 161.27351,482.88144 160.93798,483.22239 160.64574,483.48215 L 158.04808,485.80382"
id="text2780" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 146.92502,483.77789 L 148.92197,492.4963 C 149.7662,492.07418 150.44267,491.46265 150.9514,490.6617 C 151.48174,489.86076 151.74692,488.97323 151.74693,487.9991 C 151.74692,487.59863 151.6928,487.22522 151.58458,486.87886 C 151.44386,486.52168 151.24362,486.16451 150.98387,485.80732 C 150.58338,485.16874 150.02597,484.67085 149.31162,484.31366 C 148.60808,483.95649 147.81254,483.7779 146.92502,483.77789 M 145.30148,476.22843 L 146.29184,480.72564 C 146.67065,480.66071 147.0603,480.62824 147.46079,480.62823 C 148.65137,480.62824 149.71208,480.92589 150.64293,481.52117 C 151.59539,482.11648 152.35304,482.90119 152.91588,483.87531 C 153.44622,484.88191 153.7114,485.94803 153.71142,487.07368 C 153.7114,488.44828 153.3001,489.66594 152.47753,490.72664 C 151.63327,491.77654 150.49138,492.62078 149.05186,493.25937 L 150.25328,498.68199 C 150.29656,498.98505 150.3182,499.39634 150.31822,499.91588 C 150.3182,501.29047 149.88526,502.38365 149.01939,503.19543 C 148.13184,504.03966 146.91418,504.52672 145.36642,504.65662 C 144.87935,504.65661 144.42476,504.62413 144.00265,504.5592 C 143.60217,504.5159 143.18005,504.39684 142.73629,504.20203 C 141.93533,503.90978 141.29133,503.47683 140.80427,502.90319 C 140.27391,502.35118 139.97626,501.718 139.91133,501.00365 C 139.91132,500.42999 140.01956,499.88882 140.23604,499.38011 C 140.35509,499.10952 140.50121,498.87681 140.67439,498.68199 C 140.82592,498.47634 141.01533,498.28692 141.24263,498.11375 C 141.6431,497.82151 142.09769,497.64292 142.6064,497.57798 C 143.18005,497.57798 143.68876,497.69163 144.13253,497.91893 C 144.57629,498.13539 144.92806,498.44387 145.18783,498.84434 C 145.32853,499.06081 145.43135,499.26105 145.4963,499.44505 C 145.56124,499.66152 145.59371,499.8834 145.59372,500.1107 C 145.59371,500.68435 145.45841,501.17141 145.18783,501.57189 C 144.88476,501.95071 144.50052,502.21589 144.03512,502.36743 C 143.5697,502.57306 143.11511,502.67589 142.67135,502.6759 C 142.69299,503.04389 142.97981,503.33072 143.53182,503.53637 C 144.04052,503.73119 144.61958,503.8286 145.26901,503.82861 C 146.58948,503.67707 147.58525,503.25495 148.25632,502.56225 C 148.61349,502.21589 148.88949,501.82083 149.08433,501.37707 C 149.25749,500.93329 149.34408,500.41917 149.34409,499.8347 C 149.34408,499.13116 149.26832,498.49257 149.1168,497.91893 L 148.12644,493.66525 C 147.23889,493.88172 146.34053,493.98996 145.43136,493.98996 C 143.78617,493.98996 142.26545,493.58949 140.86922,492.78854 C 139.45132,492.02007 138.29861,490.95936 137.41108,489.6064 C 136.72919,488.53487 136.32872,487.8151 136.20966,487.44709 C 136.05813,486.98169 135.98236,486.45674 135.98236,485.87226 L 135.88495,484.34613 C 135.88495,483.19884 136.11766,482.10025 136.58307,481.05035 C 137.02684,479.968 137.62755,478.96141 138.3852,478.03056 C 139.06708,477.1214 139.70568,476.36916 140.30098,475.77384 L 143.59676,472.67288 C 143.31534,471.63384 143.09346,470.61642 142.93111,469.62063 C 142.80122,468.62488 142.73628,467.67241 142.73629,466.7632 C 142.73628,465.85404 142.8824,464.79874 143.17464,463.59729 C 143.4777,462.45002 143.92687,461.36225 144.52218,460.33398 C 144.83606,459.8686 145.16076,459.51683 145.4963,459.27868 C 145.75606,459.07307 146.14571,458.89448 146.66525,458.74291 C 146.90336,458.74295 147.13607,458.79706 147.36338,458.90526 C 147.64478,459.0893 147.90995,459.39236 148.15891,459.81445 C 148.68925,460.74531 149.14384,461.82767 149.52268,463.06153 C 149.69585,463.73262 149.82573,464.32251 149.91233,464.83118 C 150.02055,465.33992 150.07467,465.83781 150.07469,466.32484 C 150.07467,466.94181 150.02055,467.51546 149.91233,468.04579 C 149.80408,468.56535 149.64173,469.17688 149.42527,469.88039 C 149.17631,470.59477 148.95443,471.18466 148.75962,471.65005 C 148.46737,472.22372 148.14266,472.78655 147.7855,473.33853 C 147.12524,474.37762 146.29724,475.34092 145.30148,476.22843 M 147.94785,492.75607 L 146.03207,483.87531 C 145.20947,484.10261 144.51135,484.56803 143.93771,485.27155 C 143.30993,485.96427 142.99605,486.72192 142.99605,487.54451 C 142.99605,488.7784 143.77534,489.73088 145.33395,490.40194 C 145.46382,490.44523 145.52877,490.54265 145.52878,490.69417 C 145.52877,490.85653 145.39347,490.93771 145.12289,490.9377 C 144.01888,490.60218 143.12052,489.97982 142.42781,489.07063 C 141.70263,488.16146 141.34004,487.15486 141.34004,486.05085 C 141.34004,485.00097 141.75133,483.97814 142.57393,482.98236 C 143.36405,481.9866 144.3057,481.2993 145.39889,480.92046 L 144.48971,476.89409 C 143.8944,477.38116 143.30993,477.89528 142.73629,478.43645 C 142.14098,478.94517 141.63227,479.42141 141.21016,479.86516 C 140.30097,480.75271 139.53791,481.77554 138.92097,482.93365 C 138.31484,484.08096 138.01178,485.28238 138.01179,486.53791 C 138.01178,487.51204 138.2012,488.39958 138.58002,489.20052 C 138.98049,490.00147 139.55415,490.68877 140.30098,491.26241 C 141.05862,491.85771 141.92451,492.30148 142.89864,492.59372 C 143.87276,492.9076 144.90641,493.06454 145.9996,493.06454 C 146.3243,493.06454 146.62195,493.0429 146.89255,492.9996 C 147.18477,492.94548 147.53654,492.86431 147.94785,492.75607 M 148.54856,464.26295 L 148.38621,463.66224 C 148.28878,463.31591 148.07772,462.93167 147.75302,462.50952 C 147.50407,462.21732 147.22807,462.0712 146.92502,462.07117 C 146.67607,462.11449 146.45418,462.24438 146.25937,462.46082 C 146.23771,462.49332 145.95089,462.89379 145.39889,463.66224 C 144.91182,464.37662 144.54382,465.18839 144.29488,466.09755 C 144.18664,466.54134 144.08923,466.98511 144.00265,467.42885 C 143.9377,467.85099 143.90523,468.23523 143.90524,468.58156 C 143.90523,469.55571 144.06758,470.68677 144.3923,471.97476 C 144.99841,471.48772 145.57747,470.91407 146.12948,470.25381 C 146.57324,469.70183 147.04948,469.01453 147.5582,468.19191 C 147.95866,467.54252 148.23466,466.90934 148.38621,466.29237 C 148.49443,465.76204 148.54855,465.08557 148.54856,464.26295"
id="text2784" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 133.25438,487.2866 L 209.55147,487.2866"
id="path2788" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 133.25438,480.65142 L 209.55147,480.65142"
id="path2790" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 133.25438,474.01626 L 209.55147,474.01626"
id="path2792" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 133.25438,467.38108 L 209.55147,467.38108"
id="path2794" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 133.25438,493.92178 L 209.55147,493.92178"
id="path2796" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 165.91088,468.8186 L 165.91088,473.36451 L 166.70641,472.43909 C 167.02029,472.06027 167.31253,471.68144 167.58312,471.30262 C 167.713,471.10779 167.83206,470.92379 167.9403,470.75061 C 168.02689,470.58826 168.12971,470.39884 168.24877,470.18237 C 168.33536,469.99837 168.42195,469.79814 168.50854,469.58166 C 168.57348,469.45178 168.60595,469.31649 168.60595,469.17578 C 168.60595,468.95931 168.57348,468.74284 168.50854,468.52636 C 168.44359,468.29907 168.36242,468.12589 168.26501,468.00683 C 168.17842,467.87695 168.05936,467.77954 167.90783,467.71459 C 167.7563,467.6713 167.58853,467.63883 167.40453,467.61718 C 167.07982,467.61718 166.7497,467.76871 166.41417,468.07177 C 166.07864,468.36401 165.91087,468.61295 165.91088,468.8186 M 165.08287,475.16664 L 165.08287,456.95052 L 165.91088,456.95052 L 165.91088,467.58471 C 166.77676,466.90283 167.58853,466.56188 168.34619,466.56188 C 168.69254,466.56188 169.02266,466.65929 169.33654,466.85412 C 169.67207,467.07059 169.94807,467.35742 170.16455,467.71459 C 170.37019,468.09342 170.47302,468.47225 170.47302,468.85107 C 170.47302,469.45719 170.20784,470.06873 169.67749,470.68567 C 169.39607,471.0212 169.06595,471.40003 168.68713,471.82215 C 168.3083,472.24427 167.97277,472.58521 167.68053,472.84498 L 165.08287,475.16664"
id="text2798" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 172.94567,481.78576 L 172.94567,486.33167 L 173.7412,485.40626 C 174.05508,485.02743 174.34732,484.6486 174.61791,484.26978 C 174.74779,484.07495 174.86685,483.89095 174.97509,483.71777 C 175.06168,483.55542 175.1645,483.36601 175.28356,483.14954 C 175.37015,482.96553 175.45674,482.7653 175.54333,482.54883 C 175.60827,482.41894 175.64074,482.28365 175.64074,482.14294 C 175.64074,481.92647 175.60827,481.71 175.54333,481.49353 C 175.47838,481.26623 175.39721,481.09305 175.2998,480.97399 C 175.21321,480.84411 175.09415,480.7467 174.94262,480.68176 C 174.79109,480.63846 174.62332,480.60599 174.43932,480.58434 C 174.11461,480.58435 173.78449,480.73588 173.44896,481.03893 C 173.11343,481.33117 172.94566,481.58012 172.94567,481.78576 M 172.11766,488.1338 L 172.11766,469.91769 L 172.94567,469.91769 L 172.94567,480.55187 C 173.81155,479.86999 174.62332,479.52905 175.38098,479.52904 C 175.72733,479.52905 176.05745,479.62646 176.37133,479.82128 C 176.70686,480.03775 176.98286,480.32458 177.19934,480.68176 C 177.40498,481.06058 177.50781,481.43941 177.50781,481.81823 C 177.50781,482.42436 177.24263,483.03589 176.71228,483.65283 C 176.43086,483.98836 176.10074,484.36719 175.72192,484.78931 C 175.34309,485.21143 175.00756,485.55237 174.71532,485.81214 L 172.11766,488.1338"
id="text2802" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 179.98046,472.57943 L 179.98046,477.12534 L 180.77599,476.19993 C 181.08987,475.8211 181.38211,475.44227 181.6527,475.06345 C 181.78258,474.86862 181.90164,474.68462 182.00988,474.51145 C 182.09647,474.34909 182.19929,474.15968 182.31835,473.94321 C 182.40494,473.75921 182.49153,473.55897 182.57812,473.3425 C 182.64306,473.21261 182.67553,473.07732 182.67553,472.93661 C 182.67553,472.72014 182.64306,472.50367 182.57812,472.2872 C 182.51317,472.0599 182.432,471.88672 182.33459,471.76766 C 182.248,471.63778 182.12894,471.54037 181.97741,471.47543 C 181.82588,471.43213 181.65811,471.39966 181.47411,471.37801 C 181.1494,471.37802 180.81928,471.52955 180.48375,471.8326 C 180.14822,472.12484 179.98046,472.37379 179.98046,472.57943 M 179.15245,478.92747 L 179.15245,460.71136 L 179.98046,460.71136 L 179.98046,471.34554 C 180.84634,470.66366 181.65811,470.32272 182.41577,470.32271 C 182.76212,470.32272 183.09224,470.42013 183.40612,470.61495 C 183.74165,470.83143 184.01765,471.11825 184.23413,471.47543 C 184.43977,471.85425 184.5426,472.23308 184.5426,472.6119 C 184.5426,473.21803 184.27742,473.82956 183.74707,474.4465 C 183.46565,474.78203 183.13553,475.16086 182.75671,475.58298 C 182.37788,476.0051 182.04235,476.34604 181.75011,476.60581 L 179.15245,478.92747"
id="text2806" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 187.01525,485.81414 L 187.01525,490.36006 L 187.81078,489.43464 C 188.12466,489.05581 188.4169,488.67698 188.68749,488.29816 C 188.81737,488.10333 188.93643,487.91933 189.04467,487.74616 C 189.13126,487.5838 189.23408,487.39439 189.35314,487.17792 C 189.43973,486.99392 189.52632,486.79368 189.61291,486.57721 C 189.67785,486.44733 189.71032,486.31203 189.71032,486.17132 C 189.71032,485.95485 189.67785,485.73838 189.61291,485.52191 C 189.54796,485.29461 189.46679,485.12144 189.36938,485.00237 C 189.28279,484.87249 189.16373,484.77508 189.0122,484.71014 C 188.86067,484.66684 188.6929,484.63437 188.5089,484.61272 C 188.18419,484.61273 187.85407,484.76426 187.51854,485.06732 C 187.18301,485.35955 187.01525,485.6085 187.01525,485.81414 M 186.18724,492.16218 L 186.18724,473.94607 L 187.01525,473.94607 L 187.01525,484.58025 C 187.88113,483.89837 188.6929,483.55743 189.45056,483.55742 C 189.79691,483.55743 190.12703,483.65484 190.44091,483.84966 C 190.77644,484.06614 191.05244,484.35296 191.26892,484.71014 C 191.47456,485.08896 191.57739,485.46779 191.57739,485.84661 C 191.57739,486.45274 191.31221,487.06427 190.78186,487.68121 C 190.50044,488.01675 190.17032,488.39557 189.7915,488.81769 C 189.41267,489.23981 189.07714,489.58075 188.7849,489.84052 L 186.18724,492.16218"
id="text2810" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 327.72859,508.83429 L 327.72859,505.24627 L 325.89399,505.65216 L 325.89399,509.24018 L 327.72859,508.83429 M 329.85543,508.34723 L 329.85543,510.96113 L 328.55659,511.2696 L 328.55659,515.96163 L 327.72859,515.96163 L 327.72859,511.43196 L 325.89399,511.87031 L 325.89399,516.54611 L 325.09845,516.54611 L 325.09845,512.06514 L 323.79962,512.35738 L 323.79962,509.77595 C 324.66551,509.77594 325.09845,509.6623 325.09845,509.435 L 325.09845,505.84698 L 323.79962,506.17169 L 323.79962,503.6552 L 325.09845,503.31426 L 325.13092,498.52482 L 325.89399,498.52482 L 325.89399,503.11943 L 327.72859,502.71355 L 327.72859,497.82669 L 328.55659,497.82669 L 328.55659,502.51872 L 329.85543,502.22649 L 329.85543,504.74297 L 328.55659,505.05145 L 328.55659,508.63947 L 329.85543,508.34723"
id="text3079" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 316.67655,524.07169 L 318.6735,532.7901 C 319.51773,532.36798 320.1942,531.75644 320.70292,530.9555 C 321.23326,530.15455 321.49844,529.26702 321.49846,528.29289 C 321.49844,527.89242 321.44432,527.51901 321.3361,527.17265 C 321.19538,526.81548 320.99515,526.4583 320.73539,526.10111 C 320.33491,525.46253 319.77749,524.96464 319.06315,524.60746 C 318.3596,524.25029 317.56407,524.0717 316.67655,524.07169 M 315.05301,516.52223 L 316.04336,521.01943 C 316.42218,520.9545 316.81183,520.92203 317.21231,520.92202 C 318.4029,520.92203 319.46361,521.21968 320.39445,521.81497 C 321.34691,522.41028 322.10456,523.19499 322.66741,524.1691 C 323.19775,525.1757 323.46292,526.24183 323.46294,527.36747 C 323.46292,528.74208 323.05163,529.95973 322.22905,531.02044 C 321.3848,532.07033 320.24291,532.91457 318.80338,533.55316 L 320.0048,538.97578 C 320.04808,539.27884 320.06973,539.69013 320.06974,540.20967 C 320.06973,541.58426 319.63679,542.67744 318.77091,543.48922 C 317.88336,544.33345 316.66571,544.82052 315.11795,544.95041 C 314.63088,544.9504 314.17629,544.91793 313.75417,544.853 C 313.35369,544.80969 312.93157,544.69063 312.48781,544.49582 C 311.68686,544.20357 311.04286,543.77063 310.5558,543.19699 C 310.02544,542.64497 309.72779,542.01179 309.66285,541.29744 C 309.66285,540.72379 309.77109,540.18261 309.98756,539.6739 C 310.10662,539.40331 310.25273,539.1706 310.42592,538.97578 C 310.57744,538.77013 310.76686,538.58072 310.99416,538.40754 C 311.39462,538.1153 311.84921,537.93671 312.35793,537.87178 C 312.93157,537.87177 313.44028,537.98542 313.88406,538.21272 C 314.32782,538.42919 314.67958,538.73766 314.93936,539.13814 C 315.08006,539.3546 315.18288,539.55484 315.24783,539.73885 C 315.31276,539.95531 315.34523,540.1772 315.34524,540.4045 C 315.34523,540.97814 315.20994,541.4652 314.93936,541.86568 C 314.63629,542.2445 314.25205,542.50968 313.78664,542.66122 C 313.32122,542.86686 312.86663,542.96968 312.42287,542.96969 C 312.44451,543.33768 312.73134,543.62451 313.28335,543.83017 C 313.79205,544.02498 314.37111,544.12239 315.02053,544.1224 C 316.341,543.97086 317.33677,543.54874 318.00785,542.85604 C 318.36501,542.50968 318.64102,542.11462 318.83585,541.67086 C 319.00902,541.22708 319.09561,540.71296 319.09562,540.1285 C 319.09561,539.42496 319.01984,538.78637 318.86832,538.21272 L 317.87796,533.95904 C 316.99042,534.17552 316.09206,534.28375 315.18289,534.28375 C 313.53769,534.28375 312.01698,533.88328 310.62074,533.08233 C 309.20285,532.31386 308.05013,531.25315 307.1626,529.90019 C 306.48071,528.82866 306.08024,528.1089 305.96118,527.74089 C 305.80965,527.27548 305.73389,526.75054 305.73389,526.16605 L 305.63647,524.63993 C 305.63647,523.49264 305.86918,522.39404 306.3346,521.34414 C 306.77836,520.26179 307.37907,519.2552 308.13673,518.32436 C 308.81861,517.41519 309.4572,516.66295 310.0525,516.06764 L 313.34829,512.96667 C 313.06687,511.92763 312.84498,510.91021 312.68264,509.91442 C 312.55275,508.91867 312.48781,507.9662 312.48781,507.05699 C 312.48781,506.14784 312.63392,505.09254 312.92617,503.89109 C 313.22922,502.74382 313.6784,501.65605 314.27371,500.62777 C 314.58758,500.16239 314.91229,499.81062 315.24783,499.57247 C 315.50759,499.36686 315.89724,499.18827 316.41678,499.0367 C 316.65489,499.03674 316.88759,499.09086 317.1149,499.19906 C 317.3963,499.38309 317.66148,499.68615 317.91044,500.10824 C 318.44078,501.0391 318.89537,502.12146 319.27421,503.35532 C 319.44737,504.02641 319.57726,504.6163 319.66386,505.12498 C 319.77208,505.63372 319.8262,506.1316 319.82621,506.61863 C 319.8262,507.23561 319.77208,507.80926 319.66386,508.33959 C 319.55561,508.85914 319.39325,509.47068 319.1768,510.17419 C 318.92784,510.88857 318.70596,511.47845 318.51115,511.94384 C 318.2189,512.51752 317.89419,513.08034 317.53702,513.63233 C 316.87677,514.67141 316.04877,515.63471 315.05301,516.52223 M 317.69938,533.04986 L 315.7836,524.1691 C 314.961,524.3964 314.26287,524.86182 313.68923,525.56534 C 313.06146,526.25806 312.74757,527.01571 312.74758,527.8383 C 312.74757,529.07219 313.52687,530.02467 315.08548,530.69573 C 315.21535,530.73903 315.28029,530.83644 315.2803,530.98797 C 315.28029,531.15032 315.145,531.2315 314.87442,531.2315 C 313.7704,530.89597 312.87204,530.27361 312.17934,529.36443 C 311.45415,528.45525 311.09156,527.44866 311.09157,526.34464 C 311.09156,525.29476 311.50286,524.27193 312.32546,523.27615 C 313.11557,522.28039 314.05723,521.5931 315.15042,521.21426 L 314.24124,517.18788 C 313.64593,517.67496 313.06146,518.18908 312.48781,518.73024 C 311.89251,519.23897 311.3838,519.7152 310.96169,520.15896 C 310.0525,521.0465 309.28944,522.06933 308.67249,523.22745 C 308.06637,524.37476 307.76331,525.57618 307.76331,526.8317 C 307.76331,527.80584 307.95272,528.69337 308.33155,529.49431 C 308.73202,530.29526 309.30567,530.98256 310.0525,531.55621 C 310.81015,532.15151 311.67604,532.59527 312.65017,532.88751 C 313.62428,533.20139 314.65794,533.35834 315.75113,533.35833 C 316.07583,533.35834 316.37347,533.33669 316.64407,533.29339 C 316.9363,533.23928 317.28807,533.1581 317.69938,533.04986 M 318.30009,504.55674 L 318.13773,503.95603 C 318.04031,503.6097 317.82925,503.22547 317.50455,502.80332 C 317.2556,502.51111 316.97959,502.36499 316.67655,502.36496 C 316.42759,502.40829 316.20571,502.53817 316.01089,502.75461 C 315.98924,502.78711 315.70241,503.18758 315.15042,503.95603 C 314.66335,504.67042 314.29534,505.48218 314.04641,506.39134 C 313.93817,506.83513 313.84075,507.2789 313.75417,507.72264 C 313.68922,508.14479 313.65675,508.52902 313.65676,508.87535 C 313.65675,509.8495 313.81911,510.98057 314.14382,512.26855 C 314.74994,511.78151 315.329,511.20786 315.88101,510.5476 C 316.32477,509.99562 316.80101,509.30832 317.30973,508.4857 C 317.71019,507.83632 317.98619,507.20314 318.13773,506.58616 C 318.24595,506.05584 318.30007,505.37936 318.30009,504.55674"
id="text3083" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 303.00592,527.58041 L 374.25224,527.58041"
id="path3087" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 303.00592,520.94523 L 374.25224,520.94523"
id="path3089" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 303.00592,514.31008 L 374.25224,514.31008"
id="path3091" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 303.00592,507.67489 L 374.25224,507.67489"
id="path3093" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 303.00592,534.2156 L 374.25224,534.2156"
id="path3095" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 335.44569,519.08997 L 335.44569,515.50195 L 333.61109,515.90783 L 333.61109,519.49586 L 335.44569,519.08997 M 337.57253,518.60291 L 337.57253,521.21681 L 336.2737,521.52528 L 336.2737,526.21731 L 335.44569,526.21731 L 335.44569,521.68763 L 333.61109,522.12599 L 333.61109,526.80178 L 332.81556,526.80178 L 332.81556,522.32081 L 331.51672,522.61305 L 331.51672,520.03162 C 332.38261,520.03162 332.81555,519.91797 332.81556,519.69068 L 332.81556,516.10266 L 331.51672,516.42737 L 331.51672,513.91088 L 332.81556,513.56994 L 332.84803,508.78049 L 333.61109,508.78049 L 333.61109,513.37511 L 335.44569,512.96923 L 335.44569,508.08237 L 336.2737,508.08237 L 336.2737,512.7744 L 337.57253,512.48216 L 337.57253,514.99865 L 336.2737,515.30712 L 336.2737,518.89515 L 337.57253,518.60291"
id="text3097" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 343.16279,506.05713 L 343.16279,502.46911 L 341.32819,502.875 L 341.32819,506.46302 L 343.16279,506.05713 M 345.28963,505.57007 L 345.28963,508.18397 L 343.9908,508.49244 L 343.9908,513.18447 L 343.16279,513.18447 L 343.16279,508.6548 L 341.32819,509.09315 L 341.32819,513.76895 L 340.53266,513.76895 L 340.53266,509.28798 L 339.23383,509.58021 L 339.23383,506.99879 C 340.09971,506.99878 340.53266,506.88514 340.53266,506.65784 L 340.53266,503.06982 L 339.23383,503.39453 L 339.23383,500.87804 L 340.53266,500.5371 L 340.56513,495.74766 L 341.32819,495.74766 L 341.32819,500.34227 L 343.16279,499.93639 L 343.16279,495.04953 L 343.9908,495.04953 L 343.9908,499.74156 L 345.28963,499.44933 L 345.28963,501.96581 L 343.9908,502.27429 L 343.9908,505.86231 L 345.28963,505.57007"
id="text3101" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 350.87989,515.95795 L 350.87989,512.36993 L 349.04529,512.77581 L 349.04529,516.36384 L 350.87989,515.95795 M 353.00673,515.47089 L 353.00673,518.08479 L 351.7079,518.39326 L 351.7079,523.08529 L 350.87989,523.08529 L 350.87989,518.55562 L 349.04529,518.99397 L 349.04529,523.66977 L 348.24976,523.66977 L 348.24976,519.1888 L 346.95093,519.48103 L 346.95093,516.8996 C 347.81681,516.8996 348.24976,516.78595 348.24976,516.55866 L 348.24976,512.97064 L 346.95093,513.29535 L 346.95093,510.77886 L 348.24976,510.43792 L 348.28223,505.64847 L 349.04529,505.64847 L 349.04529,510.24309 L 350.87989,509.83721 L 350.87989,504.95035 L 351.7079,504.95035 L 351.7079,509.64238 L 353.00673,509.35014 L 353.00673,511.86663 L 351.7079,512.1751 L 351.7079,515.76313 L 353.00673,515.47089"
id="text3105" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 358.59706,525.62128 L 358.59706,522.03326 L 356.76246,522.43914 L 356.76246,526.02717 L 358.59706,525.62128 M 360.72389,525.13422 L 360.72389,527.74812 L 359.42506,528.05659 L 359.42506,532.74862 L 358.59706,532.74862 L 358.59706,528.21895 L 356.76246,528.6573 L 356.76246,533.3331 L 355.96692,533.3331 L 355.96692,528.85213 L 354.66809,529.14436 L 354.66809,526.56293 C 355.53398,526.56293 355.96692,526.44928 355.96692,526.22199 L 355.96692,522.63397 L 354.66809,522.95868 L 354.66809,520.44219 L 355.96692,520.10125 L 355.99939,515.3118 L 356.76246,515.3118 L 356.76246,519.90642 L 358.59706,519.50054 L 358.59706,514.61368 L 359.42506,514.61368 L 359.42506,519.30571 L 360.72389,519.01347 L 360.72389,521.52996 L 359.42506,521.83843 L 359.42506,525.42646 L 360.72389,525.13422"
id="text3109" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 366.31416,512.26893 L 366.31416,508.6809 L 364.47956,509.08679 L 364.47956,512.67481 L 366.31416,512.26893 M 368.441,511.78186 L 368.441,514.39576 L 367.14216,514.70424 L 367.14216,519.39627 L 366.31416,519.39627 L 366.31416,514.86659 L 364.47956,515.30494 L 364.47956,519.98074 L 363.68402,519.98074 L 363.68402,515.49977 L 362.38519,515.79201 L 362.38519,513.21058 C 363.25108,513.21058 363.68402,513.09693 363.68402,512.86964 L 363.68402,509.28161 L 362.38519,509.60632 L 362.38519,507.08983 L 363.68402,506.74889 L 363.7165,501.95945 L 364.47956,501.95945 L 364.47956,506.55407 L 366.31416,506.14818 L 366.31416,501.26133 L 367.14216,501.26133 L 367.14216,505.95336 L 368.441,505.66112 L 368.441,508.17761 L 367.14216,508.48608 L 367.14216,512.0741 L 368.441,511.78186"
id="text3113" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 255.36946,519.66235 L 255.36946,524.20826 L 256.165,523.28284 C 256.47888,522.90402 256.77112,522.52519 257.04171,522.14637 C 257.17159,521.95154 257.29065,521.76754 257.39889,521.59436 C 257.48547,521.43201 257.5883,521.24259 257.70736,521.02612 C 257.79395,520.84212 257.88054,520.64189 257.96713,520.42541 C 258.03207,520.29553 258.06454,520.16024 258.06454,520.01953 C 258.06454,519.80306 258.03207,519.58659 257.96713,519.37011 C 257.90218,519.14282 257.82101,518.96964 257.7236,518.85058 C 257.637,518.7207 257.51794,518.62329 257.36642,518.55834 C 257.21488,518.51505 257.04712,518.48258 256.86312,518.46093 C 256.53841,518.46093 256.20829,518.61246 255.87276,518.91552 C 255.53723,519.20776 255.36946,519.4567 255.36946,519.66235 M 254.54146,526.01039 L 254.54146,507.79427 L 255.36946,507.79427 L 255.36946,518.42846 C 256.23535,517.74658 257.04712,517.40563 257.80477,517.40563 C 258.15112,517.40563 258.48124,517.50304 258.79513,517.69787 C 259.13066,517.91434 259.40666,518.20117 259.62314,518.55834 C 259.82878,518.93717 259.9316,519.316 259.93161,519.69482 C 259.9316,520.30094 259.66643,520.91248 259.13608,521.52942 C 258.85466,521.86495 258.52454,522.24378 258.14572,522.6659 C 257.76689,523.08802 257.43136,523.42896 257.13912,523.68873 L 254.54146,526.01039"
id="text3123" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 243.4184,523.98447 L 245.41535,532.70288 C 246.25958,532.28076 246.93605,531.66923 247.44478,530.86828 C 247.97512,530.06733 248.24029,529.1798 248.24031,528.20567 C 248.24029,527.8052 248.18618,527.43179 248.07796,527.08543 C 247.93723,526.72826 247.737,526.37108 247.47725,526.01389 C 247.07676,525.37531 246.51934,524.87742 245.805,524.52024 C 245.10145,524.16307 244.30592,523.98448 243.4184,523.98447 M 241.79486,516.43501 L 242.78522,520.93221 C 243.16403,520.86728 243.55368,520.83481 243.95417,520.8348 C 245.14475,520.83481 246.20546,521.13246 247.1363,521.72775 C 248.08876,522.32306 248.84642,523.10777 249.40926,524.08188 C 249.9396,525.08848 250.20478,526.15461 250.20479,527.28025 C 250.20478,528.65486 249.79348,529.87251 248.9709,530.93322 C 248.12665,531.98311 246.98476,532.82735 245.54523,533.46594 L 246.74665,538.88856 C 246.78993,539.19162 246.81158,539.60292 246.8116,540.12245 C 246.81158,541.49704 246.37864,542.59023 245.51276,543.402 C 244.62522,544.24623 243.40756,544.7333 241.8598,544.86319 C 241.37273,544.86318 240.91814,544.83071 240.49603,544.76578 C 240.09554,544.72247 239.67342,544.60341 239.22966,544.4086 C 238.42871,544.11635 237.78471,543.68341 237.29765,543.10977 C 236.76729,542.55775 236.46964,541.92457 236.40471,541.21023 C 236.4047,540.63657 236.51294,540.09539 236.72941,539.58669 C 236.84847,539.31609 236.99459,539.08338 237.16777,538.88856 C 237.31929,538.68291 237.50871,538.4935 237.73601,538.32032 C 238.13648,538.02808 238.59107,537.84949 239.09978,537.78456 C 239.67342,537.78455 240.18213,537.8982 240.62591,538.1255 C 241.06967,538.34197 241.42143,538.65044 241.68121,539.05092 C 241.82191,539.26738 241.92473,539.46762 241.98968,539.65163 C 242.05461,539.86809 242.08708,540.08998 242.08709,540.31728 C 242.08708,540.89092 241.95179,541.37798 241.68121,541.77846 C 241.37814,542.15728 240.9939,542.42246 240.5285,542.574 C 240.06307,542.77964 239.60848,542.88246 239.16472,542.88247 C 239.18636,543.25046 239.47319,543.53729 240.0252,543.74295 C 240.5339,543.93776 241.11296,544.03517 241.76239,544.03518 C 243.08285,543.88364 244.07862,543.46152 244.7497,542.76882 C 245.10687,542.42246 245.38287,542.0274 245.57771,541.58364 C 245.75087,541.13986 245.83746,540.62574 245.83747,540.04128 C 245.83746,539.33774 245.76169,538.69915 245.61018,538.1255 L 244.61982,533.87183 C 243.73227,534.0883 242.83391,534.19653 241.92474,534.19653 C 240.27955,534.19653 238.75883,533.79606 237.36259,532.99511 C 235.9447,532.22664 234.79199,531.16593 233.90445,529.81298 C 233.22257,528.74144 232.82209,528.02168 232.70303,527.65367 C 232.5515,527.18826 232.47574,526.66332 232.47574,526.07883 L 232.37833,524.55271 C 232.37833,523.40542 232.61103,522.30682 233.07645,521.25692 C 233.52021,520.17458 234.12092,519.16798 234.87858,518.23714 C 235.56046,517.32797 236.19905,516.57573 236.79435,515.98042 L 240.09014,512.87946 C 239.80872,511.84041 239.58684,510.823 239.42449,509.8272 C 239.2946,508.83145 239.22966,507.87898 239.22966,506.96977 C 239.22966,506.06062 239.37578,505.00532 239.66802,503.80387 C 239.97107,502.6566 240.42025,501.56883 241.01556,500.54055 C 241.32943,500.07517 241.65414,499.72341 241.98968,499.48525 C 242.24944,499.27964 242.63909,499.10105 243.15863,498.94948 C 243.39674,498.94952 243.62945,499.00364 243.85675,499.11184 C 244.13815,499.29587 244.40333,499.59893 244.65229,500.02102 C 245.18263,500.95188 245.63722,502.03424 246.01606,503.2681 C 246.18922,503.93919 246.31911,504.52908 246.40571,505.03776 C 246.51393,505.5465 246.56805,506.04438 246.56806,506.53141 C 246.56805,507.14839 246.51393,507.72204 246.40571,508.25237 C 246.29746,508.77193 246.13511,509.38346 245.91865,510.08697 C 245.66969,510.80135 245.44781,511.39123 245.253,511.85663 C 244.96075,512.4303 244.63604,512.99312 244.27887,513.54511 C 243.61862,514.58419 242.79062,515.54749 241.79486,516.43501 M 244.44123,532.96264 L 242.52545,524.08188 C 241.70285,524.30919 241.00473,524.7746 240.43108,525.47812 C 239.80331,526.17084 239.48942,526.92849 239.48943,527.75108 C 239.48942,528.98498 240.26872,529.93745 241.82733,530.60851 C 241.9572,530.65181 242.02214,530.74922 242.02215,530.90075 C 242.02214,531.0631 241.88685,531.14428 241.61627,531.14428 C 240.51225,530.80875 239.61389,530.18639 238.92119,529.27721 C 238.196,528.36803 237.83341,527.36144 237.83342,526.25742 C 237.83341,525.20754 238.24471,524.18471 239.06731,523.18893 C 239.85743,522.19317 240.79908,521.50588 241.89227,521.12704 L 240.98309,517.10066 C 240.38778,517.58774 239.80331,518.10186 239.22966,518.64302 C 238.63436,519.15175 238.12565,519.62798 237.70354,520.07174 C 236.79435,520.95929 236.03129,521.98211 235.41435,523.14023 C 234.80822,524.28754 234.50516,525.48896 234.50516,526.74449 C 234.50516,527.71862 234.69457,528.60615 235.0734,529.40709 C 235.47387,530.20804 236.04752,530.89534 236.79435,531.46899 C 237.552,532.06429 238.41789,532.50805 239.39202,532.80029 C 240.36613,533.11417 241.39979,533.27112 242.49298,533.27112 C 242.81768,533.27112 243.11533,533.24947 243.38593,533.20617 C 243.67815,533.15206 244.02992,533.07088 244.44123,532.96264 M 245.04194,504.46952 L 244.87958,503.86881 C 244.78216,503.52249 244.5711,503.13825 244.2464,502.7161 C 243.99745,502.42389 243.72145,502.27777 243.4184,502.27774 C 243.16944,502.32107 242.94756,502.45095 242.75275,502.66739 C 242.73109,502.69989 242.44426,503.10037 241.89227,503.86881 C 241.4052,504.5832 241.0372,505.39497 240.78826,506.30412 C 240.68002,506.74791 240.58261,507.19168 240.49603,507.63542 C 240.43108,508.05757 240.39861,508.44181 240.39861,508.78814 C 240.39861,509.76228 240.56096,510.89335 240.88568,512.18133 C 241.49179,511.69429 242.07085,511.12064 242.62286,510.46038 C 243.06662,509.9084 243.54286,509.2211 244.05158,508.39849 C 244.45204,507.7491 244.72804,507.11592 244.87958,506.49894 C 244.98781,505.96862 245.04192,505.29214 245.04194,504.46952"
id="text3127" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 229.74776,527.49317 L 299.22631,527.49317"
id="path3131" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 229.74776,520.85799 L 299.22631,520.85799"
id="path3133" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 229.74776,514.22283 L 299.22631,514.22283"
id="path3135" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 229.74776,507.58765 L 299.22631,507.58765"
id="path3137" />
<path
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
d="M 229.74776,534.12835 L 299.22631,534.12835"
id="path3139" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 262.40427,509.0252 L 262.40427,513.57111 L 263.1998,512.6457 C 263.51369,512.26687 263.80592,511.88804 264.07651,511.50922 C 264.2064,511.31439 264.32545,511.13039 264.43369,510.95722 C 264.52028,510.79486 264.6231,510.60545 264.74217,510.38898 C 264.82875,510.20498 264.91534,510.00474 265.00193,509.78827 C 265.06687,509.65838 265.09934,509.52309 265.09934,509.38238 C 265.09934,509.16591 265.06687,508.94944 265.00193,508.73297 C 264.93699,508.50567 264.85581,508.3325 264.7584,508.21343 C 264.67181,508.08355 264.55275,507.98614 264.40122,507.9212 C 264.24969,507.8779 264.08192,507.84543 263.89793,507.82378 C 263.57322,507.82379 263.2431,507.97532 262.90757,508.27837 C 262.57203,508.57061 262.40427,508.81956 262.40427,509.0252 M 261.57626,515.37324 L 261.57626,497.15713 L 262.40427,497.15713 L 262.40427,507.79131 C 263.27015,507.10943 264.08192,506.76849 264.83958,506.76848 C 265.18593,506.76849 265.51605,506.8659 265.82994,507.06072 C 266.16546,507.2772 266.44147,507.56402 266.65794,507.9212 C 266.86359,508.30002 266.96641,508.67885 266.96642,509.05767 C 266.96641,509.6638 266.70123,510.27533 266.17088,510.89227 C 265.88946,511.2278 265.55934,511.60663 265.18052,512.02875 C 264.80169,512.45087 264.46616,512.79181 264.17393,513.05158 L 261.57626,515.37324"
id="text3141" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 269.43906,521.99231 L 269.43906,526.53822 L 270.23459,525.6128 C 270.54848,525.23397 270.84071,524.85515 271.1113,524.47632 C 271.24119,524.2815 271.36024,524.09749 271.46848,523.92432 C 271.55507,523.76196 271.65789,523.57255 271.77696,523.35608 C 271.86354,523.17208 271.95013,522.97184 272.03672,522.75537 C 272.10166,522.62549 272.13413,522.49019 272.13413,522.34948 C 272.13413,522.13301 272.10166,521.91654 272.03672,521.70007 C 271.97178,521.47277 271.8906,521.2996 271.79319,521.18054 C 271.7066,521.05065 271.58754,520.95324 271.43601,520.8883 C 271.28448,520.84501 271.11671,520.81254 270.93272,520.79089 C 270.60801,520.79089 270.27789,520.94242 269.94236,521.24548 C 269.60682,521.53772 269.43906,521.78666 269.43906,521.99231 M 268.61105,528.34035 L 268.61105,510.12423 L 269.43906,510.12423 L 269.43906,520.75842 C 270.30494,520.07653 271.11671,519.73559 271.87437,519.73558 C 272.22072,519.73559 272.55084,519.833 272.86473,520.02782 C 273.20025,520.2443 273.47626,520.53112 273.69273,520.8883 C 273.89838,521.26713 274.0012,521.64595 274.00121,522.02478 C 274.0012,522.6309 273.73602,523.24243 273.20567,523.85938 C 272.92425,524.19491 272.59413,524.57373 272.21531,524.99585 C 271.83648,525.41797 271.50095,525.75892 271.20872,526.01868 L 268.61105,528.34035"
id="text3145" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 276.47385,512.78601 L 276.47385,517.33192 L 277.26938,516.4065 C 277.58327,516.02767 277.8755,515.64885 278.14609,515.27002 C 278.27598,515.0752 278.39503,514.8912 278.50327,514.71802 C 278.58986,514.55566 278.69268,514.36625 278.81175,514.14978 C 278.89833,513.96578 278.98492,513.76554 279.07151,513.54907 C 279.13645,513.41919 279.16892,513.28389 279.16892,513.14319 C 279.16892,512.92671 279.13645,512.71024 279.07151,512.49377 C 279.00657,512.26648 278.92539,512.0933 278.82798,511.97424 C 278.74139,511.84436 278.62233,511.74694 278.4708,511.682 C 278.31927,511.63871 278.1515,511.60624 277.96751,511.58459 C 277.6428,511.58459 277.31268,511.73612 276.97715,512.03918 C 276.64161,512.33142 276.47385,512.58036 276.47385,512.78601 M 275.64584,519.13405 L 275.64584,500.91793 L 276.47385,500.91793 L 276.47385,511.55212 C 277.33974,510.87023 278.1515,510.52929 278.90916,510.52929 C 279.25551,510.52929 279.58563,510.6267 279.89952,510.82152 C 280.23504,511.038 280.51105,511.32482 280.72752,511.682 C 280.93317,512.06083 281.03599,512.43965 281.036,512.81848 C 281.03599,513.4246 280.77081,514.03613 280.24046,514.65308 C 279.95904,514.98861 279.62892,515.36743 279.2501,515.78956 C 278.87127,516.21167 278.53574,516.55262 278.24351,516.81239 L 275.64584,519.13405"
id="text3149" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 283.50864,526.02075 L 283.50864,530.56666 L 284.30417,529.64124 C 284.61806,529.26241 284.91029,528.88359 285.18088,528.50476 C 285.31077,528.30994 285.42982,528.12594 285.53806,527.95276 C 285.62465,527.79041 285.72747,527.60099 285.84654,527.38452 C 285.93312,527.20052 286.01971,527.00028 286.1063,526.78381 C 286.17124,526.65393 286.20371,526.51863 286.20371,526.37793 C 286.20371,526.16146 286.17124,525.94498 286.1063,525.72851 C 286.04136,525.50122 285.96018,525.32804 285.86277,525.20898 C 285.77618,525.0791 285.65712,524.98168 285.50559,524.91674 C 285.35406,524.87345 285.18629,524.84098 285.0023,524.81933 C 284.67759,524.81933 284.34747,524.97086 284.01194,525.27392 C 283.6764,525.56616 283.50864,525.8151 283.50864,526.02075 M 282.68063,532.36879 L 282.68063,514.15267 L 283.50864,514.15267 L 283.50864,524.78686 C 284.37453,524.10497 285.18629,523.76403 285.94395,523.76403 C 286.2903,523.76403 286.62042,523.86144 286.93431,524.05626 C 287.26983,524.27274 287.54584,524.55956 287.76231,524.91674 C 287.96796,525.29557 288.07078,525.67439 288.07079,526.05322 C 288.07078,526.65934 287.8056,527.27087 287.27525,527.88782 C 286.99383,528.22335 286.66371,528.60217 286.28489,529.0243 C 285.90606,529.44641 285.57053,529.78736 285.2783,530.04713 L 282.68063,532.36879"
id="text3153" />
<path
style="font-size:33.25009918px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:NWCV15"
d="M 290.54343,516.05419 L 290.54343,520.60011 L 291.33896,519.67469 C 291.65285,519.29586 291.94508,518.91704 292.21567,518.53821 C 292.34556,518.34339 292.46461,518.15938 292.57285,517.98621 C 292.65944,517.82385 292.76226,517.63444 292.88133,517.41797 C 292.96791,517.23397 293.0545,517.03373 293.14109,516.81726 C 293.20603,516.68738 293.2385,516.55208 293.2385,516.41137 C 293.2385,516.1949 293.20603,515.97843 293.14109,515.76196 C 293.07615,515.53466 292.99497,515.36149 292.89756,515.24243 C 292.81097,515.11254 292.69191,515.01513 292.54038,514.95019 C 292.38885,514.9069 292.22108,514.87443 292.03709,514.85278 C 291.71238,514.85278 291.38226,515.00431 291.04673,515.30737 C 290.71119,515.59961 290.54343,515.84855 290.54343,516.05419 M 289.71542,522.40224 L 289.71542,504.18612 L 290.54343,504.18612 L 290.54343,514.8203 C 291.40932,514.13842 292.22108,513.79748 292.97874,513.79747 C 293.32509,513.79748 293.65521,513.89489 293.9691,514.08971 C 294.30462,514.30619 294.58063,514.59301 294.7971,514.95019 C 295.00275,515.32902 295.10557,515.70784 295.10558,516.08667 C 295.10557,516.69279 294.84039,517.30432 294.31004,517.92127 C 294.02862,518.2568 293.6985,518.63562 293.31968,519.05774 C 292.94085,519.47986 292.60532,519.82081 292.31309,520.08057 L 289.71542,522.40224"
id="text3157" />
</g>
</svg>
For a similar reason to [[EU4]]; but I'm more excited about this one because of the potential for ~medieval intrigue~ (which was always the best part of GOT).
* https://ck2.paradoxwikis.com/Beginner's_guide
<<chame-list-links "[tag[CK2]]">>
Things that have happened in my ck2 games.
<<list-links "[tag[CK2: Stories]]">>
Theosophy? Tarot? Astrology? Platonism? Idk, but it's all the same to me.
* Fire 🜂
** Masculine
** Wands
** South
** Signs:
*** 1 – Aries
*** 5 – Leo
*** 9 – Sagittarius
** hot, dry, ardent
** Personality:
*** Expressive
*** Dynamic
*** Energetic
* Air 🜁
** Masculine
** Swords
** East
** Signs:
*** 3 – Gemini
*** 7 – Libra
*** 11 – Aquarius
** light, hot, wet
** Personality:
*** Intelligent
*** Precise
*** Flighty
* Earth 🜃
** Feminine
** Coins
** North
** Signs:
*** 2 – Taurus
*** 6 – Virgo
*** 10 – Capricorn
** heavy, cold, dry
** Personality:
*** Practical
*** Solid
*** Loyal
* Water 🜄
** Feminine
** Cups
** West
** Signs:
*** 4 – Cancer
*** 8 – Scorpio
*** 12 – Pisces
** cold, wet, soft
** Personality:
*** Imaginative
*** Caring
*** Reclusive
!! Tabulated
|!Element| !Suit |!Direction|
| !Fire 🜂 | Wands | South |
| !Air 🜁 | Swords | East |
|!Earth 🜃| Coins | North |
|!Water 🜄| Cups | West |
---
* https://en.wikipedia.org/wiki/Astrology_and_the_classical_elements
* https://www.learnreligions.com/four-classical-elements-2562825
* https://debrasilvermanastrology.com/the-four-elements-personality-traits/
* https://phoreverphoenix.tripod.com/webonmediacontents/A%20Book%20of%20Shadows.pdf
https://www.reddit.com/r/TiddlyWiki5/wiki/pluginsandresources
https://headers.cloxy.net/
https://www.cameo.com/hermanli get herman li to say trans rights
KonataIzumi
`<<list-links "[sameday:created[20190730]]">>`
<<list-links "[sameday:created[20190730]]">>
\define timeline-title()
<!-- Override this macro with a global macro
of the same name if you need to change
how titles are displayed on the timeline
-->
<div style={{{ fill: [<currentTiddler>get[color]] ; +[join[]] }}} class="tc-tiddler-title-icon tc-icon-sidebar"><$transclude tiddler={{!!icon}}/></div>
<span class={{{ [<currentTiddler>get[tags]split[ ]join[]] }}} style={{{ color: [<currentTiddler>get[color]] ; +[join[]] }}} >
<$view field="title"/>
</span>
\end
\define timeline(limit:"100",format:"YYYY.0MM.0DD",subfilter:"",dateField:"modified")
<div class="tc-timeline">
<$list filter="[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">
<div class="tc-menu-list-item">||
<$view field="$dateField$" format="date" template="$format$"/>||
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]">
<div class="tc-menu-list-subitem">
<$link to={{!!title}}>
<<timeline-title>>
</$link>
</div>
</$list>
</div>
</$list>
</div>
\end
A //CLUBBER// is a member of the elitist superstructure of seekrit.club.
To be titled a CLUBBER you must:
# Be vouched for by an existing CLUBBER
# Be invited or otherwise join the Discord
# Commit to the seekrit.club ideology
Alternatively, if you embody the seekrit.club ethos, you may be titled a CLUBBER in an honorary fashion.
CLUBBERs who have articles on this wiki:
<<list-links "[tag[CLUBBER]]">>
Other CLUBBERs:
* [[Alex|https://www.youtube.com/user/pausebreakreviews]]
* Chloe
* ~CreepyBear
* Dusty
* Lynx
* Rydu
* Sum
* Taisa
* Tasos
* Nestopia OpenGL error: supports only 3.2+. Use an old version: https://ubuntuforums.org/showthread.php?t=2364230
* An old classic: Get gzdoom to actually work
*# Run with the flag `-glversion 2`
*# Make sure it doesn't use OpenAL as an audio background
* Getting a sane kb layout for Emacs on distros that don't support graphical config of the kb layout: `setxkbmap -option ctrl:swap_lalt_lctl_lwin -option compose:menu`. Believe me, I can't live without it!
Mmmm, the dark stuff. Makes you better at programming, tastes bitterly good, and gives you a quick burst of energy.
Quick recovery tip: drink a black coffee, then take a 15 minute nap. The nap and the coffee boost work together and you'll feel rejuvenated.
!! Ratios
1 serving = 1 cup (250ml) water/1 tbsp (15g) coffee
!! Cowboy Coffee
For when you don't have a french press, percolator, or whatever, but need your fix. I hope you don't mind coffee grounds in your mouth.
# Boil kettle of water + coffee mixture
# Leave boiling for two minutes before taking it off the heat
# Rest it for four minutes (lets the grounds settle)
# Serve black
!! French Press Coffee
Method of choice. Brews good coffee easily from just grounds.
# Boil water.
# Remove plunger apparatus from french press. Add coffee.
# Pour boiling water over the coffee grounds. Stir with a plastic or wooden implement, then replace the plunger apparatus on top of the press.
# Let sit for a short while.
# Push down the plunger and serve.
!! Cold Coffee
Coffee can be enjoyed cold, too.
* [[Iced Coffee]]
* [[Cold Brew Coffee]] (link dead on purpose. I'll update it when I have the ingredients to try it).
* design and preview terminal color schemes: https://terminal.sexy/
* https://www.colorbox.io/
* https://learnui.design/tools/data-color-picker.html#divergent
* not a tool, but useful if you want to use the human readable color names: [[link|https://en.wikipedia.org/wiki/X11_color_names#Clashes_between_web_and_X11_colors_in_the_CSS_color_scheme]]
* http://vrl.cs.brown.edu/color
[[Source.|https://www.mtggoldfish.com/articles/nuke-everything-with-purphoros-bronze-blooded-budget-commander-50-100-200]]
* 50 mana; lands and ramp, usually a 37–13 split
* 10 sources of "card advantage;" I use this term loosely but am mostly looking for card draw or any spell that nets me 2+ non-land cards in hand / directly into play
* 6 targeted removal, split between creature / artifact / enchantment removal
* 3 board wipes; creature-light decks might want one more, creature-heavy decks might want one less
* 2 recursion
* 2 flexible tutors
* 1 graveyard hate; since you need to keep Graveyard decks honest
* 1 surprise "I Win" card; something that can win games the turn you cast it without too much setup
Kopipe version:
```
* 50 mana; lands and ramp, usually a 37–13 split
**
* 10 sources of "card advantage;" I use this term loosely but am mostly looking for card draw or any spell that nets me 2+ non-land cards in hand / directly into play
*#
* 6 targeted removal, split between creature / artifact / enchantment removal
*#
* 3 board wipes; creature-light decks might want one more, creature-heavy decks might want one less
*#
* 2 recursion
*#
* 2 flexible tutors
*#
* 1 graveyard hate; since you need to keep Graveyard decks honest
*#
* 1 surprise "I Win" card; something that can win games the turn you cast it without too much setup
*#
```
* https://www.youtube.com/watch?v=xlBEEuYIWwY
* https://www.youtube.com/watch?v=V_NJAJGCKD8
** It's the gentleman from the pbs ideas channel
!!! Mahabharata
* Online: https://mahabharataonline.com/translation/ a prose translation (as opposed to the verse of the original) that is supposedly quite faithful to the Sanskrit
** Also here https://www.sacred-texts.com/hin/maha/index.htm
*** Careful with the flash drive/dvd links. It's very very expensive and leads straight to paypal; thankfully I don't have any kind of one-touch set up but it might charge you for it if you do.
** And here https://www.holybooks.com/mahabharata-all-volumes-in-12-pdf-files/
Very, very occasionally, I'll compose something.
---
Modal jazz jammy idea. (A Lydian)
Bass: steady, downtempo. A, E, Eb:
```
A --7-6
E 5----
```
Computing! Programming! I get paid to do it, even if I'm not very good at it.
I don't have any grand ideas about the activity, or the machines themselves. I'm just another Perl(/Golang/C/Python/shell/inform/elisp) hacker
```
// This is intentionally not an AbstractFoo
// TODO: Huh!? Yes it is!
```
!! [[Subcategories|Computing: Subcategories]]
{{Computing: Subcategories}}
These are [[Journal]] entries about [[Computing]] (doy), an active topic for me.
<<list-links "[tag[Journal]!sortan[]] +[tag[Computing]]">>
[[Computing]] articles that are mostly about programming and don't fit into another category go here.
<<list-links "[tag[Computing: Languages and Programming]sort[title]]">>
Miscellaneous [[Computing]] articles.
<<list-links "[tag[Computing: Misc]sort[title]]">>
When I need to get something off my chest about the world of computers, this will be the category I post it in.
<<list-links "[tag[Computing: Rants/Moaning]sort[title]]">>
Anything and everything about my own personal setup (or dreams of more) goes here.
<<list-links "[tag[Computing: Setup]sort[title]]">>
These articles are [[Shitposting]]. Don't take them too seriously.
<<list-links "[tag[Computing]] +[tag[Shitposting]]">>
These are [[Computing]] articles I haven't gotten round to sorting. Hopefully, this category will stay empty.
<<list-links "[tag[Computing]] -[tag[Journal]] -[tag[Computing: Tools, Guides, and Tricks]] -[tag[Computing: Languages and Programming]] -[tag[Computing: Setup]] -[tag[Computing: Rants/Moaning]] -[[Computing: Subcategories]] -[tag[Shitposting]] -[tag[Computing: Misc]]">>
This is a broad topic (computers, and living better in a digitized world, are in some ways my life's work) so this category is split into subcategories.
<<list-links "[tag[Computing: Subcategories]sort[title]]">>
Here's where I'll put tricks, guides, and tools to become a better computer user.
<<list-links "[tag[Computing: Tools, Guides, and Tricks]sort[title]]">>
<<<
The name "Confucius" is a Latinized form of the Mandarin Chinese "Kǒng Fūzǐ" (孔夫子, meaning "Master Kǒng"), and was coined in the late 16th century by the early Jesuit missionaries to China.[6] Confucius's clan name was "Kǒng" (孔; Old Chinese: *[k]ʰˤoŋʔ), and his given name was "Qiū" (丘; OC: *[k]ʷʰə). His "capping name", given upon reaching adulthood and by which he would have been known to all but his older family members, was "Zhòngní" (仲尼, OC:*N-truŋ-s nr[əj]), the "Zhòng" indicating that he was the second son in his family.
<<< [[https://en.wikipedia.org/wiki/Confucius#Name]]
The only moral philosopher I'd drink tea with.
<<chame-list-links "[tag[Confucius]sort[title]]">>
* Over irc as `chameleon` on [[tildechat|https://tilde.chat/]] and `japanoise` on [[freenode|https://freenode.net]]
** I don't check back every day, but I'm often on irc, and I have a bouncer so will get your message eventually.
* Over Discord by the name `chameleon#1337`
** I check Discord often and the message will likely reach me within a few hours, unless I'm asleep. This is the best way to reach me, but you'll need to have a mutual server with me or I'm unlikely to accept your friend request (tiddlywiki discord works)
* Over email by {my freenode irc handle} @ seekrit dot club
** I check this email at most once a day, and it's not connected to any device. I'll endeavor to read your message next time I check, but I can't guarantee fast turnaround.
* On mastodon
** I check mastodon irregularly. I mostly use it for shitposting, so don't expect good content ;)
** at https://anarchism.space/@EliteKonataFan
*** Anarchism.space has been having downtime recently so I made an alt
** at https://eldritch.cafe/@equals_w_equals
Contact me if:
* You want to discuss the issues raised in my wiki in an adult manner (I don't respond to flames and will block/ignore/mark as spam any trolling)
* You're a cute 2d girl<<footnote "jk" "Just kidding... or am i...?">>
* You have something cool, funny, or cute to show me
* Something I've posted infringes on your copyright and you want me to take it down or pay a reasonable fee to include it
[[bfxr|https://www.bfxr.net/]]; an improved version of sfxr, a program that generates 8-bit-esque sound effects using synthesizers. I used to use sfxr all the time, so it's nice to see someone keeping the flame alive. Written in Flash, but through some Windows trickery it's distributed as a standalone application: [[http://ded.increpare.com/~locus/bfxr_update/Bfxr_WIN.zip]] ([[mirror|http://files.seekrit.club/Bfxr_WIN.zip]])
<<<
It is difficult to understand the universe if you only study one planet.
<<< Miyamoto Musashi
<<<
Space is big. Really big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist, but that's just peanuts to space.
<<< Douglas Adams (Hitchiker's Guide)
* https://aeon.co/essays/our-cosmic-horizon-is-both-unreachable-and-closer-than-ever?utm_source=pocket-newtab
* https://en.wikipedia.org/wiki/Pacific_Ocean#Geography "Extending approximately 15,500 km (9,600 mi) from the Bering Sea in the Arctic to the northern extent of the circumpolar Southern Ocean at 60°S (older definitions extend it to Antarctica's Ross Sea), the Pacific reaches its greatest east–west width at about 5°N latitude, where it stretches approximately 19,800 km (12,300 mi) from Indonesia to the coast of Colombia—halfway around the world, and more than five times the diameter of the Moon"
* 1 light year (distance traveled at fastest possible speed in one year) - 9,460,000,000,000 km ~= 5,880,000,000,000 miles
* diameter of galaxies about 30,000 ly
* distance between galaxies about 3,000,000 ly
* observable universe radius 46,000,000,000 ly = 435,160,000,000,000,000,000,000 km - about as many km as there are grains of sand on Earth (10^^24^^)
** Multiply this by two for diameter.
!! Visual Representation
Distances are approximates and averages, but at least in the right ballpark.
```
1 km - distance from my house to Kroger
23 km - distance LHR → central London
884 km - distance from NYC to Nashville
6,760 km - distance from London to Nashville
19,800 km - longest E-W width of the Pacific
40,000 km - circumference of the Earth
385,000 km - distance from Earth to the Moon
149,597,870 km - distance from Earth to the Sun
4,500,000,000 km - distance from Sun to Neptune
9,460,000,000,000 km - one light year
40,208,000,000,000 km - distance to Proxima Centauri
8,135,600,000,000,000 km - distance to Rigel
252,582,000,000,000,000 km - distance to Galactic Center
283,800,000,000,000,000 km - typical diameter of galaxies
28,380,000,000,000,000,000 km - typical distance between galaxies
94,600,000,000,000,000,000,000 km - rough distance to UDF 423
870,320,000,000,000,000,000,000 km - diameter of observable universe
```
!! An Astronomy Joke
"""
Student: Sir, what's 1 km + 1 km?
Professor: Ballpark? 1000 km.
"""
An old favorite. Been playing on-and-off since 1.6 (I really got into CS:GO, though. Used to play deathmatch a lot to sharpen my skills).
!! General tips
* Walk (shift), don't crouch. Crouching makes your head easier to hit.
* Burst fire or single fire is usually better than full auto spam, because of recoil.
!! What to buy
* Pistol round: armor. The stock pistols are fine, especially if the other team are idiots buying deags because they think they're good
* Second round: shotty or smgs, depending on what you're good at, and a helmet. Headshot protection is invaluable and you want to get it every round you can.
!! Weapon tips
* The M4/M16 is more precise; the Kalash is more powerful.
* In GO, the silenced m4 is better, but has a much smaller ammo pool. Learn how to use the m4a before you consider switching.
** Similarly, the silenced pistol has a very small ammo pool.
* The SMGs are cheaper and easier to use than the rifles, however they do less damage against armored targets & have shorter range.
* You can't spam with the deagle. It's more for precise shots. If you want to spam, use another pistol.
!! Surf
https://www.youtube.com/watch?v=GLqeGpG9C8E
Hello, traveler!
If you find yourself on this list, I think I'd like to talk to you. Ping me on discord or wherever else you know me from and maybe we can chat about stuff or I can send you a [[Letter]] :)
* https://special.fish/kuromi
** Possible pen pals?
** Reached out. a h0p3-esque doorknock.
* Folx from r/sc discord
** Sneer squiggle (snek)
** Imperishable NEET
* 2dl people
** grimal
*** I love how enthusiastic and verbose you are.
* [[Sphygmus]]
** You're a little slow at wiki-ing, no? ;) I jest. We should chat. Letter? [[@]]?
** In general I should touch base with the other members of the nomadic tribe
*** Probably not that Calvinist guy though. I really don't get on with kooky Christians. They think I'm a hell-bound degenerate, I think they're hypocritical scoundrels. Maybe he's better, though.
A kaleidoscope of meaning in a swirling maelstrom of links, lists, pings, pongs, letters, [[@]]s, pms, irc logs, and the funk and furor of internet detritus.
When we CMM I will send you a wiki link. I will keep my thoughts on that page as it comes to this conversation. The more you read, the madder you will go, the more you write, the madder I will go. And some day, the conversation will end, and we will both achieve ''satori.''
follow me, TRAVELER, [[CLUBBER]], or [[SENPAI|Senpai]]! ''ENLIGHTENMENT AND MADNESS AWAIT!''
<<list-links "[tag[Cyberspace Mind-Meld]]">>
An imageboard classic, these are essentially freeform roleplaying games distributed in an image macro. The classic example is [[Towergirls|https://imgur.com/a/PCYI6hC]].
A lot of these are lurid and/or perverted, and many others delve into the realms of obsession over detail. Some are open-ended, others not. Regardless, there are many treasures in these troves.
* http://files.seekrit.club/cyoa/
* https://cyoa.booru.org/
* https://cyoa.allsync.com/s/t6EgW8LqyMknt9d
D has been recommended as an alternative to the various other "new systems languages" such as Rust, Zig, or Go. I'm more inclined to learn it so I'll create a new category here.
* Why D?
** Personal reasons
*** I already know Go. I'd be interested to see if D has a better story.
*** I'm not going to learn Rust for the time being, because the community comes across as horribly obnoxious (compared to humbly reaching out as the person that answered my question did).
*** Looking into Zig, it looked interesting, but not mature enough yet.
*** Programming in C again, while good for the soul, reminded me of how primitive C is and how it's so often like building a house out of toothpicks. Reminded me that we still need the C killer.
** Issues with Go
*** Project stewardship is worrying. Their goals don't always line up with mine.
*** Community can be quite smug. Not as bad as Rust's, but pretty bad.
*** Lots of people sneer at it, so I'm worried about losing collaborators.
** The C killer
*** Go can't do it. It's good for making C-type tasks easier to tackle, but it's not a replacement. Its binaries are insanely large.
*** Rust can't do it either. It's too hard to learn; it suffers the same "large binaries" problem as Go, too.
*** Zig is immature right now and will need to grow first.
* Places to learn D
** https://news.ycombinator.com/item?id=23005662
*** http://ddili.org/ders/d.en/preface.html
*** https://www.amazon.com/dp/1783552484
* Useful D links
** [[GTK+ Bindings|https://github.com/gtkd-developers/GtkD/wiki#welcome-to-gtkd]]
*** [[Deep documentation blog|https://gtkdcoding.com/2019/01/11/0000-introduction-to-gtkDcoding.html]]
** [[Another cross-platform GUI, based on TK|https://github.com/nomad-software/tkd]]
** [[D Package Manager|https://github.com/dlang/dub#dub-package-manager--]]
* James Hague, "the recovering programmer".
* He/him?
* https://prog21.dadgum.com/
* Escaped the computer science negativity vortex
* The last great programming blog
* [[Mail|mailto:james.hague@gmail.com]]
> Zettai daijoubu dayou!
My dear friend of many years. We met on 2dl, but have both long since left (more or less mutually, due to moderation duties wearing on us).
* Pronouns: she/her
* Also spelled Daijobu (quirk of Japanese transliteration), or Dai for short.
* [[Sweetheart|Waifu]]: [[Kinomoto Sakura|https://ccsakura.fandom.com/wiki/Sakura_Kinomoto]]
!! eight of cups - https://www.tarot.com/tarot/cards/eight-of-cups/rider
> Look deep within to understand what motivates an occasional tendency to be pessimistic or depressed.
This is a depressive card. Tarot.com notes a historical connotation of the aftermath of sexual violence.
The imagery suggests moving through dark times, too - the figure limps into a dark, rocky landscape. Dark times seem awful at the time, and can leave scars, but we must remember that hardship can make us who we are.
!! knight of wands - https://www.tarot.com/tarot/cards/knight-of-wands/rider
!! four of wands - https://www.tarot.com/tarot/cards/four-of-wands/rider
!! the-hierophant - https://www.tarot.com/tarot/cards/the-hierophant/rider
!! Macro
```
<<list-links "[prefix[2020.MM]!sortan[]] +[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
```
<<list-links "[prefix[2020.]] +[tag[Daily Task Archive]!sortan[]] [[2019 Daily Tasks]]">>
# Respond to an introspective prompt: <$button>
<$action-sendmessage $message="tm-modal" $param="PromptModal" message=<<randomPrompt "GenericPrompts">>/>
Random Prompt
</$button>
# Pick a daily card: <$button>
<$action-sendmessage $message="tm-modal" $param="PromptModal" message=<<randomPrompt "RiderWaite">>/>
Daily Card
</$button>
# [[Wiki Review]]
# Did you meditate today? For how long?
# Language studies.
<<list-links "[[Tarot Daily Review Hyper-Archive]] [[Daily Tarot Wrap-up]] [[2020 Daily Tasks]] [[2019 Daily Tasks]]">>
This tiddler needs a bit of extra support from the CSS to make it legible in the timelines.
http://natecull.org/wordpress/2017/06/26/dataspace-0/
* something with a hierarchical, ‘spatial’ organisation like a filesystem
* something that has semantics like a set, so you can have collections of data
* something that’s not really strictly typed, or if it has types, they can be added in later – as more data – by anyone who looks at the system, using another piece of the same system to do it
* something that can take both very small pieces of data or very large collections of very small pieces of data
* something that, if you go to certain places in it, can compute data as a pure function, without causing side effects elsewhere
* something that you can share pieces of with other people, or import pieces of it that they’ve shared
* something that’s simple and flexible enough that you can build a page, or a small application, or a modern desktop, or a network, or maybe something as big as the Internet out of it, just by adding more pieces
* something that’s mathematically well-defined at a low level, and has well-defined formats for reading and printing every kind of ‘object’
David Chapman is a Buddhist/Post-Buddhist thinker whose writings have profoundly impacted my life. My interactive view of [[Waifuism]] is a direct Chapmanism.
He's almost the first public self-modeler, predating even [[h0p3]], though not through a straight wiki, rather an interleaving network of blogs.
!! Chapman-senpai's work
* https://meaningness.com
* https://vividness.live/
* http://buddhism-for-vampires.com/
* https://approachingaro.org/
!! Must-reads
* [[Rumcakes and Rainbows|https://meaningness.com/objective-subjective]]
* [[How To Think Real Good|https://meaningness.com/metablog/how-to-think]]
* [[Yidams: a godless approach, naturally!|https://vividness.live/2017/02/09/yidams-a-godless-approach-naturally/]]
* [[Systems of meaning all in flames|https://meaningness.com/systems-crisis-breakdown]]
* [[Wreckage: the culture war|https://meaningness.com/counterculture-war]]
Don't Bother Googling
<<list-links "[tag[DBG]sort[title]]">>
Now hang on a second, this is surely... no...
That's right. ''You'' have an article on this wiki!
Who are you, traveler? Do you have any idea what you've found!?
The vast majority of you (plural) are probably just confused internet strangers who have stumbled across this blursed page. I'm sorry for the mess. If you're confused, you can look at the ReadMe. IA2DYJ.
Some of you (plural) will have come from my [[Senpai]]. Nice! Thanks for stopping by. I've written [[Letter]]s and [[@]]s to them. Check them out! Come stay a while! If you're interested in contacting [[kickscondor]] or [[h0p3]], you may also be interested in contacting [[me|chameleon]].
Maybe you (singular) //are// one of those senpai. //Hiss!// You already have a relationship with this wiki! But I'd love comments. I enjoy talking to you. @ me, discord me, email me, or letter me :3
And perhaps you (plural) have come to make fun of me. That's understandable, I am very silly. I've written a fair amount about [[Waifuism]] and I have a cringe taste in [[Anime and Manga]], so maybe that's where you want to be going. Have fun!
---
Worst of all, you (plural) could be someone that knows me in real life. Ouch! Don't look! Turn away! Protect your virgin eyes!
I kid. This is a public space and you can look. Though, I'd caution against it. It's like rifling through my underwear drawer, in places. If you do anyways, and you find what I write interesting rather than disgusting, then maybe we can chat about it sometime?
Note: please do not rifle through my actual underwear drawer.
A friend of h0p3's. He's some kind of Christian, so I doubt he and I would have much in common<<footnote "mb" "If that confuses you, see [[Monadism]] and [[Buddhism]]">>. If anything, I find his perspective to be utterly alien to me, like a communication from a parallel dimension. He probably wouldn't like me if we spoke, or if he read my wiki. Remember that I don't just live in ignorance of his values, but that I consciously and deliberately sidestep and negate them.
Senpai said in a wiki review that I might benefit from reading his section. Well, here I am. I'm going to try to read it all and pick out the key parts.
* https://philosopher.life/#:DeathOfRobinhood
----
> He's been following chameleon's digestion of our correspondence.
OH NO!
''DO NOT LOOK AT THE BASILISK.''
Haha. `/wave`. I'm sorry for shitting on your faith, I just can't make heads or tails of it.
----
<<list-links "[tag[DeathOfRobinhood]sort[title]]">>
----
!! https://philosopher.life/#2019.04.25%20-%20DeathOfRobinhood%3A%20Thanks%20for%20reaching%20out
> Your wiki was disorienting at first, but became more agreeable once I just picked a spot and continued to read in the direction my inclinations lay, without worrying about the threads I didn't follow.
That sounds like me. Especially once I realized I could use Focus for a tl;dr on many articles.
<<<
In the interest of transparency, as I stated in the SSC Reddit, I'm pretty inseparable from my underlying proselytic motivations,
<<<
[[The slaves of Christ|https://www.youtube.com/watch?v=V7Na9-41mg4]] are and should be repulsed by me<<footnote "hm" "Though I can occasionally be found listening to the three or four decent Christian rock/metal bands ;) Well, Vengeance Rising's first album. At least 'Beheaded'.">>. You might as well proselytize to the full moon or to the open ocean as to the [[Monad.|Monadism]] I've been known to yell at street preachers before.
<<<
although I consider exchanging ideas honestly with someone a rewarding end in itself (is this an untrue cliché? I take it you'd conceive of this 'exchange of ideas' as a means to an infinitely higher end, that is, the Good, at least as far as that can be exemplified in human personalities, which, I suppose, would make you a more earnest proselytizer than me!)
<<<
Some ideas aren't worth the exchange. I am skeptical of "the marketplace of ideas", especially since bad ideas seem to stick around forever and good ideas struggle to gain traction. Recall that you can't kill an idea - then how are we supposed to get rid of shit like climate-change denial, fascism, or anti-vax?
Otherwise it's a fine first letter. Contrast the one h0p3 sent me after some (fairly uncharitable) reddit comments.
!! https://philosopher.life/#2019.04.26%20-%20DeathOfRobinhood%3A%20Fruitful%20Dialectics
h0p3 here links the rabbithole, but the link didn't work for me.
> I'm sorry my wiki is so disorienting. If it's any consolation (probably not), it's also disorienting for me in many regards (as stupid as that sounds), and that is likely, in no small part, my fault.
Heh. I know the feeling, Senpai. I call it "The mouth of madness" on my ReadMe page. And that is despite my best efforts to keep it reasonably tidy! This is and always will be a tricky business.
> Thank you for your consideration; I was naked, and you clothed me. I'm a madman out here in the desert. I don't think they care for the ravings of a lunatic in the city limits. Examine and comment away; it's as human as I can make it. Hopefully, my e-penis won't gross you out; please feel free to laugh. I will be indebted to your feedback, weaving, plucking logs out of my eyes, and realtalk.
Haha. h0p3 needs a [[lol h0p3]] to match [[Lol chameleon]]. I guess he has "why you might hate me" but yeah.
> I was surprised to find you in /r/SSC. It is a den of evil. There are many thieves, tax collectors, reactionaries, Sadducees, and Pharisees among them. I admire how you sup with and learn from unrepentant sinners who aim to centralize power into the hands of the few; with hardened hearts, they construct a Tower of Babel. However unlikely, I hope you succeed in converting them to follow Christ all the way down.
"""
EXTERIOR, DAY. H0P3 and CHAMELEON stride towards R SSC.
h0p3: //strokes his beard and poses dramatically// reddit dot com slash r slash ess ess see. You will never find a more wretched hive of scum and villainy.<<footnote "ow" "Obi-Wan was more of a sensei than a senpai, but the reference still works.">>
"""
This is somewhat how I met h0p3. I'm a sneerclubber, and he posts there once in a blue moon, giving his wiki link. Back then, the "culture war" thread (read: the "reactionaries posting cringe" thread) was a thing, and sneerclub had a lot of links to it pointing and laughing. So really, I'm the cringer and DOR is the cringee, in more ways than one.
Converted reactionaries rarely (if ever) behave any better. The Church is a conservative institution. I have a "friend" (we don't speak) who was a fash when I knew him and is a Christian now, and his dark side has barely changed a bit.
<<<
Peace be with you; I serve The Good. Or, I try to serve The Good (perhaps mostly as an arrogant fool, as you can see). I come from a zealous Christian background, so please feel comfortable speaking with as much depth as you wish about your belief and desire structures. I have served and wrestled many angels, nomad, and I will do my best to understand you. I suggest we have a great deal in common, sir. I am not a Christian primarily because, while I believe in the divine, I will not anthropomorphize or Daseinomorphize the transcendent one iota more than is necessary (if I can help it).
<<<
Now we come to the crux. I don't think it was stated before now in such black-and-white terms - [[he|h0p3]] uses the word "deist" further down and I think it showed up in another article, but my memory is fuzzy.
I think h0p3 has found in a roundabout way that stances trump systems ([[chapman|David Chapman]]ism, likely the first of many). In this way he may (maybe) have a similar stance to DOR, if with a different set dressing (Christians and deists both speak of God in some sense, but it's not necessarily the same god AFAICT).
> I do not meet many Christians who withstand my scrutiny (maybe 1-3%). My wife is one of them. I think you would enjoy her company a great deal.
I wonder what the stats are for Buddhists. Do they include me?
> I wouldn't say I get many people who reach out to me in the first place (I'm kind of a hermit wandering the desert), but a surprising percentage of them aim to help me. Sphygmus and kickscondor are clear examples of people who have gracefully gone well beyond the call of duty to help me.
Am I helpful? Maybe. I'm a sparring partner at least. I do try to help my friends when I can, it's an important part of it for me (that's called Mutual Aid, for those of you playing the home game).
> Jesus' words have enormous gravity with me. Forgive me for not being light-hearted about this; it is a matter of life and death to me.
Such is the way with people we've looked up to, even if we're not //followers// per se. It's similar to me with sourced-from-the-suttas Buddha quotes, even if most of them are likely bullshit. Jesus leans too hard on a system I reject for me to gain much from his words, except when secularized and torn of any biblical/religious implications.
!! https://philosopher.life/#2019.05.04%20-%20DeathOfRobinhood%3A%20Thlog%20of%20Isaac
> I've stopped and rewritten this response a number of times. The more I read of your thought-log (thlog?), particularly the exchanges, the more I find questions and ideas that have already been answered and expressed. I also feel the imbalance of information; like, the rate at which we can discover each other is terribly uneven. I'm not saying this to denigrate the medium which you've chosen to express yourself (I find it/you fascinating), but to explain my awkwardness. I'll begin by answering some of your questions, both to avoid the pressure of feeling like I have to say something unique, and to even the distribution of knowledge a little bit.
I know this feeling. I am well aware that the wiki is near-boundless in its breadth and similarly deep in places. I don't even know half of what I've written on my own wiki. Let's not even get into the crap I have written down elsewhere.
I'm rather jealous that he works in the creative industry and seems to enjoy his work at that. I am and will always be a lowly computer janitor, unless I get my shit together and write something worth publishing and //also// get the fucking golden ticket/lottery win of a published & successful book.
> An example: One of my earliest TV memories. A cartoon, probably imported from Japan, …snip…
This is a beautiful anecdote. I could say something edgy/gotcha-ish like "I didn't think contemporary Christians were capable of beauty" but I don't really mean that. All I have to say is it's a nice story.
<<<
An example: I was already a working freelancer when I became a Christian at 21. I quickly became aware that I was every bit morally accountable in my work as I was in every area of my life, and that suddenly there were lots and lots of jobs that became closed off to me. That is, I could no longer, in good conscience, take on animation work that I felt fed upon (and fed in return) ''human vice''
<<< (emphasis mine)
Vice is an extremely strong word. I worry about what this is. If it's drugs and gambling, then I guess I don't see the issue (I enjoy a drink, but I can understand not doing so; same with shooting craps or a few rounds of blackjack). However, recall that Christians forbid a large variety of harmless human interaction; and read exactly what his ends are:
> This led to very real opportunity losses including missing out on the career-launching Skullgirls game
Now, I can read this several ways. There is a charitable interpretation: there could've been some kind of sex-drugs-and-rock'n-roll going on behind the scenes which he didn't want to get involved in; but Occam's Razor bites when we look at the Skullgirls themselves: https://i.ytimg.com/vi/QPk-wZR1a_I/maxresdefault.jpg
I will never understand sex-negativity except as people's personal disgust and hang-ups around sex. Certainly, many feminist arguments exist, but Christians don't tend to utilize those except out of desperation when trying to convince atheists.
Sometimes a pair of tits is just a pair of tits.
<<<
I got down on my face and told God that I'd quit the animation biz entirely if that's what He wanted, but that if there were a way I could stay in this trade working gigs that weren't compromising, I'd sure appreciate it if He could provide a lead. That very hour I received an email from someone who'd seen my reel asking if I was free to produce a series of animated shorts teaching kids English as a second language.
<<<
This is just a shot of raw, unfiltered cringe straight into my mainline. After reading something like this, it gets hard to read any further. I hate to be uncharitable but if I'm just going to be reading about the voices in people's heads I would prefer not to - and I say this as a sodding //waifuist//.
For any non-religious folks watching: Buddhists don't do this shit.
Alright, I slept and am feeling more charitable now. Let's continue.
It's nice that he likes reading. I find reading very important. Well-read Christians mystify me. They must be using some high-level rationalization to not have their worldview disproven.
Maybe because it's an email, but he doesn't seem to use blockquotes in the same way h0p3 and I do (h0p3 does in his replies). That seems to make his letters easier to read.
I like the portmanteau "thlog". My entire wiki is a thlog.
I should mention that I don't read "rational"ists either, unless you count the spooky weird ones like meaningness or ribbonfarm, and even then that's increasingly rare these days.
!! https://philosopher.life/#2019.05.07%20-%20DeathOfRobinhood%3A%20Ivan%20the%20Intentional
> I appreciate that a great deal. I often have to ponder, draft, and rewrite too. This letter, in fact, is taking me a while to piece together. Writing letters usually takes it out of me, and some take months to write. Again, please take as long as you need to respond! I know I do.
This feels like foreshadowing ;)
> Indeed, there is a great deal trapped in this sprawling wiki, and I don't know how to build fitting paths for myself (let alone other people) into and through it. Perhaps my correspondence over the past year will provide a non-trivial set of doorways; it sounds like that has been useful for you. I'm also working on Search of h0p3 with my daughter, j3d1h (but it's going to take us a while, and I'm not sure we will succeed). Feel free to ask questions, and I'll do my best to answer them.
It's interesting how naked h0p3 is in correspondence. I found him much easier to approach in DMs and through letters than just plain reading the wiki as-is.
Paths through the wiki are a hard problem; the same with mine as well. Thanks to kicks' & h0p3's efforts I've seen how people react to seeing it, and it's very much the same "holy shit this is impossible" that I experienced upon first finding philosopher.life =w=. I wouldn't know where to start if you erased my memory of the past six months. I'm trying to build my own pathways through ReadMe and other initiatives.
> I will look for ways to alleviate the pressure with you. If it is any consolation, you are obviously a unique guest. No one has been so forthcoming in their opening letters with me; you begin our conversation with what matters most. I hold your pursuit in the highest esteem.
The opposite of this, is the meaning of [[chameleon]]. I call myself that because I'm a shifting maze of colors; I'm deliberately slightly difficult to pin down, even if I'm quite forthcoming with it. I'm a waifuist, and yet I'm not a depressive; an LGBT person, and yet level-headed. I deliberately defy expectations, definitions, stereotypes; it is the Monadic way.
> I'm so grateful that you've taken up revealing yourself so intimately. I appreciate your generosity and explicit reciprocation. I see you come to fulfill The Moral Law, sir. Your purposefulness bleeds out of you.
Ahhh, yes. This will mark me out as a degenerate to [[you|Dear Reader]], I'm sure. Except at the meta level, I don't really follow any kind of moral law; even then, it's a method, not a prescription, and could be thrown away like yesterday's trash if it fails me. To use Chapman's terms, this is meta-rational VS rational; kegan 4 vs kegan 5.
So be it. If the word "degenerate" means anything, it's those that go against the narrow view of life prescribed to them by short-haired wimps and busybodies. In that case, I'm fucking proud to be one.
> As for my offline name, there are 4 generations of males who have the same first and last names in my family; I guess it is a tradition for us. I have an extremely Irish full name, and my first and middle are named after a pair of twin uncles who died at birth. I don't mind my name, but I think of myself more as h0p3 than my offline name, except when my wife or brother JRE speak with me (that's probably irrational too).
I actually know his PowerWord now, and I see it the same way as him, I think. I think of him as h0p3, not as Mr **** **** of **** CT. The names we choose often have more meaning than the names we don't. Of course, that applies for my PowerWord too, since I changed it from my birth name `^^;;` I could be that or [[chameleon]]; mostly the latter online. I am not in any way shape or form my old name, though I can use it as a cloak sometimes - my chameleon-skin.
---
Teaching is interesting. I'm glad that they both take it seriously. I relish my opportunities to step above senpai to sensei. I have several friends that enjoy learning from me, which is a wonderful experience, especially since most of my life has been spent learning from people (since I'm still young, ofc).
> I enjoy teaching, but it is rare that I get to teach what I think is important except to my own children.
I'm glad for the waifu community in this regard; many waifuists have a lot to learn from someone who's not only in the ten-year-club with regards to waifuism, but also has watched a lot more life experiences come and go.
I would also like to know W5H he converted, especially as late as 21 when your mental faculties are developed and you're hard to indoctrinate.
!! https://philosopher.life/#2019.06.22%20-%20DeathOfRobinhood%3A%20Response%202ITI
Ah. Well. He's using blockquotes now.
Here is the art from which he got his name: [[https://commons.wikimedia.org/wiki/File:N.C._Wyeth_-_The_Passing_of_Robin_Hood.jpg]]
<<<
related aside: Two nights ago I had a dream where I was some kind of cartoon superhero, along with my girlfriend, doing battle with evil, fighting upon rooftops, and then among the stars. After the laser show, we realized we had mastered the elements and were summoned before a suit behind a desk. He informed us that we were ready to advance to the next plane where our mastery of the elemental building blocks of reality will form the foundation for a new sort of relationship with Creation. Someone suggested that we'd be under the management of an angel named "*****", but the suit corrected us saying we would see God directly. At this point, the tone of the dream changed entirely. I found myself alone with a huge sense of longing growing in my chest beyond all proportion. Tears stung my eyes as I started thinking "I just want to see God. That's all I really want.". Eventually the crying woke me up, but I continued to lie there dazed crying continuously before fully rousing myself.
<<<
I wonder if [[dreams|Dreams and Subconscious]] are a mirror to our conscious state in the way psychoanalysis would have us believe they are. I had a period where my life was in a rut and my dreams were mostly all horrible nightmares; these days my dreams tend to be pleasant. I don't think a dream has ever made me cry, but I have had dreams which were terrifying and one or two that's made me yell. If dreams did perform this mirror-role, I'd wonder whether the alienation inherent to Christianity is biting DOR hard here.
He didn't go into conversion but he did note that he's going to do theology in a separate email, so.
---
I'll skip over the [[chickenscratch book tour|https://philosopher.life/#2019.06.25%20-%20DeathOfRobinhood%3A%20The%20Chickenscratch%20Confession%20Booktour]] for now. I feel like I need more context.
---
h0p3 asked for quotes in an @:
> If you have a collection of quotes sitting around somewhere, I would like to read them; you know how to pick out the salience
DOR responds:
<<<
"...they all went indoors with their new friends, and found rooms so small as none but those who invite from the heart could think of accommodating so many."
<<< Jane Austen - //Persuasion//
Cute quote.
He responds to the long letter while it was still being drafted:
> I was baptized in a Catholic church as a baby and attended a Sunday school at a Presbyterian church until I was ten or eleven.
I too went to church until I was about 11, Anabaptist, though. Similarities like this are interesting.
However, afaict he wavered in his faith rather than actually abandoning it or embracing a-theism.
While Bush-era imperialism did seem to have that evangelical base back home (I don't know for sure; I didn't live in the US at the time) I hesitate to conflate the evils of Christianity with the evils of imperialism. Recall that many of the founding fathers were deists, which back then could be taken as a soft atheism if not an a-theism. Furthermore, there's nothing particularly Christian about the justifications for war used by imperialists (the counter-jihad notwithstanding).
<<<
When I was 21, I found someone on Youtube making a positive case for Christianity, and because he seemed both thoughtful and sincere, I was intrigued. I was familiar with the basic doctrines already, but the internet opened up an avenue to explore the personal consequences of the faith in a way I had not seen before.
<<<
~YouTube does seem to be the new battleground for theism/a-theism. A lot of the OG youtubers were atheists, and it's there that the culture of the site got started. I can remember in the early days seeing the atheist community as complementary to the rant community and the videogame community on ~YouTube. I've never watched Christian apologetics on there except in the form of a-theist counterarguments - I don't think it worth wasting my time on that sort of thing.
The best of the atheist community on ~YouTube is ~TheraminTrees:
* https://www.youtube.com/watch?v=r_5yUXjXizQ
* https://www.youtube.com/watch?v=6xqCkx6WQBE
<<<
I knew enough at the time to realize that 'belief' in something must be grounded in something that was demonstrably plausible, and that it ought to have consequences in the way I ordered my reasoning and practice.
<<<
[[Mmmmm...|https://i.kym-cdn.com/entries/icons/mobile/000/023/021/e02e5ffb5f980cd8262cf7f0ae00a4a9_press-x-to-doubt-memes-memesuper-la-noire-doubt-meme_419-238.jpg]]
<<<
I also can't deny the role emotion and fear played in moving me in the direction of belief as I found myself increasingly worried that if anything like the God of the Bible existed, my current lifestyle choices were not aligned with Its principles.
<<<
Yeah.
This is the unhealthy relationship we all have with Gods like Yahweh.
<<<
I wrestled for months with unease until I gave up one night, face down in my room, and spoke with the God Jesus presents as 'Our Father', asking me to take Him as His own.
What followed were weeks of a sort of disorientated joy. Circles of love for others were being drawn increasingly larger, habits of sin (traditionally defined) were violently rooted out of my life, and then commenced the beginnings of a pattern of prayer and answer.
<<<
Piss on that. //swigs her cider//
https://www.youtube.com/watch?v=oYhzIRTRtWc
> Assuming you can account for truth-telling, reliability of memory, etc...Why would a slew of personal stories of prayer being improbably answered, sometimes hours later, not count in favour of a listening/responsive deity? I know three ex-Muslims, two who are close friends, whose conversions were catalyzed by visions of Christ. Why pull back the goalposts when a visible emanation of the deity manifests? Yes, a fair coin can land heads fifty times in a row, but what reasons might you have to not check to see if the game is rigged? I'm not asking you to apologize for contemporary Christianity sharing milkshakes with Mammon at the Hamusement park, but are there other expressions of the ancient faith out there?
You can hallucinate all sorts of things if you try. I've gone to [[Gensokyo|https://en.touhouwiki.net/wiki/Gensokyo]] and had danmaku battles with [[Rumia|https://en.touhouwiki.net/wiki/Rumia]] before, doesn't make her any less [[2D]] or the land of Gensokyo any less a fantasy.
It's cute when apologists talk about the charitable work they do as if they think morality is a mathematical game where the good pays for the bad.
---
He got married. Congratulations! I did too, late last year.
---
<<<
Just because you were praying for something and you got it, doesn't mean there's any kind of [causation], you dipshit!
<<< [[The Abyssal]]
!! https://philosopher.life/#2019.08.20%20-%20DeathOfRobinhood%3A%20Joyful%20Slaves
> It's fantastic to hear from you. You'll have to pardon my disorganization here. My transition to m16 has been bumpy, and accounts that normally stay up 24/7 haven't.
c.f. me moving from anubis to gotama.
> She is a woman of The Good. Surely, neither of us live up to her. Let us learn to become like her. I am honored to know she exists; she fills me with hope in dark days. We are lucky to know our wives. They cause us all to stop and listen, to hang and measure, and to pause between the melodic fragments of our lives. I sit in a moment of joyful and terrifying silence with you now.
I'm reminded a little of my wonderful relationship with [[The Abyssal]]. It's very mutual with us. We complement each other and bring out the best in each other. The same goes for me and [[Konata]], funnily enough. I'm glad he(DOR)'s found someone.
!! https://philosopher.life/#2019.09.07%20-%20DeathOfRobinhood%3A%20Because%20you%20asked%20and%20I%20had%20no%20ground%20to%20withhold
He told h0p3 about his meeting his wife. Cute story.
I'm struck by how the lives of Christians seem to be full of bleak and terrible stories. They always talk about how God got them through it but if he was all-powerful, all-knowing, and all-good, surely he'd not put them in such situations in the first place? Such runs the great and undefeated Problem of Evil. One theodicy is that God does it to test your faith, which puts the divine in the position of the sadistic child pulling the wings off flies.
I'm reminded of my waning years in church at the age of about 12 or 13, with people trying to justify their faith to me by telling me of the terrible people they were before their conversion. One lad in particular told me about how he was a womanizer. I can't remember the rest of his story. I've not had any great tragedy happen to me (besides the usual death and destruction that comes from being mortal) and I've never been a particularly bad person (growing up, my main vice was arrogance, which praying to God won't fix) so I guess I've never felt the temptation to join the fold like those folks.
> Today I got news of a death. We met on the train during the years I'd moved back to take care of my mom. His life seemed the sort of bleak, absurd thing written by some godless tragedist. He wasn't objectively likeable, but we became friends. I'm glad we got a few years together.
Oof. I like the term "godless tragedist" though. Call me that in bed, daddy.
> This week I was assaulted by my neighbour. I've lived above her for close to a year now. I know she's very lonely and abuses. Early attempts at friendship were rebuffed and now she hates me. I'd like for her to be happy. The first time I'd prayed for her was a month after I'd moved in. I asked God for an opportunity to show her kindness. Later that evening I found her drunk out of her mind at the front door. She'd lost her keys. After searching the neighbourhood in the dark, we found the keys in her purse. When she was sober the next day, she thanked me with a McDonald's gift card. I'd thought it would be the beginning of a good neighbourly relationship, so there's a part of me that feels like I'd failed her by not following up with greater regularity and caring (although I recognize I can't be wholly responsible for her sour outlook on life).
It's always difficult to deal with people like that. I can offer no answers. I generally avoid people that hate me; it's easier and makes us both happier. They have their own problems to work out, and I can only hope that they will someday do that.
!! https://philosopher.life/#2019.09.09%20-%20DeathOfRobinhood%3A%20Substance
> You and I have a great deal in common. I adore the way you "slunk," lol. Yeah, that's me too. I still do this a lot. My practice has changed over time, but I can appreciate the need. Do you still find yourself slinking and being alone these days?
I slink/slunk very often =w=. My parents did the typical boomer/early gen-x thing of "look who's come out of her cave!" when I came to see the family. I'm an introvert; dealing with people is not my strong suit.
> You've been on a rollercoaster these past couple years. I'm glad to see you still standing. Some of the most empathic people I have met are those who survived trauma, suffered, and grieved enormously. You pass through fire with grace.
Yeah, maybe that's the answer to what's going on above. It's genuinely a shame that Christianity is so awful, because there are good people in the flock.
Empathy I take as a major virtue. I try (am trying) to have more empathy in my life. I think it's what broke my aforementioned arrogance, and allowed me to come to terms with some of the worst things to happen to me growing up. But said things are too private even for a public self-modeller. Ask me in private.
> This recently came up with my brother (we are both fun at parties): there is something called [["Death Thought Accessibility."|https://www.psypost.org/2019/09/study-existential-isolation-linked-to-increased-death-thought-accessibility-54347]] Your name and emphasis are important to me. I often do not understand what people are saying to me. I'd like to know what you think about the idea.
Aha! This is a pearl! It's linked to the ring of states I touched on very briefly in [[A Quick Primer]]: nihilism, loneliness, depression, existential angst. [[I need to come back to this later.|2020.02.06 - Death Thought Accessibility]]
<<<
> I wasn't asking for anything, but my understanding of prayer is that it creates a space in which I can say true things, including about myself.
I know you would never treat prayer like you are just using some cosmic vending machine. It's serious.
That practice has helped me habituate myself to talk about what matters most when I'm all alone or with others.
<<<
"Hey god, it's me, ya girl. Say, you fancy giving me a mommy gf with big baps? That'd rule. See you around homeslice. Amen"
Haha. That's something I sure hope no Christian does. That'd be like... idk, doing deity yoga with [[Mahakala]] with the express hope you'd be able to chop up your irritating boss or something.
> Noice. I'm glad. She is a bright light. I'm grateful you have each other. I can't imagine how people without spouses do it in the end; I'm surprised by the number of people who don't even want a spouse.
Preach =w=. I love my [[3D]] and [[2D]] spouses (spice?) so much I can't imagine life without them.
h0p3 says some interesting things but also some kind ones. They're mostly relevant to DOR and h0p3 themselves (less me) but this one is worth looking at:
> Yes, I am dogmatically concerned with the very concept of objective significance itself. That makes me a terrible listening partner sometimes (my wife will be the first to stand up and shout that one). Insofar as subjectivity, including qualia, doesn't detract from the justified pursuit of the truth, I think those assignations are beautiful. I agree that none of us can fully avoid assigning narratival significance to our lives (nor even incorrectly, I fail often); perception logically implies it, and there would be nothing to talk about otherwise. It must be frustrating to speak with someone who isn't denying that you're experiencing but instead a crucial section of what that experience is of and corresponds to, but this is what philosophy is like.
Eep. Now I'm the mouse poking a dragon; the cheeky little chameleon. h0p3 and I have much to speak about when he continues working on (even finishes) his letter to me.
Narratival significance is an interesting one. I remember seeing dating tips for geeky men which advised them not to see themselves as the protagonists in a movie or show; when I put it like that it sounds patronizing, but it's actually not bad advice. It's teaching them to treat their date like a real person, but also those around them. With the rise of the NPC meme, I think geeky men need this advice more than ever before.
Some day in future I could see people talking about our (public self modeller's) lives in a narratival fashion; the wiki's timestamps may lend to that. Of course, I haven't talked much about pre-wiki times, so that might be difficult for the future Monadist school ;)
> I doubt you failed her, especially since you are a man with so much on his plate. I'm curious to know when one is justified in a sour outlook on life. Presumably, the causation for most people's outlooks on life, including hers, is the responsibility of billions of homo sapiens over time (herself included to some non-trivial extent). She's lucky to have such a good neighbor as yourself.
Enigmatic. Think on.
He signed his letter off with "Love, h0p3". That's cute. Maybe some day I'll get that =w=. I tell my friends - that are comfortable with it - that I love them fairly often. I do it with [[Lofty]], for example. Boundless love has the buddha-nature.
!! https://philosopher.life/#2019.10.12%20-%20DeathOfRobinhood
//I believe this is the last one before I actually have to go tackle the chickenscratches. This tiddler has already gotten so long, I'll probably do that in a seperate tiddler. Maybe I should break this one up some.//
<<<
What is necessary, after all, is only this: solitude, vast inner solitude. To walk inside yourself and meet no one for hours
<<< [[Rilke|Rainer Maria Rilke]]
What a beautiful quote.
Waifuists are never truly alone, but it doesn't stop ourselves from being lonely sometimes.
> Experiences I share with you will likely be misunderstood or transformed in the transmission. Not because you are autistic, or a Deist rather than a Theist, but because information loss is the tax we pay on communicating while remaining distinct. But you mitigate a ton of this by asking clarifying questions, and by obviously adopting the mindset of a serious listener. Likewise, a lot of what you've written (not to me directly), I find difficult to grasp, but I am making efforts to think about you and understand you. Despite our vast differences, I don't feel especially far from you.
Language is imperfect. I can tell you everything about the tree in my grandparents' garden - I can describe what it looked like, smelled like, my memories of sitting under it, everything - but the picture in your mind will never match the one from my memories. Language is imperfect and any attempt to nail it down will result like trying to nail down mist or a cloud - this is nebulousity in practice. Funny that Christians can understand this and yet adhere to a worldview that allows no space for ambiguity.
> I sometimes wonder if alienation is a communication-level phenomenon. Like, if we all just understood each other, meaningfully, maybe that would be enough. But the voice cries out in the desert (not you, the other one): Repent! Is that it then? If so, then understanding is only a prerequisite to change, which is the necessary act. The extent to which you and I will diminish our mutual estrangement will be the extent to which we've changed meaningfully to more resemble one another. I don't feel far from you, but we are estranged insofar as our goals and actions don't cohere (which is arguable).
We can understand each other, maybe, but people can get hellbent on doing things that hurt us, even if they know they're wrong. Remember, many times strong beliefs only become stronger when presented with evidence that disproves them.
And a shitpost, because I couldn't help it:
<<<
who the fuck is scraeming "REPENT" at my house. show yourself, coward. i will never repent
<<< chamint (@konadril)
;)
<<<
"Then all things will be put under Him, that God may be all in all." We shouldn't merely understand each other, but act to transform each other to be better workers of Righteousness (neither of us are walking this path perfectly, though I think we're both trying - the goal of all meaningful communication is to orient one another towards that path , thus we get greater coherence (again why I appreciate the way you're writing 06.25, the points you contradict, you don't merely refute, but you're trying to get me to understand!)).
So Death-Thought Association: I've heard social priming studies are on the rocks recently, but assuming there's something to this research...they suggest that threatening one's worldview will increase DTA. Have my death-cognitions increased since we started communicating? You've been very gracious, but you are challenging me.
<<<
Nobody tell him about this page, or my wiki at large. Well, maybe he'd just write it off as sneering (some of it is, despite my efforts at charity. I just don't understand being a Christian). So I don't think he'd find it challenging because he could just dismiss it there. I don't know.
He has a funny "cosmic vending machine" story. Imagine going to the park and //not// bringing a frisbee ;) And he gives away potentially that he's from Quebec. Interesting. I had a lot of Canadian waifuist friends from [[/mai/]].
> I'm not sharing this just to be contrary. I live in the conviction of the seriousness of prayer, and the immense abomination of plying Divinity for earthly gain. But I do want to broaden how you interpret my thoughts when I talk about God in relational terms. In a vacuum, an anecdote like that would be trite, or blasphemous, but in the context of a submitted life, it's wine from a water barrel.
But I love blasphemy! I got in trouble on 2dl before for making a christian mad with my blasphemic ways. I apologized, since it was a little mean. We're friends now.
> I find you an interesting and provocative person. Maybe 'like' isn't the right word? Though I have high moral expectations of others in general, I have difficulty not empathizing with the person before me, regardless of how far off the map I think they are. I may not be oriented alongside a person, but I actively dislike very few, even people I recognize as evil. SO, I like you, but my liking is not worth very much.
This feels pretty similar to what h0p3 says. I wonder if I'd be viewed as evil? I'm pretty combative against Christianity and Christians, so probably yes. That's pretty funny to me. I don't really do anything in my day-to-day that I could view as ''Evil'' by any standard. The worst thing I do is listen to edgy music and pirate things, and even those are both rare nowadays (the 2020s are the era of the Cooler Chame after all). I like him (h0p3) too.
> My neighbour has become more erratic, and even creepy. Sometimes she will harass Selah and I with nonsense accusations "you're stealing my identity." "you're profiting off me." "you're a vampire." "you're a demon.", other times she'll just wordlessly follow me around. I'm probably not as worried for my safety as I should be (Selah visits frequently, but doesn't live with me), but we've recorded an encounter, which might be useful. The landlord wants to kick her out, but that would likely mean homelessness for her at this point, so I'm trying not to involve him too much before we can find a way to get her help.
Yikes. Difficult situation.
> Btw, I find j3d1h's art really smile-inducing (not just because I find Undertale a lot of fun). I especially like her tribal wolf and vaporwave designs! Has she ever done longer form comics?
Her drawing of [[Konata]] is a precious treasure to me. What an amazing talent. I'm very jealous! As a waifuist, collecting images i.e. [[My Waifu Folder]] is very important to me.
!! Book tour
The book tour comes next. I will write a seperate tiddler for that. In the meantime, I could look over [[this;|https://philosopher.life/#2019.11.21%20-%20DeathOfRobinhood%3A%20H0P3%C2%B2%2C%20you%20madman!]] but that's for another time.
//Format: Commander//
Commander: [[Niv-Mizzet, Parun|https://edhrec.com/commanders/niv-mizzet-parun]]
Idea: Draw lots of cards and have interplay thereof.
[[The Abyssal]] says building a deck is expensive; I'll have to ask my fellow players if they mind if I bring a very proxy deck.
* 50 mana; lands and ramp, usually a 37–13 split
** Ramp (all proxies, sorry guise)
**# Sol Ring ([[awesome proxy|https://www.deviantart.com/jackdripperz/art/Sol-ring-535837752]])
**# Hierophant's Chalice
**# Mind Stone
**# Pristine Talisman
**# Sisay's Ring
**# Hedron Archive
**# Thran Dynamo
**# Izzet Cluestone
**# Darksteel Ingot
**# Mana Crypt
**# Izzet Keyrune
**# Thought Vessel
**# Commander's Sphere
** Nonbasic lands
**# Emergence Zone
**# Gateway Plaza
**# Castle Vantress
**# Dwarven Mine
**# Blood Crypt (p)
**# Temple of Epiphany (p)
** Basic lands
*** 16 Islands
*** 15 Mountains
* 10 sources of "card advantage;" I use this term loosely but am mostly looking for card draw or any spell that nets me 2+ non-land cards in hand / directly into play
*# Opt
*# Th. of P
*# Omen of the Sea
*# Concentrate
*# Winged Words
*# Quicken
*#
*#
*#
*#
* 6 targeted removal, split between creature / artifact / enchantment removal
*#
*#
*#
*#
*#
*#
* 3 board wipes; creature-light decks might want one more, creature-heavy decks might want one less
*# Blasphemous Act
*#
*#
* 2 recursion
*#
*#
* 2 flexible tutors
*#
*#
* 1 graveyard hate; since you need to keep Graveyard decks honest
*#
* 1 surprise "I Win" card; something that can win games the turn you cast it without too much setup
*#
```
Thran dynamo
Izzet Cluestone
Hedron Archive
Sol Ring
Omniscience
Thought Vessel
Izzet Keyrune
Commander's Sphere
Pristine Talisman
Sisay's Ring
Mind Stone
Spellbook
Mana Crypt
Steam Vents
Darksteel Ingot
Hierophant's Chalice
Temple of Epiphany
Opt
Improbable Alliance
Irencrag Pyromancer
Thrill of Possibility
Wee Dragonauts
Goblin Electromancer
Simic Manipulator
Storm Entity
Treasure Hunt
Counterflux
Hypersonic Dragon
Faerie Seer
Quicken
Lunar Mystic
Winged Words
Cloudkin Seer
Concentrate
Ninja of the Deep Hours
Arcane Denial
Sphinx's Tutelage
Arena Trickster
Deface
Irreverent Revelers
Naiad of Hidden Coves
Starlit Mantle
Omen of the Sea
Negate
Nadir Kraken
Loch Dragon
Dwarven Mine
Castle Vantress
Gateway Plaza
Emergence Zone
Counterspell
Blasphemous Act
16x Island
15x Mountain
```
//Format: Commander//
Commander: [[Korvold, Fae-Cursed King|https://edhrec.com/commanders/korvold-fae-cursed-king]]
```
Druid of the Cowl
Spark Harvest
Mayhem Devil
Prying Blade
Leyline Prowler
Heartfire
Llanowar Elves
Caustic Caterpillar
Bolt Bend
Beanstalk Giant
Trail of Crumbs
Gateway Plaza
Harrow
Captain Lannery Storm
Evolving Wilds
Deathrite Shaman
Gilded Goose
Woe Strider
Cindervines
Kroxa, Titan of Death's Hunger
Elvish Reclaimer
Golgari Signet
Pernicious Deed
Giant Opportunity
Field of Ruin
Shriekmaw
Rakdos Guildgate
Omen of the Hunt
Cultivate
Ashnod's Altar
Golgari Charm
Harmonize
Lightning Greaves
Leafkin Druid
Rootbound Crag
Blood Crypt
Temple of Abandon
Temple of Malice
Leyline of the Void
Vindictive Vampire
Temple of Malady
Overgrown Tomb
Jarad, Golgari Lich Lord
```
!! Concept
Sac things to make Korvold stronger. Give him protection from spells. Smack your opponents around with buffed Korvold.
!! Checklist
* 50 mana; lands and ramp, usually a 37–13 split
** Lands budget: 37
*** Basic (budget: TBD)
**** [x] Swamp
**** [x] Forest
**** [x] Mountain
*** Utility (3)
***# Gateway Plaza
***# Evolving Wilds
***# Field of Ruin
*** Multicolor (7)
**** Scry
***** Temple of Abandon
***** Temple of Malic
***** Temple of M'lady
**** Shock
***** Blood Crypt
***** Overgrown Tomb
**** Tapped
***** Rootbound Crag (unless mountain/forest)
***** Rakdos Guildgate
** Ramp
**# Leyline Prowler
**# Golgari Signet
**# Druid of the Cowl
**# Guilded Goose
**# Llanowar Elves
**# Captain Lannery Storm
**# Harrow
**# Beanstalk Giant
**# Prying Blade
**# Cultivate
**# Omen of the Hunt
**# Leafkin Druid
**#
* 10 sources of "card advantage;" I use this term loosely but am mostly looking for card draw or any spell that nets me 2+ non-land cards in hand / directly into play
*# Harmonize
*#
*#
*#
*#
*#
*#
*#
*#
*#
* 6 targeted removal, split between creature / artifact / enchantment removal
*#
*#
*#
*#
*#
*#
* 3 board wipes; creature-light decks might want one more, creature-heavy decks might want one less
*#
*#
* 2 recursion
*#
*#
* 2 flexible tutors
*#
*#
* 1 graveyard hate; since you need to keep Graveyard decks honest
** Leyline of the Void
* 1 surprise "I Win" card; something that can win games the turn you cast it without too much setup
**
[[Monadism]], the formless, nebulous, prehistoric-paleo-socialism at the heart of my Ego, and [[Buddhism]], my religion, are razors of deconstruction. Like punk-rock, they shred barriers omnidirectionally. This is often useful, but h0p3 cautions against deconstruction with no end. You must reconstruct. Foundations.
I'm trying to understand this axiom and pin it down. So here I fucking go.
---
!! [[h0p3's wiki: fight club|https://philosopher.life/#Fight%20Club:%5B%5BFight%20Club%5D%5D]]
I know this movie pretty well. I'm mostly familiar with the feminist analysis (briefly: it's toxic masculinity son. the start of the movie in the cancer group shows jack momentarily almost getting it. but fight club is him reconstructing structures of oppression outside of structures of oppression. [[Watch the Folding Ideas video|https://www.youtube.com/watch?v=Td88z08a_4c]]<<ref ll>>) but I have seen other (mostly bad) analyses. h0p3's outsider perspective is useful here:
<<<
* Deconstructive political action is the only method of constructive progress.
** [[Deconstruction Obligates Reconstruction]]
** Ironically, postmodernism is itself the perfection of deconstruction to the point that no meaningful construction can be had.
*** Postmodernism is a metanarrative that destroys all metanarratives, including itself.
**** Like //Fight Club//, postmodernism is self-destruction paradoxically motivated to be constructive.
** Distinctions between high and low culture/art/context collapsed; hierarchies of power and symbol are destabilized.
<<<
* The point I got from postmodernism is that metanarratives are Bad Actually
** Or at least great evil can be justified by them, c.f. the nazis, leninism, imperialism (american exceptionalism)
** Yeah you can also use this razor against religions, too. Christianity had the crusades and the KKK. Islam has jihad. Hinduism has Hindu Nationalism. Even our humble Buddhism has had some awful things done in the name of the Buddha, in Asia.
*** Of course religion done well is a more private affair IMHO. Even as it pertains to Buddhism. I like the master/padawan model of the Jedi, let's do that; or even just allow autodidacts to be ordained!
** Honestly I struggle to think of a metanarrative which hasn't or couldn't be used for evil.
*** Even kooky internet-only ones are being used for small evils today; witness the transhumanists believing the AI god will come to save them before they are all annihilated by the coming climate catastrophes.
** [[David Chapman]]'s models examine this; the Kegan level comparison.
**# https://meaningness.com/modes-chart
**# https://meaningness.com/systems-crisis-breakdown
**# https://meaningness.com/stances-trump-systems
* Hm, Chapman seems more important here than I might have initially given credit to. Let's think about some of his [[reconstruction|https://meaningness.com/all-dimensions-schematic-overview]]
** Bruhhhhhhhhhhhh I'm tired. This shit is too much to think about at 4am. Briefly.
** Eternalism-Nihilism-Meaning/ness
*** //Everything is given a fixed meaning by an eternal ordering principle (Cosmic Plan)// vs //Nothing is really meaningful// vs //Meaning is nebulous, yet patterned; meaningfulness and meaninglessness intermingle//
**** I think I already have this in my head. Explaining it is tricky.
**** He's talking about meanings in the sense that "I found a penny on the ground, this means I'm going to be lucky today"? or like, "What did that mean?" when talking about something crazy that happened in your life?
**** Yeah you know what I got too heavy here. 4 bullet points in, one for every hour I should've been in bed already.
---
<<list-links "[tag[Deconstruction Obligates Reconstruction]sort[title]]">>
<<footnotes "ll" "Incidentally, Dan Olson himself has a passing resemblance to h0p3! They have the same style anyway, the bearded, cropped-hair/bald glasses philosopher dude. it's a classic look">>
!! Units
* 1 year = 365.25 days
* 1 Ka = 1 kilo-annum = 1000 years (365,250 days)
* 1 Ma = 1 mega-annum = 1,000,000 years (365,250,000 days)
* 1 Ga = 1 giga-annum = 1,000,000,000 years (365,250,000,000 days)
!! Timeline
Most times are approximate, or simplified. Further information can be found on Wikipedia, in the articles [["Timeline of the evolutionary history of life"|https://en.wikipedia.org/wiki/Timeline_of_the_evolutionary_history_of_life]] and [["Timeline of epochs in cosmology"|https://en.wikipedia.org/wiki/Timeline_of_epochs_in_cosmology]].
* 117 years ago - [[Kane Tanaka|https://en.wikipedia.org/wiki/Kane_Tanaka]], the (as of 2020-05-06) oldest living person, was born.
* 2 Ka (2000 years ago) - start of Common Era (alleged birth, death, rebirth of Jesus of Nazareth)
* 2.5 Ka - Buddha enlightened
* 3.75 Ka - Vedic period (earliest Hinduisms)
* 12-7 Ka - Agricultural revolution - start of human history. First settlements 5 Ka, in Mesopotamia, Indus river valley, along China's rivers, ancient Egypt.
* 50 Ka - modern humans (homo sapiens)
* 2.8 Ma (2800 Ka, 2,800,000 years ago) - Homo habilis, first creature in the Homo genus; positive evidence of using stone tools.
* 65 Ma - first primates
* 160 Ma - early mammals
* 525 Ma - first vertebrates, creatures with a spine (the Cambrian Explosion)
* 3.5-3 Ga (3,000 Ma, 3,000,000,000 years ago) - multi cellular life
* 4 Ga - earliest life
* 4.54 Ga - formation of the Earth
* 4.6 Ga - birth of the Sun
* 13.8 Ga - formation of the Universe
!! Visual representation
```
117 years - age of oldest living human
3,750 years - age of oldest extant religion (Hinduism)
10,000 years - age of the Earth according to YEC*
50,000 years - emergence of Homo sapiens (humans)
2,800,000 years - emergence of Homo habilis
65,000,000 years - emergence of first primates
160,000,000 years - emergence of early mammals
525,000,000 years - emergence of vertebrates
3,500,000,000 years - emergence of multi-cellular life
4,000,000,000 years - emergence of single-celled life
4,540,000,000 years - age of the Earth
4,600,000,000 years - age of the Sun
13,800,000,000 years - age of the universe†
* Young Earth Creationism, incorrect and debunked
† Time since the Big Bang
```
!! A koan
Tewi stretches out her hand and points her index finger forward. From the tip of her nose to the tip of her index finger is all of time. A single stroke of a nail file on her outstretched finger would erase all of human history.
In broad terms I would describe myself, using [[Isiah Berlin's fox/hedgehog classification|https://en.wikipedia.org/wiki/The_Hedgehog_and_the_Fox]], as a "fox"; a thinker who "draw[s] on a wide variety of experiences and for whom the world cannot be boiled down to a single idea". My worldview is a common one - post-Christian, Western, white, English-speaking - fused with less common ones - I've been influenced heavily by Chinese philosophy, Japanese Zen [[Buddhism]], and Indian mysticism.
!! Things I am interested in
* The human condition; the idea that we have in us the potential for great acts of good and evil; that any of us can use our limited time "productively" or not; how we can use our limited resources to meaningfully move towards self-improvement and leaving the world a better place than we entered it.
* The continued failure of grand narratives and coherent systems; furthermore hype cycles and the afterlife of failed ideas.
** [[Monadism]]
** [[The Emptiness of "AI"]]
** [[A-Theism: A Given]]
* Better political systems &| situations; how can we move past capitalism in the same way we moved past feudalism?
** On that note, lgbtq+ liberation.
* Human cognitive flaws (such as the Just-world Hypothesis) and how we can correct for them
* Non-Abrahamic religions; can the vehicle of a syncretic, non-Abrahamic religion deliver us from the failings and issues outlined above? Can faith be saved from conservatism and justifying of the status quo, or will it always be the opium of the people?
** As it pertains to the Abrahamic religions, what avenues were lost or suppressed; e.g. Gnosticism, Jesus-as-mortal, syncretic interpretations; or what did they replace? E.g. paganism, heathenry.
* The human subconscious; the need for myth and fiction. What is the intersection between fiction and reality cf. [[Waifuism]].
!! Things I am not interested in
* Free will
** I don't find anything about this topic interesting, pertinent, or distinct. I don't see any of the various options as being either particularly convincing nor particularly game-changing-if-true.
* Moral realism VS anti-realism
** As with free will, the distinction seems moot.
* Nature VS Nurture
** The overwhelming consensus seems to be that it's a mixture of both. Neither tabula rasa nor total biological determinism seems to be true.
Development Levels are this wiki's equivalent of the "epistemic status" disclaimer at the start of some lesswrong-diaspora blogposts. To be precise, they describe my attitude towards the finished-ness of the article.
!! The levels
* NoLevel - The level system is not relevant. This could be an ever-changing list, a [[Meta]] page, or a scratchpad or sandbox.
* LevelZero - Article is done, and satisfies my definition of "perfect". If any changes are made to this article, it will be from new information coming to light, or serious changes in viewpoint.
* LevelOne - Article is done. It may be tweaked or added to, but not in any significant way.
* LevelTwo - Article is mostly done. It can still be considered a draft, but won't have any major changes (at a structural level or above)
* LevelThree - Article is in progress. It may be half-finished, or have a finished structure but not a full text.
* LevelFour - Article is barely started. Likely it'll be a skeleton or a sketch, or just a summary paragraph with no elaboration.
* LevelFive - Article is not started. At most just a title, short blurb, or tag with no index.
Articles with text are LevelFour by default. Articles with no text (or dead links) are LevelFive. <<tag External>> articles are LevelOne or LevelZero by virtue of not being written by me. Sent letters are LevelZero, probably the only such on this wiki.
!! LevelTwo Transition
The transition between LevelTwo to the final LevelOne is a difficult one. I need a way to see how long an article has been in LevelTwo state since the last edit, or the likes, so that I know when it's reached the point of "OK I'm not going to change this any further, it's done."
I've created LevelTwoTransition as a test-bed for this idea.
//Playfully flirt with the edge of acceptability; accept your monstrous nature; do not be browbeaten or guilt-tripped by the non-Monadic.//
* https://buddhism-for-vampires.com/we-are-all-monsters
At some point in the future I'd like to build a DOS machine to play old games on and have fun with DOS - not sure what CPU nor what generation of IBM machines to emulate, though!
!! Networking
Software wise, there are several things we could use here:
* https://sourceforge.net/p/freedos/news/2020/01/new-version-of-mtcp/ - a software suite for you usual tcp tasks.
* https://sourceforge.net/p/freedos/news/2020/01/gopherus-gopher-client-v12/ - gopher client
* Dillo and Links: http://www.bttr-software.de/forum/board_entry.php?id=16176
** Curl and wget are apparently also available for DOS
Hardware wise:
* NE2000
* http://wiki.freedos.org/wiki/index.php/Networking_FreeDOS
!! Misc. dump
* Pretty sure I have a collection of old utilities somewhere
* https://sourceforge.net/p/freedos/news/2020/01/sbmix-version-21-jan-2020/ soundblaster mix
* https://archive.org/details/softwarelibrary_msdos_texteditors
* http://bochs.sourceforge.net/
* Dosbox config lives in ~/.dosbox on losenix.
* Config can go in batch section; see below
* Fix alt and ctrl: start with `-startmapper` option. https://www.dosbox.com/wiki/Mapper
```
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount C ~/dos/
C:
keyb dv103
```
* Mount floppy: `imgmount A /path/to/floppy.img -t floppy`
Dragons at Dawn is an attempt to recreate Dave Arneson's Blackmoor game system, by Daniel Hugh Boggs, who runs a [[blog|https://boggswood.blogspot.com/]].
It seems to have disappeared from dtrpg, but can be found at *cough* the usual channels.
Overall, the mechanics are fascinating. The book is, however, rather poorly laid out. It would benefit from a rewrite.
!! Mechanics
It seems to use 2d6 rather than 1d20 or 3d6. A "saving throw" is a 2d6-roll-under check.
It uses a rounds-and-turns system, similar to [[the subsequent D&D|Time in OD&D]] (I imagine it comes from Chainmail).
Hit Dice represent the monster's general fighting power, similar to D&D. Adjustments are added to this based on stats (difference in dexterity, for example). To-hit is handled by a chart with attack HD vs defender AC. AC goes 1-8 ascending.
Ability scores range 1-10. They are rolled 2d6-2 (reroll 0s; if total less than 36, reroll character. [[AnyDice|https://anydice.com/program/18984]]). It feels kind of similar to Fallout in that regard. The ability scores are:
* Appearance
* Brains
* Constitution
* Dexterity
* Strength
* Wisdom
Alphabetical order is used, rather than the more familiar "physical then mental/social" I use. Appearance and Brains map pretty straight to CHA and INT.
1-3 words to describe the character's personality and 1d6 specialty skills (1-5) are used. These can give the player an advantage on rolls.
HP is called HPV and is fixed based on one's class (7 for 1st lv warrior, 4 for 1st lv wizard).
There are a multitude of classes, demi-humans have a wider range of classes to choose from, and there are no level limits. Level 4 is Hero, level 8 Superhero, similar to 0e and buffing the unit's strength in Chainmail ofc.
* Warrior
* Wizard
* Elf Mage
* Merchant
* Priest/Monk
* Sage
* Thief Assassin
Advancement is by experience points. Rules are provided for monster characters to advance in level.
Fighters can kill multiple weaker opponents in one move.
Magic is not Vancian; instead it's spell points or at will (saving throw against con or exhausted for 2d6 turns) for Wizard Light, Lightning Bolt, and Fireball. Other spells are more similar to AD&D (they require components, which are 100gp/spell level).
This was a game jam that ran in 2019. [[Check it out on itch.io|https://itch.io/jam/dreamjam]].
<<<
!! Recommended Games (OSR & more!)
A list of games we love that you should think about hacking. But don’t limit yourself to this list. We include these games because they’re highly hackable and in many cases have good licensing terms for third party creators.
* Macchiato Monsters
* Troika!
* The Black Hack or Whitehack
* D&D (any edition)
* PbtA (Dungeon World & others) or Forged in the Dark
* Offworlders or Solar Blades & Cosmic Spells
* Story games: Belonging Outside Belonging, Lasers & Feelings, or Alone Among the Stars
<<<
Kicks talked about this: https://www.kickscondor.com/dream-wiki
I liked it so much I went on a WikiWalk. And then I found out it's free software! https://github.com/free-ghz/dreamwiki https://dreamwiki.sixey.es/!primer/
The documentation is all in crytyping and the source is hidden if not obscured. Writing about it in my default style - sincere but cheeky, like a term paper for a professor who gets me - feels a little wrong.
> password protect the "transpiler" or something
configure your web server ;)
I snarfed a copy from git, and I snarfed the primer using singlefile too, just in case it all a'splodes and dies. Note to self: It's `.git/info/exclude`
----
# install latest nodejs
# clone it somewhere: https://github.com/free-ghz/dreamwiki
# cd into it and run `sed -n -e 's/.*\(.\/static\/[^.]*.json\).*/\1/p' index.js | xargs touch`
# `npm install`
# `node index.js`
# navigate to [[http://localhost:7004/!transpiler]].
# kill the node process
# use the systemd module below (tweaking for ur local setup)
```systemd
[Unit]
Description=dreamwiki
Documentation=https://example.com
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/node /home/chameleon/src/node/dreamwiki/index.js
WorkingDirectory=/home/chameleon/src/node/dreamwiki
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
nginx config example:
```
server {
listen 80;
listen [::]:80;
ssl off;
add_header Content-Security-Policy "";
server_name dreams.tld;
charset utf-8;
location /!transpiler {
auth_basic "Cheeky message goes here";
auth_basic_user_file /path/to/.htpasswd;
proxy_pass http://localhost:7004;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location / {
proxy_pass http://localhost:7004;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```
<<<
Until you make the unconscious conscious, it will direct your life and you will call it fate.
<<< Carl Jung
Thinking about, and making sense of, the unconscious and how it relates to our experiences of both reality and unreality is one of the core missions of my life.
Human beings relate to each other, and make sense of the world, through stories. I'm interested in unpicking why stories work, in de- and re-constructing why we relate to stories and characters from stories, and understanding how it relates to our unconscious minds.
<<chame-list-links "[tag[Dreams and Subconscious]]">>
People are //really// weirded out when they hear I use a dvorak keyboard. "Why," they cry, "why learn a whole different layout?!"
I used to get really bad rsi from typing; what's more, I was what we call a hybrid typist - I had to look at the keyboard to type, but was able to mostly type by memory. Wanting to learn how to touch type, and exploring my options, I one day on a whim tried out [[the learning tool on the official dvorak site.|https://learn.dvorak.nl]] After an initially awkward teething period, I soon found myself typing faster than my old speed - and touch-typing, at that!
I've tried going back to qwerty, and touch typing on it, but I just can't make it work. Dvorak is in my fingers for good now, haha.
Would I recommend it? Hmm. If you're like me - have used qwerty but never learned to touch type, or struggle with it - then yes, definitely. But if you already can TT on qwerty, it's not really worth it.
* Degree needs to be ratified, apparently
** BSc Computer Science 2:1
** Do I really need this? It's served its purpose, I have experience now.
* SSN
** Part of green card process, I think
* Stuff
** Bring
*** Lappy
*** RPG books
*** Clothes
**** I need new socks and underwear
*** Tapes & vinyl maybe
*** Guitars, you need to figure out how
**** Hard cases? Courier?
** Don't bring
*** Mahakala is too big and is old anyways, cannibalize the drives and leave it.
*** Same with monitors, maybe dad or sibs want them
*** CDs, they're all ripped anyways
* Medication is apparently a problem on bringing.
** Sertraline 50mg 1/day; Anti-depressant
** Levothyroxine 100μg 1/day; For underactive thyroid
** Progynova 2mg 2/day; Estriadol valerate<<footnote "md" "surprise, I'm a trans woman (mtf)">>
** Decapeptyl ? ?g injection 1/3month; Anti-androgen
*** Will get a jab next week or early oct
* Bank
** Your current bank doesn't have branches in the states, so you might best find a new one or see if they have subsidiaries or if there's a way to transform your monkey-beans to USD.
** Best way to do this might be to change your 2fa to hubby's phone, or get him to get a payg sim from like walmart and use that as my 2fa.
* Work
** Resume
** ~LinkedIn
** Apply/talk to recruiters
{{Text Art: amfoot||ASCII: 50%}}
One of the most long-lived, and least understood, styles of rock music. Emo music grew out of the "emotive hardcore" scene, and ultimately the DC hardcore scene in the 80s.
Emopop got really big in the 00s, and a teen subculture developed around the music. "Emos" would wear their hair long and straightened, usually in their eyes, and had goth-inspired fashion.
!! Emocore
The real OG stuff. Mostly forgotten by contemporary emo kids, with the exception of a few eccentrics.
* Navio Forge
!! Midwest Emo
So called because the sound was developed by bands from nowhere towns in flyover counties in the Midwest.
* american football
* cap'n jazz
* Mineral
* Christie Front Drive
!! Emopop
When you say Emo, this is what people tend to think of.
* Jimmy Eat World
* Early Taking Back Sunday
* The Starting Line
* Saves The Day
!! Emo Revival
Late 00s - 10s bands who play a midwesty sound with influence from the emopop days and post-rock, math rock, etc.
* Algernon Cadwallader
* Snowing
!! Screamo/Skramz
Basically emocore turned up to 11 with lots of dynamics.
* iwrotehaikusaboutcannibalisminyouryearbook
* iwontstopwonderinguntilyoustopbreathing
* Jeromes Dream
* I have dreams
!! Emogaze
Not a real genre. I use this to describe various bands that scratch the Emo and Shoegaze itches at the same time.
* Batcomputer - probably the only true Emo/Shoegaze crossover band.
* Sadness - a DSBM band.
* Romancer - a post-rock/pop-punk band
[[Emo]]/Math Rock/Post-hardcore mixtape I'm on-and-off working on.
https://unsplash.com/photos/wRrf12t0zMU
# <Intro - [[ATLA clip|https://www.youtube.com/watch?v=2vr9xPqGD8o]]>
# This is Pointless - [[So that's what they do in college|https://www.youtube.com/watch?v=7A9kKdcQ2H4]]
# Magnetic Curses - [[One Hundred Year Ocean|https://www.youtube.com/watch?v=U09ASBqonN8]]
# Dowsing - [[Terminals|https://www.youtube.com/watch?v=PtepXwMQOa8]]
# Beartooth - [[Messed Up|https://www.youtube.com/watch?v=TlSR4iRIJY8]]
# Clever Girl - [[Teleblister|https://www.youtube.com/watch?v=8rCtBsOyNe0]]
# Reasons - [[If I call, will you answer?|https://www.youtube.com/watch?v=fHxNvUVyZS0]]
# good carl - [[Ikari|https://goodcarl.bandcamp.com/track/ikari]]
# Park Jefferson - [[Monuments|https://www.youtube.com/watch?v=YF-4EESllvA]]
# Morning Effort - [[all nightr|https://www.youtube.com/watch?v=czH-RTlYGtg&t=130s]]
Just a general lesson in what I mean when I say "I like emo music".
# snowing - so i shotgunned a beer and went back to bed
# camping in alaska - c u in da ballpit
# mineral - for ivadell
# midwest pen pals - austin's house
# i have dreams - thank you so much for helping a friend change his life for the better
# the spirit of versailles - there goes rhymin' simon
# boy problems - i hate kevin
# this is pointless - so that's what they do in college
# awakebutstillinbed - stumble
# jeromes dream - thirty dollar bill
# iwrotehaikusaboutcannibalisminyouryearbook - untitled 7
# algernon cadwallader - preservatives
# camping in alaska - life suxx
# the pennikurvers - daredevil
<<<
What the fuck are you talking about chameleon
<<< [[You|Dear Reader]], channeling the spirit of [[Walter White|https://i.kym-cdn.com/entries/icons/original/000/034/193/Breaking_Bad_S04E01__Box_Cutter__-_Denny's_Scene_0-25_screenshot.png]]
This micro-religion is something like what I really actually believe, or in better terms, practice.
What's with the name? It's rather a mouthful. Here's what each part of the name means and why I chose it. Let's start with "esoteric". Per the OED:
<<<
"""
esoteric:
intended for or likely to be understood by only a small number of people with a specialized knowledge or interest.
"""
//"esoteric philosophical debates"//
<<< OED
A personal micro-religion is by definition esoteric. Likely as not it'll either come across as cringe or wank to 99% of people that read this; but that 1% just might find it really helpful, hence why it's in public.
How about "syncretic"? Let's switch to Merriam-Webster and check the definition:
<<<
"""
syncretism:
the combination of different forms of belief or practice
"""
"""
syncretic:
characterized or brought about by syncretism
"""
<<< Merriam-Webster
I am what you may call a spiritual seeker, and have been for most of my life. The only stable period I've had since my de-conversion from Christianity on the cusp of my adulthood<<ref dv>> was when I firmly referred to myself as a Buddhist, which I did for the last few years<<ref tb>>. However, while still believing in many of the fundamental tenets of (little b) buddhism-as-I-practised, I have no faith in (big B) Buddhism-as-a-world-religion. All world/organized religions have extremists and fundamentalists and other nasties, and quite frankly I don't want to make common ground with them. Having been seeking most of my life I know a fair amount about all sorts of religions and all sorts of gods, demons, theologies, and spirits; and in many of these I've found something to admire. Studying [[Hinduism]] has been an eye-opener for me, and returning to study Japanese culture through the lens of [[Shinto]] finally made a framework possible.
So, this "syncretism" is a hybrid of stuff that I found helpful from all over my journey. Quickly:
* The rituals of Buddhism, Hinduism, neo-Paganism, and Shinto
* Gods (Kami, see below) from all over the place (and the attitude towards such from Shinto and [[David Chapman]]-[[Senpai]]'s [[yidams|https://vividness.live/yidams-a-godless-approach-naturally]]).
* The concept of bhakti (sincere devotion) from Hinduism
* Non-dualism from Buddhism and especially Daoism
* Gods [[that don't come from a tradition|http://www.incitingariot.com/2017/07/wonder-woman-on-my-altar-making-space.html]] from neo-Paganism.
Finally, the only neologism, Tewïsm. This is a hybrid of two terms. The second part is easy, it's the suffix -ism which you should recognize from the names of the other religions I've mentioned. Per Wiktionary:
<<<
"""
-ism:
Used to form the name of a system, school of thought or theory based on the name of its subject or object or alternatively on the name of its founder
"""
<<< Wiktionary
Tewi then is the subject/object/founder; of those, most likely the subject. She is a fictional character from Touhou Project, first, but more importantly is a [[trickster|https://en.wikipedia.org/wiki/Trickster]], like Loki, Hermes, Anansi, or even Lucifer or Prometheus. The reason it's important that she's a trickster is because, in my opinion and as outlined in [[EST: Kami]], I feel tricksters are the gods that humans should feel the closest too, as obvious reflections of ourselves. The reason it's Tewi in particular that gets honored in the name is because I feel intense personal devotion towards her; and as I stated above, bhakti is important to this whole enterprise.
Note: the diaeresis is needed because the W in Tewi is silent<<ref wi>> - it's pronounced as if it was "Tei", rhyming with "ray" as in a "ray of light". So Tewïsm should be pronounced like "tay-ism".
<<chame-list-links "[tag[Esoteric Syncretic Tewïsm]]">>
----
<<footnotes "wi" "In hiragana, the native syllablery of Japanese, 'Tewi' is written てゐ - te-wi. The 'wi' sound is no longer in the Japanese language, and is thus pronounced like an 'i' sound, which makes a dipthong 'ei' with the preceding 'te' character.">>
<<footnotes "tb" "And the end of this period is documented on the wiki, too: [[2020.06.20 - tibet]]">>
<<footnotes "dv" "If you can call it that. I'm not sure I was 100% a believer in the first place">>
https://malleable.systems/
# Software must be as [[easy to change|https://malleable.systems/mission/#1-easy-to-change]] as it is to use it
# All layers, from the user interface through functionality to the data within, must support [[arbitrary recombination and reuse|https://malleable.systems/mission/#2-arbitrary-recombination-and-reuse]] in new environments
# Tools should strive to be easy to begin working with but still have lots of [[open-ended potential|https://malleable.systems/mission/#3-open-ended-potential]]
# People of all experience levels must be able to [[retain ownership and control|https://malleable.systems/mission/#4-retain-ownership-and-control]]
# Recombined workflows and experiences must be [[freely sharable|https://malleable.systems/mission/#5-freely-sharable]] with others
# Modifying a system should happen [[in the context of use|https://malleable.systems/mission/#6-modifying-in-the-context-of-use]], rather than through some separate development toolchain and skill set
# Computing should be a [[thoughtfully crafted|https://malleable.systems/mission/#7-thoughtfully-crafted]], fun, and empowering experience
<<<
Respect Buddha and the kami without counting on their help.
<<< Miyamoto Musashi
A kami (神) is anything that has an outstanding impact on people's lives - gods and other supernatural beings, but also places, real people, fictional characters, or natural phenomena<<ref dc>>. A kami is not worshiped (in the same way that, say, Christians worship YHWH and/or Jesus) but rather venerated - tribute paid.
Kami are not necessarily good or upstanding. Some are dharmapāla, wrathful deities that are protectors of the dharma. Some are evil, and venerating them serves to keep them away from us. Some are simply forces of nature (such as volcanoes) that must be placated.
We agree to venerate the kami and afford them the respect they deserve, and they agree not to pretend to exist.
!! Tricksters
Tricksters are kami that are not particularly powerful but nonetheless have an outsized impact on the way of things. Examples of tricksters include ancient ones - Loki, Anansi, Coyote, etc. - but also newer ones, such as [[Tewi|https://en.touhouwiki.net/wiki/Tewi_Inaba]] herself.
Tricksters are the link between the kami and humanity. Just as Prometheus is said to have stolen fire from the gods to give to humans, humanity defies nature, defies control and demands freedom. Tricksters remind us of all the best parts of ourselves - much like humans themselves, the Trickster is not powerful, but is intelligent and crafty, and wins through wit rather than through might. A tiger or a shark is stronger, a deer or cheetah is faster, and a tardigrade or a cockroach is hardier, but none of them dominate the Earth quite like we do.
Tricksters, much like humans, are by their nature are mischievous and unscrupulous - and also much like humans, they are not inherently good or evil, but must choose their path through their actions.
!! Personal Guardians
A personal guardian is a kami that you have a personal relationship with. It's possible that they could indeed be a Trickster or a Supreme Being too, though in my case it's towards [[a minor adjunct|https://en.touhouwiki.net/wiki/Youmu_Konpaku]] to a more powerful figure that I feel this particular connection to; and in previous times it's been a [[particular dharmapāla|http://tibetanbuddhistencyclopedia.com/en/index.php/Mahakala]] not particularly well-known outside of Tibetan Buddhist circles.
!! Supreme Beings
There are many, many gods that could claim the mantle of Supreme Being. The ones I'd advise devotion to are the Trimūrti; and in the case of [[Shiva|Lord Shiva]], the Shiva/Shakti form, Ardhanarishvara. Shiva is particularly good for this purpose because he contains in him multitudes - creation and destruction, light and dark, good and evil, &c - as does the universe itself and all human beings; so we can see ourselves more clearly reflected in the Supreme Being, making them more personal, closer to Tricksters.
Arguably, it doesn't really matter what form the Supreme Being takes. Some might say they are formless, or take a form that cannot be comprehended and are thus equally nameless. It could even - in the form of [[Brahman|https://www.britannica.com/topic/brahman-Hindu-concept]], for example - be the essence of the universe itself. All that really matters is they're a kami you can respect as being the supreme.
I'd advise against a jealous god, however; this god is going to have to respect that there are other kami that must be venerated. Which brings us to...
!! The Adversary
Our adversary (ha-satan) is control - and the God of Control is Yaldabaoth, the Demiurge, better known as YHWH.
<<<
I [am] YHWH, and there is none else, || There is no God except Me
So that they know from the rising of the sun, || And from the west, that there is none besides Me, || I [am] YHWH, and there is none else
<<< Isiah 45:5-6 (LSV)
<<<
And God spake all these words, saying,
I am the LORD thy God, which have brought thee out of the land of Egypt, out of the house of bondage.
Thou shalt have no other gods before me.
Thou shalt not make unto thee any graven image, or any likeness of any thing that is in heaven above, or that is in the earth beneath, or that is in the water under the earth: Thou shalt not bow down thyself to them, nor serve them: for I the LORD thy God am a jealous God, visiting the iniquity of the fathers upon the children unto the third and fourth generation of them that hate me; And shewing mercy unto thousands of them that love me, and keep my commandments.
<<< Exodus 20:1-6 (KJV)
<<<
I ... can't deny the role emotion and fear played in moving me in the direction of belief as I found myself increasingly worried that if anything like the God of the Bible existed, my current lifestyle choices were not aligned with Its principles.
<<< DeathOfRobinhood
Such a god would take your freedom and your worship from you, demand rather than earn your devotion; act in great and terrible wrath while calling it love. The relationship between such a god and his disciples can only be described as abusive.
----
<<footnotes "dc" "c.f. 'An Introduction to Shinto' by David Chart">>
Rituals are called Sādhanā in Sanskrit: https://en.wikipedia.org/wiki/S%C4%81dhan%C4%81
!! Altar
Rituals require a sacred place. In the absence of real estate for a temple or a jinja, an altar will do. It also gives you the opportunity to venerate the kami that resonate the most with you.
Put down a cloth. Mine has a butterfly motif, for obvious reasons:
<<<
I dreamed I was a butterfly, flitting around in the sky; then I awoke. Now I wonder: Am I a man who dreamt of being a butterfly, or am I a butterfly dreaming that I am a man?
<<< Zhuangzi
Put up some images of kami that you identify with. Mine has:
# (to the left) A personal guardian
# (in the center and higher up) A deity I can see as the supreme being (in my case, [[Ardhanarishvara|https://en.wikipedia.org/wiki/Ardhanarishvara]])
# (to the right) A trickster (Tewi, Hermes, Prometheus, Loki, Anansi, Coyote, etc.)
Put down some candle holders. Extra points if you can get one with an image of the Buddha or similar. In my case:
# A blue one (Shiva)
# A pink one (Shakti)
# A Buddha
Put down something to hold incense. I have an incense holder in the shape of the hand of ahimsa. It helps to have something to catch ashes from incense sticks, too.
Finally you need a place to put offerings. In general I think water is a good thing to offer on a daily basis (change the water first thing in the morning every morning), so get a bowl that can handle being wet all the time (i.e. a stone or ceramic one). For more occasional offerings you can use a similar bowl, or a more beautiful one such as a copper or brass bowl.
!! Purifying yourself
Ritual purity is as much as anything about personal cleanliness. The first step is to solve this practically - if you have greasy or dirty hands, wash them with soap. The second step is to solve this ritualistically. Use a sink/basin if you're in a modern home, running freshwater if you can, a small amount of normal drinking or cleaning water if you have to, and follow the steps:
# Rinse your left hand with water
# Rinse your right hand with water
# Put a little water into the hollow of your left hand
# Rinse your mouth out with it
# Spit it out again (if you're outside, into the drain or onto the ground rather than into the water source)
# Rinse your left hand again
# Rinse off any implements you used to purify yourself and return them to where they were before
!! Daily Offering
# Bow at the altar, take the bowl
# Pour out the old offering
# Rinse the offering bowl clean and dry it
# Fill it up
# Bow at the altar while offering the newly filled bowl
# Place the bowl on the altar
# Bow again
!! Prayer Beads
See [[the article|Prayer Beads]] for general information about mala beads. It's important for EST because it's part of the daily ritual. After offering water and bowing, take the beads from the altar with your right hand and put them on your left wrist. Later, to put them back on the altar:
# Purify yourself (step 0), then bow at the altar
# Remove the beads from your left wrist with your right hand, and place them on the altar
# Bow again
# Clap your hands twice, signalling to the kami that you're there
# Bow again
!! Occasional Offering
https://www.mimusubi.com/2021/04/09/removing-offerings/
For things that don't go off, you can offer them on the 1st and 15th of the month, changing them then; or for things that do go off such as food or plant matter, you can offer them for a day or so.
!! Ahimsa
Ahimsa means non-violence. It's obviously a great virtue (arguably the opposite of the deadly sin wrath) and is important to the major Indian religions (which had the largest influence on EST).
!! Bhakti
Bhakti is a Sanskrit term that means, roughly, "devotion". In practice, in [[Hinduism]], it means "mutual intense emotional attachment and love of a devotee toward a personal god and of the god for the devotee".
<<<
According to the Bhagavadgita, a Hindu religious text, the path of bhakti, or bhakti-marga, is superior to the two other religious approaches, the path of knowledge (jnana) and the path of ritual and good works (karma).
<<< https://www.britannica.com/topic/bhakti
!! Dharma
Dharma is a Sanskrit term that's difficult to translate. In a Hindu context, it often takes on a meaning similar to the word "duty" - for example in an idea like "the dharma of a kshatriya (warrior caste) is to lead the village both in times of peace and in battle" - or something like a moral law or moral absolute (there is a universal dharma that everyone should follow, being truthful, generous, non-violent &c). In the [[Buddhist]] context it's closer to meaning "the truth" or somesuch; perhaps specifically the Buddhist doctrine collectively.
When I use it, consider whether "duty" or "the truth/the doctrine" makes more sense in that context, or maybe both.
!! Kami
Something worth venerating. It could be a god, demon, or angel; it could be a yidam; it could be a fictional character; it could be some natural phenomenon or real person. See [[EST: Kami]] for more.
!! Karma
Simplifying a little, and tailoring it more to the way I use it, karma means "moral value" - so you may say that murdering someone has or accumulates a lot of negative karma. It does not mean "what goes around comes around" or anything similar. I'll most commonly say (especially in person) "don't attach any karma to it" when referring to some object, action or state; this means something like "it is what it is"; or "it is neither bad nor good"; or "don't worry about it".
I've been interested in grand strategy games for a while. I've had a lot of fun with 4Xs such as Civilization. This one works on Linux, and doesn't have very strenuous system requirements! So I'm giving it a go.
* https://eu4.paradoxwikis.com/Beginner%27s_guide
* https://www.youtube.com/watch?v=y5x06ddeQWo
HAHAHAHA
YOU THINK YOURE THOUGH UH ?
I HAVE ONE WORD FOR YOU
` `THE FORCED BREAKING OF THE PARAGRAPHS
GET IT ?
I DONT THINK SO
YOU DONT KNOW ABOUT MY OTHER CAR I GUESS ?
ITS A MACRO
AND IS PRONOUNCED ``$:/macros/''
''OK YOU FUQIN ANGERED AN //^^EXPERT PUBLIC SELF MODELLER^^//''
THIS IS TiddlyWiki
YOU ARE ALLOWED TO POST HERE ONLY IF YOU HAVE ACHIEVED SATORI
WIKIING IS ALL ABOUT ``ABSTRACT BULLSHITE'' THAT YOU WILL NEVER COMPREHEND
I HAVE READ [[h0p3]]'s WIKI
IF ITS NOT DONE YOU HAVE TO
TOO BAD ELECTRON IS SLOW AS FUCK
,,VND.TIDDLYWIKI,, AND ((JAVASCRIPT)) ARE THE ULTIMATE LANGUAGES
ALSO
WELCOME TO TiddlyWiki
EVERY TIDDLER WILL BE TAGGED
NO EXCEPTION
* https://www.yourworldoftext.com/~japanoise/
* https://special.fish/chameleon
[[Senpai|h0p3]] said he enjoyed this one, so I thought I'd share my shitty translation and thoughts on the song.
"Exterminio" means "genocide", "extermination", or something similar. "Ordem e progresso" are the words on the Brazilian flag. The whole thing is an extended reference to the Brazilian national anthem, probably in protest of the dictatorship, which had only just been replaced by democracy when the band formed in '85; it's made clearer by another song on the album, [["1964"|https://www.youtube.com/watch?v=kFhDKMkZE5g&t=1124s]], titled after the year the dictatorship took power, what the theme of these songs is.
!! Lyrics
"""
Tecemos a nossa mortalha, sem escolher a morte (We weave our shrouds, without choosing death)
Tecemos a nossa história, sem escolher a sorte (We weave our stories, without choosing luck)
Sempre como escravos passivos a dormir (Always like passive slaves sleeping)
O medo programado pra viver e nada sentir (The fear programmed to live and feel nothing)
Pátria mais amada sofre o medo e o terror (Most beloved homeland (this is from the anthem) suffers fear and terror)
Na opressão da liberdade, no dever ao seu senhor (In the oppression of freedom, the duty to the lord)
Povo heroico ao brado como nunca se viu (heroic people shouting like never before (the anthem again))
Todos condenados a morrer pelo Brasil (All condemned to die for Brazil)
Terra dourada, responda à minha prece (golden land, respond to my prayer)
Onde estão a esperança e o amor que à terra descem (where is the hope and love that descends to earth?)
Se sob o formoso céu, triste, sempre sombrio (If under the beautiful sky, sad, always dark)
Choramos lágrimas de sangue por seu povo oprimido (we cried tears of blood for its oppressed people)
Povo que sofre calado, sem nada a reclamar (People that suffer in silence, with nothing to complain about)
Rezando com esperança de Deus tudo ajeitar (praying with the hope that God will solve it all)
Ordem e Progresso (Order and Progress (the words on the flag))
"""
Things from outside the wiki, imported in. Usually have their own licenses detailed at the source.
<<list-links "[tag[External]]">>
The main advantage of this one is that it's fast. It's also cheap, filling, and easy. It makes 2-4 servings depending on how hungry you are.
I've lived on this one before (when I was an ascetic).
!! Ingredients
* 100g couscous
* 200ml hot vegetable stock (make it from a cube)
* 2 spring onions
* 1 red pepper
* ½ cucumber
* 50g feta cheese, cubed
* 2 tbsp pesto
* 2 tbsp toasted pine nuts
!! Tools
* Mixing bowl
* Something to store the salad in the fridge (tupperware, or just the bowl)
* Knives & chopping board
!! Prep
# Mix the couscous and stock in the bowl. Leave it covered with a plate or lid while you chop. Set a ten-minute timer
# Cube the cucumber
# Cut the pepper into strips
# Cut the spring onion into strips or discs (easier)
# The timer should bong about now; if not, wait.
# Mix the ingredients into the (now light and fluffy) couscous. Feta works best in cubes or crumbled here.
# Serve as-is. The couscous will be warm if you serve now, but it's equally good straight from the fridge.
!! Variants
You can sub the veggies with most others - i.e. yellow or green peppers are fine too. Chili works quite nice. Try different pestos. Try different nuts or seeds.
From the UK or Europe? In the US? Here's a bluffer's guide to fast & fast casual food.
* ~McDonalds
** You know them, I know them. Same menu everywhere. Get a Big Mac.
* Burger King
** Maybe you haven't had them if you're from rural Finland. Basically a slightly nicer maccas. Get the bacon double cheese or the whopper.
* Wendy's
** The king of this trio. The beef is fresh, and they have nice fries. Get the 4 for $4, or just browse the menu. Ask for a "Dave's Orange Cream Soda".
* Sonic
** Only in the South. Get the bacon burger or the chili dog. Make sure to try their shakes - the strawberry one is the best you can get quickly.
* Chick-fil-A
** Owned by evangelicals or something - isn't open on Sundays and has been in a few anti-gay scandals. The chicken is fine, but go to Zaxby's or KFC instead if you can.
* Zaxby's
** Straddles the line between fast casual and fast food. Lots of bad service stories, but the food is great. Get the Wings 'n Things combo - tongue torch for some heat, nuclear if you're a chilihead. The Zax sauce is somewhere between a thousand island and a spicy mayo - get an extra one, but ask for it after you've paid.
* KFC
** Old classic, but has been struggling so enjoy it while it's there. Might do wedges instead of fries. Get a bucket or a boneless box.
* Taco Bell
** Starting to spread to the UK. Very loosely based on Mexican food. Get a steak quesarito or a chalupa, but watch out - the ground beef has a very mild, maybe bland taste to my palate, so go for the shredded chicken in your taco instead. Order the Baja Blast for your drink - it's much better than a coke or regular Dew.
* Arby's
** Kinda like a deli - lots of strips of meat. Most of the food will probably be boring to you, but the greek gyro is like a nicer version of a doner kebab. Get that, and get a jamocha shake.
* Little Caesar's
** Cheapest pizza you can get easily. Get a pan pizza. Try the buffalo ranch. My favorite topping is Italian Sausage, which is good from here.
* Cook Out
** Open until the wee hours of the morning. Food is very good for a drive-through. Get a "Cook Out Tray" with:
**# Big Double burger with cheese, bacon, and onions
**# Cajun fries
**# Chicken nuggets or onion rings
**# Fancy shake. Strawberry, Red Cherry, Pineapple.
Take a shot if:
* Petra crits
* Caspar punches something 50 times the size of him to death
* No damage to Edelgard
* Ferdinand misses something
* Bernie snoifes someone from across the map
* Bernie does something cute
* Lysithea does something precociously adorable
* Lysithea owns
** Two shots if it's Dark Spikes
* Linhardt takes a nap
* Lorenz needs healing. Marianne with the save
* Me and [[The Abyssal]] sing old [[cristal y acero|https://www.youtube.com/watch?v=K0WDauZyDLQ]] songs whenever Marianne appears or does something cute
* Marianne and Hilda have a perfect friendship
[[Get in|https://talktotransformer.com/]] you fucked up pervert!
---
''anime girl sweat is'' the best thing I've ever experienced.
「I'll be sure to show you my cute side after this.」
「You do look cute when you're angry!」
I look at the red-headed girl while grinning.
It seems that she is getting annoyed with the two of us, so she decided to say something.
「Hou~? That is true! But if you're not happy, then don't do it!」
The red-headed girl was angry.
「Hm~? You're right!」
I look at the other two girls.
「……」
Their red hair is also dyed red.
「Well, I'll show you my cute side.」
After saying
---
''Konata's pussy'' is dripping in a white, thick, salty liquid.
---
''tsundere thigh-highs are'' 『Junketsu no Kamae』, or the "cute thigh-high" with the "bulge of breasts" on them. This one has the "bulge of breasts" and the "thigh-highs," but it's more a thigh-high with an "anatomical cleavage" than a thigh-high. 『Mamikomi』 is another way of saying "underwear." There are also a lot of types of high-heeled shoes. 『Hime-chan』 is a Japanese term that means young girls. If you read Japanese, you know that high-heeled shoes are known as "heishi hime." (note: heishi means "naughty" or "uncouth" in Japanese) Also, the
"""
''tsundere thigh-highs are'' a must. But not only the girls wear thigh-highs, guys as well. I mean seriously, it's pretty much always a girl or a guy wearing the thigh-highs. So here are some tips for how to dress up for a night of fun at the festival.
1. Wear a short jacket over your knee length shorts.
A short jacket that fits you nicely can make you feel like you have a short skirt and make you look like a girl. It's also much warmer and makes you feel really sexy in your thigh-highs.
2. Wear a belt.
A really simple accessory that can be used for a multitude of purposes. It can be a really classy and formal way to wear a belt. It can also be used to dress
"""
---
''shimapan tastes like'' a real bowl of sushi – it doesn't just taste like a bowl of rice.
---
''Striped panties'': [Inner leg, leg, inside the leg, crotch, inner thigh, inside the thigh, crotch, inner thigh, inside the thigh, crotch, inside the thigh, crotch, inside the thigh, crotch] [Legs: inside the thigh, crotch, inside the thigh, inside the thigh, crotch, inside the thigh, inside the thigh, inside the thigh, inside the thigh, crotch, inside the thigh, inside the thigh, inside the thigh, crotch, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside the thigh, inside
ffmpeg is an incredibly useful tool for working with videos, but I can never remember all the fiddly little switches. So I'm just going to kopipe every time I use it for a new purpose.
!! Add subtitles to video
```
ffmpeg -i video.mp4 -vf subtitles=subs.srt out.mp4
```
!! One image and audio file to one video
```
ffmpeg -i still.png -i narrate.wav -acodec libvo_aacenc -vcodec libx264 final.flv
```
<<<
Even easier:
```
ffmpeg -i ep1.png -i ep1.wav ep1.flv
```
FFmpeg will try to pick the best codec automatically, depending on the extension of your output file.
Update: I noticed YouTube has difficulty processing the video (gets stuck at 95%) I think because there's only one frame. The solution I found to make YouTube happy: add more frames. Also, I added-acodec copy to preserve the audio quality. You need -shortest or it loops forever. (It stops at the end of the shortest stream, which is the audio, because the image loop is infinite.) The order of your options is very important for speed, as filters (and such) are processed in the order you specify. If you change the order of these parameters, the results are dramatically different.
```
ffmpeg -r 1 -loop 1 -i ep1.jpg -i ep1.wav -acodec copy -r 1 -shortest -vf scale=1280:720 ep1.flv
```
Also notice that I set the frame rate twice, that's not an accident--the first frame rate is for the input, second is for the output. If you do this correctly, there should only be one frame per second of video, which means it encodes relatively fast. Also I set the resolution to 720p here, which means you should get HD audio on YouTube :-)
<<< https://superuser.com/a/1041820
!! Clip out part of a video
```
ffmpeg -i in.mp4 -ss <starttime> -c copy [-t <endtime>] out.mp4
```
(note: -t switch is optional; you can optionally put -ss first to make it faster but less accurate)
<<<
As other people mentioned, putting -ss before (much faster) or after (more accurate) the -i makes a big difference. The section "Fast And Accurate Seeking" on the ffmpeg seek page tells you how to get both, and I have used it, and it makes a big difference. Basically you put -ss before AND after the -i, just make sure to leave enough time before where you want to start cutting to have another key frame. Example: If you want to make a 1-minute clip, from 9min0sec to 10min 0sec in Video.mp4, you could do it both quickly and accurately using:
```
ffmpeg -ss 00:08:00 -i Video.mp4 -ss 00:01:00 -t 00:01:00 -c copy VideoClip.mp4
```
The first -ss seeks fast to (approximately) 8min0sec, and then the second -ss seeks accurately to 9min0sec, and the -t 00:01:00 takes out a 1min0sec clip.
Also note this important point from that page: "If you use -ss with -c:v copy, the resulting bitstream might end up being choppy, not playable, or out of sync with the audio stream, since ffmpeg is forced to only use/split on i-frames."
This means you need to re-encode the video, even if you want to just copy it, or risk it being choppy and out of sync. You could try just -c copy first, but if the video sucks you'll need to re-do it.
<<< https://superuser.com/a/704118
!! Replace the audio in a video
```
ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4
```
<<<
-map 0:v:0 maps the first (index 0) video stream from the input to the first (index 0) video stream in the output.
-map 1:a:0 maps the second (index 1) audio stream from the input to the first (index 0) audio stream in the output.
If the audio is longer than the video, you will want to add -shortest before the output file name.
Not specifying an audio codec, will automatically select a working one. You can specify one by for example adding -c:a libvorbis after -c:v copy.
<<< https://superuser.com/a/1137613
!! Privacy/Adblock
* Ublock Origin
!! Rice
* Stylus
** Better version of stylish (not owned by adtech parasites)
!! Anti-Social Media
* Impulse Blocker
** Lets you block any site. Works on mobile.
* Reddit programmer mode
** Blocks reddit specifically, but allows referral links (e.g. Google search results). Doesn't work on mobile.
This is a link to something I know exists, but do not have the actual URL for yet; or, something that I will write in future. Forgive me and be patient; I will find it at a later date.
<<list-links "[all[current]backlinks[]] -[tag[Wiki Review]]">>
*[[Worlds, not rules|https://d66kobolds.blogspot.com/2020/09/free-kriegsspiel-worlds-not-rules-etc.html]] - introductory essay.
* [[Der Tresor 2|https://docs.google.com/spreadsheets/d/1M6W8muhL3zOx1KJ-CGa1YEogOvrOzQfkXu0c7bm0OcE/edit?usp=sharing]], the central-ish repository of FKR stuff.
**[[Der Tresor|https://docs.google.com/document/d/1_4IIrBbn4ddoq-9dYlsnaluDbJJmX20rvAKzL31vxK4]], the original version, kept for posterity. Created by Darkworm Colt who is taking a break from the scene.
```
__....__
.gd$$$$$$$$$$bp.
.-"^^^T$$$$$$$$$$$$$p.
.' "^T$$$$$$$$$$$$b.
.' `T$$$$$$$$$$$$b.
/ .d$$b. T$$$$$$$$$$$$$b
/ d$$$$$$b $$$$$$$$$$$$$$b
: :$$$$$$$$; :$$$$$$$$$$$$$$;
; T$$$$$$P :$$$$$$$$$$$$$$$
: "^$$^" $$$$$$$$$$$$$$$$;
; d$$$$$$$$$$$$$$$$$
| .d$$$$$$$$$$$$$$$$$$
; d$$$$$$$$$$$$$$$$$$$$
: :$$$$$$P^""^T$$$$$$$$;
; $$$$$$P T$$$$$$$
: $$$$$$ $$$$$$;
\ :$$$$$b d$$$$$P
\ T$$$$$bp..gd$$$$$P
`. `T$$$$$$$$$$$$P'
`. "^$$$$$$$$P'
"-. "^^T$P'
bug "--...____...--"
```
* Music - in the groove, the band's really cooking
* Sports - in the zone
* Programming - hack mode
```perl
#!/usr/bin/env perl
my $filename = "text/folder.txt";
open (my $fh, '<:encoding(UTF-8)', $filename)
or die "could not open '$filename' $!";
my %purposes;
while (my $line = <$fh>) {
if ($line =~ /([^\t]*)\t(.*)/) {
$purposes{"$1"} = $2;
}
}
my $date = `date -I`;
chomp $date;
print "Report generated $date by [[folderReport.pl]]\n\n";
my $ndirs = 0;
print "|!Directory|!Purpose|!Num Files|!Directory Size|\n";
my @lines = split "\n", `find . -maxdepth 1 -type d | sort`;
foreach my $line (@lines) {
if ($line ne ".") {
my $nfiles = `find "$line" -type f | wc -l`;
chomp $nfiles;
my $sfiles = `du -sh "$line" | sed -e "s/\t.*//"`;
chomp $sfiles;
my $purpose = "unknown/not stated";
if ($purposes{$line}) {
$purpose = $purposes{$line}
}
$ndirs = $ndirs + 1;
print "|";
print "$line |";
print "$purpose | $nfiles| $sfiles|\n";
}
}
my $nfiles = `find "." -type f | wc -l`;
chomp $nfiles;
my $sfiles = `du -sh "." | sed -e "s/\t.*//"`;
chomp $sfiles;
print "\n\nTotal: $sfiles in $nfiles files and $ndirs directories.\n"
```
[[Font Awesome SVGs come from here.|http://fa5-free-svg.tiddlyspot.com/]] I use them for tag icons.
<<list-links "[tag[Font Awesome 5]]">>
Food (and drink!)
<<chame-list-links "[tag[Food]]">>
!! ~YouTube ideas
* the burger show
** regional burgers: https://www.youtube.com/watch?v=cdvZC91YpMs
** Mythbusted burger: https://www.youtube.com/watch?v=weFT03Mcah0
* p much anything Adam Ragusea does
** Pan pizza https://www.youtube.com/watch?v=uYxB4QBlrx4
** Frittata https://www.youtube.com/watch?v=-q8czZSQbbQ
** Roast potato "fries" https://www.youtube.com/watch?v=m6kcANnAJSo
*** Bit of an English connection on this one!
*** Reminds me of Granny's roasties. I miss her a lot.
**** I think she used to do it with goose fat.
** Fried chicken https://www.youtube.com/watch?v=JPg-L5kJuOc
** Crème brûlée https://www.youtube.com/watch?v=9Jja-kf5z4U
*** Said "Adam you fucking genius!" irl, lol
!! Recipes from Pocket etc.
* https://getpocket.com/explore/item/how-to-make-homemade-taco-seasoning?utm_source=pocket-newtab
** https://www.thekitchn.com/easy-chicken-thigh-tacos-recipe-22971220
!! Miss about the UK
* Boxed sandwiches. Such a weird thing to miss, but I've eaten so many all-day breakfasts, chicken & bacon, duck rolls, & chicken tikka boxed sarnies/wraps that I've started to really enjoy them. It'll be priority #1 if I ever return!
* Real fish & chips from a real chippy. Phat chips, curry sauce, battered sausages...
* Indian places being more common. Back home you're never more than a quick drive or even a brisk stroll away from tandoori goodness
!! Miss about Europe
* France: restaurants taking themselves seriously. Weird I know, but it was nice in France
* Portugal: dirt-cheap beer and fresh-caught seafood
* Spain: real paella, chorizo, tapas
* Finland: Rye bread, karhu
* Belgium: Beer
* The Netherlands: not eating there
!! Would miss about the USA
* Cheesesteak. Probably the apotheosis of the sub sandwich. It tastes like nostalgia, even though I didn't grow up eating it
* The wider choice of Fast & Fast Casual food. I'd miss Wendy's, Zaxby's, and even the chik-fil-a christian fash
* Gyros. Basically fancy kebabs. I do miss the kebab shop experience, though<<ref "al">>
---
<<footnotes al "As Alex says, being served by a gigantic Turkish man named Asif or something who's very friendly and speaks every language except English">>
I use a tweaked version of danielo's plugin. You can install it yourself thusly:
# Import [[popupStyle]]
# Import $:/stylesheets/footnote (and tweak to your liking)
# Import $:/macros/danielo/footNote
# (optional) Read and/or import FootnotesCheatsheet
!Usage
!!Single reference
It's fairy simple
```
<<footnote "label" "text of the footnote">>
```
Which renders as <<footnote "label" "text of the footnote">>
!!Multiple reference
Once defined you can use the same annotation multiple times. Use the `ref` macro and the same label of the note you want to reference again.
```
<<ref "label">>
```
Which renders as <<ref "label">>
!! Bottom definition.
Maybe you want to stick to classic footnotes but you like the popup thing. This means that you want to have all your definitions at the bottom of the page and reference them later like this <<ref "Note2">>. In that case use the same `ref` notation than in multiple reference but make your footnotes definitions at the bottom of the page. This way you cold maintain a page-wise formatting <<ref "Note3">> as Eric Shulman suggested.
```
---
<<footnotes "2" "You can see this footnote at the bottom of the page or inside a popup">>
```
Which will render as:
---
<<footnotes "Note2" "You can see this footnote at the bottom of the page or inside a popup">>
<<footnotes "Note3" "although popup footnotes are useful for onscreen display, printed documents would need to have footnotes placed at the bottom of the page on which the footnote occurs.">>
//If you find yourself on this list, feel free to reach out.//
!! nya
* she/her
* Scottish (shithole Scotland, though, like Glasgow or somewhere). "My childhood was basically like Trainspotting"
* Wanted to ban encryption. Blamed terrorism on encryption.
** When I disagreed she said something like "OH SO YOU'RE OK WITH KIDS GETTING BLOWN UP THEN?"
* nano evangelist (yes, the text editor). "Why would you need anything other than nano?"
* Deliberately listening to terrible normie music
* Radical centrist
** Defended Milo Yabbadabbadoupolis before he went mask-off.
** "GET OUT OF YOUR BUBBLE!" (lives in an alt-right/radical centrist bubble)
* Wanted to meet up. Idk if we'd make out or kill each other. I don't live in the UK any more.
!! Desu
* I think uses she/her now.
* Also goes by Jade Stern, after Sui.
* Lives in WI.
* Goddess/Waifu: [[Suiseiseki|https://rozenmaiden.fandom.com/wiki/Suiseiseki]]
* Entire personality built around imageboard memes.
** Politics? Trumplet
** Music? [[Initial D|https://www.youtube.com/watch?v=Gah8FnYSypk]], meme music
** Anime? Whatever's popular enough to spill out of /a/
** Fitness? Cycling, since that's super popular on the transportation board
* [[Desu's Ideology]]
I keep thinking to myself that I should learn forth, and implement my own. So let's start a wiki page, for some motivation.
* Essay that got me thinking this: http://www.call-with-current-continuation.org/articles/forth.txt
* Jonesforth: https://github.com/nornagon/jonesforth/blob/master/jonesforth.S
** Has some dead links, I've restored them:
*** http://bernd-paysan.de/why-forth.html (https://web.archive.org/web/20060324195040/http://www.jwdt.com/~paysan/why-forth.html)
*** https://web.archive.org/web/20060201225836/http://www.albany.net/~hello/simple.htm
Maybe I should develop a Forth for the CX16. They're likely desperate for software, and Forth is a) easier than asm b) not gimped like BASIC.
!! Forth as the Mind-Amplifier
c.f. RETRO
<<<
chameleon's exploration of Forth is a great example of an art I wish I could do. It feels like a philosophical computing language. I can imagine that such a thing would be incredibly useful in some cases too. In a high-level language like Python (still my favorite, ofc), I don't have to understand almost anything, lol. Forth seems especially gorgeous in its demands. Forth encourages you to understand the entire run-time. I also like procedural languages, the emphasis on extending the language (really writing your own language and program), having that bootstrappy dynamic incremental interpreter+compiler shell, the celebration of self-hosting and touching the bare-metal, urging a simplicity (bordering on optimization, that tight code pussy) on the stack (maybe Forth is like sculpting; I'm simply too ignorant to know), thinking in phrases of words, and it seems (when you squint your eyes) to have plenty in common with the wiki (as though we each are building and factoring our own dialect, struggling to pick out the right names for our words).
One of the greatest virtues of empirical intelligence is the compression and antipleonasmification of larger models into smaller abstractions. Forth might be esoteric in some contexts, but because it does not waste, it fits in the tiniest of places. There is always room for such an elegantly exotic thing. It seems impossible to master and a hacker's language if I ever saw one. In a world where we just throw more hardware at the problem, Forth sexily pushes in the harder direction by demanding such complete understanding that it grants complete control as a by-product. Part of me thinks that a lifelong personal dialect of Forth could grow into something outrageous, perfectly customized, and radically portable.
<<< [[h0p3|https://philosopher.life/#2020.06.10%20-%20Prompted%20Introspection%3A%20Forth]]
!! My Forth(s)
I've implemented Forth in C; I'll snarf it into a single-header library Real Soon Now™. I guess I could call it SHForth or ~ChameForth.
---
Implementing Forth in C was fun. It maybe wasn't //entirely// the way to go, however. I was using C as primitives... but Forth is, at its heart, lower level than C. The way to go seems to be a simple VM.
For that, I'm investigating [[RETRO Forth]].
!! Forth Documentation
* https://www.forth.com/starting-forth/
* [[Forth: DBG]]
!! Ideas/Dreams
Lambda word that defines a hidden word and pushes it on the stack (a "closure" too?)
```Forth
LAM ( ... ) MAL
\ ...
\ Compile it into the current word:
[ , ]
```
!! Stack Notation
Stack comments look like this: `( A B -- C D )`. The `--` divides the function into before and after. The stack grows from left to right - the rightmost is the top of the stack. Some examples:
* `/` - `( A B -- A/B )`
* `SWAP` - `( A B -- B A )`
* `OVER` - `( n1 n2 —- n1 n2 n1 )`
* https://www.forth.com/starting-forth/2-stack-manipulation-operators-arithmetic/#Forth_Words
!! Conditionals
Forth works backwards!
# set up the stack before with "booleans"
# call IF and write the true part.
# If you need an ELSE, write it and the false part.
# After you're done, write THEN.
For example, if we have a number on the stack, and want to push 0 if it's 0 and 255 otherwise:
```Forth
: MYWORD 0 = IF 0 ELSE 255 THEN ;
```
Post-OSR gaming scene, probably spun-off from the Landshut rules & Secrets of Blackmoor.
<<chame-list-links "[tag[Free Kriegsspiel Revolution]]">>
To dislodge the writer's block, one can just write whatever nonsense comes to mind. At some point, the world around you ceases to exist and only the page matters.
<<<
i wonder if i could become smart and wise one day. maybe
if i learn a lot more. ahahhhh free writing is draining. i still have eight
minutes left but idk what more to write. i think i'm low on ideas. however the
forcing me to keep writing aspect (while tense) is actually meaning i am choking
out something, slowly but surely. it's full of smut and stupid brain nonsense
and i think it'd be ill advised to ever show it to anyone but hey at least i'm
writing something!!!!!! that's a big improvement over how quiet i've been on the
writing front for the last month or three.
<<<
<<<
i don't know what's going on with my mind right now. i think i'm having some
kind of personality shift. writing like this is wearing down the barriers
between me and the words. i no longer know if the words are me or if they're
something else, something beyond words, or beyond language. perhaps im only
writing down what's on my mind which is why it's so discombobulated.
<<<
Archive links; almost all defunct upstream.
* https://web.archive.org/web/20191221100721/http://story-games.com/forums/discussion/14190/styles-of-freeform
* https://web.archive.org/web/20191222101017/http://fairgame-rpgs.com/index.php/fairgame/thread/50
* https://web.archive.org/web/20080706193217/http://www.io.com/~lcowper/InNomine/symphony.html
* http://lumpley.com/index.php/anyway/thread/579
* http://lumpley.com/index.php/anyway/thread/580
[[Adapted from here.|https://www.allrecipes.com/recipe/23186/ultimate-french-toast/]]
* 2 eggs
* 1 tablespoon milk
* 4 slices bread
# Mix eggs, milk, and optionally 1/8 tsp ground cinnamon.
# Dip bread in egg mixture.
# Fry eggy bread in butter over medium high heat. Serve with maple syrup.
!!! [[h0p3]]
<<list-links "[tag[From]] +[tag[Letter]] +[tag[h0p3]]">>
!!! [[kickscondor]]
<<list-links "[tag[From]] +[tag[Letter]] +[tag[kickscondor]]">>
!!! [[Nobu]]
<<list-links "[tag[From]] +[tag[Letter]] +[tag[Nobu]]">>
```
Brb, gotta shower
Just because I'm a waifuist, doesn't mean I wanna smell like one!
SaltyFoxLast Wednesday at 6:53 PM
I mean, we've all been there
chameleonLast Wednesday at 6:54 PM
you know how it is, your programs are bombing off, your daughterus have hives, you want to write THE GREAT AMERICAN VISUAL NOVEL but you're stuck working on chemical simulations...
SaltyFoxLast Friday at 8:51 PM
I taught someone how to use nhentai today. I'm awaiting my medal
chameleonLast Friday at 9:50 PM
hahahaha
nice one =w=.
SaltyFoxLast Friday at 9:51 PM
"What's the joke? What's with all the numbers on these anime memes?"
SaltyFoxYesterday at 12:02 PM
Didn't mean to fall asleep on you >_< Her grandma is so cute!!!
And yes, delinquent MLP gang can beat me up anytime ~_~
chameleonYesterday at 7:22 PM
You haven't lived until you make yourself and your crush/waifu in sims
SaltyFoxYesterday at 7:23 PM
That does sound fun >_>
Then you trap them in the bedroom and crank up the R&B
chameleonYesterday at 7:27 PM
hehehe
https://www.youtube.com/watch?v=x6QZn9xiuOE
SaltyFoxYesterday at 7:28 PM
EXACTLY
Baby time
So burger talk! Favorite toppings?
chameleonToday at 10:28 PM
bacon, chili, avocado/guac, eggy bits...
SaltyFoxToday at 10:28 PM
EGGY BITS
chameleonToday at 10:28 PM
it's been a while since I had a good chili burger actually
eggy bits
what do you think of the princess I made?
from scratch, too!
SaltyFoxToday at 11:27 PM
Oh my goodness
She's a hottie
:3
chameleonToday at 11:28 PM
"Got her 3 measurements?"
"32x32, 256 colors!"
SaltyFoxToday at 11:29 PM
Dayummmmmmm
X)
Chicken nuggers are A+
chameleonToday at 3:57 PM
lol I'm glad you're familiar with that meme
I was going to type nuggers but I was worried you wouldn't have been =w=.
:KonataThink:
SaltyFoxToday at 3:57 PM
XD
I'm quite familiar, even with family I tend to call them "chimken nuggers"
:HonoDab:
chameleonToday at 3:59 PM
CHIMKEN NUGGERS
you: "chicken sandwich"
me, smart: "chimken borgar"
chameleonToday at 3:16 AM
this conversation reads like a kōan
"A little chameleon asked the master fox:
Does squealing have the Buddha-nature?
The master fox quickly replied:
Squeak.
And thus the chameleon achieved satori."
SaltyFoxToday at 3:17 AM
XD
I'm saving that forever
chameleonToday at 3:18 AM
(translated from the original Chinese by chameleon-Roshi. The original version was in iambic pentameter)
someone unironically used :pleading_face: so I posted :ahegaopleading:
PERFECTLY BALANCED AS ALL THINGS SHOULD BE
SaltyFoxToday at 8:33 PM
You're the hero we deserve
My gamer buds don't like those
So I keep using them
```
[[https://i.imgur.com/qDWp3LX.png]]
```
▄█ ▄████ ▀▄ ▄ ████▄ ▄ ▄ ▄ ████▄ █▄▄▄▄ █ █▀
██ █▀ ▀ █ █ █ █ █ █ █ █ █ █ ▄▀ █▄█
██ █▀▀ ▀█ █ █ █ █ █ ▄ █ █ █ █▀▀▌ █▀▄
▐█ █ █ ▀████ █ █ █ █ █ ▀████ █ █ █ █
▐ █ ▄▀ █▄ ▄█ █ █ █ █ █ ▄
▀ ▀▀▀ ▀ ▀ ▀ ▀ ▀
▀▄ ▄ ████▄ ▄ █ ████▄ ▄▄▄▄▄ ▄███▄ ▄
█ █ █ █ █ █ █ █ █ ▀▄ █▀ ▀ █
▀█ █ █ █ █ █ █ █ ▄ ▀▀▀▀▄ ██▄▄ █
█ ▀████ █ █ ███▄ ▀████ ▀▄▄▄▄▀ █▄ ▄▀ █
▄▀ █▄ ▄█ ▀ ▀███▀
▀▀▀ ▀
```
A campaign I'm playing with the folks on 2dl's discord. The system is my esoteric GLOG/OD&D hack.
Setting is probably going to be Mystara.
* http://pandius.com/index.html
* https://mystara.thorfmaps.com/x10-karameikos-6/
* gazetteer books
<<chame-list-links "[tag[Game: 2dl Crawl]]">>
* GM: Kirby
** C.F. [[Game: Savage Asiopos]] which is currently on hold due to high player turnover.
** Fate gets out of the way and allows Kirby's natural role-playing skills to shine.
* Characters
** [[Character: Kondo Rin]] played by [[yours truly.|chameleon]]
** Irene played by Nausi
* System: Fate Accelerated
** Gorgeous rules-light, fast system.
* Setting: Nest
** Childhood fantasy dreamland; think Narnia or Neverending Story.
*** Returned to it as adults.
* GM: Kirby
** I love Kirby's characters and roleplaying skills.
** However, kirbs relies too much on dice rolls (especially notice rolls); I think this is more a fault of the system than of kirbs, see below.
* The name comes from Aesop
** Originally, we were going to be talking animals, but Kirby decided against that
* System: Savage Worlds
** This system isn't good. It seems to work against Kirby more than for them. It'd be much better as an OSR game or a full-on storygame rather than this sort of half-gurps half-dnd melting pot.
** Combat is bloated and drawn-out...
** ...unless you get lucky with dice rolls, as I did once, at which point you can end a tricky fight in one blow.
** Everything I hate about skills is present
*** Some skills (esp Notice) are basically indispensible, whereas others (Occult, Research) occasionally show up to screw you, but the rest of the time are useless; this inevitably leads to power-gaming
*** Over-reliance on skill-checks leads to roll-playing
*** Stuff that I should be able to do automatically gets rolled for, with a high chance of failure
**** The old "roll to get out of bed" problem
*** While I'm sure Kirbs could fix this, that //shouldn't be necessary.// I never have these problems in OSR games, and they've been out for forty fucking years by now!
**** This isn't a personal knock on Kirbs, their campaign, or RP skills. I love playing this game and I love being Altani. I just wish the system would work //with// kirbs rather than //against// them.
* Site: Discord and roll20
** Discord VC is practical and functional.
** Roll20 and Kirby frequently get in fights, but Kirby is very practical and usually wins.
* Players:
*# [[Yours truly|chameleon]] playing [[Altani|Character: Altani the Pondweed]].
*# Ioana playing Onghid, the smol weird scientist.
*#* Onghid is fun and adorable.
*#* She clashes with Altani because the latter is a primmie and the former a scientist.
*# Nausicaea playing Aurora, a fellow Naiad and archer.
*#* My true companion~
*#* Frequently the voice of reason
*#* A dangerous archer!
*# Formerly we had Arch playing a magic rockstar.
//I did not generate this list. To whatever degree it makes sense to say it, I'm trying to be objective in answering questions I didn't ask.//
<$button>
<$action-sendmessage $message="tm-modal" $param="PromptModal" message=<<randomPrompt "GenericPrompts">>/>
Random Prompt
</$button>
# What is your interpretation of one of your recent dreams?
# What does death teach us about life?
# When you look at an elderly person's hands what do you see?
# Which disease known to humankind do you hate the most? Explain why.
# What was your last dream about?
# What seemed unusual on your morning commute today?
# Tell me about an old friend you've lost touch with.
# What's your earliest holiday memory?
# What's your favorite charitable cause and why?
# What do you think your life will be like ten years from now?
# What actor would you hire to play you in your TV movie biography, and why?
# If you died tomorrow, what would you most be remembered for?
# Name three people whose lives have been improved by knowing you, and explain why.
# If your life was a reality TV show, what would be the hook that would draw viewers in?
# When was the last time you cried?
# What is the earliest memory you have of a sibling?
# What is the earliest photograph of yourself that you have that you remember when it was taken?
# What is the longest you've had a "borrowed" item but not been able to return it because they moved?
# What did you eat as a child that you can't stand now as an adult?
# What is one thing that happened today that I really want to remember 10 years from now?
# Did I do something today that I can be proud of?
# What is one thing that I am grateful for today?
# Did something happen to make me sad?
# Who is the one relative that I miss the most?
# What would I say to them if I could see them again?
# Why is it important to be genuine?
# Why do you think wars exist in the world?
# Why would we say that someone is "bananas"?
# Why do you think ability to focus is an important quality?
# Explain why we say, "Dead as a door nail".
# How do you feel about using humans in medical research?
# What does "copy cat,? mean to you?
# What do you think about quasi ghosts?
# What does "holds water? mean to you?What is your first memory?
# How did you meet your first boyfriend or girlfriend?
# Describe your typical day, from wake to sleep.
# What would be your ideal birthday present, and why?
# If you could take home any animal from the zoo, which would it be, and what would you do with it?
# Think of a loved one that you have lost. If you could ask this person one question, what would you ask, and what do you think they would say?
# Where do you think you will be in five years?
# If you were to die today what would like people to say about you?
# What is your proudest accomplishment?
# If you could be anybody, who would you be?
# What is the most important aspect of your life and why?
# Where would you travel, if you could go anywhere?
# What time period you would like to be born in?
# What extinct animal would you bring back, if you could?
# What profession would you have chosen, if not your current one?
# What book setting would you like to visit, if you could?
# Given the chance to give your child only one quality as a person, which would you choose? How about if that choice were unavailable, what would be your second and maybe third choices? Why are these so important to you?
# Which superpower would you choose to have if you had the option and why? Conversely, which superhero do you find to be the most overrated and why?
# You have one week to do whatever you want, all-expenses-paid, what things would you want to do? Where would you go?
# If your best friend came to you depressed and upset like you've never seen before, how would you react?
# In what ways do you sometimes wish to act to be a better friend, but don't? Why do you find yourself unable to do these things?
# You have one hour to come up with the most interesting television show you can and describe/pitch it.
# "If someone gains, someone else loses." How much does this reflect life, and how much does it come up short. Reflecting upon this, how could your attitudes have been different during events in your past?
# Would you be a different person today if you had a different childhood? How?
# Consider some of the parents others had growing up. What type of person would you be if you had those situations?
# What if your life had been harder or easier? How do you think you'd be different?
# Am I happy with my job, life, and situation? What parts are good? What parts are bad?
# If I could change one thing about my spouse/lover, what would I change?
# What is the greatest vacation I have taken and what lessons can I take from it?
# If you won a million dollars but had to give it all away, who would you give it to and why?
# What was your first pet? Why did you choose this pet?
# If you could build a car customized just for you, what would it contain?
# What did you want to be when you grew up?
# If you had to write your life story, what would the title be? Why?
# How do you feel when you see something beautiful? Have you ever seen something so beautiful it makes you cry?
# What are you thankful for?
# This morning, when I got out of bed, I ?.. Before bed tonight, I will?.
# What do you think about as you are falling asleep?
# What is the most beautiful thing you have ever seen?
# What is your favorite thing to do outdoors? Why?
# What would you write in a letter you could send back in time to yourself as a teen-ager?
# What would you write in a letter you could send forward in time to yourself in 10 years?
# When did you first realize you would someday be old or someday die?
# Describe what it was like to fall in love.
# Explain how you chose your career path.
# When have you realized you were really wrong in your judgment about someone?
# How do you react when you realize you've made a mistake?
# What situation has caused you to confront your ethics recently?
# If you had to sacrifice one of your senses (taste, touch, smell, sight, hearing), which would you choose and why?
# What about a goal makes you most likely to procrastinate?
# What would it be like to be in a tornado?
# Where would you go to relax and why?
# How do you make ice cream?
# Why does the ocean have a tide?
# Who has more power the government or the people?
# Did I recently have an interesting conversation?
# What is a scary dream that I remember from my past?
# Who is the person that I feel has altered the course of my morals and values, and how did they effect me?
# Where do I see myself, so far as my goals, personal development, residence, or job, in five years, and do I have a plan to arrive at this destination?
# What is my earliest or happiest memory?
# Which amendment to the constitution is the most important to you and why?
# Is speech always free? When and where might it not be free?
# Put yourself in Anne Frank's place how would you have survived?
# If you witnessed a fight at school would you report it? What could the repercussions be if you told the truth?
# What was(will be) the first thing that you did(do) when you got your driver's license?
# What would you do if you woke up one morning with a tail?
# How would you react if you were to find out you would be the first child in space?
# Who would you most like to be like if you could change your personality?
# If you were born in another time, what time would you choose and why?
# Where would you most like to watch the sun come up? Why?
# How do you think instant riches would affect your friendships and familial relationships?
# How do you think sudden loss of millions would affect your familial relationships and friendships?
# How do you imagine humans would move to Mars in the event of world wide catastrophe?
# If you were elected President, what do you think would be your most difficult tasks?
# Describe something you feel most passionate about to a complete stranger.
# Describe your favorite memory about an amusement park or county fair you visited.
# When was the last time you lied and why.
# What was your closest brush with death.
# Where would you want to live if Earth was uninhabitable.
# Remember the last time you spoke to a person who later died.
# If you were to die tomorrow, what would you want your last words to be?
# Write about the last time weather scared you.
# Who was the best teacher you ever had, and why?
# Describe your favorite sound.
# When were you the happiest this year?
# What would you do on a snow day?
# What are you saving up for?
# What caused me to wince today?
# Who did I run in to today that I would like to spend more time with?
# What tempted me today?
# What yes or no questions should I decide by flipping a coin?
# What trait did you admire in a relative, friend, classmate, or coworker today?
# How do you feel when you stare at the stars?
# What would you say to your loved ones if you could tell them absolutely anything?
# If you could tell your boss what you really want to do in your job, what would it be?
# How are you going to make tomorrow a joyful day?
# Recall a place, person or event, what emotion do you remember feeling most strongly?
# If you could return in time to a set time to relive it, but not change anything, what would you choose and why?
# What is your strongest memory, as a child, of your parents and what were you all doing at the time?
# You are given 24 hours to do whatever you would like, money no object. What do you do and why?
# You have to invite 5 people to dinner, dead or alive. Who do you invite and why?
# What makes your favorite song so special? How do you personally relate to it?
# What are some colors you see the most in your every day life?
# What is your fondest memory of an animal or pet you once had?
# If you could go back and relive one of your past trips, whom from your current entourage would you take with you?
# What happens in the latest movie you saw?
# Can you picture yourself in the shoes of any of the protagonists?
# What is the best gift you've ever given someone? Why? Why do you like/dislike the city where you live?
# What's your most treasured memory from high school?
# Which friend has had the greatest impact on your life and why?
# Which photo of yourself do you hate the most, and why?
# Who inspires you the most, and why?
# Can you buy happiness?
# Imagine you're stuck on the roof of a house that has been carried away by a flood. Which person would you most like to be on the roof with you?
# Which would you choose: immense wealth in obscurity or poverty and fame (think "starving artist")?
# What animal do you identify with most closely?
# What is your favorite season and why?
# Imagine you are attending your dream concert?what songs would you want to be played? What does the stage look like?
# What's your favorite place to escape from life temporarily? A park? A mall?
# What's one job you would never want to do?
# Has a friend ever broken something or yours? How did you react?
# What's the best memory you have from the last year?
# How do you feel about politicians openly sharing their religious beliefs?
# What characteristics or personality traits are most important to you in a politician?
# If you could trade places with a famous person for a day, who would you like to be and why?
# If you could learn any new language, which one would you choose and why?
# If you had to choose between having a personal chef, a housekeeper, or a personal trainer, which would you pick and why?
# What is the weather like today? How do you feel about it?
# What season do you like best?
# What do you wish you could tell someone, and who do you wish you could tell?
# When you close your eyes and think of where you want to live, what comes to the surface? Specifically, what do you want your space to look like? And what do you think that reflects about you?
# If you don't believe in reincarnation, forget about that for a minute. What would you like to be reincarnated as? What do you think you WOULD be reincarnated as, if karma had its way with you?
# What are things that you wish people knew about you without your having to tell them?
# What are a few qualities you dislike in other people, and why?
# What music makes you want to get up and dance? Why don't you?
# If you need inspiration and put on your favorite CD, which one is it? What is your favorite song on this CD? Why do these lyrics "speak" to you? If you met the artist, what would you ask him? If you could be in the front row, where would you see him/her in concert?
# If you were in the band, what instrument would you be playing?
# When do you think about your regrets the most often?
# What is your most prized possession?
# What is your favorite lie to tell?
# Who do you live for?
# What is a secret about you?
# What family item has changed your view or ideas about a family member?
# Write about your best friend as if they were a stranger.
# If you could build a soundtrack to your life, who would be on it?
# If you suddenly gained the ability to tell whether someone was lying, would you use it?
# How would handle life in an arctic climate?
# Describe your perfect career or job. Where would it be? Would you want financial or personal fulfillment? What kind of people would you work with?
# Who is your ideal presidential candidate?
# What kind of jobs have you had in the past?
# What was your major in college? How did you choose it?
# Where are you from?
# How would you go about 'saving the world'? What do those words mean to you? How long would it take? Where would you start?
# If you were to write a book, would it be fiction or non-fiction? What would the subject be? Who is your target audience?
# What's the first step you can take to making a difference in the world today? Would you try to feed the hungry, improve the environment, promote peace? How would you start?
# In your opinion, is Global Warming real? If so what is causing it? If not why is everyone so hyped up about it?
# Write a story about what 1 day in your life would be like if you were a dog.
# Describe the ocean to a person who is blind.
# Using all of your 5 senses, describe your favorite food.
# How would you spend your time if you were wealthy?
# Look at yourself in the mirror and describe what you see.
# Pretend you are a raindrop falling to earth and describe your fall from the clouds.
# What is one of your most personal hopes and dreams?
# Would you rather be rich and famous or just rich? Why?
# What is your favorite season? What is your best memory of something that happened in that season?
# What?s one place that you would like to visit but never will? Why will you never go there?
# Describe your favorite painting and what you think the artist was trying to create.
# Describe what you hear when you hear nothing.
# What's the most difficult part about being you?
# What's your favorite part of being you?
# If you had to move across the country what belongings would you get rid of?
# What was your favorite thing to collect as a child, and why?
# What if you ran into a talking animal, what would you ask it? How would you react?
# If you saw an alien, what would you do?
# What would you do if you won the lottery?
# What would you do if you found an injured animal in the street?
# What animals frighten you and why?
# Where is your favorite place to be and why?
# What is your favorite book and what do you like most about it?
# What is the best thing and the worst thing that happened to you this week?
# If you could travel anywhere in the world for a vacation, where would it be and why?
# When you were a child, how did you imagine your adult life? How is it similar or different to what you imagined?
# If you found a suitcase full of money in the middle of the street, what would you do?
# What is one skill you wish you had and how would that make your life different?
# What is the best gift you have ever received from someone and why?
# If you were the ruler of the planet, how would you handle space exploration?
# If you had a mind-reading ability but could only choose 3 people to read their minds, who would they be?
# If there was one person who you had the power of giving immortality to, who would it be and why?
# If you found treasure worth millions in your backyard, would you keep it a secret or would you tell the world?
# Why do some people choose to dress differently?
# What if you lived your life in reverse (being born old, etc.)?
# What if trash became more valuable than money?
# How would you be different if you had never watched television?
# Imagine trading places with the first person you spoke to today.
# What do you dream about on a regular basis?
# Where do you see yourself in five years?
# What would you like to accomplish by the end of the year?
# How do others see you?
# What would you do if you had all the money in the world?
# What would you do to change the country and the world for the better if you were elected president?
# Why do you journal?
# What do you regret and why?
# Make a list of what you would like to do before you die.
# Complete this sentence: Love is?
# What is the best way to educate the world on lead and how it affects people, just one person at a time?
# If I could run out to any restaurant right now with more than enough money where would I go?
# Could writing a children's book really affect a child for the rest of their life?
# Just a spoonful of what makes the medicine go down?
# If you could be a color what would it be? Why?
# Tell about a time when someone made you feel welcomed or accepted. What did they do and how did it make you feel?
# Tell about a time when someone made you feel bad about yourself. What did they do and how did you react?
# Think about the phrase "random acts of kindness". What are five things you could do for someone this week just to be kind?
# What one thing could you invent that would make your life easier?
# What are you most grateful for?
# Describe your most important possession.
# Why is your best friend your best friend?
# What is the biggest goal for your life
# What is your most embarrassing moment and why?
# Who do you trust the most and why?
# Who do you trust the least and why?
# What is your greatest fear and how often do you think about it?
# What gives you confidence and why?
# What is your least favorite chore and why?
# What medium would your life best be shown as? A movie? A television series? A cartoon? What genre would a movie about your life fall under? Comedy? Romance?
# Who would you choose to portray you in a movie about your life?
# What would you do if you could stop time?
# What kind of fairytale creature would you be?
# What would you do if you knew the answer to pollution of the earth?
# What would you do if you met yourself without knowing it was you?
# What would you do if you were Mick Jagger for 1 day?
# What would you do if you were homeless?
# What would you do if you were an undercover agent in heaven?
# What would you do if you were living in an environment where nobody could speak?
# What would you do if you would stay 25 forever?
# What is a long term goal and how can you achieve it?
# Who is someone that inspired you to accomplish something you didn't think you could do and how did they encourage you?
# Where is your favorite vacation place and why?
# If you could travel anywhere in the world, where would you go and what would you do?
# What is your ideal pet?
# What is a convenience you wouldn't want to do without?
# Tell about your favorite vacation experience.
# Tell about your worst vacation.
# Tell about a story when you got a parking ticket or traffic violation.
# What was the first way you earned money?
# What is an unusual form of transportation you have used?
# Have you ever had an incident because you overslept?
# What is an experience you have had when you went fishing or swimming?
# Tell about the best restaurant you have ever been to.
# What is your favorite game? Why?
# Have you ever been in a car wreck? How many? Whose fault was it?
# Have you ever swallowed something strange? (a key, pin, marble?)
# Do you belong/have you belonged to a club or an organization?
# What is a famous place you have seen or want to see?
# Do any of your friends or relatives have strange occupations?
# Describe an incident that had something to do with water.
# Have you ever moved? Tell about one of your moves.
# Tell about an article or book you read recently.
# What is a joke you played on someone?
# Describe a babysitting experience you have had.
# Are you competitive? Tell about a competition that you participated in.
# Describe something unusual that happened while you were eating in a restaurant.
# What is something strange that happened in your neighborhood?
# Describe a fair, parade, or festival you have attended.
# Describe an incident at a beauty or barber shop.
# Do you have pets? Tell a story about one of them.
# Tell about a dream that you can remember.
# Do you believe in God? Why or why not?
# Tell about a time you were given, or gave, flowers.
# Tell about a cultural clash/experience you have had with a culture other than your own.
# Have you, or your family, ever been effected by war? Describe how.
# What is an incident you have had at a movie theater?
# Where did you grow up? Describe what it was like?
# What is an exciting or crazy trip you have taken?
# At what age did you learn to ride a bicycle?
# Is there a movie that has brought you to tears? Tell about it.
# Tell about a neighbor you had a hard time living next to.
# What is the strangest wedding you have ever attended?
# What is the worst weather condition you have ever experienced?
# What is the best party you have ever been to?
# Recall an unusual bus, train, or plane ride.
# What is a New Year's Eve you will never forget?
# If money wasn't an issue, what kind of house would you have?
# Tell about living or visiting a farm or ranch.
# If money wasn't an issue, what car(s) would you have?
# What foreign countries have you been to? Which ones do you want to go to?
# Tell about a trend when you were born.
# Have you had an experience that made you feel close to nature?
# Which decade of clothing fashion was your favorite and least favorite?
# How much was Gas the last time you filled up?
# What do you like to do when it is really hot outside?
# What is your all-time favorite sports team?
# Who is your all-time favorite sports player?
# Name someone or an event that guided you in choosing your vocation or work.
# What was your first favorite TV show?
# Do you actively change your habits and behaviors to help the environment? What kinds of things do you do?
# What are some major inventions that happened during your life time?
# Tell what you like about one of your hobbies.
# What musical instrument(s) do you play or wish you could play?
# Tell about a habit that you picked up from a family member or friend.
# What about your work can you take pride in?
# Tell about the strangest food you have ever eaten.
# Do you like commercials? Tell about your favorite commercial.
# How are you like one of your brothers or sisters?
# Tell about a time when you met someone famous.
# Describe a favorite letter you have received.
# Describe the first time you ever danced with someone.
# What is something that made your mother happy.
# How are you and your parents alike.
# What is your greatest athletic achievement?
# How did your parents meet?
# Tell a story that you have had with one of your aunts.
# Tell a memory that you have with one of your grandmothers.
# Tell a memory that you have with one of your grandfathers.
# Name one of the kindest people you have ever met. Why?
# Tell about the first time you ever held hands with someone.
# Who is one of the most courageous people you have ever met? Why?
# What is one of your favorites favorite sayings? Tell how they used it and when.
# Describe your father's personality in a short journal entry.
# Describe your mother's personality in a short journal entry.
# Describe each member of your family one by one. Ad photos and personality descriptions.
# What kinds of activities when on at the kitchen table at home when you grew up (eating doesn't count)?
# Tell about the kind of kids you hung out with as a kid.
# What is your favorite sport? Why?
# What is a smell that you remember from growing up?
# Tell one of your favorite childhood stories.
# What is one unanswered question you would like to ask your parents? Why?
# Describe a family vacation.
# Tell about one of your father-daughter/son activities.
# Describe your best childhood friend.
# Tell about one of your mother-daughter/son activities.
# Describe your first date.
# Who in your family is the biggest character?
# Tell a memory you have with one of your uncles.
# What is one unanswered question you would like to ask your grandparents? Why?
# Tell about a time you got in trouble at school.
# What is your favorite family dinner?
# What was your favorite family dinner as a child?
# Tell about a time when you were grounded.
# Who is one of the most interesting people you have ever met?
# What state or country what was your father raised in?
# What state or country what was your mother raised in?
# What state or country what is your father's family from?
# What state or country what is your mother's family from?
# Where was a special place you always retreated to as a child?
# Where is a special place you go to so you can be alone?
# Who is a person that influenced your life? How?
# How did your family fight the common cold? What was the 'cure'?
# Did you grow up with lots of money or very little? How much money (give numbers it makes things interesting)?
# Has anyone ever influenced your manners for the better? Who?
# What did your family do on Sundays as a child?
# Describe your first boyfriend or girlfriend.
# Tell about your first kiss.
# What is a game or song that your family played or sang while driving?
# What did your parents do for fun?
# Who was one of your best, or worst, teachers? Describe them.
# Tell about something that you and your siblings used to do together.
# Tell about something that you and your siblings do together now.
# Tell something you like about a friend from the past.
# Who is your favorite relative? Least favorite?
# Who is a friend you haven't seen for a long time but would like to see.
# What was/is something that your mother considered/considers very important?
# What was/is something that your father considered/considers very important?
# What is something you liked about your childhood?
# What kinds of things make/made your father happy?
# What is an event that you will never forget from your school days?
# Tell about one of your first away-from-home experiences.
# Tell about one of the oldest photographs you have.
# How are your father and grandfather alike?
# How are your mother and grandmother alike?
# What are you political views? Are you a liberal? republican? libertarian? ? Why?
# In your mind, what will the world be like in 50 years?
# If you were given a huge amount of money, but had to give it away, who would you give it to?
# Tell about the happiest day of your life.
# Do you have a favorite time of day? Why?
# What is your favorite movie of all time?
# What is your favorite place to eat?
# What is your favorite holiday? Why?
# What would be your perfect day?
# If you had more money, what would you alter about your life?
# If TV didn't exist, what would you do with your time?
# If you could change you name, what would you change it to?
# Cost being no factor, what would you do for one month?
# Who is your #1 hero? Why?
# If you could live anywhere in the world, where would it be?
# How are you going to celebrate entering the next century?
# As a whole, do you live for tomorrow or today? Explain.
# If you had the option of living forever, would you take it?
# If you had the option to know the day and time of your death, would you want to know?
# What is a place that inspires you?
# What age would you consider the prime of life? Why?
# Describe a family tradition.
# How have credit card affected your life?
# What do you really like about where you live?
# Are you ever lucky? Tell about it.
# If you knew you would loose ever possession you own but one, what would you keep?
# What is your perfect weekend?
# Describe the perfect vacation.
# Tell about how your parents influenced your spiritual beliefs.
# How is your life different now from just a year ago?
# What is your favorite season? Why?
# What is your favorite holiday? Why?
# Name a public figure who has inspired you. Why?
# How have you adjusted your eating habits to be healthier?
# Describe when someone has done something very nice for you.
# If you could spend a day with someone famous, who would it be?
# Tell about a time you laughed until you cried.
# What is a cause that is VERY important to you?
# Do you exercise? How has your exercising changed throughout your life?
# What do you do to relax?
# What have you done that was "out of character."
# Tell about a time when you shocked someone.
# What is the biggest risk you have ever taken?
# What occupation do you think would be fascinating?
# What is a principle or ideal that you would like to pass on to the next generation?
# Tell about an award you have received.
# Tell about a friend you have with a different national background.
# What is the proudest moment of your life?
# What do you feel is your greatest success?
# What is the best decision you have ever made in your life?
# What kind of art is your favorite? Why?
# What is an experience that you would consider a miracle?
# Tell about a characteristic in others you admire?
# What is the most courageous thing you have ever done?
# What is one of your life goals?
# Write out your life mission statement (or at least start)
# What was your New Years Resolution this year?
# What would you put in a time capsule to be opened by the next generation?
# Has religion played a role in your life? How?
# Describe a time you helped someone.
# What is something about yourself that you dislike?
# Tell about something you do well?
# Tell about your home. Do you have a favorite room? Why?
# What makes a good neighbor?
# What do you think the world will be like in 10 years? Twenty? Fifty?
# What is your opinion about ghosts?
# What is your opinion of someone who has bad manners?
# What is your opinion about people who take advantage of others?
# What do you think about when you can't fall asleep?
# What do you think courage means?
# What do you think makes a good friend?
# What do you think makes a happy family?
# What things do you think are beautiful?
# What is your opinion of 3D movies?
# What is your opinion about the amount of violence on T.V.?
# What is your opinion of people polluting the environment?
# What is your opinion of having set rules for people to follow?
# What is your opinion of people who are inconsiderate of others?
# How would you feel if you were going to be on TV? Why?
# What is the best way to treat busybodies?
# What is the worst thing parents can do to their children?
# What is your most invaluable possession and why?
# Where do you see yourself in 5 years?
# What is your idea of perfect happiness?
# What is your greatest fear?
# What historical figure do you most identify with?
# What living person do you most admire?
# What trait do you most deplore in yourself?
# What is your greatest extravagance?
# What is your favorite journey?
# What do you consider your most overrated virtue?
# What do you dislike most about your appearance?
# Which living person do you most despise?
# What words do you most overuse?
# What or who is the greatest love of your life?
# Which talent would you most like to have?
# What is your current state of mind?
# What do you consider your greatest achievement?
# If you could choose what to come back as, what would it be?
# If you were to die and come back as a person or thing, what do you think it would be?
# If you could change one thing about your family, what would it be?
# What is your most treasured possession?
# What is your favorite occupation?
# What is your most marked characteristic?
# What is the quality you like most in a woman?
# What is the quality you like most in a man?
# Who are your favorite writers?
# What do you most value in your friends?
# Who is your favorite hero of fiction?
# What is it that you most dislike?
# How loyal are you?
# How would you like to die?
# What?s the finest education?
# What?s your motto? How would you like to be remembered?
# What is your idea of a boring evening?
# What is something you are optimistic about?
# What is something you are pessimistic about?
# What is your favorite song and why?
# What is the best birthday present you ever received?
# What is the best birthday present you could receive?
# What is something that makes you feel sad?
# What is your favorite book and why?
# What is something that really bugs you?
# What is something that really makes you angry?
# What is the best advice you ever received?
# What is your favorite holiday? What makes this holiday special?
# What is your favorite day of the week?
# What is your favorite month? Why?
# What would happen if there were no television? Why would this be good? bad?
# What would you do if you saw a friend cheating?report it, confront the friend, nothing?and why?
# If you could have been someone in history, who would you have been?
# If you could only take 3 people with you on a trip around the world, who would you take and why?
# If you could give any gift in the world, what would you give and to whom?
# If you could live anywhere in the world, where would it be?
# If you received any sum of money as a gift, what would you do with it?
# If you could do whatever you wanted to right now, what would you do?
# If you were principal of this school, what would you do?
# If you were a mouse in your house in the evening, what would you see your family doing?
# What rituals do you have or hold?
# If you were lost in the woods and it got dark, what would you do?
# If it were your job to decide what shows can be on t.v., how would you choose?
# If there were no rules, what do you think would happen?
# What do you think people say to each other when you're not around?
# If you owned a store, what would you do to discourage people from stealing from you?
# If you could participate in an Olympic event, which one would you choose and why?
# If you could break the Guiness Book of Records it would be for?
# If you had to describe yourself as a color, which would you choose?
# What do you think should be done to keep people who are under the influence of alcohol off the road?
# What do you like most about yourself?
# What do you like to do in your free time?
# What kind of animal would you like to be and why?
# What kind of trophy would you like to win?
# What TV or movie star would you like to invite to your birthday party?
# What does "Clothes make the person" mean to you?
# What does "Have your cake and eat it too" mean to you?
# What does "The early bird gets the worm" mean to you?
# What do we mean when we say, "The grass is always greener on the other side of the fence"?
# What do we mean when we say, "You can catch more flies with honey than with vinegar"?
# What do we mean when we say, "Hitch your wagon to a star"?
# What does "still waters run deep" mean to you?
# What does "There are two sides to every coin" mean to you?
# What does Canada mean to you?
# What are you afraid of? Why?
# What are junk foods?
# What are some nutritious foods that you like?
# What are some rules you have to follow at home?
# What are some examples of prejudice?
# What is more important to you, appearance or personality?
# What is most important to you in a friend?loyalty, generosity, honesty?why?
# What is something that makes you melancholy?
# What makes your best friend your best friend?
# What makes you feel safe?
# What makes you laugh?
# What would you invent to make life better?
# What would you do to entertain your family without spending any money?
# What effects does watching violence have on people?
# What effects do cigarette and alcohol advertising have on young people?
# What kind of t.v. commercial would you like to make? Describe it.
# What kind of pet would you most like to have?monkey, snake, goat?why?
# What kind of program do you enjoy most on TV?detective shows, comedies, game shows?and why?
# What advice would you give a new student?
# What advice would you give to someone who stole something but now feels guilty?
# What things are better than going to school? Why?
# What talents do you have?
# What three words would describe you right now?
# What four things are most important in your life?
# What color makes you think of happiness?
# What quality do you like about yourself?creativity, personality, appearance?why?
# What eccentric behaviour in a friend disturbs you the most?
# What parts of nature do you like best?
# What do you do for exercise?
# How do you feel when it's your birthday? Why?
# How do you feel on the first day of winter? Why?
# How do you feel when you do something wrong?
# How do you feel when you do something that is very good?
# How do you feel when you play a trick on someone?
# How would you feel if a new child moved into your neighbourhood?
# How do you think the new child would feel?
# How do you feel when you have had a fight with your best friend?
# How do you think your friend felt?
# How do you feel when you are in bed with the lights out?
# How do you feel when you want something very badly and you cannot have it? Why is this so important to have?
# How do you feel on a warm sunny day?
# How do you feel when you stay with a babysitter?
# How do you feel when you're leaving home on vacation?
# How do you feel when you sleep at some one's house?
# How do you feel during a thunderstorm?
# How do you feel on the first day of school?
# How do you feel when your parents are upset with you? Why do they become upset with you?
# How do you feel on Thanksgiving? What are you thankful for?
# How do feel on (any holiday)?
# How do you feel when something scares you? What do you do when this happens?
# How would you feel if someone told you that you were his or her best friend?
# How do you feel about your appearance?
# How would you change the world to make it better?
# How do you think eating junk food affects you?
# How do you have the most fun?alone, with a large group, with a few friends?and why?
# Explain how to play your favorite game.
# I wish I had a million? Then I would?
# I wish I had one? because
# I wish I could be like?. This person is special because?.
# I wish to be a ____ when I grow up. Then I will?.
# I wish there were a law that said?.. This would be a good law because?.
# I wish I could forget the time I ?.. because?.
# I wish trees could?.. because?.
# I wish I could see?? because?..
# I wish I could learn?.. because?..
# I wish I didn't have to eat?? I don't like this food because?..
# I wish everyone would learn to ?.. Then everyone would?..
# I wish I never??
# I wish I had one more chance to?.. Then I would?..
# I wish there was an electric??
# I wish I had enough money to??
# I wish everyone loved??
# I wish all children would??
# I wish everyone had?..
# I wish I could touch??
# I wish animals could?? If they could, then?..
# I wish I looked like?. because??
# I wish there were no more?..
# I wish I didn't have to?..
# I wish I could go to?..
# I wish there really was?.. If there really was, then?..
# I wish I could hear??
# I wish I could give??
# If all my wishes came true, I would??
# Describe a time when you felt vengeful.
# Describe your favorite toy. Why do you like it best?
# Describe the most ludicrous outfit you can think of.
# Describe the best teacher you ever had.
# When you are angry, how do you look?
# When are you happiest?
# When have you felt lonely?
# When do you feel proud?
# When was the last time you cried and why?
# When a friend was in an embarrassing situation, what did you do?
# When it might hurt their feelings, how do you feel about telling your friends the truth?
# When might it be bad to be honest?
# When someone picks on someone else, how do you feel? What do you do?
# Once, when you were very frightened, what happened?
# Once, when you were embarrassed, what happened?
# Once, when your feelings were hurt, what happened?
# Which quality best describes your life?exciting, organised, dull?and why?
# Which quality do you dislike most about yourself?laziness, selfishness, childishness?and why?
# Which place would you most like to visit?Africa, China, Alaska?why?
# Which holiday has the most meaning for you-Canada Day, Thanksgiving, Valentines Day?and why?
# Which is least important to you?money, power, fame?and why?
# Which is most important to you?being popular, accomplishing things, being organised?and why?
# Who do you talk to when you have a problem?
# Who is your favourite Star Wars character (or other movie/book/t.v. show, etc.)?
# Who or what has had a strong influence in your life?
# Where would you prefer to be right now?mountains, desert, beach?and why?
# Why is it important to be honest?
# Why is important to have good manners?
# Why do you think some people smoke/drink?
# Why is exercise important to someone your age?
# Why do you think some people encourage others to smoke/drink?
# Why do you think the rules you must follow are good or bad?
# Why would it be good to be honest?
# Why have men and women usually only done certain types of work?
# Why should or shouldn't a man stay home to care for the house and children while his wife goes to work?
# Why do you think some people take advantage of others?
# Why do you think prejudice exists in the world?
# Why would we say that someone is "passing the buck"?
# Why would a Prime Minister have a sign on his desk which read, "The buck stops here"?
# Why do you think tact is an important quality?
# Why is it not wise to squander your money?
# Explain why we say, "dead as a door nail".
# Do you think there is too much fighting on t.v. Why or why not?
# Do you think it is necessary to have alcohol at a party in order to have a good time?
# Does it bother you to be around someone who has bad manners?
# Should there be a dress code in places such as school, restaurants, and places of business? Why or why not?
# Should animals be used for medical research?
# Should people be prohibited from smoking in certain places?
# Families are important because?
# Would you like to be famous? Why or why not? What would you like to be famous for?
# If you were a food, what would you be?
# Why do people drive on parkways and park on driveways?
# What do you think is the greatest invention? Why?
# Describe what it means to be a best friend.
# What is your earliest childhood memory?
# Is there something that you memorized long ago and still remember?
# Which way does the toilet paper roll go? Over or under?
# What is your favorite season of the year? Why?
# How many people are in your whole family? How many are male? Female?
# Who controls the TV remote control in your family?
# Name your favorite animated movie and tell why you like it.
# Which person would you like to see more often than you do now?
# If you were an animal, what would you be?
# What superpower would you like to have? What would you do with it?
# If you had to move to another state, which one would you choose?
# What special talent do you have?
# What can you do that makes people laugh?
# Can you pat your head and rub your stomach at the same time?
# Name four items that can always be found in your refrigerator.
# Who is the best laundry folder in the family?
# If somebody makes a mess, who cleans it up?
# When was the last time you sent or received a card from someone?
# Which do you prefer, a shower or a bath? Why?
# If you were in danger, who would protect you?
# What is your grandfather or grandmother's middle name?
# Which do you prefer, inside or outside? Why?
# What is something you dislike about yourself?
# What is something you do well?
# What is your favourite room in your home and why?
# What is a good neighbour?
# What is the worst thing parents can do to their children?
# What is your favourite time of day?
# What is your idea of a dull evening?
# What is the best way to treat meddlesome people?
# What is something you are optimistic about?
# What is something you are pessimistic about?
# What is your most indispensable possession and why?
# What is the meaning of "He laughs best who laughs last"?
# What is your favourite song and why?
# What is the best birthday present you ever received?
# What is the best birthday present you could receive?
# What is something that makes you feel sad?
# What is your favourite book and why?
# What is something that really bugs you?
# What is something that really makes you angry?
# What is the best advice you ever received?
# What is your favourite holiday? What makes this holiday special?
# What is your favourite day of the week?
# What is your favourite month? Why?
# What would happen if you could fly whenever you wanted? When would you use this ability?
# What would happen if there were no television? Why would this be good? bad?
# What would happen if everyone lived in space? What type of houses would they live in? What type of clothing would they wear? What type of food would they eat? How would they travel?
# What if cows gave root beer instead of milk?
# What if all the streets were rivers? What would be different?
# What would happen if people never co-operated? Why do you think it is important to co-operate?
# What would happen if it really did rain cats and dogs?
# What would happen if animals could talk? What are some of the questions you would like to ask animals?
# What would happen if you could become invisible whenever you wanted to? What are some of the things you could do that you cannot do now?
# What would happen if everyone wore the same clothes?
# What would happen if you threw a piece of trash on the ground? What if everyone did?
# What if you could walk up walls and across ceilings?
# What would happen if you loved your neighbour as yourself? What if everyone did?
# What would happen if you grew taller than trees? How would this change your life?
# What would happen if children ruled the world?
# What would happen if there were no cars, buses, trains, boats, or planes? How would this change your life?
# What if everyone lived under water? Where would people live? What games would children play? What would school be like?
# What would happen if you found gold in your backyard?
# What would you do if a bully bothered you on your way home?
# What would you do if you did very poorly of a test?
# What would you do if a friend borrows things from you but never returns them?
# What would you do if You were the teacher and everyone forgot his homework?
# What would you do if you were in the middle of the lake and your boat began to leak?
# What would you do if Your friend had a broken leg? How would you cheer him up?
# What would you do if you saw little bugs in your salad?
# What would you do if you woke up in another country and no one could understand you?
# What would you do if you ordered an ice cream cone and you forgot to bring money?
# What would you do if someone got in front of you when you were in line at the movies?
# What would you do if your jelly sandwich fell upside down on the floor?
# What would you do if only one hot dog is left and neither you nor your friend have had one?
# What would you do if two of your best friends went to the movies without inviting you?
# What would you do if the surprise party was for you but you weren't surprised?
# What would you do if you got a present you didn't like?
# What would you do if you were at home and your homework was at school?
# What would you do if you dropped the cookie jar and it broke?
# What would you do if you were invited to two parties on the same day?
# What would you do if you promised to feed your pet and you didn't?
# What would you do if someone said you did something wrong and you didn't?
# What would you do if your new shoes felt fine in the store but now they are hurting?
# What would you do if someone told you a joke that you don't think is funny?
# What would you do if an hour before the party you remember you don't have a gift?
# What would you do if a friend comes to your house and his/her mom doesn't know he's/she's there?
# What would you do if you had four math problems marked wrong that were right?
# What would you do if you found in the street?
# What would you do if you found a magic wand?
# What would you do if you wanted to be friends with someone who spoke no English?
# What would you say if someone told you it was all right to steal from a large department store?
# What would you do if you saw a friend cheating--report it, confront the friend, nothing--and why?
# If you could have been someone in history, who would you have been?
# If you could only take 3 people with you on a trip around the world, who would you take and why?
# If you could give any gift in the world, what would you give and to whom?
# If you could live anywhere in the world, where would it be?
# If you received any sum of money as a gift, what would you do with it?
# If you could do whatever you wanted to right now, what would you do?
# If you were principal of this school, what would you do?
# If you were a mouse in your house in the evening, what would you see your family doing?
# If you were five years older you would...
# If you were lost in the woods and it got dark, what would you do?
# If it were your job to decide what shows can be on t.v., how would you choose?
# If there were no rules, what do you think would happen?
# If you owned a store, what would you do to discourage people from stealing from you?
# If you could participate in an Olympic event, which one would you choose and why?
# If you could break the Guiness Book of Records it would be for?
# If you had to describe yourself as a colour, which would you choose?
# If your friend told you of a secret plan to run away from home, what would you do and why?
# What do you think of 3D movies?
# What do you think someone your age can do to help reduce the amount of pollution in our environment?
# What do you think the world needs now?
# What do you think your friends say to each other when you're not around?
# What do you think about the amount of violence on T.V.?
# What do you think about people polluting the environment?
# What do you think about having set rules for people to follow?
# What do you think about people who are inconsiderate of others?
# What do you think should be done to keep people who are under the influence of alcohol off the road?
# What do you think the world will be like when you are a grown up?
# What do you think about ghosts?
# What do you think of someone who has bad manners?
# What do you think about people who take advantage of others?
# What do you think about when you can't fall asleep?
# What do you think courage means?
# What do you think makes a good friend?
# What do you think makes a happy family?
# What pollutants do you think do the most damage and why?
# What things do you think are beautiful?
# What do you think about students having to wear school uniforms?
# What do you like most about yourself?
# What do you like to do in your free time?
# What kind of animal would you like to be and why?
# What kind of trophy would you like to win?
# What TV or movie star would you like to invite to your birthday party?
# What does "Clothes make the person" mean to you?
# What does "Have your cake and eat it too" mean to you?
# What does "The early bird gets the worm" mean to you?
# What do we mean when we say, "The grass is always greener on the other side of the fence"?
# What does "You can't take it with you" mean?
# What do we mean when we say, "You can catch more flies with honey than with vinegar"?
# What do we mean when we say, "Hitch your wagon to a star"?
# What does "still waters run deep" mean to you?
# What does "There are two sides to every coin" mean to you?
# What does Canada mean to you?
# What are you afraid of? Why?
# What are junk foods?
# What are some nutritious foods that you like?
# What are some rules you have to follow at home?
# What are some examples of prejudice?
# What is more important to you, appearance or personality?
# What is most important to you in a friend--loyalty, generosity, honesty--why?
# What is something that makes you melancholy?
# What makes your best friend your best friend?
# What makes you feel safe?
# What makes you laugh?
# What would you invent to make life better?
# What would you do to entertain your family without spending any money?
# What effects does watching violence have on people?
# What effects do cigarette and alcohol advertising have on young people?
# What kind of t.v. commercial would you like to make? Describe it.
# What kind of pet would you most like to have--monkey, snake, goat--why?
# What kind of program do you enjoy most on TV--detective shows, comedies, game shows--and why?
# What advice would you give a new student?
# What advice would you give to someone who stole something but now feels guilty?
# What things are better than going to school? Why?
# What talents do you have?
# What three words would describe you right now?
# What four things are most important in your life?
# What colour makes you think of happiness?
# What has been the most fun activity at school so far?
# What quality do you like about yourself--creativity, personality, appearance--why?
# What eccentric behaviour in a friend disturbs you the most?
# What parts of nature do you like best?
# What do you do for exercise?
# What is the most ludicrous outfit you can think of?
# What is the funniest dinner you've ever had with your family?
# How do you feel when it's your birthday? Why?
# How do you feel on the first day of winter? Why?
# How would you feel if you were going to be on a show? Why?
# How do you feel when you do something wrong?
# How do you feel when you do something that is very good?
# How do you feel when you play a trick on someone?
# How would you feel if a new child moved into your neighbourhood?
# How do you think the new child would feel?
# How do you feel when you have had a fight with your best friend?
# How do you think your friend felt?
# How do you feel when you are in bed with the lights out?
# How do you feel when you want something very badly and you cannot have it? Why is this so important to have?
# How do you feel on a warm sunny day?
# How do you feel when you stay with a babysitter?
# How do you feel when you're leaving home on vacation?
# How do you feel when you sleep at someone's house?
# How do you feel during a thunderstorm?
# How do you feel on the first day of school?
# How do you feel when your parents are upset with you? Why do they become upset with you?
# How do you feel on Thanksgiving? What are you thankful for?
# How do feel on (any holiday)?
# How do you feel when something scares you? What do you do when this happens?
# How would you feel if someone told you that you were his or her best friend?
# How do you feel about your appearance?
# How would you change the world to make it better?
# How do you think eating junk food affects you?
# How do you have the most fun--alone, with a large group, with a few friends--and why?
# Explain how to play your favorite game.
# How would you describe your house to someone who has never visited there before?
# I wish I had a million... Then I would...
# I wish I had one... because
# I wish I could be like.... This person is special because....
# I wish to be a ________ when I grow up. Then I will....
# I wish there were a law that said..... This would be a good law because....
# I wish I could forget the time I ..... because....
# I wish trees could..... because....
# I wish I could see...... because.....
# I wish I could learn..... because.....
# I wish I didn't have to eat...... I don't like this food because.....
# I wish everyone would learn to ..... Then everyone would.....
# I wish I never......
# I wish I had one more chance to..... Then I would.....
# I wish there was an electric......
# I wish I had enough money to......
# I wish everyone loved......
# I wish all children would......
# I wish everyone had.....
# I wish I could touch......
# I wish animals could...... If they could, then.....
# I wish I looked like.... because......
# I wish there were no more.....
# I wish I didn't have to.....
# I wish I could go to.....
# I wish there really was..... If there really was, then.....
# I wish I could hear......
# I wish I could give......
# If all my wishes came true, I would......
# When you are angry, how do you look?
# When are you happiest?
# When have you felt lonely?
# When do you feel proud?
# When was the last time you cried and why?
# When a friend was in an embarrassing situation, what did you do?
# When it might hurt their feelings, how do you feel about telling your friends the truth?
# When might it be bad to be honest?
# When someone picks on someone else, how do you feel? What do you do?
# Once, when you were very frightened, what happened?
# Once, when you were embarrassed, what happened?
# Once, when your feelings were hurt, what happened?
# Describe a time when you felt vengeful.
# When you have a problem who do you talk to? Why?
# Which quality best describes your life--exciting, organised, dull--and why?
# Which quality do you dislike most about yourself--laziness, selfishness, childishness--and why?
# Which place would you most like to visit--Africa, China, Alaska--why?
# Which holiday has the most meaning for you-Canada Day, Thanksgiving, Valentines Day--and why?
# Which is least important to you--money, power, fame--and why?
# Which is most important to you--being popular, accomplishing things, being organised--and why?
# Which is your favourite Star Wars character (or other movie/book/t.v. show, etc.)? Why?
# Why is it important to be honest?
# Why is important to have good manners?
# Why do you think adults smoke/drink?
# Why is exercise important to someone your age?
# Why do you think some people encourage others to smoke/drink?
# Why do you think the rules you must follow are good or bad?
# Why would it be good to be honest?
# Why have men and women usually only done certain types of work?
# Why should or shouldn't a man stay home to care for the house and children while his wife goes to work?
# Why do you think some people take advantage of others?
# Why do you think prejudice exists in the world?
# Why would we say that someone is "passing the buck"?
# Why would a Prime Minister have a sign on his desk which read, "The buck stops here"?
# Why do you think tact is an important quality?
# Why is it not wise to squander your money?
# Explain why we say, "dead as a door nail".
# Think of your favourite toy. Why do you like it best?
# Think of the best teacher you ever had. Why were they a good teacher?
# Do you think there is too much fighting on t.v. Why or why not?
# Do you think it is necessary to have alcohol at a party in order to have a good time?
# Does it bother you to be around someone who has bad manners?
# Should there be a dress code in places such as school, restaurants, and places of business? Why or why not?
# Should animals be used for medical research?
# Should the Canadian Government financially support Olympic teams?
# Should people be prohibited from smoking in certain places?
# Families are important because...
# Would you like to be famous? Why or why not? What would you like to be famous for?
# Who or what has had a strong influence in your life?
# Where would you prefer to be right now--mountains, desert, beach--and why?
# Should you have to do chores around the house? Why or why not?
# Should you be required to wear a bike helmet? Why or why not?
# Should skateboards be allowed on sidewalks?
# Where do you think we should go on our class fieldtrip this year? Why?
# Should you have to take tests in school?
# Can television (or videogames) influence your behaviour? How?
# Should schools be year-round?
# Should junk food be banned from schools?
# Should students be required to learn a second language?
My git repositories can be found on [[Github|https://github.com/japanoise]] and [[Sourcehut|https://git.sr.ht/~japanoise]]. Here are some greatest hits.
* [[textfiles|https://github.com/japanoise/textfiles]] - text files that I want to keep around
* [[gomacs|https://github.com/japanoise/gomacs]] - my homebrew ersatz-emacs
* [[neo-dotfiles|https://github.com/japanoise/neo-dotfiles]] - my dotfiles and scripts
* [[rpg-hack|https://github.com/japanoise/rpg-hack]] - my hack of the GLOG
<<<
Gnostics sought knowledge and wisdom from many different sources, and they accepted insight wherever it could be found.
<<< Gnostic Bible (introduction, by Marvin Meyer)
This is the closest the "religions of the book" (i.e. the Abrahamics) ever got to the depth and truth of the Indian religions. The early Christians declared it heresy and tried to wipe it out; they were largely successful with only a few insular cults remaining, until the late 19th early 20th century, when the [[Nag Hammadi library|https://en.wikipedia.org/wiki/Nag_Hammadi_library]] was discovered.
* https://gnosticismexplained.org/
* https://www.amazon.com/Gnostic-Bible-Revised-Expanded/dp/1590306317
* https://www.amazon.com/Gospel-Thomas-Translation-Spiritual-Seekers/dp/1516935187/ref=sr_1_5?dchild=1&keywords=gospel+of+thomas&qid=1607053368&s=books&sr=1-5
https://www.gnu.org/philosophy/free-sw.html
A program is free software if the program's users have the four essential freedoms:
* The freedom to run the program as you wish, for any purpose (freedom 0).
* The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
* The freedom to redistribute copies so you can help others (freedom 2).
* The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
* There is no God, and he is always with you.
* Men rarely, if ever, invent gods that are better than themselves.
* Is man merely a mistake of God's? Or God merely a mistake of man?
* """Is God willing to prevent evil, but not able? Then he is not omnipotent.
Is he able, but not willing? Then he is malevolent.
Is he both able and willing? Then whence cometh evil?
Is he neither able nor willing? Then why call him God?"""
* I do not believe in God and I am not an atheist.
---
I can't believe in a God of infinities. I can't believe in omnibenevolence in particular. If there's any all-powerful being, it is most definitely something like ourselves - full of contradictions, both good and evil, both feminine and masculine, both light and dark, yin and yang. I call God [[Lord Shiva]]. I pray to this God sometimes. I say this God's mantra sometimes.
---
It is telling to me that religion has traditionally been on both sides of every conflict. There were, for example, passionately pro- and anti-slavery clerics during the time of the American Civil War. This is not divisions between religions, either, but within; and there lies another contradiction to the idea of some supreme truth - everyone asserts that they have found it, but no two of them agree on what it is.
Being invited into someone's home is a ritual that feel sacred somehow. Some things there are... different.
* Respect your host's gods (say grace if they want you to)
* Do not address contentious topics unless the host wills it
In return, the host:
* Keeps you safe to the best of their abilities
* Offers you food, drink, etc. as if it's your own home ("make yourself at home", "mi casa su casa" etc.)
Some cultures (especially in eastern Europe) have special rules around guests and guestright - bread and salt. Ancient Greece?
* Reverse chord lookup: https://jguitar.com/chordname
* Quartal chords (modal jazz chords): https://www.jazzguitar.be/blog/quartal-chords-harmony-voicings-for-guitar/
** These examples are in D Dorian (i.e. C Ionian) so it should be fairly straightforward to mess with them to get them into whatever mode of a key you like.
** Cadential chords
* https://www.cyberfret.com/improvisation/extended-minor-pentatonic/index.php
<<list-links "[tag[Guitar resources]sort[title]]">>
h0p3 edits the wiki https://philosopher.life, a direct inspiration for this one, even if mine isn't as deep or as broad right now. I admire h0p3 greatly; [[TOW]] is a model for this one.
Cyan-blue tag based on the wiki color and a letter for "correspondent" at least until I can think of something better.
* Pronouns: he/him?
<<list-links "[tag[h0p3]]">>
Some spellcheckers automatically flag any repeated words as an error. This is wrong in several languages - "wiki" actually comes from the Hawaiian "wiki wiki" meaning very fast - including English.
In English it's perfectly cromulent to say "had had" in a sentence, i.e.
>We didn't have those mobile things when I was your age, but you can bet if your grandfather had had one I'd never be off the darn thing.
This can even be extended to a ridiculous degree. The following is grammatical, if not idiomatic:
<<<
James, while John had had had had had had had had had had had the teacher's approval.
<<<
What the heck, right? Well, it makes sense if I punctuate it:
<<<
James, while John had had "had", had had "had had". "Had had" had had the teacher's approval.
<<<
(I.E, James wrote "had had", while John wrote "had". "Had had" was the correct answer, and so got the teacher's approval.)
It also works with "was":
>Before was was was, was was is
<<<
"""
if you ever take anything away from my content it's this:
be yourself always
destroy capitalism --> EA / Activision eternally suck, stop buying their games lmfao
Nintendo isn't your friend, you're a profit margin
don't be a fan of anyone but you
create whatever it is you want
-copyright law should be abolished as it inhibits creativity
-most creators are liars (incl me lol u don't know "paul")
-the algorithm creates a system that inhibits creativity
-some tubers aren't your friends, they use you for clout and then leave
-climate change is what matters
-create for the sake of it, not the consequences. fuck views and money, they're worthless in the end
-collaborate instead of compete (so many good minds out there to bounce ideas off of)
-LOST is the greatest show of all time
-the internet kills people by bullying them to death
-just because you're anonymous doesn't mean your actions don't have consequences, just be nice. tbh you don't have to criticize anything, just be nice i mean jesus christ it's video games omg go outside and find god or something, kiss a loved one, pet a dog
"""
<<<
<<<
"""
people want to know why I don't upload anymore:
1. mental illness --> unstable generally
2. trauma --> SA / other
3. most other creators are awful people, bullied me to the point of having PTSD, are predators, use you and then abandon you
4. the community at large is toxic / mean
"""
<<< https://twitter.com/Haedox/status/1416806553336823808
Gaming ~YouTuber. Channel: https://youtube.com/c/Haedox
Magnum opus: [["When Should Games Die?"|https://youtu.be/fvOo0q0qbiE]], both a good point about why franchises should reach a definitive end and a personal journey.
[[This bad-boy of a band got me into hip-hop|https://www.youtube.com/watch?v=w_os8HqfxHc]]. Maybe Japanese just lends itself better to rap. Lyrics in English by ~YouTube user niconico103i:
"""
That was a triumph someone set up for me.
Dodge it lazily and idly
Slowly and calmly we entered to the lovely zone.
That’s an orthodox way.
Rainbow-colored papaya and mango.
Male therapist, small new type.
Flabby dick.
Now, please welcome in applause
The bracing guy is entering in, he is in bracing shape.
He’s talking to himself in sign language. Perfectly matching. Two search hits.
Real fun.
Keep it, keep it
Keep the real fun for last.
This rhyme feels just right
Celebrate my new talent that suddenly came out of nowhere
It seems I’ve got a Kohai in National Defense Academy.
Whether it grows is all up to water.
A mixed story which doesn’t reflect a reality.
It only casts a shadow because of the backlight.
I’ve had enough of that.
Yukari in Kobe, Nagisa in Kyoto
In Hama, I’ve got a new girl called Julian
I’ve lost my heart.
Now I’m like a breezing wind.
Copper blue.
The process to fall in love.
The process to fall in love.
Sorry, I can’t hear anything.
I was overmotivated and failed, crawling on the ground
The process to fall in love.
The start of romance that get me fall in love
Sorry, I can’t hear anything.
Poker face
I just softly place a pleasant phrase.
I just softly place a pleasant phrase,
On your ear.
I just softly place a pleasing phrase.
I just softly place a pleasing phrase,
With poker face.
Yes, that was actually a triumph someone set up for me.
Love your enemy
Show me your resolution as if you were off to suicide attack
Unpredicted intelligent life.
Ups and Downs.
The flower of the wicked girl, that is silently burning.
Lullaby sung by heart
The girl who is like a ninja
Now, please welcome in applause
Take a camera and focus on me.
I’m enjoying this trial shoot.
If I were a model, I would feel like a celebrity now.
But I won’t go beyond who I am.
Just because of the length of my career, I am at semi-class.
Semi-pro class. Entropy. Heart beat.
I don’t want to be someone’s accessary.
I wish if the god made me disappear.
It has gone somewhere.
It has gone somewhere.
The symbol of the boom and trend,
The most realistic trend.
Girl’s talk in 100 yen shop.
Talking over cute and nice, fancy goods.
What an irritating weekend.
They are chosen.
I’ve lost my heart.
Now I’m like a breezing wind.
Copper blue.
The process to fall in love.
The process to fall in love.
Sorry, I can’t hear anything.
I was overmotivated and failed, crawling on the ground
The process to fall in love.
The start of romance that get me fall in love
Sorry, I can’t hear anything.
Poker face
I just softly place a pleasant phrase.
I just softly place a pleasant phrase,
On your ear.
I just softly place a pleasing phrase.
I just softly place a pleasing phrase,
With poker face.
Hurry, hurry, copper blue. I’m waiting in silence.
It’s difficult to choose a right person from them.
"""
Tolkien without an editor; Jeff Mangum but for stories; Henry, you taught us what it means to create, create like that's the reason to be alive. A senpai who died before I was born, one million words down, janitor by day and fantasy hero by night. We salute you, and we hope to live up to your legacy.
* https://www.youtube.com/watch?v=vjCS_u3Sgpg
= ''h''a-''h''a, ''o''nly ''s''erious.
"Intended as a joke but also containing truths meant for reflection later." - [[Wiktionary|https://en.wiktionary.org/wiki/ha_ha_only_serious]].
I use this when I'm talking tongue-in-cheek, but there are truths hidden in the joke. c.f. "Many a truth spoken in jest".
Tiddler disincluded from wiki reviews (because either it will annoy me, or I don't want evidence that it exists to leak out of [[NoPublic]])
<<chame-list-links "[tag[Hinduism]]">>
!! Ramayana [[2-18-13|http://www.valmikiramayan.net/utf8/ayodhya/sarga18/ayodhya_18_frame.htm]]
> दुर्लभम् हि सदा सुखम् (Durlabham hi sadaa sukham)
"To be happy always is something which is difficult to achieve."
That is to say, happiness and sorrow alternate in one’s life and there cannot be uninterrupted happiness alone.
!! General resources
* https://iskconeducationalservices.org/HoH/ - Educational resource for religious education in the UK; uses plain English. Good explainers which are low on metaphysics.
* [[Plebbit guide|https://old.reddit.com/r/hinduism/wiki/starter_pack#wiki_intro]]
!! Scripture
* http://www.valmikiramayan.net/ - Decent prose translation of the Ramayana, with breakdown of the Sanskrit.
* https://www.sacred-texts.com/hin/ - Sacred Texts archive; not the worst. Some of the Vedas, some Upanishads, some Puranas, and the Epics
* [[The Upanishads]]
!! Shaivism
* https://old.reddit.com/r/shaivism/comments/igxaxq/please_help_lets_compile_a_list_of_beginner/ archived: https://archive.ph/mgTkU
** [[Shiv Mahapuran ep. 1 English|https://www.youtube.com/watch?v=E62xx3mjEwI]]
* https://old.reddit.com/r/KashmirShaivism/comments/izh29m/kashmir_shaivism_where_to_start_and_how_to/ archived: https://archive.ph/sPAtq
* https://imgur.com/a/iXab2hw
Recently I learned a technique that allegedly allows people to fall asleep in 2 minutes. While it doesn't work quite that well for me, I can fall asleep very very quickly using it. I can even be using my phone with a blue-light filter right before going to bed with no negative effect. Allegedly, it was developed by the US army for soldiers, pilots, and sailors that had trouble relaxing. It's supposedly good enough to allow you to fall asleep sitting down, but I haven't tried that.
!! Note
This isn't a magic bullet. Other aspects of sleep are important: practice sleep hygiene, use a blue-light filter, don't drink caffeine. I've also noticed that this works best when it's quiet and dark, and it doesn't work if I'm too uncomfortable to relax.
!! Method
# Close your eyes.
# Clear your nose if necessary. Breath deep in through your nose and out through your mouth.
# Relax all the muscles in your face while continuing to breath deeply. You can tense them first before relaxing them; this increases the feeling that they're loosening up.
# Repeat 3 for every part of your body (arms, hands, legs, feet, etc).
# Once your entire body is relaxed, continuing to breath deeply, clear your mind. You can do this by letting thoughts come and go, or by gently repeating the mantra "don't think" in your head until you're relaxed mentally.
# You should start to feel like your head is swimming slightly; this is your body entering the early phases of sleep. Relax into it. If you want to think about something, count sheep or imagine someone sleeping.
# Sleep.
!! More information
I learned this trick from this video: https://www.youtube.com/watch?v=EiYm20F9WXU
# Use firefox, not chrome or flavors
#* You should be doing this anyways
# [[Install the plugin|https://pmario.github.io/file-backups/]]
# Download the empty version from https://tiddlywiki.com/
# Navigate to it in the browser
# Turn on backups and stuff using the diamond icon of the plugin
# Test by making an edit (like a new Tiddler) and reloading the page
!! Serving a wiki
```
homebox$ ssh webserver
webserver$ sudo mkdir -p /var/www/wiki
webserver$ sudo chown --recursive /var/www/wiki
# Tell your httpd (nginx, apache, etc) to serve /var/www/wiki
webserver$ ^D
homebox$ scp ~/Downloads/wiki.html webserver:/var/www/wiki
```
Shell function for a better syncing workflow:
```bash
wiki () {
server="www.my.web.server"
mkdir -pv "$HOME"/Downloads/wiki
case $1 in
(pull) rsync -u -r -h --progress "$server":/var/www/wiki/ "$HOME"/Downloads/wiki/ ;;
(push) rsync -u -r -h --progress "$HOME"/Downloads/wiki/ "$server":/var/www/wiki/ ;;
(open) xdg-open file://"$HOME"/Downloads/wiki/index.html ;;
(*) echo "Unknown command $1"
return 1 ;;
esac
}
```
Now `wiki pull`, `wiki push`, `wiki open`, etc.
!!! Example nginx config
```nginx
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.waifu.haus;
root /var/www/wiki;
index index.html;
location /twBackups/ {
deny all;
}
location = /index.html {
internal;
add_header Cache-Control 'no-store';
}
}
```
!! Lesson Zero: Your Axe
Ideally, inherit an axe from someone who also plays. If you do, ask them if it has any issues or gotchas to playing it, ask for a spare pick, and skip to step 2.
# Go to a music store. Tell them you're a beginner and want to buy your first guitar. You will need at least $300. It doesn't matter if it's acoustic or electric, but an acoustic doesn't need an amplifier or cables, so it might be better to start with that. Good accessories to start with are a strap, a gig bag, and at least one pick; I recommend getting a soft one, a medium one, and a hard one (ask the employees) so you can figure out what you like. If you're a shopaholic, get a capo too.
# Download ~GuitarTuna on your smartphone. You can use this to put the guitar in tune. It's pretty foolproof, but you might want to watch a few video tutorials on how tuning works first.
# Get familiar with standard tuning. The strings go (thickest to thinnest) low E, A, D, G, B, high E. A mnemonic to remember them is //jamaican accent// "everyting about de guitar be easy" (yes this is slightly offensive, but it's silly enough that you should be able to remember it).
# Make a note sound out. Do this by putting your index finger just a smidge left (or right, if you're playing left-handed) of one of the metal parts (the frets) and plucking the string. A note should sound out clear. If it buzzes, you're either not pressing hard enough or have placed it wrong.
!! Lesson One: Easy Chords
A chord is two or more notes playing at once, to get a more interesting sound (polyphony).
I use a particular chord notation: `EADGBE`. Numbers show which fret you should play; a zero is an open string (i.e. not fretting anything) and an x or X means don't play the note, but mute it with your fingers or thumb.
These chords are the "cowboy chords". They're also called "open position chords" because they make use of open strings. Knowing all of these is enough to play any Johnny Cash song and 99% of folk punk songs:
* E: `022100`
* A: `x02220`
* D: `xx0232`
* C: `x32010`
* G: `320003` or `320033` (both sound great)
* E minor: `033000`
* A minor: `x03320`
Practice playing these one at a time. It doesn't matter if they're particularly musical; just get them to sound out.
If you're playing guitar for a while your fingers will get sore. If it's too painful stop playing for a bit. You want to develop "calluses" (hard spots on your fingers) so that playing guitar becomes painless. Try to practice for an hour a day, at least. If you do this, you'll be able to entertain people with campfire songs in no time. Remember to tune your guitar before you start practicing. It may seem tedious, but nothing sounds nastier than a G chord played on an out-of-tune guitar.
!! Lesson Two: Learning an easy song
[["In The Aeroplane Over The Sea"|https://www.youtube.com/watch?v=hD6_QXwKesU]] is a song by the band Neutral Milk Hotel. It's also very easy to play on guitar, and is a good springboard to learn about keys and chord progressions.
The main riff is a simple strumming pattern (Down, Down-Up Down-Up) and the chord progression is G → Em → C → D (the doo-wop progression). Here's a [[video|https://youtu.be/s9ZOYcxb470?t=39]].
Practice the strumming pattern until you have it down, then practice switching between the chords. Don't worry if it takes you a little while at first; switching chords is tricky until you build muscle memory. Keep trying until you get it. Remember, you want to practice an hour a day and build up your calluses so that playing guitar becomes less painful and more fun. Don't give up - this is the hardest part.
The song is in the key of G. That means the root, or most important, note is G and chord is G major. It also defines the seven chords that sound best with it - most of them are a bit jazzy for now, but these chords work great in any order: G (the tonic, root, or I (one) chord), C (the subdominant or IV (four) chord), D (the dominant or V (five) chord), and Em (the vi (six) chord). For now, G is the main key you'll be able to play on guitar, because it's the only one that doesn't require barre chords - more on those later.
!! Lesson Three: Scales and Degrees
So far we've focused on chords; the guitar is a great instrument for playing chords, and for "comping" (i.e. supporting lead musicians by playing the harmony). However, if you've ever seen the likes of Yngve, Herman Li, Buckethead, Hendrix, or EVH play you'll know the guitar can play lead as well.
Some musical jargon is required here. There are twelve basic notes: C, C#, D, D#, E, F, F#, G, G#, A, A#, B. This is a "chromatic scale". These notes sound very ugly and meandering if you just play all of them, so we like to reduce the chromatic scale down to a smaller "scale" (group of notes, usually seven or five) which are much easier to make music out of, and sound much nicer. The notes repeat themselves after a while (one step higher than B is C again, a higher C). This is called an "octave". The "degree" of the scale just tells you what position the in the scale a note is. The distance between notes is called an "interval" and every possible interval has names (major second, perfect fifth, augmented fourth, etc).
Most guitar lessons will teach you the "pentatonic minor" or blues scale first; I think this is a mistake, or rather that it's usually taught wrong. Instead, I'll teach you the basic G major scale and we'll build on it from there.
Fret 3 on the low E is a G note. Two frets up at fret 5 is an A. Play the G with your middle finger and the A with your pinky - this may sting at first but you should get used to it. Lead guitarists ''must'' learn how to use their pinky fingers (unless they're Django).
These two notes are the FIRST and SECOND notes in the major scale, and are helpfully named the TONIC or ROOT (after the chord) and SECOND DEGREE or MAJOR SECOND.
The full scale is as follows:
# Low E 3rd fret: TONIC/ROOT
# Low E 5th fret: SECOND DEGREE/MAJOR SECOND
# A 2nd fret: THIRD DEGREE/MAJOR THIRD
# A 3rd fret: FORTH DEGREE/PERFECT FOURTH
# A 5th fret: FIFTH DEGREE/PERFECT FIFTH
# D 2nd fret: SIXTH DEGREE/MAJOR SIXTH
# D 4th fret: SEVENTH DEGREE/MAJOR SEVENTH
# D 5th fret: TONIC/ROOT (one octave up; rarely, called an eighth)
Musicians are too lazy to say e.g. "sixth degree", so the notes may occasionally be just called by their number, e.g. "the sixth".
Play these notes over and over until you can do it in your sleep. A good piece of advice is to watch tv with an unplugged electric in your hand, drilling your scales over and over until you get them.
You may have already noticed the musical qualities of this scale; the major scale is great for writing little tunes and ditties in. Fiddle with it and see if you can make music; skip degrees in the scale when ascending or descending, play them like 1 2 3, 2 3 4, 3 4 5, linger on certain notes, etc.
This scale shape works (almost) in any position on the neck. If you start at the 12th fret rather than the third, that's an E major scale. If you start at the 7th fret, it's a B major scale. If you start at the first fret, it's an F major scale, etc. You can also play it starting on the A string.
Once you've mastered this scale, you may be interested to learn you can play it in different ways:
* Starting on your middle finger: E `3, 5`, A `2, 3, 5`, D `2, 4, 5` (the way you've learned it already)
* Starting on your index finger: E `3, 5, 7`, A `3, 5, 7`, D `4, 5`
* Starting on your pinkie: E `3`, A `0, 3, 4`, D `0, 3, 5`, G `0`
Try learning all of these, and even coming up with your own. Try playing them in different keys (starting on different notes, like A).
You might notice after going through one scale, that your finger is in a good position to run through the scale again using a different shape. Scales repeat themselves over octaves, so go ahead. However, you might notice it sounds "off" when getting to the B string. This is due to a quirk of guitar tunings; the B string is a half step (one fret) lower than we might expect. So when you get to the B string, go one fret higher than you normally would.
Once you've mastered this, you should be able to go all the way up two octaves and down to the high E string. Practice this starting in different positions.
!! Aside: Proper Practice
There are many ways to practice guitar:
* Technical drilling. This is practicing sounding out chords, drilling scale shapes, and learning & practicing new techniques. You'll need this in order to become a competent and well-rounded player.
* Learning songs. By learning songs, you will broaden your vocabulary and repetoire, and will easily be able to bust something out when someone asks you to play something.
* Learning theory. This is time away from the fretboard where you learn about music theory. You'll need this in order to understand how music works, and it will greatly help both your playing and your composition.
* Jamming/Playing along. You can do this either with a band or with a backing track. A good place to find these is by going on youtube and searching for backing tracks; they have them in every style and key you can think of, and many have advice underneath on what scales sound good with them. This will teach you to phrase your playing musically, and how to keep to rhythm and changes (the chord progression of the song).
* Noodling. This is where you just play whatever. Maybe an idea you're working on or a lick you like. While this is the most fun and easiest way to practice, it's better to focus on another style of practice. If you just want to chill out and noodle, consider at least doing it over a backing track so you have an idea of key and rhythm.
For a beginner, I'd recommend learning a couple of easy songs (ITAOTS suggested above is a good one; the cliche one is Wonderwall; anything Johnny Cash works too) and drilling your scales. Once you have a good idea of how to explore the fretboard using your scales, try learning some techniques (legato (hammer-ons and pull-offs), slides, bends, etc) and using them in a musical context by jamming. For your theory, look at basic music theory - learn how chords are constructed, basic harmony, intervals, etc. I'll be diving into some music theory in lesson four of this tutorial.
!! Lesson Four: The Circle of Fifths
So far you've taken a mostly practical approach to guitar. This lesson will delve into some more theoretical (but still mostly practical) material, with a view to make you a more rounded guitarist.
The [[Circle of Fifths|https://en.wikipedia.org/wiki/Circle_of_fifths]] is a diagram of all 12 tones (notes) in the chromatic scale. At first, the ordering may seem random and chaotic. However, look at the G note, and notice that the note counter-clockwise to it is C - the fourth degree of the scale - and the note clockwise to it is D - the fifth degree of the scale. This holds true for every major scale on every note in the 12 tones. Using this chart, you can find out what the three basic chords are in the key. For example E: A is the IV, B is the V.
How does this work? In the clockwise direction, the chart goes up in perfect fifths (hence its name). A perfect fifth is a little more than half the way up the octave (the full half is the tritone, and it sounds evil and dissonant); a perfect fifth plus a perfect fourth equals an octave. So when you step up a perfect fifth, the distance to the next occurence of the note that you came from (an octave up from it) is a perfect fourth.
Note also that the first four strings of the guitar are tuned in intervals of a perfect fourth. Counting counter-clockwise back from E on the circle of fifths, we see the familiar E, A, D, G.
You can glean the notes in a major scale, or chords in a key, by taking one note down (the fourth) then the next five notes in the circle of fifths. So for G, that's C, then D, A, E, B, and F#. Sort these into alphabetical order starting at your tonic (G) and wrapping round, we end up with the G major scale: G, A, B, C, D, E, F#. This trick, once again, works for any of the twelve tones.
!! Preamble
//Note: this section is for people that already know how to program. If you don't, you can skip straight to "setting up".//
First off, don't believe the memes that say C is hard or that no-one writes C any more:
# C is easy once you get into the mindset of it
# Drivers, kernels, embedded systems, Linux applications...
Secondly, toss aside the following:
* "My program must do the most efficient thing possible at every stage"
* Any OO or FP cruft you've learned from preceding tutorials
C programming is like any other kind of programming, in that readability and writeability trump. If you have slowdown, you can optimize later. For now, it's fine to do the stupid thing, if it works.
<<<
Fancy algorithms are slow when n is small, and n is usually small.
<<< Rob Pike
C cares not for objects, and functional programming is left for the pie-in-the-sky pipe dream that it is. C is a practical language for Getting Shit Done, not achieving some fractal mathematical beauty; and that's why the really important shit is done in C.
!! Setting up
How you reach a C compiler depends on your platform.
!!! Windows
Windows has many different programming environments, but for this tutorial we'll use msys2.
# Download and install [[msys2|https://www.msys2.org/]]
# When it's done installing, open a terminal by clicking on its icon or start menu entry.
# run these commands:
## `pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2 git make`
## `export PATH=$PATH:/mingw64/bin`
# You might want to make that last one run automagically next time you open a terminal: `echo 'export PATH=$PATH:/mingw64/bin' >> ~/.bashrc`
Test everything's working by typing "gcc". If it errors because of no input files, you're done.
If you're unfamiliar with using a terminal like this, I have a quick survival guide on the wiki: [[The Unix Ricer's Handbook]]
!!! Linux
Linux should be plug-and-play. Type 'gcc' into a terminal and hit return. If you get `gcc: fatal error: no input files` or something similar then you're golden.
If not, and you get some kind of error that indicates the program wasn't found, then it's usually just a matter of installing the compiler. On Debian and flavors (including Ubuntu) it's `sudo apt-get install gcc`. Read your distro's documentation.
!! Hello World
The first thing you need to know about computers is that they're ''fucking stupid.'' They can do amazing things, but they //need// a human operator to tell them how, often in excruciating detail. The art of computer programming is in building up components that do small things into a whole program that does interesting things. The issue then is how to teach the prospective programmer first how to build small things, then how to teach them to compose that into a program.
The most basic program that does something interesting is one that prints some output. "Hello World" is the typical example. This is a program that displays "Hello World" or something similar, then exits. It's not very interesting yet, but it is a program, and it's a fine baseline to start with.
Type this into a new file called `hello.c`
```c
#include <stdio.h>
int main() {
puts("hello world!");
return 0;
}
```
Note EVERY SINGLE CHARACTER INCLUDING SPACES AND NEWLINES is important. If you forget even one, or use the wrong kind of parenthesis (`(` instead of `<` or `{`, for example), the computer will spaz out and whine at you about some arcane bullshit.
Once you're sure that it's character-correct, run `gcc hello.c`. If you did it right, it'll succeed without saying anything. Congratulations, you just wrote your first C program.
Run `./a.out` (might be `./a.exe` on Windows) and your computer should cheerfully reply "hello world!".
How does that work? Let's break it down.
The first line is `#include <stdio.h>`. That lets the compiler (gcc) - which translates C into binary code - know that we're using the input/output functions, ''st''andar''d'' ''i''nput/''o''utput. You'll probably put this somewhere in most programs that you write.
`int main() {` is the second nonblank line. I told a white lie here, you can omit the blank line, but it'll make things more readable if you space them out. This is a "function declaration", but for now it's not important what that means. Just note that there's a curly brace - `{` - opening here. This means a block is being opened, so all the following code is grouped together.
`main` exists because the computer needs to know where the program proper starts, and it's the next line that does the interesting stuff: `puts("hello world!");`. This is a "function call" - again, jargon, not important for now - and it "calls a function" called `puts`. That's a bit of a terse name, thanks to C being ancient. It's ''put'' ''s''tring. We type `puts` to tell the computer we want to put a "string" on the screen. A "string" is a sequence of characters, like "hello world", or "it's a nice day today!". So we open the parenthesis to group information together here: `("hello world!");`. The stuff in the parenthesis is the information the computer should operate on. Since `put string` is a "function", and we want to "call the function" `put string`, we need to tell the computer what string to put on the screen. So, we type it out in between quote marks. Data sent to a function in this way is called an "argument". Finally, we close the parenthesis (because we only need one argument) and then put a semicolon. The semicolon is ''very important'', and if you forget it, you'll regret it! Generally everything in C that doesn't open a block (remember the curly brace, `{`?) requires that you put a semicolon after it. Don't worry, I'll let you know when you don't need them.
So we've done what we came for, but we need to finish off here. When we opened the block with the curly brace, we made a promise to the computer that we'd close it again. That's the final line, a single `}`. In between is `return 0;` which isn't that important, we'll return to it later.
That's a lot to take in. If you didn't understand it, you'll want to brew a cup of coffee and reread it until you do. This is the foundation I'll be building on for the rest of the tutorial.
Words we learned:
* "Function" - a "program within a program"; a piece of code defined elsewhere that we can call to do things for us.
* "Arguments" - the data passed to a function so it can do its job.
* "Function call" - writing out a function name and its arguments, so the computer knows what we want to run and with what data
* "Blocks" - groups of code held together with curly braces (`{` and `}`)
!! Variables
!! Functions
!! Flow control
!!! `if` and `else`
!!! Loops
!! Build systems
!! APIs
* IANAL - I Am Not A Lawyer
* IANAD - I Am Not A Doctor
* IANAOM - I Am Not An Ordained Monk
** IANAOM,BIHSPGTIMHOSI'POTLTM - I Am Not An Ordained Monk, But I Have Some Pretty Good Takes In My Humble Opinion So It's Probably Okay To Listen To Me
Simple and delicious.
!! Ingredients
* Ground coffee
* milk
* ice
!! Equipment
* Kettle or other source of boiling water
* French press
* Glass
* Cheesecloth or other filter (optional).
!! Method
# Brew hot coffee with the french press, but don't push down the plunger.
# Put the french press in the fridge. Leave it overnight.
# The next day, push down the plunger on the french press. Optionally, strain the cold coffee mixture through cheesecloth to get rid of natural oils and make sure it's not grainy.
# Pour ice and a 50/50 mixture of milk and coffee into the glass (more coffee if you desire, but the mixture should be very blonde). Drink with a straw.
https://www.youtube.com/channel/UCs6OTIFV53Z-EGT84lxTvqQ
The characteristic sound of Indian Classical Music is a solo singer or instrumentalist over a repeating drone. This is usually produced by the Tanpura (a four-stringed sitar-like instrument, tuned pa-sa-sa-sa (5-8-8-1)) or a Shruti box (a bellows or electronic instrument).
A similarly "hypnotic" sound can be produced on the guitar by arpeggiating a 5th chord. I've found 200xxx to be an interesting sound, but it contains a different interval so it may not be musical in tandem with the melody (it's a major chord in first inversion). I'll experiment.
* [[What is a Tanpura? Dhrupad singer Pelva Naik explains|https://www.youtube.com/watch?v=yI1LsCbNmpo]] [~YouTube link]
** Seems to be plucked low Sa string first, going along string-by-string to the Pa. She plays a sa, sa, sa-pa type idea.
* Shruti box
* [[Tanpura Droid|https://play.google.com/store/apps/details?id=com.swarsystems.is&hl=en]] (android app - play store link)
* [[YouTube - Tanpura drone (D Note)|https://www.youtube.com/watch?v=JkPqKNE4s3I]]
<<<
I already am eating from the trash can all the time. The name of this trash can is ideology. The material force of ideology makes me not see what I am effectively eating.
<<< Slavoj Žižek
<<chame-list-links "[tag[Ideology]]">>
Perennial fave. It's had a quite large influence on the styles of music I love (much larger than //fart noises// "Pet Sounds" by the Beach Boys) and I'd love to go back to basics with my playing.
I say "on guitar" but I'm probably going to put things into a context that a singer or sitar player familiar with Western music could also pick it up (but please find a better teacher than me).
Last time I looked this stuff up I still lacked the musical ear; I've built that up in time, and now it's time to revisit it.
<<chame-list-links "[tag[Indian Classical Music on Guitar]]">>
<<<
Far away in the heavenly abode of the great god Indra, there is a wonderful net which has been hung by some cunning artificer in such a manner that it stretches out infinitely in all directions. In accordance with the extravagant tastes of deities, the artificer has hung a single glittering jewel in each "eye" of the net, and since the net itself is infinite in dimension, the jewels are infinite in number. There hang the jewels, glittering "like" stars in the first magnitude, a wonderful sight to behold. If we now arbitrarily select one of these jewels for inspection and look closely at it, we will discover that in its polished surface there are reflected all the other jewels in the net, infinite in number. Not only that, but each of the jewels reflected in this one jewel is also reflecting all the other jewels, so that there is an infinite reflecting process occurring.
<<< Francis H Cook
* [[https://en.wikipedia.org/wiki/Indra%27s_net]]
* [[https://www.learnreligions.com/indras-jewel-net-449827]]
<<<
The metaphor illustrates the interpenetration of all phenomena. Everything contains everything else. At the same time, each individual thing is not hindered by or confused with all the other individual things.
<<<
Though we are all interconnected, that's not the same as us all being literally one; all the same, each jewel reflects each other jewel.
Copied from [[twitter|https://twitter.com/infinite_mao/status/1315387406829355013]] ([[threadreader|https://threadreaderapp.com/thread/1315387406829355013.html]])
---
how i rpg
1. "here is some portion of a world, the rest of it is tbd. what do you do?"
2. "ah it seems perfectly clear (given that we are all beings in a world in many ways similar to the one were inhabiting in this game, how this would go. great!"
3. "you have attempted a thing that we dont have an answer for, or for which wed all prefer to disavow responsibility. here is a mechanism that i found / made up. maybe theres a particular book that has a lot of incidentally useful mechanisms for our game. maybe not"
4. "we should remember how we handled this, as part of how we establish new truths about this setting and how things happen here. lets write it down"
i know this isnt like... earth-shattering stuff. but i also dont think it gets described enough. this is *a* process, and tbh it might secretly be *the only* process, and books play a bit part at best.
ive spent some time changing the way i think about game books and the language i use to talk about them (notice i havent said the world "system" even one time). and, for me at least, that has been a very important part of becoming a better player and a better person
i wont make any big claims about agency or autonomy here, though its still that argument implicitly. just a simple affirmation that yes its this simple, and yes youre already doing it, and no you dont have to do it some other way. its a skill, but one we practice by living.
theres a responsibility that comes along with this, though
if you find that your game is unethical or undesirable, youre left no recourse but to yourself, your group, and your own actions in creating it
the good news is you can change your game and yourself just as easily
theres a bravery required, a willingness to step into the unknown, to be vulnerable and unsure, to make decisions in the face of that uncertainty, and to look back at what youve done and assess it and also assess yourself, in public
its good practice, and it gets easier
Not surprisingly, I'm a weeb. I've toyed with learning Japanese, but have never really taken it seriously. My vocabulary is patchy, but watching anime lets me build it up slowly but surely. I can read it if I concentrate and have access to a kanji dictionary.
<<chame-list-links "[tag[Japanese]]">>
```
Shobon:
(´・ω・`)
(´・ω・`)
```
http://japaneseemoticons.me/all-japanese-emoticons/
I should slurp these and categorise them properly.
No, you know what? I'm going to use [[this site|http://kaomoji.ru/en/]] from now on for [[very obvious reasons|Konata]]
I realize I've picked some of this up from somewhere, so let's have a quick explainer.
* Woodshed - place where you practice your instrument, or to practice your instrument (or something else)
** "man, you suck. You need to go back to the woodshed."
** "I've been woodshedding getting the hang of playing over those changes"
* Bread - payment for a gig, or more generally a delivery or benefit from something.
** "I found out there wouldn't be any bread, so I skipped."
** "It's been ten years, George, where's the bread?"
** "Blockchain proponents have promised the moon, but we've yet to see any results. It's time to ask: 'Where's the bread?'"
* Blow - play, especially really well
** "Have you heard that Charlie Parker? Man that cat can blow."
* Cooking - when the band is playing really well or very intensely.
** "It's a bit of a slow start but keep listening. The band really gets cooking after the first chorus."
I actually really don't like part 4. While the characters are great, they're all quite static, and the plot takes forever to get moving, so the whole thing feels like filler. Maybe it's because it came after part 3, which is a dynamic, globe-trotting adventure of epic proportions, and is almost slice-of-life in its mundanity. Maybe it's because of the first four parts it's the only one which really lacks urgency until the last few episodes. Maybe it's because the few important fights feel drawn out and fillery. Idk. I just don't like it.
If I was to rank the first four parts:
# Part 2
# Part 3
# Part 1
# Part 4
I really, really like part 1, even though I think 3 eventually wins out. Haha. And none of the villains feel as threatening as the pillar men.
https://www.youtube.com/watch?v=UEqqj0pxq4o
<<list-links "[tag[Journal]!sortan[]] -[prefix[20]] -[tag[Archived]]">>
<<list-links "[tag[Journal]!sortan[]] -[tag[Daily Tasks]] +[prefix[2021.09.]] [tag[Journal Review]!sortan[]] +[prefix[2021.]] [tag[Yearly Review]!sortan[]]">>
* Monthly review on the last day of each month.
* Yearly review January of each year.
!! Process
* Update [[Journal]]
* Create reviews using the below macros
!! Macros
For the monthly review:
```
<<list-links "[prefix[2021.MM]!sortan[]] +[tag[Journal]] -[tag[Daily Tasks]] -[tag[Daily Task Archive]] -[tag[Journal Review]]">>
```
For the yearly review:
```
!! Monthly Reviews
<<list-links "[prefix[2019.]!sortan[]] +[tag[Journal Review]]">>
!! Journal Entries
<<list-links "[prefix[2019.]!sortan[]] +[tag[Journal]] -[tag[Journal Review]] -[tag[Daily Tasks]]">>
```
---
<<list-links "[tag[Journal Review]!sortan[]] +[prefix[2021]] [tag[Yearly Review]!sortan[]]">>
<<list-links "[tag[Wiki Review]sort[title]]">>
A simple way to add bookmarks (outlines) to PDF documents.
https://sourceforge.net/projects/jpdfbookmarks/
I found the [[Kalachakra|https://en.wikipedia.org/wiki/Kalachakra]] during my [[manic episode last year|2019.12.22 - midnight monadism]]. I'm willing to do further research into this now that I've calmed down a little.
So, there are five chapters in the Kalachakra Tantra. I've found English translations of the second and fourth (with commentary), but they're a little pricy for me to buy them just quite yet:
* https://www.amazon.com/gp/offer-listing/0975373447/ref=dp_olp_used_mbc?ie=UTF8&condition=used
* https://www.amazon.com/gp/offer-listing/0975373412/ref=dp_olp_used?ie=UTF8&condition=used
According to Wikipedia (linked above), the five chapters are:
# "outer Kālacakra"—the physical world– and in particular the calculation system for the Kālacakra calendar, the birth and death of universes, our solar system and the workings of the elements.
# "inner Kālacakra," and concerns processes of human gestation and birth, the classification of the functions within the human body and experience, and the vajra-kaya; the expression of human physical existence in terms of channels, winds, drops and so forth. Human experience is by some described in terms of four mind states: waking, dream, deep sleep, and a fourth state which is available through the energies of sexual orgasm. The potentials (drops) which give rise to these states are described, together with the processes that flow from them.
# the preparation for the meditation practices of the system: the initiations of Kālacakra (Possible translations or commentaries seem to be available from mainstream Tibetan sources; see below)
# explains the actual meditation practices themselves, both the meditation on the mandala and its deities in the generation stage practices, and the perfection or completion stage practices of the Six Yogas of Kalacakra
# describes the state of enlightenment (Relijin) that results from the practice.
Chapter 3 seems to have been translated and commented on by the Dalai Lama himself, in [[Kalachakra Tantra: Rite of Initiation.|https://books.google.com/books?id=xAYmCwAAQBAJ]] This raises the specter of the Maoists (Dengists) and their efforts to suppress Tibetan Buddhism. If they continue to grow as a world power, information like this may become increasingly difficult to get hold of.
[[Ornament of Stainless Light: An Exposition of the Kalachakra Tantra|https://books.google.com/books?id=IaNcCwAAQBAJ]] seems to be the premiere English introduction here (cited on Wikiped). I'll have to get a hold of it. It's only from 2016.
----
SaltyFox offered to help me out here. I'm speechless. What a kind thing to do. I'm glad we're friends for many other reasons than this, but it just goes to show how close we've gotten in such a short amount of time. Here's to many years of friendship!
* Hiragana and Katakana are the phonetic syllableries of Japanese.
** Hiragana can be recognized by the curved, swooshy shapes.
** Katakana can be recognized by the simple, geometric shapes.
* Hiragana is usually used for native words (including some people's given names); katakana is usually used for loanwords (and occasionally for robotic speech).
* Each character represents:
** A vowel, in the case of あ, い, う, え, お
** A consonant followed by a vowel
** In the case of ん, an "N" sound for a full syllable.
* Some characters have special pronunciations:
** ち (ti) is pronounced "chi"
** つ (tu) is pronounced "tsu"
** ふ (hu) is pronounced "fu"
* ゐ (wi) and ゑ (we) are archaic; the sounds are no longer in Japanese, and it's OK not to bother with them.
* The common particles "wa" and "o" are written は and を due to legacy from an older form of Japanese.
* Note that a lot of characters are very similar, only adding what looks like a quote mark " or a ring. The quote mark voices the character (the difference between "t" and "d", for example) and the ring turns the h- characters into p- characters.
!! Hiragana
|! |!a |!i |!u |!e |!o|
|!∅ |あ |い |う |え |お|
|!k |か |き |く |け |こ|
|!g |が |ぎ |ぐ |げ |ご|
|!s |さ |し |す |せ |そ|
|!z |ざ |じ |ず |ぜ |ぞ|
|!t |た |ち |つ |て |と|
|!d |だ |ぢ |づ |で |ど|
|!n |な |に |ぬ |ね |の|
|!h |は |ひ |ふ |へ |ほ|
|!b |ば |び |ぶ |べ |ぼ|
|!p |ぱ |ぴ |ぷ |ぺ |ぽ|
|!m |ま |み |む |め |も|
|!y |や ||ゆ ||よ|
|!r |ら |り |る |れ |ろ|
|!w |わ |ゐ ||ゑ |を|
|>| ん (n) |<|<|<|<|
!! Katakana
|!|!a|!i|!u|!e|!o|
|!∅|ア|イ|ウ|エ|オ|
|!k|カ|キ|ク|ケ|コ|
|!s|サ|シ|ス|セ|ソ|
|!t|タ|チ|ツ|テ|ト|
|!n|ナ|ニ|ヌ|ネ|ノ|
|!h|ハ|ヒ|フ|ヘ|ホ|
|!m|マ|ミ|ム|メ|モ|
|!y |ヤ||ユ||ヨ|
|!r|ラ|リ|ル|レ|ロ|
|!w|ワ|ヰ||ヱ|ヲ|
|>| ン (n) |<|<|<|<|
!! Source
* [[file:///usr/local/share/kaomiji.html]]
** singlefile'd [[http://kaomoji.ru/en/]]
** [[https://wiki.waifu.haus/kaomiji.html]] if you lose it.
!! Spool
Throw them here after you use them to cache them.
* https://www.kickscondor.com/
* https://href.cool/
* https://www.youtube.com/channel/UCIPQI9YZ-fvZv6ebmhY1y2A
<<list-links "[tag[kickscondor]]">>
http://kksongs.org/hindustani.html
kopimi (copyme), symbol showing that you want to be copied. use kopimi in your own fancy. kopimi may be put on homepages or blogs, in books, in software, as sound logos in music or whatever.
# copy one of these kopimi symbols, or make up your own
# put it on a homepage
# link the logotype to: https://www.kopimi.com/kopimi
<p align="center" style="font-weight:bold"><font color="#FFFFFF">0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 </font><font color="#FFCC00">a </font><font color="#FFFFFF">0 0 0 0 0 0 0<br>
0 0 0 0 0 0 </font><font color="#FFCC00">a </font><font color="#FF0000">C </font><font color="#FFCC00">a </font><font color="#FFFFFF">0 0 0 0 0 0<br>
0 0 0 0 0 </font><font color="#FFCC00">a a a a a </font><font color="#FFFFFF">0 0 0 0 0<br>
0 0 0 0 </font><font color="#FFCC00">a a a a a a a </font><font color="#FFFFFF">0 0 0 0<br>
0 0 0 </font><font color="#FFCC00">a a a a a a a a a </font><font color="#FFFFFF">0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 K O P I M I 0 0 0 0 0 0<br>
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</font></p>
Japanese term that means "copypasta"; i.e. famous passages you've copied and pasted. More generally the act of copying and pasting something.
(pronounciation: cop-ee-pay)
''CAPSLOCK IS CRUISE CONTROL FOR COOL''
* NOW AND FOREVER, ''SHITTER'', FOR BEING A WEBSITE FULL OF TERRIBLE PEOPLE TROLLING OTHER TERRIBLE PEOPLE
* ''SOUNDCLOUD'', FOR YOUR STUPID VERIFICATION EMAIL NOT ARRIVING
* ''DEMANDUTOPIA'' YOUR SITE KEEPS THROWING ERRORS. THIS IS WHAT YOU GET FOR MAKING STATIC PAGES DYNAMIC YOU KUSO WEBMONKEY
* LET ME ZOOM IN OR SAVE PAGES, ''MANGAROCK'' YOU KUSO SITE
** ''MANGAROCK'' FOR FUCKS SAKE ACTUALLY LOAD THE IMAGES DON'T DO THIS HORRIBLE THING WHERE YOU JUMP UP AND DOWN AND SPAZZ OUT FUCKING LEARN HOW TO WEBDEV YOU CUNT!
* SEND ME NOTIFICATIONS FROM CONVERSATIONS THAT ARE STARRED PLEASE ''GMAIL''
* ''NYTIMES'' I WILL NOT SUBSCRIBE TO YOU, DON'T PUT A BANNER OVER THE TOP OF YOUR OWN INTERFACE PLEASE
* ''LASTMINUTE DOT COM'' FUCK YOU, DON'T OFFER ME TICKETS I CAN'T ACTUALLY BUY
* ''YOUTUBE'' STOP ERRORING OUT EVERY TIME I OPEN UP A NEW VIDEO YOU DUMBASS FUCKSTICK DONKEYS
* OH NO, I HAVE EARNED THIS AWARD MYSELF, FOR GETTING ''SEEKRIT.CLUB'' TO GO OFFLINE DUE TO MY SHITTY DNS SKILLS. HOW THE TABLES HAVE TURNED.
//Communications from a higher dimension.//
* λμརིན་པོ་ཆེ
* they/them; neopronouns?
* [[Ergodic Literature|https://en.wikipedia.org/wiki/Ergodic_literature]]
* Greener yet than me
* Basically no English net presence (google turns up nothing but Tibetan sources)
* Privacy?
I'm a perpetual beginner. Beginner's mind is important here :)
<<chame-list-links "[tag[Languages]]">>
You should know these anyway, but I use them a lot, so let's outline them here.
* cf. - short for confer/conferatur, both meaning 'compare'. I use this to point out through-lines that are weaker than a hyperlink. They're something that you should be thinking about in comparison or contrast to what is being written. Note that I often mess this one up and write c.f. instead.
* e.g. - short for exempli gratia, meaning "for example". What it says on the tin - I use it before giving an example of the subject.
* etc./&c - short for et cetera, meaning "and the rest". This is to show there's further examples of the subject, but that I don't want to list all of them, or that to do so would belabor the point.
* i.e. - short for id est, "that is". Usually precedes an explanation, clarification, or rewording.
* re - short for in re, "in the matter of". Kind of like "regarding", so it's similar to i.e.
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAF3AfQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDzQRIqABOMd6QxpjlBn6Upb5Bz2o3HpQZDdi/3R+VJsXP3RTt3XigUDG7V/uigouPu0ufxpc8UAN2DH3RSYB6gcU7PFJnvmgQ0qMdBRjAxink03NAxMAnpRtU9v0p1N/GgQmwelG0eg/Kgmjd70ABTjoKTbz0FLn3pOc0DDaPSk28dBTs0maAQbcnkCjaPQUZ5paYxMCjaPQUc0ZNIBCox0owPSlzSZ4pgIQPSk2/Sl/Cl47UAJgZ6CjA9BR9aKCkBxQDTaXJpAOzS54qPJNFADs+wp7SkxLGQNoJPSos0GmJjtwHbFG72pmaKBjs00mkzQTQCEPJopM0ZpDClpKKAFopM0fjQAGkoooAKKKKbAWlpopaSAWikFLTAKWkooAWiiigQhpaKSgBaWkooAXNIelFFADH60UOeaKQFrfkCjd71AG+UUbj60rC5SctnvShyO9V8n1o3HHemDRPv96N/vUG6lzQHKS7vel3Cod1JmgLE24Ubqh3Uu6gOUl3fSk3D1qLdzRuP+TQFiXcKMg96h3GjJoCxLkCjdnvUe40bs0DsSZpc1Fml3Y6UASZpM1Huo3UCsS7qMiosmjdQOxJQDUeTS5oCw4mjPFMJOaTNMLD6M00mjNAWHZpCeKbzRSAXNOFMpR0oAWkpKKAFpKKQ0DF70GkoNACUUUUAFFFFABS0lFMAooooAKKKKAAUtJS0gClpKWgAo70UUALRSUGmAtJRRQhAKWkooAWg0UlAxrdaKH60UgHDoPpRS/wikoAKKKKBCUUtJigYUUYoxQAUZNFFACUZoooAM0maDzQKYBSg0lAoAUmjPvR+NFK4C5ozSUUALmjNJ0pcUAGaM0UUAGaM0UYoAOtFGPalAPpQAmMCjmlKnPSnbaB2GHNGakEbN0U/hzQYnHYj8KV0FmMpKdtPekxTCwlFBFJigQtJxRjFIaBiUtJS0CCiijrTAKWkNLQAUlLSUAFLSUtABRRR2pALRRRQAUtJRQAtFFFMAooopAFFAoNMAoozS5oAjf71FD8migCfqB9KQrmpQhwPpRsNIm5Dt96TbUuw0uzmgLohxRg1MUpAmKAuRYNGKl20mzigdyPFIRUhSjbxSuO6IsUuKcVPpSEcUwGGkp2KQigQGiilAoGJRSgUtACUD6UtHegA4oFOAp8cZchVUknoAOtIBm3NG3ArpNN8G6pfgOYxAh/ik4/Suis/h5ChBurov6qgxUOokUoNnnW0k9Ks2+nXV0wEFvJJ/urXrNr4U0e0IItFdh3fmtWKCOEYijVR6KMVm6vYpQ7nltp4G1e4wXiSFf8AbPNbdr8OkABubwk9wi13mPWjj1qHUky+VHLQ+A9HiwXWWT6tj+VacHhrSLcfJYxn3YZrW6d6TFLmY7Irpp9pEMJbRD6IKHsLSQfPbRHPqgqyKMDrS1GY1x4W0e6B32aKT3TisO7+Hlq+Ta3Lxn0YZFdrjnil7U7tdRWPKL/wNqtqpdEWdR/cPP5Vzk1rLA5SSNkYdQwxXvQFZ+o6LYanEUubdSezjgirjVa3E4JniBU96aRXaa54HuLMNPZnzouu3+IVyEkbIxVgVPoa3jNSMnFohwKKdim4qiRBS0YpQKAEpcUYooASjFKaSgAoxRRQAYoxS0UAFFLRQAlLRS0AJRS0lABRS0lMAoNFHakAUUUUAMbrRQ/3qKANcQ5UcdhR5XqDV5IfkXjtS+SOuKi5iZ5h56Gm+V7GtPyQTxTfIpOQXM8xe3FNMOe2K0DD7U3yuKOYVyh5RpPL9jV/yvpTfIGaLhzMoFOelIY+KvGE1GybRyKdxplMr2qMrirjJUboMcU7lJlQjk0ypnXrUWMmqLQlLijFOVcmgYgHNLipAoo2+lIVxgWlC1KE71d0zTJ9TvEtoFyzdTjhR6mk2C10Gabpdxqd0sFuhZj1PYCvTdE8LWekxq7Istx1LsOn0q5o+jW2j2gjhXLkfO56k1p1zym2bxhYQYHSlpMUvvUFCdTSiijvQAdaMUooosAlApaTqKBhxSmkApaEAmKXoaM0UAH40UUUAIR/k1zHiLwjBqaNcWoEdz3HQNXUUDnihaageFXlnLZztDMhV1OCDVUrzXsXiPw5DrNuWUBLpR8revsa8ovrKazuGhmjKOp5BreE7mUo2KeKSnkYpK2RmJ2opcUlACUUGigBKWiigApaKKAClFJS0AGKBRmlpgFFFFAhMUUtGKAEIFFFFAxDRS0lADXHzUUN1ooA7KOL92hB6rS+XVlFzEnrgUeWck5BNc1zOxW8oU0xcYq35Z7ik2YBNK4rFLyvWgxcYxVsjIqPbz6U7isV/JApnk8k1a24HNIVGaLisUzGfQ1G8RIq/t7YqNk9aaFsZzREmoHTtWjInHSqsijniqTC5nSLzVdhg1clHWqr9atM1ixgqRRTAM1MgqmU2OVc1IFoVfWngc+1SQ2IsbMyqoLMxwoHc16ToNhHoenqrLuupBukPp7VzXhSxSW7e9mXKQcJnu1daWLEs3U1zVZ9DopR0uXF1B93KjHpV+KVZVDA1h81oae/3kzx1rJPU2sX6WkpRViEopc0ZoEJ+NLRSGgAoox3pexoASj3paKAEGaO9H8qUGgYfypKWigA7UUCg0CADNYfiPw3DrUBdQEuVHyv6+xrcpc0loOx4dqGmXOnXLQ3EZRge/eqJXFe46no9pq0BiuIwT/C3cV5Zr3h240a4KuN0RPyuO4rohU6MzcDANBFPZcHmmkVrcyGUuOKDSUwClpKWgAooooAWikpaAClpKKAFopB1paYgooooASiiigYUUUlADXHzUUjdaKAPQY/9UnHYU78Kijk/cpz/CKXeO1cjMrjyePSmEjGBTS/akLcZJosK4MuO9MP6Uhb8aQsO9MVxDz2NHU8CkZuaaGGMg80CbFY80xs0F/eo2fFNE8w12/OqknFWGfPaq8jZHWqQyjNxVVuuaty81UerRpERanjXmoVqxGOKdymyRRzTyDtAAJLHAHvSKK1NCszd6vGSMxw/O317VLlZXFFXdjrdKtPsWmwQkfMB83uatj3pe30pcc1xN3dztSsrCVe05cu5qjmtWxjKQ5PVuaFuMs9KXNHWj8K0JCgdKM0UwAUHiil60gDtSYozzRQAdKWkFKPWgBKWiigAoBoo6UBYPeilopgFAHvS0UhhioLyzgv7doLmMSRnsan6UlAHmfiDwZNYs09mrSwdSMcrXIPGVJBBBr3w+h6Vw/i/wAMR+S9/ZR4YcyIPT1rSE7aMiUbnmxGKKldcfWoiMV0J3MRMUUUUwCjFFGaAFxRRS0AJRRS0AIOtLRij8aYgooooADSUUGgYUUUUAMZeaKGPIooA7KN/wB2nOOKf5gx1qkkn7te3ApRJgnBrmsc7Zb8z1pDJkDmqnm4NKJcdc80WJuWTJx1pjOMdagMoB70zzB6U7BcmLn14pjOO9RF8Him789aYEzSDFRmT3qJpBio2kz3osFicye4qF2UrURck0xm9Kdikhkpqs3WpnOc1CetWjWOwq1YQcc1AtWYxQxSJRgDP6113he0MOnGdh887Z59K5RImmdIV+9IwUV6Jbwrb28cK8BFC1hVlZWNaMdbknajpR7UCuY6R8S7pVB9avRytJebVPyIKoKxjfcOuMVf09PkZz1JoW4F3nFL9fSjrRWohP8AOKXvSdTS5oEHU0UcUtAxtLijrS9KBCd6OaDg0fhQAUtJS59KADNHWgUUALxR2pKXOaAE79aWjFISF6kUDFpRRRTEJTZEWWNo25VgVOfSnd6DyDSGeLa3Z/YdTuIOyOQPpWSe9dX42jC+IZ8DGcE/lXKsK6aexhLcZRS0VoSJS0UUAFLSUtABRRRQAlLRRTC4lFFFABRRRQAUGjtSGgBj/eopW60UAdEr/KvPUCk3YGKcqYRfoKXy6xOZjM4FIc9c8U8ofwo2HgigSGNzjmkzSkHHTFJtIpXAbu5waazH8KcU9OtIV4zmmMiZjjk1GWqRl5qMrTQ0xhbmk3GlKYoCmmURP0zUdTPUWKaLiPjFWUqvH1qyvAz6DNJkyNzwzafaNRe4YZSBcLn+8a7H/PWsfw1AYdGjYjDSMXrXPHFclR3Z2U42iLzmjn0ozR3rMsK1bLH2YYrK9qv2EowyE981S3Bl/wClL0puaUVZIfypaTIDY7mgZzSQxcgUde1Vb24MMYSMbppDtQe/rU8KFIkVmLMByT3pgPFKeKQ8VDPOIUyeT6UmFibiiqVtNNPJu4CDrVw5zSTAWkDKWK5BI6j0qnqWpw6bbGWVhk8KvdjUcMyWVkLm7cK8nzNn1PQCqEaQozxVKbUYYjGpZfNl5RCcE1G0kTPi6ukB6+WjYApAaA9c9aXNQwTRSjEUisB6GpqYBkAgE1SeQTyQHkASkflUz/NcIegXJNYgv1NzAFPyrKzt9CcCgdjpOg6UmaAcgY6UAZoELScdD0paTNAHB+PtM+eK+ReG+Vz/ACrgHHNe3avYjUdMntmHLLlfrXjF3C0EzxsMFSQRW1J9CJrqVCKSnEc0hrcyEoopaACiiigApKWjvQISl7CiimMKTNFFIAooopgFJS9qSkA1utFI3WigDrlT92nfilCH0qyiYjXHoKCnfHNc9zmZU2AnpQY6tFKUJgZp3FYomM5zSGMH8aumMUhiyKLhYotGfSmmI/jV5ou1IYiB0ouIzjFyeKjMXNaJi+amNDmi4ameYvamlMVfaLFQumAc00x3KEq4FVTV2YCqbdatGsHcfGMmrG0uBGOrkKPxqCPrWro0Rn1q0TGcEuc+1KWxSV3Y7u2iEFtFCOiKBUhpelJXE9TttoHJxzS0EjvQDmgEApwYoQQeaYaKBltb6UYzg1dtrkTryMEVkVcseElb2p3EWI3866Y9k6VPLMkMZdjhQKpWTqplLHHcmlXN/KJGUi3Q5QH+I+v0ppiY60jaWQ3UwO5hhAf4Vq6KBS5piEYgAk9BWNcT+dKWzwOlW9UufKt/LQ/vn+77e9cNrkmo2+neZCGW3dsPMTyx9vajlu7DvY6sa7bW6FFAYqPmbcAo+prFvPHcdvv8oJO+MKF4Vfx71580jHgsxHuajJ966I0UtzJ1DobXUrnWvEFqbqQsWlGF7Dmt7XPEMMfiHZLloLQEqgHDSds1w1ndvZXcVyn3o2DCm3Nw91dSzsfmdix/GqdNXFzFm/1OfULtrmVyXJ9ensK3vCzQXPmwS3DpcltyNu+8PTmuSH1qRHaNgyMQw5BFXyrYm7uemiK+srqNo8yRtw7pwQPcd61bnXobdAiRyM5HBZSB+ZrhtJ8YzQ7Ir797H08wfeH+NdtFLDeW6yIVkjcZB7EVLoxexftH1Kt9qtzJp8qWiYlZfmkb+grO00xPZBBkEcOD1z61ozaSu4yWsjQv6dVP4VzdzcyaTqbR3AWPI3Iw+63t7VhOlJG8JxO20y/Bj8idwHX7pJ+8K1QwYZHIrj4ZY7y1SUDKuM1q6NcGOQ2jMSuNyZP6Vmn0KnT0ujboo/E0de9MzFHXmvLvG2nfZNXaZVxHMNw+vevUMe9cr47tVk0eOYj5o5MD6GnF2ZL1R5aRg0zvUj9elR12IwYUUUUAFFFKaAEooopiCiiigBKKWkoGFFFJQAGig9KKQDH60UN1ooA72PmNfTaKeVGM01GzEn0FBb6VzGAhHtQFzS7hxSDFDEOxgUhXpSqcjtThz2/KpCxH5eRSbOOlT7T2FLs//VRcViq0fTimNGCKueXk9OlMMeKdwsUnjGKrSoDxWg6A8VVmTb2ppiMi4GBVFutaN0OvGazmHzVsjSBJEOa6XwnCG1C4nxxGgQH61zcXWuy8IxFdNll/56Sn8hUVXZG1NXkdAf0oz7Ude1H1rjOsO1HTpR3z2oxQhC49aTOM0DFL2oGHTmr1qUjspJHYKuDkk9KoHjvzUZjaY7ZWyg5CZ4/GmIhikkuZt53JbA9DwX9z7V0sLqyApjb7VyV7eoCYFPT/AFhHYen1qxpt9PDdmJ8bGXci+g9KpBa51NHFURqKY5U1NBdrMcYwadxFL7O93eSmTITdt/4CO1Y3j2VYtHggA++/HsBXWgc1z/jSCKXw/K7qC0ZBQ+lVHcl7Hk7daZ0p78ZptdiMRK29ZsIbPTdNaNAHliLOe5rEIrofEZJtNJGf+XYUxHO44x3o70ppOwpgLmun8K62bK4FpO/7mU/KT/C1cvk0oOMZpAe0Kc85rnPGVn52mJcKvzQtz9DT/CmqfbrAxyPmWHg89R61u3MC3NtJC4ysi7TVPUDh9E1+2gtY7W5LIU4D44xVuTxZb2epRNCnmoh+Yg4yPauSvrdrS7lgYYKMRVYGud0Ve5v7eXLY9l0zxJYanHmKQow4KvxitSOZZNwHVTgiuV0m3t5/DkSxKoDxc/71ZPhTWbmHXPsN1KzI+Yxu5II6VMqVtUSp30PRM1ieLVRvDlzvPTBX61qW0hkDgsNysQa5rx5d+VpMUA6yPk/QVityzzKT7xqLPNSMc0wniutbGDEPWkooqhC4oNA60tFhDaKKKYBR3oozQMKQdKDmkpALRRR2oASilpKAGHrRQetFAHbJKPLXnsKUyCqSyfIv0Apxc4HrWFjnuWjIKBJk5zVMuaUOelKwi6kmTx1qxGciqEZq7Cce9SxosjHSnDFNUc9KlC+1Rcqw3b+dMZeODUuP0FMYc9aYNFVwADxVSYAr3q/IOvFUp8DPFUiGjIuh1zWa/WtK65JHpWY5+Y1tEuBJEeK7vwyoGgW+O+Sfzrgoutd54YffoEA7qSp/Os62x0UtzY70h/Ol4oxXMjoDij8aO1HPFIBKXtRmo5plgheVzhVXJpgRXV15RWGNd07fdXsB6n2rIub57fdHbv51y/DSHkL7AVBYC41Fri5mcojuRtHBIHbPpV3Too1tzOygM2Tn+6B2FVsXGDZSgtZIYyXt2kdss0sjdD/SrWjSS3E/mP8A8s49pPrzT1U3qGWVttueQg43e5q3pUeLZpcD9624ew7UNlSVkaAxmrmnoS+89hVNcswHvW1BH5cYAHNSkZMeWAG48DGa5PWG/txWhLMluuQu3ufWt/V2K6ZNtOOOcelYagKoA4GOKq9i6cVLc8+1LSrjT5CJFzGfuuOhrOxivT5oo5ozHKodD1BFcvqnhcrulseV6mMn+VdFOt0ZFSh1RzAHBroPEhH2XSj/ANOorCeJ43Kuu1h1B7Vu69+80nR5Rg5hK8e1b3OZqxz5NJS0VQhM80tGKdHE8rhEUsx6AdTSuOxqeHtSGm6rHK7bYn+WT6etdhJrlzeXXl6XEjwr96aTIUn2rB0nwuz7Zr0YHURev1rrrNI4mCIgVAMAAYxWFSvbRHRToX1ZxviLSrld9+7hy5+faMYNc4DjrXqWoW4kdoZBmKVMD2Neb39o9ndywOOVPH0opVObRhVpKOqOs8E6llJLBzyvzx5PbuKjWGO08eKZWVIxIZMk4GMZrmdLu2sdSguFJAVxn6d66PxlEHvLW5QcSx4B/lW0tjnWjO50+YTX0jx58txuJ7E1yfxBus3NvbDHyKSfxrqrFksdLjllbEcEIUk/TNeXa3qJ1LU5rg9Gbgeg7VywV5GsnZGYWz7U2g0hrpRiGaKSlpgA69KU9KBzQelMBKKKKADtSUvammkAtGaKTFMBRRSCloAKSlpKAGEc0UrdaKAOpWM+WgI7Cjyzjmr6Q/ulJHYUeQPSubmMLGf5Z/OnrGSRyaveR7U8Qc9KVw5SskZ4Aq5CKcsOB0qVUI6CobGkPTpUg7Uir708dqksMc5qNwSRUp/CmEUCZWkGe1Up+hyM1fkGao3A61aIaMa6xk1mOPmrTu8EmstzzW8RxHRcMOldb4RuAEuLQnlT5ij2NclEa0LK5lsbuO6j5K8MvqvcVNRXVjWErSPRKO/vUNtcxXkCTxMGVh+tS5BFcdrHX5h170DJ/ClzQeelO4wye9Ur5PtEtvb9ULb39wKu9zSY53Y5xigVjGjUq1/Egw287fxFSaftewjQdNuGz2PegYi1i4j6b1WQe/Y09rYhi8L+WxOTjofwp3OiGxnan5lpBGluXKk7WHUKtdDCojhjUdAorJklYq0F0gUMMCQdD/hV2xud6+TJ/rUGPqPUUdCKiZeDFHVh1BrYgmWWIMD9axenetSxjHkq/Qn0oRk0JqE1tHbmO5k2JL8uTXNTXEVonzSrIoHDIc5H0rpr+xS9h2nIdDuQ+hrnY1VgdyAMDg/UU2aU/Ihtro3LEiF1j7Mwxn8KtDkYpfoKQ59Kk6ENu9BtdRh/fIN+OGAwRXPX3hC+WBY4LnzY0JKxscYrtozmJTTquM5RMpQjLoeUz6DqVvnfaPgdwM1UNtMpwYnz/umvYaQon90flWirsydFHmmk+Gr3Uzux5UQ/jYdfpXY2mh2WlQgxpumI5c9a2sADAxiqlySXAqJ1XIuFJIrn1pQcMD6c0me1LzWRuXcLNECRnAyK4rxVaLJGl5GM4Ox66+2l2tgmqOs2G6zuCi7onUkqOoPqKqDtIiaurHmQOcGuqu723u9A0qWZ8+TL5coXrgVyzcH3pnf2r0N0ec9GdV4g8V/2jAtpZo0VovY9Wrl2Ytzk0maM5qYxSE22BNJRmiqEFLRRQAuMUHpSUUCCilpO9MYUlLSUCCikNFIYUtJSjpTASig0UAMY80UN96ikB6Kijyk/3RS7KfGMQoQDnaKkwO4rjuRYiCUuzHNPyKQHOTSCwBePengYpuaUEUmwsL26U8Ypo6dKUAE8Uh2FNNYcU/GKYx60CaIX6VQn4Bq7J061RnPBHNWiGY10OTWXJ1rVuzxWU55roiER0Qq5EaqRCrkQzTYSNLR9QOm3gVz/AKNKcMOyn1rtAQQGGCCM158VDIVPIIrrfD9w8+kRFzkplM/Suaqup0UZ30NXIxxRg9aMUo5+tYnQJ60Zo5oB9qLhcpX1kbho5omCzxfdJ6Eehqut3tYR3KGF/wDa+6foa1e9NkjSVSrqGU9iM0yozaKZCyoVYBlP61We18hDJEx3IdygnoPSkv7eTT0+0WYLRqfnizxj1FPivoJYiWOxiOVcYIpmqkpGhBKJ4FkH8QzWvpsoktQV7EiuLsbyQSWoV824JRgPc8V1thutrp4GPyyDen9RVJGElY0ncIhY9AM1yVu2+Nn/ALzFv1ro9UJXTbgrndsOMVz0IAiQDoF60maUlqSDFKOaSlGAKg6C9buDF7ipu1VrT7hqxjFMhjqDRR3oEJUM8PmDI4IqfFIRigaM10ZT8w/GoZLhIiA2S57AZJrWZFZcEVmXunuX86E5IGCpPUUWKuRi4BPyqx+gq4l4vllZVxxjkVSgkVkKqmHXqnerllaycyXIG4nhRyAKBM8v1GIwXs0bLtIYnFVRWrrzCXWrth0MhxWZiu+Gx59T4hp6UlLSVRmFFFFABnNFAFL0oAKKBQRimAUd6KKAENGaU9KbSAKKWkpgFL0pBS0AFNp1NpAMc80UrjJooA9EjcCFOf4RThL6GqaOREoPPyigSY9jXJYgubuDSCQdM1V83jk80wy85pWGXfNBPXNHmVnicZ60faAON3FHKFzVWTIp6vxWbHcAn2q3HJnpzUtDRZyf8mmnJpM8egoPAFITIpDwc1nz+9X5eRVG4PB9K0RmzHusZNZTHmtK76kVmN1reIQJocVcj7VSi61dioYSJgODXVeHIfJ0aM/3yWrk5G2xHHLHgfjXcadB9l0+CHuqDOfWsar0NqC1uWAfenU3ANO+lc51BRiige1AB+FLR60dqAK94wS0kZl3DGMetZdxMlnpwaQAy7cKAMkmr+ot+7iiHWSQD8OtI0aMQSASOmRTTsbU0Z+m2Zi04JJkO/zH2NdFaym/tFwQt5bnv3/+saz+1NG+OVZoX2Sr37EehqrlThdGybn7R8qsIpV4aGToaydRiNsgMELxs7AYDAqPwqa4v3u4PLltkVz1fOfyqskaoABzjpk5obIhCSY/GBS+lIaUDNSdBctQfLyasVHEuIxUoHFBmwFGKOlBoAguLuG0TfM+1c4ziqn9u6eWCibJPTjrV9445UKOisD2IrLuPD1lMMqpiP8AsU1YDRFzGQDkhT6ipVIYcHINc4dL1SyB+yXZkT+4T1H0qnLqep2ki74hGc8jacGnZMSudWsEayeYFG71pZpBDbySH+BSaq6VfPf2gmeExnOPY+9V/Edx5GiTnOCw2j8aSWoPY81uZDLPI5OSzE5qCnt1NMrujojz5u7G0lLSGqJEpaSloABS0lLTASlpKWkAUlLRTAKSikoAKKKKAClpBQaQAaKDSUAMfqPpRSt1ooA7xIyYk/3RSNEQcAVoRw/uUOP4RStCfSuJsOUy2Q+lRMhAzWq0PUdqgeEAGmpCsZDgioWcg1ozQheSOaoSpye1Wnclqw+GY5HWtG3k6VjR8N1zWlbniiSEmanmYA4zUhbIqupDYqTPNZtDEk6VRn5U1cY4FU5+3FVEhmLdjrWYw+ata8x2rKcfMa3iER8IOauIQoJJwBVWEVq6TYxXszTXLhLOI8knAdvSiTsUo8zsXtB0xry4W8mUi3jOYw38R9fpXXZOPpUFtPbzQ/6MytGvyjb0FTVyTlzM64Q5VYWjHpR1NHbrUFh36UtJ3o5oGL1pKWgfWgRn3x/0609Mt+eKkp19AbiIBDiVDuQ+9VIbpXbZIDHKOqN/SnY2ptFnimS7/KfZ9/adv1pwPNL3pGxWsLk3VqjtgSdGHoR1q1ism4WTT9Ra7RGeCXiRV7H1rTimSZAyMCDTaEmSDpQOMUlFIpGmn3B9Kf0qvbyhkCnqKnpkMWjvQKQkgUCADvRmig5waADgHOaaypIMFVYehFVp43mR0DFdwxkdqj06yks1IeeSX/fPSgC8qBFwoAA6AdK5fxrPts4IgfvMTiuprg/GkxfUo4h/An61cFeRFR2icuaaTSk0hGa7Ujz2NpD1p2KQ0wEooxRTAKWkpaQBQaKKYCUtFFKwCUGiimAlFFLQAgoNApaAEoooHWgBjHmihutFID1qJP3MeR/CKGjBqxEhMKHttH8qRlIHNeczSxTeHioHi44rQZeKgkUGmiWZU8YAORWVcIOcVuyrkmsm6X5TWkSGZgXmr1tjgVUI+arcBGQBWjMzSh6VLUEXTmpwOBzWRQjHiqdx0PNW3OKpTn5TTRDMi64zWY55rSu2zmsputdEdggS5IjOOp4FXdVIRrfTYc7IFAYD+Jz1NZ+D5eV6ggip0ZoiLqUb5TIHOe9Ekaxdj0PTLNbHToYFHIUZ46mrdV7S8hvYVkjPble4PvVgCuKW51rYPc0D8qBRx71IxaXtzSY/yaOD3piAnNKODR0opgUNUEoiEsAl3r/zzP8ATvWMdQlu4gGgWcjoQpU5rpndUUsx4HWs8KIb10Ufu5BvXH600xpXZV061uYQ0k8rHf8AdjLZ2/jWjxSduKKT1OpKwvFQPYk5lhJifuV6H6ipuav2+GiFAzIE0sWBOnH99OlWEkSRcqwP41cmtwfmU/UVRMEe7O3a3qOKBEqMUYEVoRuHUEVjbZUb5JA2P4Wp8d8YXAlQp9elAPU2QaXqKghnSYAowPHY1NQSL2pKU9OtFACY5pe9H1ooAK808TyeZrtz7HFelivLNcYtrF0T/wA9DWtH4jKt8Jm55pKU9aM12I4RppD1pxpp60ANopaKYBRRR3pCCiijFMAooooGhKDSmm0AFAoooEApaB1oNAxKKKOlADW60UN1ooA9liH7iPn+EUpUGlhB8hD22inMOP8ACvLZtYgZcCq7jirZ+7zVdxxzTQmjOnB6isq6Bwc1r3HAPpWTdHGa1iZyMxh83XiprcAetQt9+rMHXitDIvxHNWF4qumAB0qUGoBg+OapT9DirbniqU2cU4kMybrvWY45wa0rnqazH610R2HAlhPvVplWSBlJxxkVThPNWmJEEh9FpMb3NvSr/wDtUJBFHtv0GA4JUFR3OK6WymlkjZJ1VZY22tt6V5xo+onS9RiuRyF4YeorvYb2NZzMGBtbk7kf0b0Nc1WLTOyD900/Qil700HuOlOBrIsXpxQKSnCgAoBJ7UlU55bqWVorVUBT7zP0+lUk2JuwarN5VhJjl2GFHqaqwTC6lSVDlUjCk+/emyW99HObidFnXsI+Nn0B61LBcQMpVMKepUjafyqnFxWpdJqWtyx+NLSYpQKzOoBVq1fkqD0qqRT4mKSA54NAM0eBiq9zFkblFWOoFGMjFMhMxpoixDxnEi/rTo5FmQ5HI4ZT2NWJkKP7VUliYv5sZw4/WgpCrAiSCSLKMP7vQ1pwTb1w33qzYZhMCCCrr95T2qbJHIPPtQwNPtSZrOMrkYLVEQ/JEzrn/aoFY2OO9HGax/PmQcTscdyKil1hreEtJNFkDPIotcTN0jAryjVXD6rcsOQZDXR3njQfZ2S3izIRjceAK495DI7M3JY5Jroowad2c1aaashKOKSjiuk5QpuKU0hoEJRRRTAKKKKQBQTRiimAUUUYoASkp1IKBiUUUCkIUUtIKWmMSig0UCI34I+lFK3WigD2eIfuY/8AdH8qcSKSLmCPj+Efypa8p7m4w+lQSgA5qwelV5Bz7UIGZ84yKyLs5zWvcHC4rHu+c1tEykZjjDVagBJFVyMt9KtQjtWr2Mi7H24zUo461FHxj1qb8KgCN+9VJjxVxjxiqc/KmmiGY92O9Zb8Gta6HBrJkHNdERwJIatSHNrJ9KqQnmrMh/0WT6UPcctzLBx2rRsNZnsVMJAmtm+9E/T8PSs0nNFOUVJam0XbU7nTtVjmULaXoQ/88Lnt9GrXW9uk4msnI/vxEMDXl+SD6VoWes39kR5N0+0fwscisJUOxsqi6noi6rbH77GM+jqRViO5hk+5IjD2auPtvGswGy7tY5V7letbFpqmg6lgMqQyHsw2n8xWDjKO6LTT2N7cDxniq9pxLcA9d+fwpF0xMBra7lQHp824frUJtL+1uWnWRblCACuNrfWnTnFPUVSDaNGoZ7OC4H7yJT79DTYLuO4yBkOv3lYYIqzXYrNHHrFmc2nTREmC4O3sr8/r1qIyzwtieBsf305Fa2c8UEZPaolSTNYV5xM2O4hl+5IpPpUhqa4sLe4HzJg9dy8H86S30m72s6Th07Bxz+dYyotbHVDEp7luBt0Yqb2qjDK1sNlzG0Rz1YcfnVxXVxlWDD1HNZtNG3MnsRXEe9M9xVEdcVqYyMVQni8t8jpSLRHgA5xR9aOlITjJ9KQzLvtbitJ2gWNpHXrzgVlT+JrjGI4UX3Y5qndSefczyf3nNUJc10wpxaOCriJKVkT3Ot3055nKD0UYrNkldzl3Zj70r1EcZreMUjJ1JPdhnOKVSB1pvenAVRI6jvRS0CENJ2pcUUIBmOaXHFKetFMBtKOlGM0tCBiZpKUjFIBQAUUUY5oASilpOtCGgoNFFAB3paKKBBSUtFADG60UP1ooA9pi/wBRGf8AYH8qG5pIs+TH/uD+VB4rynubjGPGKgc4zUrnmoJDimhFCfvmsm6U9q15u/Tmsi5PJrWBnIo4+bpVmIcCq+DmrMHPetGZFqPNT1EM4FSLUAxj96pzd6utxmqc65GRVIhmPd96yZD81a93WRJ96t4jgPh61LctstSP7xAqKHrResdka/jVFPVlKl7UgoqjQM0oNIaWmIXNKDSAUVL1KNPT9cvtNP7mY7P7jHIrrNN8aW8+1LyMxN/fBytcBnApQfesp0YSNI1HE9amghv4luLaRRIB8kq/yNNtblmLQzLsnTgjsfce1edaVrd3pUoaFyY/4oz0Nd+siavp0d9a/LOoyv8AVTWCUqL12Kko1FpuaI5pf51XtZxcwLKMjI5HoanHrXXe5yNWD+Gti0A+zJj0rIPU81q2RJtl9qCo7lhkVwQwBB7GqMmj2zEtEGiY90OB+VXxS1LSZsm0Yslpe2/3ds6/XDVXaeJyY5QYn/uvxXQ4qKa3iuFKyxK49CKzlST2NI1mtzn1t2YnnA7VWu0lSF0Rd0jDC+5NbEujujBrS4aMf3HG5T/hULWWoefE5jhYI2eG61n7J3N/bqxzTCznAtdStzbXCjAkAxWXf+GrmNTLbMtxF6r1r0G8sF1C2kF5Ai4UlSDkj8a4mGaa25gkZf5Gnyyj8JnGKqHJSxPExV0KsOxqArXoDXdneJs1C0Vif+WijmqU/hawu0LWF5tb+65rRVrfEjOVBrY4vGadg1u3PhPU7ZSwjWVR/cOax3hkiYpIpVh2IxWkZxezMXFoZRS4oxVktCUhpaTvTEJSmiigYlFLRmgBOtIeBSmkNACUUUUAJQKWigYlL3pKUdaACiiigQCiiigBj9aKV+tFAHs0RHkRj/YH8qcabEP3EZ/2R/KnHpXlPc3I2FVZOM1aYcGq8nI5ppiM+4ye3Ssi6yc1sz8ZrHuQMmtYkSRTGc1agGDmqwGT1FXYV4FaMzsWFGMU+k70oFQS0Nfj1qpKeOc1cY8dKpyjINNEMybwDtWRKPmrZuuh9PesSeVQ3HJ9q3iOA6PrTLz7yfSoTKx6cUwkk8kmtLGlgNJmlpKpFBThSGgUAeieENG0zVvD5ju7dXkSU/N0P51meIfBlxYSPPZI0tt1wOWX61n+GdRexnZkkcSBhtQfdbPBzXpFnq0nn+TqHlRmRQ0ZB4PqKxcrOxoo3R4y0ZBwRg9wabgivXdb8H2OqhpYALe4IzuUfK31rzLVdJutJu2t7lNrDkEdCPUVaaJasUAa7jwNeEpcWpOduHFcOBxXQ+ELgQ65Gh4EilaitHmgXTdpHZ2eYby7tuyvuX6Gr/FULn9zrsJHSaIg/UGrwOVyami7xRnWVpCgZ61pacSYmHoazQa1bBNkGf73Namcdy11p2Pam0o6UGoUZ5o/OigA5oFFGOKAKeqS+RptxJ6Ifzrz4A7RXX+Kbjy9OSEHmVwPwFcgTzWcjrw66iHNJt/A+3FL1FFRY6ieHULy2P7ubcv91+RU817ZX67NRsv+2ic4/rVGjmpcFe6JlBMrXvhlmia402VbiMc7R94Vz7xvG5V1ZWHUEV1cUklvJ5kD7H9uh+tank6f4ghCzxrHdqMZHB+vuKaqShvsctTD9Ueemm1var4bu9Oy+3zYezr2+tYhWuiE1JaHJKLjuR0GlNJirEJiilpDQDA9KbTqQjFILCUUUUwCiiigYUUUUCClHSkpR0oATvQOtHelA5oAa4y1FI5w1FAHs8R/cxg/3R/Kg5Ncc3jlERVitSQFAyzVYs/GsE8yx3MPlK3G8HOK850p72NeZHSuGI+WoHzg8VMksc0YeNlZT0INRuVRfmIA9zWY2UZxlTmse6HtV281OxhJElzGD7HNYN5r1oCfL3S+4GBW0EyJEyoc+571fhUhfpXMP4gcE+XAoH+0ajbxDfsMBkQf7K1rySZJ2YwOpFRTXdtAuZZ40Hu1cLNf3U+d87tntniq+STyTTVF9RNHX3HiGxjyEZpD22jism48QSSZEUKp7k5NYvelrRUkhcqJprqac5kcn26VteHfCUviLQ/EOqJfrbjRrfzzEYt5m+SRsZyNv+rxnnrXPGvSfhr/AMiH8Rf+waf/AETPWlkh2SPNVbcuaTzFBwWFOtIvPlhh3bfMkVM+mTjNeteLPEy+AvE9p4c0zQ9Pl0qCCMzRSW4aS53Zz8x5zx155znNAHkhYAZJGKTep6MDXe+DmurnX9d1PRvDWnQwhNwl1Of9zpucnjK4OTk4xwBjOOu345it9R+FUOrXFxpV9qUN4IvtunQhEYEkFcgDPH4cUXC55R5if3hRvX+8M17T4j11PDvjLwpYWWladtvra2W7ke2VneNpCu0Ht1Y56kkelWLfULWz+Mr+C7bRtLTSJ0Zpl+zKXd2gMxbce2eMdMUXC55LoOtjRbxpXjSWKRdro3p7V26pb65brc6XdiQx/wDLBsZXPUVa8G6FZadp/izWIRpqXlpfS2dnLqjAQW6hsAknjPP6AVX8VajZp4ZstXGr+Hn8T21wEkOkXEZFxEcj5lXrjg9OMH1rOUFIuMrFmxivJdb0vSrK+eCa6eSNpLhDJsCxs/3cjP3cde9cr4x1IT3EljdTRveWF3Lbs6rsDgEjOMnHSuo8H+IrfXfGXhvdGEvEmm3YHUfZ5Olbmjauus/EfVfDV3pemnSZnuVMYtxvZ0bl2fqSfm+nGOlKEbLUJO7PD2dV6kCrWnXYtb+C4DDEbgk+lekeB9Gg07wXrWuwPpUeppeNawXOqsBDAqso6ngE7jj1OBVPxmukX2k6FfnUNAm8QrepDdrpNwjLNGTwxVe4wOcdz7VdrqwlKxJqGrafJc6fKl3CxEmMBx0Iq8dUsUl8l7uEPn7pcZq38SdTaDWb3w1p2nabb212kC3Vx5H73LsBlSCAAFAHTuelbOpG18PeILTRYrrwlaeH4o0S5tL+ZFuZAerfN3xgjPX8ainBR0QTfNqzIjAdlAI55zntST6vcw6a+qwR240m3uVtpJnfLOxYA7QOgGepqrpLWf8Ab+rabp93HdadFKfsk8MgkXYyhtoYcHbuK/hWn/bV5pPwmuPLispJLS7+xIZIMqybgu4jPLYPX1qyErFmTWNOgijkmvIY1kGV3OBkVZt7mG6jEkEySoejIciufhlPg3wV4dbTILOXUdTjMk17dxeYQAoO0c+4GPY1a1G5ijtfDviK2tYrR9VUpeW8I2ozAZ3gfUHn0IzQVcvpDfar4it9HsbyKzL27ztNJD5v3WVcY3D+91z2rM0jxNa3WjwXV9cRW8jL8wZsAn2re8OEN8R7Mjvps3/oyKuB8CPq9t4dvb2wtNHhjDhDrOqyYWHGMoqkc/pye/SgDs4tUsJrdp4ryFoU+84cYX60Lq2ntbtcLfW5hU4Z/MGAfrWT40WGS18Hakj2U1zeXccVxcWceyO4XcpzjuMjv6mn63HGnxjis1ijFu15ZkxBQFPyelAXMnxLqVrczwNFcxvCik71bK5PvXP/AG60IGLiLnp81drp1hZH4jeONRntIrhdIQS21qy/u95jznb/AMBx+Jqv4c1pvFPhrxhdanp+nm8ttOJS5gtgnyskh2n3BXg9ealwN4VnFWRzk9hcWnhS08SSXsRt7i6a3+ziLBXBYZ37ufu+neq8NxFcDMUisPY10tnq0mj/AAW0m6htrae5N66xNcxCRYzuf5tp4JwDjPrUXjKeO98P+FPEH2aCG+vY2W4aCMIH4B5H16UnEunWknqYTuqKWdgqjqTUUd7bSkhJ4yfTdWhoUN5ceKbFbLSYNWljRpDa3L7IlHA8xjgjAz6HkjvXVXY/tvwD4mXV7vQNQurOLfGdLjA+zHBwC4HJ47e+aUY3VzSpiHGVkcXNBeW+h22uyiFNNuLj7PGS2Xc4b5sdAPlIqOSaKNVkeUR/3Wziuu1fxFeP8FtJfyLINes1lJmDhU2uu5RnhsKOfXNcjpd2dJvNN1KWNZUtJlaSN1DB4jw4wf8AZJ/HFEorRCp1JtNmlZ+IvJjUXkiS254EuR/k03U9I0i+tDfW13BAG6NuG1jXVReHLbSviRq+tXESPoFpZtqcKlRsLyKQRjpwRIQO2VrE8LypYeCNa8aS2lvdapNfGOJZ03Rwb2XkL25fP4AVHsUndOxjKrzdDz+4tTCSQyOg/jRtwqqHRs4cHHXmvTdcmj8T/DHVNcu7a0h1XTLnyDcW0YRZ1Ozgjvw/5isr4owQ28XhDyYY4zJpil9iBdxwnJx1NbxbsYOxwwZGHysDS12/xehhtPGdkkMUcCHTIiVRAoJ3yc8VxAIIyDmmSB6U3mnUhpjCkoopgFFFFABQOtFLigBeKUD2oFLigBuBRyKUUHpQJkL8tRTnzuooECn5QPalzQvK0GmWaNlr9/p0DxQSja3QMM4+lVrnVL27OZ7mRvYniqpppHFQ6cb3HcCxPU5puaWkNNIA70YoopiCiiigAooooAK3/D/i2bw7ofiDTI7NJ11i28hpC5UxfJIuQMc/6z9KwKKQDIwQgwSCOh9K9Bj+KO82V3qnhmw1DV7JAsN87FW46EjHXv8AXkYrgaKLCOu0v4iX0Fzrj6vYQapbay266gdjHg4wNpHQYwMdeBznrFq/jldS8ISeG7fQbWxsxMJYBBIx8sA5wc5LEnOTnvXLUUWCx0OveM59e8Q6NqzWKQtpkUMaxiQkSeW5bJOOM5qx/wAJ5cH4mDxn/Z8fmgY+y+Ycf6jyvvY/HpXLUCiwzptE8cXOlXms+fp9vfaZq0ry3NjMflyxJyp7HnH4D0qDxF4rj1rTbTStP0W00rTrZi4ji+d3b3c845PH+ArBpKLCsanhvWpPDfiKx1iOBZ2tC5ETNtDbkZOv/As/hWno/jm60rxrN4kFlHK0jzP9nLkBfMOTzjtXM4oxRYZ0fh/xrNo8GpWN3ptvqWlahIZJrOYkAMTnKkfh+Q6VHr3i3+2F0y1stHtNN0/T5BJFbw8szA5+Zzye/wCZ69sCgcUWEd7JrMnjvxDfX89sLVpokj2I5bbtHBzj1rZTxXPdS2uo6j4Y07UNXtV8qO/ZyCcZGWXHXkn8eMVxHhO/FlrCKxwkw2H69q7fTdNSS6v1ido5km3DB4IIyMisLtVGa8t4XLHhyxuFubi/ulUS3DtK5Vdo3Hsq9gOgq3cy3On6Ze6ZLo1rqunXU5nUTOVMbnHUYOcEZFW4Lp4SsN0gjforD7rfSry4I9c1qmRY5XSJtSsvDNvpGp6Naa5p9scwi4JR4j7HByOT/KpZn1PxFqdtLdW8VrbWqeXbWsAxHCvGTnueAO2AOldMMDtTscUBYoGa+0bWoNZsbaK6aG2e3aGSQpwzKc5wf7n61zWhpfaZ4Ul0K/0W31bTXl87y5JGiKP16jkjIzxiu0Aoz7UBY4vWp9V17TNLsTpltYLp03mW72pOEA+6oUjtxzntWtf6/qb6rbao3hjTf7Yh2Kb0uxJQHkKMcEgkZOSM1u4FMmOIXbHRSaGwscX4V1DWdR+JWp6nZS2Flc3yFns7xmMdwvAKAgfeGARx3PbNdM76jovhDxS2taDpvh61ntjFaWts0ZaeVg4ZiV69UAH1rg7uxLoEuoCu/LKT356g1Q/smPeGLMcdNxzio5joVDm1TJW1e7n8F2Phw2iCK2uDOJw5JOdxxjH+1+lTajq15faHomjyWiJHpoO2VXLGTIxyMcU6OMRxhV6CnAVPMzoVCKLWi6xeeHdVGpWkMU5MLQTW8pwJEJB69jkD9aUeLFttI1XSdN8L2VjY6hEVZYpnLhyCNxY5yOmBxjFVBxSHmkpNFToxk7sfB4hlTwN/wjd7ottexp5n2e4dyDC7A4cDHVSxIqnZxXV0ltYw25nurlxBHHuC72PQZYgD8as8Y7Vds9HS/haa9G23HzAE4J9/alKdtxezUE+U6XxVc32mfDrRvCuoSINVnVUu1RgxjgQ5AJHc4Rc98NXJ2niweHFuLGGzt9R0y6H+lWdx93djGVPbjGeOw6VialNbwzSRWP8Aq84aTu341lMxJ5qo3m+bZHDJqK5Tc8Q+MpdZ0eLQ9O0u30jSUfzHt7c5MrerH071ff4g+fo2m2mpeHLDUL3TYwlpdzsSFwAASnfoOM4OBXI980VvYyOj1TxzJrPjXT/EV7pFvL9kt/Ja1kfckv3+TkccvnGO1c5cXH2q/u7lYVgSeZ5ViT7sYZido9hnFNNFFgEFB6UvbNJnIpgJRSjkYpOhxQAdqKPalxQADpSigYxSgUguLR2pcUUyRtFHeloAjc4NFEg+b8KKALNtbF0z6VBIuGIooppmrSQwim9qKKGSNPekoopAFHFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFAoooADRRRQAuaCaKKQAKKKKYD0YxsGHBU5FeqaHeCW9tZ8f8fdvz/vLRRWNVe8jWD0OneNJUKSKGU9iKrNaz2/zWkuV/55ycj8D2oop9CAh1JTL5Nwhil9M5H6VeDAjrRRTQC5oyO9FFMAz60ybBhk/wB0/wAqKKAMiOCK806C3uVyGTKP3Brl7+zexumhfBx0I7iiiokjpoN81iqetHrRRUHaNyKPSiikBoaVZJdMbiXmGM4we5rL1/xC927WttmOBeD/ALVFFZx96pZnLWk0jmmYmozRRXaeeNzSmiigBKDRRTQwOKbRRSBirRjnNFFMYoxmjNFFAmA5p9FFBIAUHpRRQAnFFFFAEUh+YfSiiimB/9k=
I like the LBBs, and they're not too long, so I can use my PDFs (legally acquired, mind!) so that I can make replicas of them!
* Wow! Much better source for the boxes: https://www.printplaygames.com/product-category/prototypes/boxes/
** https://www.printplaygames.com/product/7-x-10-x-2-medium-box/
* The copy can be done with regular printer paper, when the laser arrives.
** I ended up getting gifted an inkjet printer instead, so I think we'll have to reverse the process; I'll print out the covers at home and the copy at staples.
* This paper for the covers: https://www.staples.com/JAM-Paper-Parchment-Cardstock-8-5-x-11-65lb-Antique-Gold-Yellow-Recycled-50-pack-27179/product_263154
** Maybe I should go to Staples and ask them to use the printer... I could get it in color then.
* These would work as a box: https://www.wildcatwholesale.com/ProductCart/pc/9-3-8-x-6-x-1-1-8-c237.htm
The stories and information posted here are artistic works of fiction and falsehood. Only a fool would take anything posted here as fact.
---
I do not now, have not ever, and never will collect user data. Privacy is a high priority of mine and thus I do not collect any data. I also do not, have not, will not run ads, targeted/tracking or not.
---
Article text is, unless otherwise stated, or tagged <<tag [[External]]>>, released into the public domain under the terms of the [[CC0 license|https://creativecommons.org/share-your-work/public-domain/cc0]]
---
I have not been served any copyright notices, gag orders, cease-and-desists, or requests/orders/compulsions for a backdoor to be applied to any service I administer.
In the UK, "lemonade" refers to a clear, carbonated drink (like Sprite). Here in the USA, it's what we'd call still or cloudy lemonade; a simple juice drink made with lemon and sugar. Read more at [[TOW|https://en.wikipedia.org/wiki/Lemonade]]. I've always loved the latter - still lemonade. I need to learn to make it!
!! YSAC
https://www.youtube.com/watch?v=dt_ChNArfjY
* 1 cup of lemon juice (4+ lemons)
* 1 cup of water for simple syrup + 4 cups of water for mixing
* 1 cup of granulated sugar
# Juice the lemons
# Boil 1 cup water. Stir in the sugar until dissolved (making simple syrup)
# Combine the 1 cup lemon juice, simple syrup, and 4 cups water. Chill the lemonade.
# Serve chilled with ice and garnish with a lemon slice
!! Variant: Grapefruit + lime-ade
https://www.lottieanddoof.com/2012/01/special-juice/?utm_campaign=yummly&utm_medium=yummly&utm_source=yummly
* 3 tablespoons granulated sugar
* 1 cup water
* 2 tablespoons grated fresh ginger
* 2 ruby red grapefruits (regular grapefruits are fine, too)
* 2 limes
In a small saucepan, combine the water, sugar and ginger. Bring to simmer and stir until the sugar has dissolved. Remove from heat and let cool completely.
Juice the grapefruits and limes into a small pitcher. Strain the ginger syrup into the pitcher and stir well to combine. Chill until cold. Stir again before serving.
Letters that are done and ready to read/respond to are marked LevelZero. Otherwise, you can read them, but keep in mind that they're drafts and I may change them before "sending" them.
!! Letters from
{{From}}
!! Letters to
{{To}}
This article has not been started. It may be a dead link, a tag with no text, or have nothing but a blurb and/or a salient quote for some future article.
This article has just been started. It may have a skeleton, a few paragraphs, or a sketch of what is to come.
This article is done, and can no longer be considered a draft. I may change it or add to it slightly, but the bulk of the article is complete.
This article is not finished. It is a draft. It may be half-finished, or have a finished structure but not a full text.
This article is mostly done. While still a draft, I don't anticipate major changes before moving it to LevelOne. Consider this a "beta".
!! LevelTwo tiddlers by date modified
<<list-links "[tag[LevelTwo]sort[modified]]">>
This article is done. It is perfect, and unlikely to change barring some new discovery or drastic change in viewpoint.
Current status: a tag to use to collect my articles which are based mostly on external links.
{Dreams}: Get this shit into a web directory [[like kickscondor talks about.|https://www.kickscondor.com/foundations-of-a-tiny-directory/]]
<<chame-list-links "[tag[Links]]">>
!! Tibetan
* http://resources.tsemtulku.com/
!!! Chapman
* https://meaningness.com/
* https://vividness.live/
* http://buddhism-for-vampires.com/about
* https://approachingaro.org/
!! Zen
* http://hardcorezen.info/
* [[(improved) Classic Word List|http://tokipona.net/tp/ClassicWordList.aspx]]
* [[The classic tutorial|http://tokipona.net/tp/janpije/okamasona.php]]
** Allegedly, the author is a white supremacist. Oof. Maybe I'll have to snarf the good parts and hack up my own tutorial.
* [[Etymology|http://ucteam.ru/toki-pona/]]
* https://www.deviantart.com/meteodesigns
An article which is being composed live, i.e. I don't know the structure in advance, so I'm appending to it as it goes.
<<list-links "[tag[Livedraft]sort[title]]">>
```
<ZirconiumX> Hack and ifx
<ZirconiumX> ...
<ZirconiumX> Hack and fix
```
A close friend of mine, both offline and online. Another candidate for root access.
* Pronouns: they/them or any
* In a relationship with Tasos, who will occasionally be mentioned on this wiki.
<<list-links "[tag[Lofty]]">>
[img[laughatu.jpg]]
<<<
In fact, not a shred of evidence exists in favor of the argument that life is serious, though it is often hard and even terrible. And saying that, I am prompted to add what follows out of it: that since everything ends badly for us, in the inescapable catastrophe of death, it seems obvious that the first rule of life is to have a good time; and that the second rule of life is to [[hurt as few people as possible|Ahimsa]] in the course of doing so. There is no third rule.
<<< Brendan Gill
<<<
''Moore'': Inevitably, Mister Cage... These are nice people, but some of 'em are gonna laugh. Is that alright?
''Cage'': Of course! I consider laughter preferable to tears.
<<< [[John Cage, before a performance of "Water Walk"|https://youtu.be/SSulycqZH-U?t=191]]
The elephant in the room: I'm very silly, and the things I take seriously seem to be kind of trivial. I'm aware of this.
The wiki is not a serious intellectual piece; it's a brain dump, leaving few if any corners of my maze of a mind untouched.
If what you wish to do is to point and laugh, I'll not stop you. My silliest pieces will probably be tagged <<tag Waifuism>>; laugh away! I much prefer laughter to crying, mirth to sadness. If I make just one person smile, then it is good that I made this wiki.
LoperOS aka asciilifeform is one of //those// internet cranks. Specifically, he has an obsession with lisp and lisp machines, and wants to develop a modern-day lisp machine. Of course, his lisp machine, named... LoperOS... is nowhere to be seen, and is a first-class example of vaporware. His blog is about other projects, for the most part. I've spoken to him on Hacker News, and that solidified my mental image of him as a belligerent, arrogant creep.<<footnote "n" "He likes to hang out with your usual crowd of neoreactionary and proto-fascist poseurs, too.">>
Some of his earlier writings however (on hypercard especially) are interesting and insightful. They seem, ironically, to point towards that the real solution he wants is a hypertext system… not that he'd admit it, since he hates the web so much. I think if he gave TiddlyWiki a try, he'd be pleasantly surprised.
<<list-links "[tag[LoperOS]]">>
Reproduced without permission from [[the original|http://www.loper-os.org/?p=284]]. Eat shit, Stanislav.
!! I - Obeys operator
The operator shall retain full control of the machine at all times. In particular, the handling of the keyboard, mouse, and other human interface devices must take absolute priority over all other processing. The operator shall have the ability to issue commands and receive immediate confirmation of said commands at all times, regardless of system load.
!! II - Forgives mistakes
Information which entered the machine through deliberate operator action shall never be destroyed or otherwise rendered inaccessible except as a result of deliberate operator action to that end. No operator action shall lead to the destruction of information unless said destruction is the explicit and sole purpose of the action. If all non-volatile storage space that could hold full undo-information for operator-initiated actions is exhausted, the operator shall be informed immediately and given the opportunity to explicitly erase unwanted data or connect additional storage devices, thus preventing unintentional information loss.
!! III - Retains knowledge
Volatile storage devices (i.e. RAM) shall serve exclusively as read/write cache for non-volatile storage devices. From the perspective of all software except for the operating system, the machine must present a single address space which can be considered non-volatile. No computer system obeys this law which takes longer to fully recover its state from a disruption of its power source than an electric lamp would.
!! IV - Preserves meaning
Compilation is to be considered a form of caching, and thus shall happen solely behind the scenes, like all other forms of caching. (See the Third Law.) The machine is to accept no externally-introduced executable code except in the form preferred for making modifications (i.e. source.) All executable code visible during any kind of debugging session or accessible to the operator in any other way shall also be exclusively of this form. [[Nothing residing at any lower levels of abstraction shall be semantically relevant to the machine's operation. In effect, the machine behaves exactly like a "hardware interpreter" of a high-level programming language.|http://www.loper-os.org/?p=55]] Note that what the silicon actually does to achieve this is irrelevant so long as no programmer need ever be made aware of just how it does it.
!! V - Survives disruptions
If the machine encounters an error condition requiring the operator's intervention, the state of the now-halted process prior to this event shall be preserved, and the operator given an opportunity to correct the error using an interactive debugger and resume execution from the saved-and-corrected state. The debugger shall display the code which generated the condition -- and any other executable code on the system, upon request. All of the code shall be viewable and editable in the form preferred for modification. (See the Fourth Law.)
!! VI - Reveals purpose
All of the information contained inside the machine's storage array (see the Third Law), whether executable or not, shall be accessible at all times for inspection and modification by the operator, in the form preferred for modification. The operator shall have the ability to modify the functionality of any executable code within the system without cycling power or performing any similar ritual. No modification of any kind shall be able to render the means for undoing said modification (the keyboard and a spare instance of the built-in debugger) inoperable.
!! VII - Serves loyally
The machine shall never tell a lie to the operator. [[It shall obey all orders given to it through the human interface devices, without attempting to pass judgement on their legality or morality. The machine shall not put the interests of any third party (including society in the abstract) above those of its operator.|http://glyf.livejournal.com/46589.html]]
{{Text Art: Lord Shiva||ASCII: 100%}}
* Mahādeva - the great God
* Maheśvara - great Lord
* Trilokinatha - Lord of Three Realms
* Parameśvara - Supreme Lord
* Višvanatha - Lord of the Universe
!! Mantras
!!! [[Shiva Panchakshara|https://en.wikipedia.org/wiki/Om_Namah_Shivaya]]
"""
ॐ नमः शिवाय
Om Namaḥ Śivāya
"""
Adoration to Lord Shiva; o salutations to the auspicious one; universal consciousness is one.
!!! [[Mahāmrityunjaya Mantra|https://en.wikipedia.org/wiki/Mah%C4%81mrityunjaya_Mantra]]
"""
ॐ त्र्य॑म्बकं यजामहे सु॒गन्धिं॑ पुष्टि॒वर्ध॑नम् ।
उ॒र्वा॒रु॒कमि॑व॒ बन्ध॑नान् मृ॒त्योर्मुक्षीय॒ मा ऽमृता॑त् ।
oṃ tryambakaṃ yajāmahe sugandhiṃ puṣṭi-vardhanam
urvārukam iva bandhanān mṛtyor mukṣīya mā 'mṛtāt
"""
tryambaka - three eyed one, i.e. lord Rudra i.e. Shiva
<<<
Tryambaka we worship, sweet augmenter of prosperity.
As from its stem the cucumber, so may I be released from death, not reft of immortality.
<<< https://www.sacred-texts.com/hin/rigveda/rv07059.htm
RV 7.59.12, Yajurveda (TS 1.8.6.i; VS 3.60).
<<chame-list-links "[tag[Lord Shiva]]">>
<<chame-list-links "[tag[Lore]]">>
<<<
"""
Konata: Well, let's get going.
Miyuki: Let's go!
Tsukasa: Hmmnnn
Kagami: Stop messing around and start already!
"""
<<<
It's so good to see this opening again. What a cute dance. I've noticed that the girls make a heart gesture in the opening.
DADADADA
Even the adults get a cameo including sojiro being a creep
I love this opening so fuckidng much....
The opening sketch is Konata creaming the competition in a running race. she's not in a sports club so she can watch late night anime
"speedy lady"
The infamous choco cornet sketch. She drinks milk to cool off. Miyuki appears first.
Now they're talking about other food. I forgot about how foody the first episode is.
Kona's first thonk
Kagami is already mentioned as being scary.
Kona pushes the ice cream with her tongue ~gui gui~
She likes worcestor sauce curry, and soy sauce fried eggs.
TSUKASA LOVES MAYO
7 minutes have passed and they're still talking about food.
Konata really doesn't want people to flip beef tongues.
---
Kagami is already talking about boys kidnapping her
Konata plays adult games but she's only 17 as of this episode!
---
Miyuki is perfect and got great grades. Clumsy Miyuki moe!
Konata explains Moe
"Glasses are niche" explains Kona
Miyuki is scared of contacts or putting things in her eyes (this will come back)
Konata thinks miyuki is super cute
-----
Kagami's cold! Konata doesn't have to worry about flu because she's stupid!
Miyuki explains the difference between cold and flu.
-----
Konata is sad Tsukasa didn't disagree that she's dumb
----
Sleepy Kagami! Kona visits. Says Kagami is cute when she's sleeping.
Kagami goes maximum tsun. Then deredere! Then Kona ruins it by being after the homework, so kagami goes tsun again! "Get out."
Miyuki looks ADORABLE
oh, kagami is student council
"Yare Yare Dayou"
Miyuki is super sweet about Kona
Tsukasa wakes up super late, but Miyuki is super sweet to her too. Now we see how sleepy tsukasa is!! Cute pajamas, says miyuki
"Endless loop of dumb and dumber"
-----
Girls are getting their measurements.
Kagami is worried about her boobs.
Tsukasa is embarrased because she's wearing character print underwear
Konata is sad she didn't grow
Miyuki is happy for some reason, and gets yelled at by kagami
-----
Girls are talking about their social life.
Konata is talking about how she's in an mmo. She tells stories about it. There's a hikki boy
Konata fights off a sketchy foreigner to befriend tsukasa!!
Poor Gaikokujin-san was just after directions.
----
It's that time of year again... the sports are getting in the way of her late night anime!
Strawberry shortcake... IT's back to food! Kagami fails to impress Kona. They ate.
Kagami is not impressed at Konata's lack of other irl friends. Konata had a middle school friend who wanted to be a wizard.
---
The first lucky channel! First appearance of akira and shiraishi!
Postcards. Akira-san: how much are you paid?
Akira goes straight into cynical mode. I think her parents are divorced.
Akira goes back to cute at the end!
Akira's first bullying of shiraishi!
----
Girls are karaoke-ing.
Kona is gonna sing! SPACE IRONMAN KYODAIN!
Konata is VERY LOUD it's very cute
---
Kona's sleepy even after sleeping a lot, what's up with that? Next time, "Effort and Results!"
56-57 mm x 81-82 mm = 2.2 in x 3.2 in
<svg class="tc-image-button" version="1.1" id="Layer_01" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="22pt" height="22pt" viewBox="0 0 824.979 796.074">
<circle fill="#3F3F3F" stroke="#231F20" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" enable-background="new " cx="594.65" cy="678.35" r="116.217"/>
<circle fill="#E01F1F" stroke="#231F20" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" enable-background="new " cx="230.329" cy="678.35" r="116.217"/>
<circle fill="#3FB93F" stroke="#231F20" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" enable-background="new " cx="117.748" cy="331.86" r="116.216"/>
<circle fill="#3F3FFF" stroke="#231F20" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" enable-background="new " cx="707.231" cy="331.86" r="116.216"/>
<circle fill="#FFFFDF" stroke="#231F20" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" enable-background="new " cx="412.49" cy="117.717" r="116.217"/>
</svg>
<<<
This game will eat you alive.
<<< Anonymous
<<<
I have my 10,000 hours in this game. I won a SCG 5k and went second day at their annual tournament (I don't play standard). I have an excellent record against professional players in competitive play. Overall, I actually made money playing magic, though it is clear to me that the opportunity costs were ridiculously high. I wish I spent my time on something else.
<<< [[h0p3]]
<<<
Little [[chameleon]], you surely have better things to be doing.
<<< [[LambdaMuRinpoche]]
Magic is not a card game. It is a lifestyle.
For me, it's a way to meet cool people and have fun while being social (at least more social than I would be otherwise). As an introspective little introvert it's the closest I can get to a social life without the pressure of developing (way too late) the set of skills I need to do so otherwise in our late-capitalist hellscape.
I play weekly at FNM. Until I finished [[my Korvold deck|Deck: Sac-so-phone]], that was mostly Standard play, but now it's more EDH/Commander play. I find that there's less pressure than playing Standard, more banter and fun around a deck of cards. It's closer to [[playing D&D|Roleplaying]] (which, let's face it, I'd rather be doing). Many of my [[Senpai]] and other people close to me play Magic:
* [[The Abyssal]] (who taught me how to play, built my standard deck, and comes with me to FNM every week)
* [[Nobu]]
* [[h0p3]]
* My sister
<<chame-list-links "[tag[Magic: The Gathering]]">>
Magnasanti is a truly terrifying simcity 3 saved game made by a mad genius of an architecture student.
https://rumorsontheinternets.org/2010/10/14/magnasanti-the-largest-and-most-terrifying-simcity/ ([[archive.ph|http://archive.ph/9riXn]])
I think the video correctly captures the raw horror of this creation: https://www.youtube.com/watch?v=NTJQTc-TqpU
* https://theoutline.com/post/7373/you-cant-beat-an-unwinnable-game-you-break-it?zd=1&zi=2b5wjzpi
* https://www.moma.org/interactives/exhibitions/2013/designandviolence/sim-city-magnasanti-vincent-ocasla/ ([[archive.ph|http://archive.ph/IyaVy]])
A video from jreg which probably outlines what living in magnasanti (and normality rpg in general) is probably like: https://www.youtube.com/watch?v=gFMaX6ZS_vU
<<<
Mahakala has never been known to [[harm one being, even in the slightest manner|Ahimsa]], because he is constantly benefiting beings through the continuous play of the enlightened mind.
<<< Khenpo Karthar
{{Text Art: Mahakala||ASCII: 80% Left}}
''OM. MAHAKALAYE SOHA.''
External, not bad: http://mantrasmeditation.com/buddhist-mantras/mahakala-mantra-tibetan/
Something I will need to learn how to make.
For now, you can buy a mixer and some white rum. Garnish with an orange wedge and a maraschino cherry.
I'll be running a campaign with [[Zodai]] and [[The Abyssal]]!
[[Maid RPG quickstart|https://cdn.discordapp.com/attachments/638602190000488464/638602520221974537/maidfast.pdf]]
The likelihood of me ever updating my MAL is pretty much zero, so I'm going to make a list here instead tehepero~
This is probably 100% going to be stuff I read 2019 onwards. I don't remember at what chapter I stopped reading Bleach, for example, because that was like 10 years ago.
Oh, uh, don't click on the links at work. Many of them are either ecchi anyways, or have ecchi front covers/credits pages.
My taste is pretty trashy. I like romance manga, often featuring unique or interesting girls as protagonists or deuteragonists. I just like the doki-doki stuff, y'know?
I actually use [[mangadex|https://mangadex.org]] now, but I'll try to keep this list updated. If you're interested, lmk and we can swap friend reqs.
!! Backlog
* ø
!! In progress
* Midashitai Giya-san to Midarenai Tadamichi (caught up)
** I love this megane so much.
** A super nerd who has ascended past a super nerd!? SUPER NERD 2?!
* https://mangadex.org/chapter/29233/1
* Sono Bisque Doll wa Koi wo Suru (caught up)
** Cute and lovely.
** A peek into the wonderful world of cosplay!
* Seifuku Aventure Chemical Reaction of High School Students [[Chapter 22 (caught up)|https://mangadex.org/title/13610/seifuku-aventure-chemical-reaction-of-high-school-students]]
** Awww, I have a weakness for cute inchous <3
* Satou-san Who Sits Next to Me (caught up)
** Cute and wholesome, with a touch of precociousness
* Pashiri Na Boku To Koi Suru Banchou-san [[Chapter 48 (caught up)|https://mangakakalot.com/chapter/pashiri_na_boku_to_koi_suru_banchousan/chapter_48]]
** I AM ADDICTED TO DELINQUENT GIRLS YOU CANNOT STOP ME
* Love is Still Too Early for Himeno-chan (caught up)
** This is just too sweet.
** Fantastic if you like Takagi-san
** [[Top Ten Anime Badasses|https://cdn.discordapp.com/attachments/303510944363839489/629825413673385985/20191005_004032.jpg]]
** The best characters:
*** Himeno-chan herself. Like Tomoko, she's loveably inept and you can't help but root for her!
*** The tomboy friend (for obvious reasons)
*** Ouji's brother. My boy.
**** "BIG BROTHER POWER!"
**** "I... I'M NOT POPULAR!"
**** "I'M NOT STYLISH!"
**** I feel like he's slowly attracting Himeno-chan's sister, hehe.
* No Mattter What You Say, Furi-san Is Scary (caught up)
** The story about a scary-looking girl who's pure at heart falling for an ordinary boy who's ordinary at heart
** Super cute. Furi-san is lovely.
** Also features an adorable sensei character, which always ticks my boxes.
* Bandai Kaname wa Asobitai (caught up)
** An honor student accidentally ends up in an after-school club with his arch-rival, a girl called Bandai Kaname. The two end up bonding while playing with classic kid's toys.
** This one is great fun. I love the dynamic between Bandai and the protag.
** Poor childhood friend-chan ;(
* Watamote [[Chapter 3|https://mangakakalot.com/chapter/its_not_my_fault_that_im_not_popular/chapter_3]]
** I probably shouldn't relate to this one, but I totally do.
*** "Who do you do it for, /r9k/?" "Myself ~~but mostly Tomoko~~"
*** She's supposed to be a stupid dweeb that you laugh //at,// but a lot of stupid dweebs like me see ourself in her...
*** She's fucking adorable tbh.
* Tejina-senpai [[Chapter 10|http://m.mangatown.com/manga/tejina_senpai/c010]]
** Fun with a silly senpai
* Tonari no Kaibutsu-kun
** A serious girl has a chance encounter with a delinquent boy... who's unexpectedly sweet...?
** I really enjoyed the anime, but it left it at a NoEnding
* ''NSFW!'' [[Hajimete no Gal - Chapter 87|http://mangareader.me/hajimete-no-gal-chapter-87#1]]
** A no-good guy asks out a gyaru girl, and, surprisingly, she says yes. Hijinks ensue.
** The anime was pretty funny. I watched the dub out of laziness, and it was a lot of fun. The gyaru speech got translated into valley girl slang.
*** "You damn sjw millenials!"
*** Wasn't a fan of the anime-only stories.
* Koi dano ai dano - [[Chapter 19|https://mangakakalot.com/chapter/koi_dano_ai_dano/chapter_19]]
** A cynical high-school love story?! JIMIKO POWER
* Takagi-san - [[Chapter 114 (caught up)|https://mangakakalot.com/chapter/karakai_jouzu_no_takagisan/chapter_114]]
** Takagi-san playfully teases her classmate, who she obviously likes. Pure and cute.
* Love and Lies chapter [[18|https://mangarock.com/manga/mrs-serie-139363/chapter/mrs-chapter-139448]]
* Please don't bully me, Nagatoro (caught up)
** Nagatoro loves to bully her senpai... and no-one else...?
* [[Koisuru Yankee Girl|https://mangarock.com/manga/mrs-serie-139286]]
* [[Onidere|https://mangarock.com/manga/mrs-serie-185163]]
** Probably won't finish this one. It's basically a sillier Yandere Kanojo. It did give me [[the best panel screencap in my collection,|https://cdn.discordapp.com/attachments/395357930867654656/608553267601080330/Screenshot_20190703-164802_Firefox.jpg]] though.
!! Completed
* Ashigei Shoujo Komura-san
** The story of the romance between an ordinary guy and an acrobatic girl who uses her feet like hands
** "The first kiss I ever had... was with a foot"
** Fell to axe-chan, the only creature more deadly than truck-kun.
*** I can see why. This one was always a guilty pleasure.
* Yandere Kanojo
** Plain glasses-boy dates a dangerous yankee girl.
** Hilarious. Not really about romance, though it does feature loving couples, more about the antics and characters.
* Tomo-chan
** Tomo-chan is a sweet tomboy with a crush on her best friend - the problem is, he sees her as a guy!
** Tomboys are lovely. This was a sweet story. It kinda lost a bit of momentum towards the end, though we did get a kiss. Ahhh. Call me a hopeless romantic, but I love happy endings.
* Real Girl
** Extremely shojo! I liked it, but I don't really have exacting standards, lol.
* Suki x Suki
** Tsundere invisible girl oh my!
** This was pretty nice, lol. A little bit silly and slightly ecchi.
Before Mass Effect 3, I called myself a gamer. Afterwards, I would never call myself that unironically again.
What exactly happened?
I expect this article will be meandering and weird. It is a [[Livedraft]]. I'll link two other people's takes on it, if you prefer, before getting deep into the weeds and offering my own.
!! Shamus Young's Mass Effect Retrospective
{{Shamus Young's Mass Effect Retrospective}}
!! Tasteful, Understated Nerdrage
If you're not in the mood to read almost a hundred blog posts, [[this video|https://www.youtube.com/watch?v=7MlatxLP-xs]] is a good primer to what went wrong and why we hated it.
!! [[chameleon]]'s take: Mass Effect 3, the long-awaited [[Anti-Review]]
Talking about this game... Even thinking about it invokes hyperbole. I could throw down my controller, AVGN style, scream "THIS IS THE WORST GAME I EVER PLAYED", "THIS GAME RUINED MY LIFE", whatever. I don't know, but I think my psyche may be exaggerating.
Fuck. It came out in March 2012. It was one of the few games I bought new (I was not well off, growing up). I beat it shortly before going to university. I still remember everything about the game, about this FUCKING game, clearly as day, even now, almost a decade later. After I saw the ending, that I'd worked so hard for, grinded in an unfun multiplayer for, worked so hard to get to be as good as possible, was rewarded for my efforts with a weird breaking of the worldbuilding, a candy-colored non-ending to the Reaper thing, and nowt but Shepherd's raggedy breath differentiating it from just playing the game lazily, rendering my efforts wasted... [[I'll come in again.|https://youtu.be/Cj8n4MfhjUc?t=74]]
After I poured a hundred-plus hours into this game, after I finished it once and for all - I literally, unironically, turned my 360 off, went to the next room so I wouldn't disturb my siblings, and screamed into a pillow. I didn't turn the 360 on again for weeks. I complained on Facebook (which I still used back then, lol) and said I was going to write a better ending as fanfic (which I never did). The only games I played for years afterward were Team Fortress 2, CS:GO, and a couple of H-games (don't judge, I was a horny teenager). I had reactionary friends at uni, and when they started talking about Gamergate I mostly brushed it off, because "I'm not a gamer". I've not since got involved in anything in that scene; I don't own an xbone or a ps4, and my Switch is mostly used for the obligatory [[Pokemon]] games and [[ACNH]]. What I'm trying to say is, this game had a really deep impact on my life, but probably not in the way the developers intended.
So, this [[Anti-Review]] thing is new, maybe a little scary. I'm not sure exactly what I want to say in this type of article, who's going to be interested in reading it, whatever. So I'll riff on some of the clichés of reviews and see if I can't make them more thoughtful and less by-the-numbers.
Much ink was spilled about how the series became more casual over time. I suspect it didn't sell well among a core audience, or at least not well enough to justify its budget (which got bloated in time) on top of EA's infamous crunch culture. Still, the third game easily has the best visceral experience, even if the enemies you're fighting aren't much to write home about, and even if there are many, many frustrating moments (especially on Earth, where there are quite a few Nintendo Hard™ fights). The problem is, no-one ever played this series for the gameplay. The first game's gameplay was janky and unfun in places; it was made up for by the awesome worldbuilding and a story where you could basically be Captain Kirk. If all the focus for the second and third games went into fixing this, it's no wonder the worldbuilding and storytelling suffered so much.
So about that story. Mass Effect 2 already had a weird conceit; you were working for Cerberus, a minor villain faction from the first game, who - all of a sudden - are incredibly powerful. I really didn't like working for those dickheads; I especially didn't like that you had to start over from scratch, recruiting and rebuilding your team. I REALLY hated that this shit was back in Mass Effect 3; I should've been established by now. At the end of Mass Effect 2 I'd double-crossed the obviously evil Cerberus, had a team of badasses of various stripes, and was ready to go back to Alliance space to prepare for the war against the reapers - and all that gets thrown in the trash when you wake up in a shitty version of Canada, apparently on trial for crimes committed in DLC (which I never bought or played) and/or vague "the shit you've done" (I'm a Specter! I could've done worse in the original game with no consequences!). When Harbinger showed up to invade Earth, and inadvertently spring me, I almost felt relief. It feels like the plot came back. You still have to go on the Grand Tour and recruit all the allies you should've already had with you, though!
In fact, the entire game's conceit almost feels like that boring early section of the other games. At least in the original it was mostly confined to the Citadel (where you recruited Wrex, Tali, and Garrus, only needing to go into the overworld to get Liara) which was an actually interesting area for worldbuilding. Here, you have to not only re-recruit your squad-mates (in Tali and Garrus' case, for the third time in a row) but also get the various factions of the galaxy on your side. While it fits thematically, this is really what we should've been doing in Mass Effect 2. It's too little too late once the Reapers have actually arrived.
In fact, everything about this game feels like it invalidates something about the earlier games, or even its own themes. Part of the reason the ending was so infuriating was that it directly contradicted one of the few good parts about the third game - the Quarian/Geth resolution. At the end of that plot, you manage to resolve the organic VS synthetic conflict, seemingly for good, and in a way that feels thematically consistent with ideas expressed in the rest of the trilogy. All that is thrown away when the Starchild tells you no, organics and synthetics must ALWAYS fight, and that's why the reapers exist???? what. no. That's the type of broken thinking YOU THE PLAYER disproved just a few hours ago! This whole thing feels like it doesn't understand itself, doesn't understand anything the trilogy was about from the start. We learned back on Virmire that the Reapers weren't meant to be something we can understand. They were mysterious, alien. I almost think it would've been better if the games had never actually shown another Reaper. Sovereign could've been a lone agent (hence its name), and 2 and 3 could've been about preventing the Reaper cult from bringing them back. Or, it could've been that the Reaper threat was ended by your actions in the first game; and the other games are about other weird, alien threats in a hostile galaxy. That may have even redeemed the Collector storyline in 2, which in the grand scope of the trilogy now feels like filler. Still, the clichéd "ai bad" which was old 40 years ago is the "moral", as if [[AI was actually possible|The Emptiness of "AI"]], or as if the Reapers would care about what organics got up to. Even fucking anime got this one better - QB's motivation in //Madoka Magicka// was preventing the heat death of the universe, now //that// is an interesting, alien motivation.
That's not even getting into the fucking bizarre worldbuilding of Cerberus, a terrorist organization that's apparently so well-funded it can outwit the Alliance & Council forces at every turn, despite being transparently evil and terrible and not supported by hardly anyone in the universe. I do wonder if the age-old problem of the writers wanting to tell a different story than the one they were saddled with comes up (the other canonical examples here are book 4+ of Read-Another-Book, and //The Legend of Korra//); did they want to tell a story about intrigue and backstabbing rather than an eldritch space horror? Were they more interested in military sci-fi rather than the first game's more cerebral, with deep worldbuilding, firm sci-fi?
I wonder if Mass Effect 3 is just another casualty of the slow decay of Bioware as a studio. The partnership with EA was abusive almost from the start. That's not to say publishing with EA is an automatic death sentence<<ref "dbe">> - even recently good games have been published under their name<<ref "ts4">> - just that EA's corporate culture of release-often, lots-of-dlc clashes with Bioware's culture of long, cerebral, single-player games. I swore off Bioware after ME3, and by the looks of //Dragon Age: Inquisition// and //Anthem//, I did the right thing. The next game in the Mass Effect franchise - and I was astonished they had the gall to make one after what they'd done to it with ME3 - was equally terrible, if not worse than ME3. I never played //Andromeda//, but I doubt I missed anything, judging by what I've heard through the grapevines of janky gameplay mixed with ridiculous story and bad worldbuilding.
Dialling back from BiowEAre and focusing once again on the game at hand, it wouldn't be right to forget about the so-called "ending controversy". This was the proto-Gamergate, in some ways, though not in others - people that played it were angry, but not angry enough to go around harassing others. Still, people were very angry. I'm not the only one that felt the ending was a slap in the face - though I'd go further and say the entire game was, maybe the entire series after the first one. They released a "patch" which added a "fuck you" ending and changed some of the surface level issues - but left the core issues still there, both with the game and with the ending. I was unsatisfied, and I wasn't the only one.
This game ruined the series retroactively. I can't go back to the first one with the same attitude I had played it with before; similar to rewatching //Game of Thrones// (though unlike re-watching [[A:TLA]]), when you know that what it's leading to, what it had been building up to, the result of the four-year-wait, was pure shit. I'm sure a lot of fans (and I include myself in this) felt that all the time they'd spent playing and replaying the first two games had been wasted, that they shouldn't have ever picked it up, should've gone and done something else instead.<<ref "go">> The word "entitled" was thrown around a lot; y'know, "these people are just putting their art out there, if you don't like it that's on you". I guess I see where this argument is coming from, but 1) it comes off as awfully smug, "you stupid nerds, imagine thinking a videogame could be good, could have something to say beyond happy-happy-fun-fun or shooty-shooty-gun-gun" 2) videogames aren't art in the same way a painting, a movie, a piece of music, or a novel are. I don't wonder if my contempt for the idea of videogames as art, which I had for a brief few years there, came from this. My embracing of plot-is-an-excuse games like Doom, of John Carmack's "Story in a game is like a story in a porn movie. It's expected to be there, but it's not that important" sentiment, comes from the one game I played that tried to have a plot ballsing it up to such a huge degree. But still, I invest a lot more time in a game than I do in any other form of art (except maybe a novel series, if it's very long and I read slowly), and of course videogames have that devil, interactivity, as a defining part of them. In a nutshell, I don't think the "entitled gamers" narrative is much more than a game critic cliché, a way to avoid getting in hot water with publishers since the press is so incredibly nepotistic, a "shut up and consume quietly, prole".
I think in order to understand the industry today, and especially the press, it will help to both understand Mass Effect 3, what it did wrong, and what the reaction was in the culture of the day. From the impotent (or tasteful) nerdrage of the gamers to the PR to the corporate apologetics of the press, everything about this game and the culture around it is a dark mirror of the gaming subculture.
I used to long, PLEAD for a second video game crash, one nastier and more devastating to the industry than [[the first one|https://en.wikipedia.org/wiki/Video_game_crash_of_1983]]. This nihilistic spite, of hoping these nepotistic journos, nickel-and-diming corporations, and sycophantic fanboys get their just desserts of a cleansing fire burning their entire shitty hobby to the ground, mirrors perfectly the nihilistic destruction of the Mass Effect universe in this worst of all bad games. Such a thing never came to fruition - the PS4 and Switch were too successful, Fortnite has filled Epic's pockets for potentially ever, etc - and besides, I can't help but find such a vicious, misanthropic wish a mite distasteful. Still, one can't look at the videogame scene today and not find large swathes of it bleak, uncompelling, even undead. What is there to love here?
The story of Mass Effect 3, for me, has very little to do with the game itself, and much more to do with the real world. It's a coming-of-age story, a story about finding that I was wasting my time with this hobby, and about moving on. Whenever I flirt with escapism, with [[Solipsism]], with the self-destructive side of [[Waifuism]], I remember the tale of Mass Effect 3, and I move on.
----
<<footnotes "dbe" "Though death-by-EA it has been the fate for studios ranging from Origin to Westwood to non-Sims Maxis">>
<<footnotes "ts4" "patched TS4 & //Need for Speed: Heat// come to mind">>
<<footnotes "go" "Like going outside and getting a girlfriend lololololol nice one haha very funny hahahaha good joke everyone laugh roll on snare drums curtains">>
> Is A Delusional Mask Of Sanity
---
I actually welcome the contemporary "~McMindfulness" movement with
open arms; while yes, it does water down doctrine and sanitize it for the
masses, it's in many ways helpful to do this - without being burdened by
thousands of years of religion, the Buddha's message arguably becomes clearer,
and the helpful practice of meditation is peeled away from renunciation and
other historical baggage. Arguably more people, myself included, are helped by a
Buddhism stripped of its devotion to ancient, now-inscrutable suttas and
confusing, contradictory, sometimes even unhelpful doctrine. If those Christians
that really find positive meaning in Christianity want to spread it to others,
especially those like myself that aren't receptive to fire-and-brimstone
lectures, empty, hypocritical guilt-based morality, and glorified excuses for
bigotry, they could learn a lot from this post-Buddhism.
Warning: Links lead to NSFW images!
!! Yamada Minori (Minorin)
https://gelbooru.com/index.php?page=post&s=view&id=5011094
* Favor: 10
* Spirit: 0
|!Athletics|3|
|!Affection|1|
|!Skill|3|
|!Cunning|1|
|!Luck|1|
|!Will|0|
Type: Boyish Cool
She wears a red uniform. She has golden hair. Her eyes are gray.
She has cute freckles. She's a vampire.
She's a maid for bridal training reasons.
Her stress explosion is to sleep all day.
Her special skill is lockpicking.
!! Hashimoto Airi (Ai-chan)
https://gelbooru.com/index.php?page=post&s=view&id=4648603
* Favor: 20
* Spirit: 20
|!Athletics|3|
|!Affection|2|
|!Skill|3|
|!Cunning|3|
|!Luck|1|
|!Will|2|
Type: Sexy Heroine
She wears a brown uniform. Her hair is navy blue. Her eyes are pale.
A raven (Noire) sits on her shoulder, cawing occasionally. She talks like a mobster.
She's a maid for the money.
She drinks to cool off.
"If you win a roll of Cunning Vs.
Athletics, you can restrain someone
from doing something indecent."
!! Yokoyama Kaho
https://gelbooru.com/index.php?page=post&s=view&id=4817251
* Favor: 30
* Spirit: 10
|!Athletics|2|
|!Affection|3|
|!Skill|1|
|!Cunning|1|
|!Luck|2|
|!Will|1|
Type: Sexy Pure
She wears a chrome-like maid outfit. Her hair is green. Her eyes are indigo.
She can't sleep unless she takes sleeping pills. She has an overactive imagination.
She's a maid because she's massively in debt.
When something goes wrong, she complains endlessly.
"By taking 2D6 Stress, you can
make a request that can’t be refused."
-----
!! template
```
Starting Favor = Affection*10. Spirit = Will*10
|!Athletics| |
|!Affection| |
|!Skill| |
|!Cunning| |
|!Luck| |
|!Will| |
|!x | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|!floor(x/3) | 0 | 1 | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 4 |
```
<<<
A minor case major depression
<<< [[Snowing, "So I Shotgunned a Beer and Went to Bed"|https://www.youtube.com/watch?v=JXiBiNbxE-w]]
<<chame-list-links "[tag[Mental Health]]">>
<<list-links "[tag[Meta]]">>
<<list-links "[tag[Meta Tags]]">>
I really like heavy metal music.
!! Trad/Doom/Stoner Metal
* Black Sabbath (the Dio years are underrated)
* The Sword
* Sleep
* Electric Wizard
!! Power Metal
* Dragonforce
* Altaria (Taage albums)
* Edguy
* Early Helloween
* Freedom Call
* Power Quest
!! Thrash Metal
* Kreator
* Destruction
* Sodom
* Metal Church
* Vio-lence
* DRI (invented the blast beat!)
* Nuclear Assault
* [[Extermínio|https://www.youtube.com/watch?v=I9ybtkUZ3q8]]
* Slayer (first four records i.e. Show No Mercy→Reign In Blood inc. Haunting the Chapel)
* Metallica (demos)
!! Death Metal
* Death (duh)
* Entombed
* Unleashed
* Nile
!! Black Metal
* Venom
* Inquisition
* Mayhem (Dead Bootlegs + Deathcrush + DMDS)
https://microlite20.org/
<<<
Do you remember when the gaming table was full of pizza and soda, not rulebooks, miniatures and dungeon tiles? Do you yearn for a role-playing game that doesn’t require weight training to carry all the books? Do you want to be able to hold all the rules in your head – or in your back pocket? And do you still want to use all those lovely monsters, adventures and game worlds too? So do we!!
<<<
A micro, even nano, d20-style TRPG.
<<list-links "[tag[Milestones]]">>
//I quote these all the time, might as well put them all in one place.//
# Accept everything just the way it is.
# Do not seek pleasure for its own sake.
# Do not, under any circumstances, depend on a partial feeling.
# Think lightly of yourself and deeply of the world.
# Be detached from desire your whole life long.
# Do not regret what you have done.
# Never be jealous.
# Never let yourself be saddened by a separation.
# Resentment and complaint are appropriate neither for oneself or others.
# Do not let yourself be guided by the feeling of lust or love.
# In all things have no preferences.
# Be indifferent to where you live.
# Do not pursue the taste of good food.
# Do not hold on to possessions you no longer need.
# Do not act following customary beliefs.
# Do not collect weapons or practice with weapons beyond what is useful.
# Do not fear death.
# Do not seek to possess either goods or fiefs for your old age.
# Respect Buddha and the gods without counting on their help.
# You may abandon your own body but you must preserve your honor.
# Never stray from the way.
<<<
"Miyazaki Patchwork" and the background image refer to the works of Hayao Miyazaki, famous for films that in aggregate suggest a kind of man/environment synthesis with traditional-spiritual concepts … a kind of "peaceful ruins" world with scattered agrarian societies that have access to pieces of futuristic technology but don't live in systems defined by them
<<< /u/~DegenerateRegime
<svg class="tc-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
<g fill-rule="evenodd">
<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,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>
</g>
</svg>
<<<
I do not step shyly back from your property, but look upon it always as my property, in which I ‘respect’ nothing. Pray do the like with what you call my property!
<<< Max Stirner
Playful selfishness. Ethical egoism. Ironic solipsism to trigger the libs.
<<<
must kinda hurt to have your worldview torn to shreds by a [[shitposting|Shitposting]] [[chameleon]]
<<<
<<chame-list-links "[tag[Monadism]]">>
//The future philosophy to which Nietzsche's "Beyond Good and Evil" was a prelude.//
# Introduction
# [[A Quick Primer]]
# On Previous Philosophies
# On Meta-rationality
#* Meditations on "eternalism"
#* [[Chapman's Critics]]
#
# [[A-Theism: A Given]]
#
# Who is the Monad?
#
# Symbols and Symbolism
#
# [[Devils & Devilry]]
#
# Appendices
## [[The Myth of Buddhism]]
[[Transcript of the video|https://www.youtube.com/watch?v=R_FQU4KzN7A]]
"""
hello potion seller. I'm going into battle and I want your strongest potions
my potions are too strong for you traveller
potion seller, I tell you I'm going into battle and I want only your strongest potions
you can't handle my potions. they're too strong for you
potion seller. Listen to me. I want only your strongest potions
my potions would kill you traveller. you cannot handle my potions
potion seller! Enough of these games! I'm going into battle, and I need your strongest potions!
my strongest potions would kill you traveler! you cant handle my strongest potions! You'd better go to a seller that sells weaker potions!
potion seller, I'm telling you right now. I'm going into battle. And I need only your strongest potions.
You don't know what you ask, traveller! My strongest potions would kill a dragon, let alone a man. You need a seller that sells weaker potions, because my potions are too strong!
Potion seller! I'm telling you I need your strongest potions! I'm going into battle! I'm going to battle and I need your strongest potions
You can't handle my strongest potions! No one can! My strongest potions are fit for a beast let alone a man
Potion seller what do I have to tell you to get your potions? Why won't you trust me with your strongest potions, potion seller, I need them if I'm to be succesful in the battle!
I can't give you my strongest potions because my strongest potions are only for the strongest beings and you are of the weakest!
Well then that's it, potion seller! I'll go elsewhere! I'll go elsewhere for my potions!
That's what you'd better do!
I'll go elsewhere for my potions and I'll never come back!
Good! You're not welcome here! My potions are only for the strongest and you're clearly not of the strongest you're clearly of the weakest.
You've had your say potion seller but I'll have mine. You're a rascal! You're a rascal with no respect for knights! No respect for anything... except your potions!
Why respect knights? When my potions can do anything that you can!?
"""
!! Zero-color
Colorless
!! One-color
* White (W)
* Blue (U)
* Black (B)
* Red (R)
* Green (G)
!! Two-color
* White-Blue: Azorius
* White-Black: Orzhov
* White-Red: Boros
* White-Green: Selesnya
* Blue-Black: Dimir
* Blue-Red: Izzet
* Blue-Green: Simic
* Black-Red: Rakdos
* Black-Green: Golgari
* Red-Green: Gruul
!! Three-color
* White-Blue-Black - Esper
* White-Blue-Red - Jeskai
* White-Blue-Green - Bant
* White-Black-Red - Mardu
* White-Black-Green - Abzan
* White-Red-Green - Naya
* Blue-Black-Red - Grixis
* Blue-Black-Green - Sultai
* Blue-Red-Green - Temur
* Black-Red-Green - Jund
!! Four-color
* Blue + black + red + green = Glint-Eye (Glint), or Chaos, or Non-white
* Black + red + green + white = Dune (or Dune-Brood), or Aggression, or Non-blue
* Red + green + white + blue = Ink-Treader, or Altruism, or Non-black
* Green + white + blue + black = Witch (or Witch-Maw), or Growth, or Non-red
* White + blue + black + red = Yore (or Yore-Tiller), or Artifice, or Non-green
!! Five-color
* Five color
* WUBRG
//Stop! Do you really want to learn Zen from a shitposting, pervy weeaboo lady?//
<<<
The term is often used or translated to mean that the question itself must be "unasked": no answer can exist in the terms provided. Zhaozhou's answer, which literally means that dogs do not have Buddha nature, has been interpreted by Robert Pirsig and Douglas Hofstadter to mean that such categorical thinking is a delusion, that yes and no are both correct and incorrect.
…
The word features prominently with a similar meaning in Douglas Hofstadter's 1979 book, Gödel, Escher, Bach. It is used fancifully in discussions of symbolic logic, particularly Gödel's incompleteness theorems, to indicate a question whose "answer" is to
* un-ask the question,
* indicate the question is fundamentally flawed, or
* reject the premise that a dualistic answer can or will be given.[22]
"Mu" may be used similarly to "N/A" or "not applicable," a term often used to indicate the question cannot be answered because the conditions of the question do not match the reality. A layperson's example of this concept is often invoked by the loaded question "Have you stopped beating your wife?",[23] to which "mu" would be the only respectable response
<<< https://en.wikipedia.org/wiki/Mu_%28negative%29#The_Mu-koan
無 🈚 :u7121:
<<<
"""
I'm not partial to the martial
Or the plutocrats in their beaver hats
And the fascists have the outfits
But I don't care for the outfits
What I care about is music
And the communists have the music
"""
<<< They Might Be Giants
<<<
Without music, life would be a mistake.
<<< Friedrich Nietzsche, Twilight of the Idols
I love music, both playing and listening. It's one of the few things I've been consistently into since I was young.
My tastes are eclectic. You might as well browse through the tagged tiddlers to get an idea of what I like.
<<list-links "[tag[Music]] -[tag[Journal]]">>
Maniac is the vocalist of Mayhem
------
Not only was [[Scaruffi right about the Beatles|https://www.scaruffi.com/vol1/beatles.html]], but most other "influential" artists are not really worth listening to any more. Special mention goes to the Beach Boys. Pet Sounds is fucking shite.
------
Pick a song Elvis covered. Any of them. The original is better. ''ESPECIALLY'' fucking [[hound dog|https://www.youtube.com/watch?v=yoHDrzw-RPg]]
-------
Lil Richard said pansexual pride
-------
Emo songs are 1000000% better if they're about men (or, if sung by a woman, about a woman). On that note, almost every cap'n jazz song is about a man, don't @ me
-------
Ah yes, Helloween, that band with like 2 good songs that nonetheless was super influential. I'm seeing a pattern here. It's not age though, a lot of the other old power metal bands fucking SLAP
-----
Prog and jazz aren't pretentious, you just have no taste
-----
ITAOTS is unironically the greatest album of all time.
<<list-links "[tag[Music: Artists]]">>
<<list-links "[tag[Music: Genres & Scenes]]">>
Journal entries that have to do with my perennial interest: [[Music]].
<<list-links "[tag[Music]] +[tag[Journal]!sortan[]]">>
These are playlists of songs that I like that fit a theme together. I store them extra-wiki-ly as ~YouTube playlists.
<<list-links "[tag[Music: Mixtapes]]">>
<<list-links "[tag[Songs]]">>
* https://pixabay.com/photos/shark-fish-hammerhead-shark-164899/
I've not made up much of this; it's fun from various sources in the fantasy mashup zone. [[Alternate Fantasy Races]] for one of my sources - a cool 4chan thread.
* Surface elves are [[fey|https://tvtropes.org/pmwiki/pmwiki.php/Main/TheFairFolk]].
* Drow are not only elaborate schemers, but all of drow society is an elaborate, deep, ever-changing conspiracy that is so non-euclidean in nature you can participate just by thinking about it.
* Witches are Pratchett-style - they're midwives: https://throneofsalt.blogspot.com/2018/02/class-witch.html
* 4chan kobolds: they're mischievous little dragon-folk, but they sometimes bark or wag their tails like dogs.
* The various always-chaotic-evil types are actually just as likely to be civilized as humans are.
** Orc camps are just bandit/raider camps with extra steps.
** Kobolds are loyal to the pack, i.e. to the place they live and the residents thereof, so they often become watchmen
** A goblin is kinda like a green-skinned gnomey thing. Dipping the elf's ears in ink while they're sleeping, for sure...
* Fuck christianesque clerics & paladins. If you want to play a holy man, you'll play a sadhu or a yogi and you'll like it. If you need a healmonkey, you can find yourself a clothy mage.
** Speaking of India: third-gender and beyond, i.e. yes I'm trans yes I'm a witch is there a fucking problem
Coworker. Someone who has threaded the needle between doing something that'll make the world a better place & doing what will keep you alive.
Want to quickly anonymize a name? Use this go program!
[[Playground version here.|https://play.golang.org/p/NdIq-rEIPbG]] [[Gist here.|https://gist.github.com/japanoise/7a283cd770c06b52db3217131f138b44]]
```
package main
import (
"fmt"
"strings"
)
func anonymize(str string) string {
vowels := "aeiou"
consonants := "bcdfghjklmnpqrstvwxyz"
n := len(str)
sum := 0
ret := make([]byte, 5)
for i := range(str) {
sum += int(str[i])
}
alpha := (sum + n)%21
bravo := alpha%5
charlie := 20-alpha
delta := (bravo+alpha)%5
echo := (alpha + bravo + charlie + delta)%21
ret[0] = consonants[alpha]
ret[1] = vowels[bravo]
ret[2] = consonants[charlie]
ret[3] = vowels[delta]
ret[4] = consonants[echo]
retval := string(ret)
retval = strings.ReplaceAll(retval, "q", "sh")
retval = strings.ReplaceAll(retval, "c", "ch")
retval = strings.ReplaceAll(retval, "x", "kh")
return retval
}
func main() {
input := "chameleon izumi"
fmt.Println(anonymize(input))
}
```
[[score_under]] wrote a better version in python:
```
import string
from itertools import cycle, islice
VOWELS = 'aeiou'
REPLACEMENTS = {
'c': 'ch',
'q': 'sh',
'x': 'kh',
}
CONSONANTS = [REPLACEMENTS.get(c, c)
for c in string.ascii_lowercase
if c not in VOWELS]
def my_hash(input):
hash = 0
magic = 173 # an arbitrary prime
for c in input:
hash = magic*hash + ord(c)
hash = magic*hash + len(input)
return hash
def lcg_ish(seed, add=5, mul=348547):
seed = (seed + add) * mul
return ((seed & 1) << 31) | ((seed & 0xFFFFFFFE) >> 1)
def anonymise(input, length=5):
pool = cycle((CONSONANTS, VOWELS))
hash = my_hash(input)
out = []
for charset in islice(pool, length):
out.append(charset[hash % len(charset)])
hash = lcg_ish(hash)
return ''.join(out)
```
* Alfa
* Bravo
* Charlie
* Delta
* Echo
* Foxtrot
* Golf
* Hotel
* India
* Juliett
* Kilo
* Lima
* Mike
* November
* Oscar
* Papa
* Quebec
* Romeo
* Sierra
* Tango
* Uniform
* Victor
* Whiskey
* X-ray
* Yankee
* Zulu
<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}} dateField="created"/>
The most famous artists are Deep Forest, Enigma, some early Björk, and Enya.
Some rabbitholes:
* https://www.youtube.com/watch?v=9j4EVsnSsWk
* https://www.discogs.com/Various-Spirits-Of-Nature/release/859813 (not the same as the ~YouTube link)
* https://www.discogs.com/style/new+age
* Mormons
** https://longreads.com/2018/06/07/meet-the-new-mormons/
** https://longreads.com/2021/07/15/mormonism-hill-cumorah-pageant/?utm_source=pocket-newtab
** https://www.youtube.com/watch?v=Pl8B55MqOQo
* JWs
** https://www.youtube.com/watch?v=pIDQwhaeXBs
* $:/config/NewDaily/Text
* $:/config/NewReview/Text
* $:/config/NewReview/Tags
* $:/config/NewReview/Title
* $:/config/NewDaily/Title
* $:/ui/Actions/new-daily-tasks
* $:/ui/new-daily-tasks
* [[Wiki Review]]
<<list-links "[tag[New Daily Task]]">>
>What a coincidence. But we don't believe in coincidences.
I refer to Nobu in third person as "my guru". Rarely am I lucky enough to meet someone so profound, who has so much to teach me, and from whom I have already learned so much.
I do get kind of dewy-eyed talking about her. She was there for me at a very dark time in my life, showing me a light I didn't think was possible. If there was ever anyone that personified the word [[Senpai]], it was you, Nobu.
* Pronouns: she/her
* Books: "Illusions"; "The Book"
* Religiously esoteric, meta-dharmic, gnostic perhaps. No one tradition
* Taught me a thing or two about Tarot cards.
Because I know her PowerWord, I associate a certain song with her, and listen to it when I think of her.
! This is not a true ending.
Are you living in the real world?
* [[Go back.|Root]]
The level system is not relevant to this article, because it can have no definition of "done". This could be an ever-changing list, a [[Meta]] page, or a scratchpad or sandbox.
The usual way a weblog is formatted is in reverse chronological order (RCO); that is, the newest article appears first, followed by the second newest, third, fourth, etc.
This wiki does use an RCO-like format in places (category/[[TOC]]-level tags, using the `chame-list-links` macro, for example), but not strictly. Furthermore, beyond [[LevelZero]], articles make no claims of immutability, unlike the imposed finality of RCO.
Non-Linear Time means that the articles in this wiki may call back to the past or forward to the future. I fairly frequently make links to articles that are not done yet, or that are outlines of ideas to be sketched in future. I also go back and make edits and clarifications to the important articles in the wiki.
This concept is one of the great advantages of the web as a platform, by comparison to print: the only canonical version is the one on the server, which is quickly changeable, rather than hundreds, thousands, tens-of-thousands of copies at vaguely defined levels of canonicity (as new editions come out).
Hidden from the public, but not in one of the usual hidden tags (i.e. [[Waifuism]])
ӺЦҪԞ ЧФЦ ӺЏҪԞҒДҪԐ
!! music of death
* https://www.youtube.com/playlist?list=PLpuDUpB0osJmZQ0a3n6imXirSu0QAZIqF
* vaporwave mix
** News at 11, cat corp
* Drone mix
** my wall sunn o)))
* iraq/afhanistan docus?
!! AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* Apparently a real poem? https://hellopoetry.com/poem/692203/the-maori-jesus-james-k-baxter/
<<list-links "[tag[Normality Campaign]sort[title]]">>
Somewhere between a [[Letter]] and an [[@]]...
!! From
<<list-links "[tag[Note]] +[tag[From]]">>
!! To
<<list-links "[tag[Note]] +[tag[To]]">>
* a4 ~= letter, or legal
* a3 ~= ledger
* a5 no equivalent, but half-letter works.
---
* letter: 8.5" x 11" (slightly wider and slightly shorter than a4)
* half-letter: 5.5" x 8.5"
In my humble estimation, this is the best punk-pop song of all time.
the girl in the song is not the focus, and in some ways she may not be real, she's a figment of the desire to be loved in an all-encompassing way, or even a tether back to a halcyon past
like the hypothetical other-side-of-the-world soulmate in ana ng
https://www.reddit.com/r/odnd/comments/c0sf4m/how_i_use_odds_original_hit_dice_system/
The original D&D is a little strange, but has many great ideas.
# "The Little Brown Books (LBBs)" - [[the core rules|https://acaeum.com/ddindexes/setpages/original.html]]
## Men & Magic
## Monsters & Treasure
## The Underworld & Wilderness Adventures
# The essential supplements
## Greyhawk
## Blackmoor
## Eldritch Wizardry
## Gods, Demi-Gods & Heroes
# Non-essential supplements
#* The two "supplement 5"s
#** Carcosa
#** Swords & Spells - mass combat (wargaming)
#* OSR extensions (mostly the two jasons)
#** Majestic Wilderlands
#** Forbidden Lore
#** The Age of Conan
#** Secrets of Acheron
#** Philotomy's Musings
* [[Consolidated rules|http://tametick.com/dnd/]]
** [[mirror with changes to fit to vanilla better|https://wiki.waifu.haus/odnd/odnd.html]]
<<chame-list-links "[tag[OD&D]]">>
(This applies for descended systems too (B/X, BECMI, etc))
!! General "choices"
* The LBB hit dice mechanic.
** Every level, reroll your HP and take if it's better.
** d6 for HD; I prefer rolling a fistful of d6s to any other dice :)
** At level 1 you get maximum, and on subsequent levels you can reroll 1s; same as Gary. [[HP bloat is largely not an issue|https://old.reddit.com/r/osr/comments/d35v7a/how_do_you_deal_with_hitpoint_bloat_if/]]
* More a note than a houserule: "Name Level" is when your title tops out. E.g. Wizard for mages.
!! Classes
* No racial limits on class or level.
** Instead, humans get a 10% XP bonus.
* I love Fighters and Magic-users as-is, so just leave them.
** Maybe spell points? (2e: Player's Option: Spells & Magic)
* Thief is RAW - [[see full article (not by me)|http://badwrong.fun/the-thief-in-old-school-dd/]]
** "Skill" checks once per turn
** Note that it's ''remove'' traps in OD&D. Anyone can poke a pressure plate with a 10' pole, but the thief is an expert and can “remove small trap devices (such as poisoned needles).”
*** "Interestingly, no mention of searching is made, only removal. The emphasis on small traps, like the poisoned needles and the like, sets this skill apart from the ability of any character to spend a turn generally searching an area."
* I don't like clerics-as-healers
** Anyone can rest & patch up wounds after a battle.
** Turn up the idea of clerics as vampire (undead) hunters, protectors of the innocent, etc
** Illumination from Skerps: https://coinsandscrolls.blogspot.com/2017/11/osr-clerics-and-sunday-school-miracles.html
* New class: [[Illusionist|https://playingattheworld.blogspot.com/2019/03/the-complete-od-illusionist.html]].
** I don't like making posts on Google services; someone send the PDF I made to the comments of that article. https://wiki.waifu.haus/odnd/illusionist.pdf
!! Combat
Hit target is 20-[your hd]-[target ac]:
|!HD↓ AC→|! 9 |! 8 |! 7 |! 6 |! 5 |! 4 |! 3 |! 2 |
|! 1 |10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
|! 2 |9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|! 3 |8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|! 4 |7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
|! 5 |6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
|! 6 |5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|! 7 |4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|! 8 |3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|! 9 |2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|! 10 |1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|! 11 |0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
!! Alignment
* Kobolds can be lawful or neutral as well as chaotic; they're civilized folk in my setting.
!! Races
* New playable race: Kobolds
** 1 tier better at saving throws that involve quick dodging (dragonfire, magic wands, etc)
** 1-in-6 better than other races at rolls involving traps
*** E.G. if a 1-2 on a d6 would trigger a pitfall, it's a 1 on a d6 for a kobold
Old stuff from pre-wiki times. Probably entirely going to be articles from [[Spiritual Computation]].
<<chame-list-links "[tag[Old Stuff]]">>
Quotes from [[Wikipedia|https://en.wikipedia.org/wiki/Om]] unless otherwise stated.
<<<
"""
The word which all the Vedas proclaim,
That which is expressed in every Tapas (penance, austerity, meditation),
That for which they live the life of a Brahmacharin,
Understand that word in its essence: Om! that is the word.
Yes, this syllable is Brahman,
This syllable is the highest.
He who knows that syllable,
Whatever he desires, is his.
"""
<<< — Katha Upanishad, 1.2.15-1.2.16
<<<
"""
॥ प्रथमोऽध्यायः ॥
ओमित्येतदक्षरमुद्गीथमुपासीत । ओमिति ह्युद्गायति तस्योपव्याख्यानम् ॥ १.१.१ ॥
|| prathamo'dhyāyaḥ ||
omityetadakṣaramudgīthamupāsīta | omiti hyudgāyati tasyopavyākhyānam || 1.1.1 ||
1. Om is the closest word to Brahman. Recite this Om as if you are worshipping Brahman. [That is, treat this Om as the symbol of Brahman and concentrate on the idea of their oneness.] How you recite this Om is being explained.
"""
<<< Chandogya Upanishad, 1.1.1
<<<
The second volume of the first chapter continues its discussion of syllable Om, explaining its use as a struggle between Devas (gods) and Asuras (demons). Max Muller states that this struggle between gods and demons is considered allegorical by ancient Indian scholars, as good and evil inclinations within man, respectively. The legend in section 1.2 of Chandogya Upanishad states that gods took the Udgitha (song of Om) unto themselves, thinking, "with this song we shall overcome the demons". The syllable Om is thus implied as that which inspires the good inclinations within each person.
<<<
<<<
The syllable "Om" is described with various meanings in the Upanishads. Descriptions include "the sacred sound, the Yes!, the Vedas, the Udgitha (song of the universe), the infinite, the all encompassing, the whole world, the truth, the ultimate reality, the finest essence, the cause of the Universe, the essence of life, the Brahman, the Atman, the vehicle of deepest knowledge, and Self-knowledge".
<<<
The struggle between [[good|The Good]] and evil within oneself.
Personally I might like "aum" better than "om"; but the latter is more well known.
<svg xmlns="http://www.w3.org/2000/svg" version="1" width="673.228" height="673.228" viewBox="0 0 190 190" fill-rule="evenodd"><g stroke-width=".564"><path d="M55.486 163.636c-1.632.686-3.694 1.288-5.498 1.632-.344 0-.515.687-.515 1.288 0 1.633.945 4.295 1.288 4.726h.688c2.405 0 4.38-.947 5.325-1.978-.43-1.717-.945-3.865-1.288-5.668zm79.2-.343c-.343 1.975-.686 4.294-1.201 6.011.858 1.547 3.436 1.978 5.411 1.978.859-.947 1.633-2.578 1.633-4.038 0-.688-.173-1.29-.345-1.976-1.631-.172-3.865-.946-5.498-1.975zm39.601-68.206c1.547 1.116 3.007 2.748 4.295 3.95 1.805 0 3.78-2.147 4.21-3.95-.602-1.976-2.405-3.952-4.038-3.952-1.288 1.374-3.093 2.664-4.467 3.952zm-39.6-68.378l-1.288-6.013c.601-1.203 2.404-1.632 4.723-1.632h.774c.859 1.29 1.804 2.577 1.804 4.037 0 .688-.171.945-.344 1.633-2.061.515-4.037.944-5.67 1.975zm-79.2-.172c-1.633-.945-4.038-1.633-5.499-1.633-.344-.686-.344-1.287-.344-1.975 0-1.288.601-2.748 1.462-4.038h.944c2.147 0 3.952.602 4.638 1.805-.516 1.717-.859 4.208-1.202 5.84zM15.97 95.087c-1.632 1.116-3.265 2.577-4.21 3.95-1.803 0-3.778-2.147-4.552-3.95.601-1.804 2.75-3.78 4.552-3.78 1.118 1.03 2.492 2.492 4.21 3.78z" fill="#e487a9" stroke="#f19abe"/><path d="M63.475 113.382c2.148 3.608 4.467 6.013 7.989 9.622-1.46.944-3.35 8.331-6.013 8.331-1.805 0-1.117-2.49-2.405-2.49-1.805 0-3.952 1.804-3.952 3.78 0 1.288.687 2.577 1.804 3.608l-1.46.43c-1.29 1.03-1.29 2.834-2.492 4.294.859.345 1.202.515 1.633.515.858 0 1.63-.17 2.146-.515-.343 5.24-5.84 11.254-10.566 12.37-.858-.172-1.201-.43-1.201-.946 0-.515.515-1.287.858-1.803-.858-2.148-3.093-3.265-4.896-3.265-2.148 0-3.093 1.462-3.093 3.093l-.688.688c-.686-1.204-1.115-6.1-3.435-6.1-.6 0-2.233.688-2.405 1.633-1.46-2.405-3.007-4.038-5.927-6.013-.343.343-.773.858-1.117 1.975-.516-3.092-5.24-3.436-7.817-4.294l-.515-.602c.172 0 .172-.345.343-.515.602-1.46 1.46-3.781 1.46-5.412 0-.43-.686-2.061-1.46-2.577 1.632 0 2.577-.172 2.75-.345-.173-3.263-1.29-5.497-2.405-7.644 1.115-.345 2.405-1.29 2.575-2.577-.343-1.976-2.92-3.951-3.779-4.896l.343-.516c.688.602 1.118.602 2.148.773 2.235-.17 3.436-2.062 3.436-4.209 0-1.117-.343-2.147-.858-2.922-.173.173-.602.345-.945.345-1.031 0-1.633-1.03-1.633-1.805 0-3.09 10.137-4.466 11.94-4.466 1.46 0 3.093.172 4.21.687-.86 1.118-1.46 1.976-1.805 3.093 1.46.17 2.32.859 3.436.859 1.117 0 1.976-.516 2.578-1.547.687 1.976 1.375 3.951 3.608 3.951 1.975 0 3.265-1.117 4.553-2.577-1.117-1.201-1.633-1.63-1.633-1.975 0-1.976 3.951-1.976 5.756-1.976 1.631 0 3.436.172 4.724.172 1.46 4.724 2.148 7.989 4.21 11.768zm31.697 17.953c4.037 0 7.216-.858 12.112-1.803.774 1.46 4.21 5.84 4.21 8.332 0 .774 0 1.805-1.117 1.805-.688 0-1.46-.345-1.976-.858-.343.858-.515 1.63-.515 2.49 0 2.06 1.117 4.209 3.779 4.38l1.975-.687-.343 1.805c0 1.46 1.46 3.091 2.75 4.295 1.031-1.204 1.115-2.491 1.803-3.609 2.148 1.118 5.755 7.99 5.755 12.715 0 1.115-.514 3.606-1.803 3.778-.516-.172-1.032-1.632-1.46-1.975-3.264.172-5.412 2.319-5.412 4.21 0 1.201.602 2.146 1.976 3.006v.6c-1.032-.515-3.266-.945-4.897-.945-1.804 0-2.49.945-2.49 2.235 0 .515.342 1.803.342 1.803s-1.117-.17-1.803-.17c-2.148 0-4.382.515-6.358 1.802 0 .688.774 2.149.774 2.149s-.602-.173-.944-.173c-2.578 0-4.554 3.265-6.358 4.896-1.631-1.803-3.78-4.896-6.529-4.896-.343 0-1.116.343-1.116.343s.773-1.63.773-2.491c-3.093-1.115-5.24-1.63-8.161-1.803 0 0 .515-1.117.515-1.46 0-1.46-1.288-2.235-2.662-2.235-1.632 0-4.896.774-4.896.774s2.32-2.061 2.32-3.435c-.173-1.891-2.75-4.038-5.412-4.038-.43.17-.945 1.46-1.805 1.46-1.288 0-1.631-2.148-1.631-3.435.17-4.383 3.436-11.254 5.754-12.542.173 1.288.516 2.062 1.804 3.092 1.462-1.289 2.577-2.663 2.577-4.382 0-.343-.17-.858-.17-1.201.515.17 1.2.343 1.63.343 2.32 0 3.953-2.92 3.953-4.896 0-1.117-.515-1.976-1.632-1.976-.86 0-1.633 1.03-1.633 1.03-.173-.515-.343-1.03-.343-1.46 0-1.546.686-3.264 1.63-4.895l2.492-4.124c4.725 1.117 8.161 2.146 12.542 2.146zm31.526-18.123c2.234-3.609 2.75-7.388 4.382-12.113h4.38c2.835 0 4.724.688 6.1 2.319-.688.602-1.547 1.29-1.633 1.975.602 1.46 2.578 2.578 4.208 2.578 1.976 0 3.093-1.804 3.438-3.951.945.515 1.63 1.546 2.748 1.546 1.117 0 2.318-.688 3.436-.688-.17-1.288-.945-2.491-1.804-3.091.859-.688 2.491-.688 4.295-.688 3.092 0 6.787.688 9.621 1.976.772.515 2.405 1.632 2.405 2.49-2.148.946-3.779 1.72-3.779 4.038 0 1.803 1.031 4.38 2.834 4.38.945 0 2.062-.256 3.093-.6 0 0-3.265 3.437-3.265 5.24 0 1.288.945 2.233 2.407 2.577-1.29 1.976-2.235 4.38-2.235 7.301.602.516 2.235.688 2.235.688s-1.29 1.631-1.29 2.146c0 2.062 1.117 5.241 1.633 6.96-1.976.17-7.818 1.63-7.99 4.122-.515-.945-.944-1.803-1.46-1.803-2.49 1.975-4.21 3.778-5.41 6.185-.775-.601-2.063-1.805-2.578-1.805-2.32 0-3.78 6.356-3.78 6.356-.171-2.575-1.288-4.037-3.437-4.037-1.288 0-3.692 1.117-4.896 3.093.173.86.859 1.805.859 2.32 0 .257-.515.6-1.03.6-5.327 0-10.738-9.449-10.91-12.197 0 0 2.75.343 3.78.343-1.632-2.491-.86-4.81-3.78-5.239.944-.688 1.975-2.836 1.975-3.436-.343-2.663-2.49-4.123-5.068-4.123.172.17.172.686.172.858 0 .774-.515 1.633-1.03 1.633-.258 0-.945-.173-1.118-.345-2.146-1.288-4.723-6.184-5.497-7.816 3.35-3.78 5.67-6.014 7.989-9.792zm0-36.423c-1.976-3.78-4.638-5.67-8.16-9.793l2.405-3.865c1.288-1.804 2.148-4.124 4.294-4.124.602.515 1.117 1.46 1.117 2.491 2.235 0 4.896-1.976 4.896-4.124-.515-1.115-1.03-2.92-2.148-3.606.688-.173 1.462-.173 1.633-.345 1.117-1.115 1.29-2.92 2.148-4.38-.172-.344-1.031-.344-1.288-.344-1.03 0-1.462.171-2.493.516.688-4.38 5.93-12.37 10.825-12.37.43 0 1.117.171 1.288.773-.343.858-.686 1.633-.686 2.148 0 1.288 2.748 3.263 4.723 3.263 1.204-1.03 2.149-2.148 2.92-3.95.86 1.802 1.633 5.755 4.467 6.098.602-.343 1.805-1.203 2.235-1.632 1.632 2.062 3.093 4.037 5.583 5.67.516-.172 1.118-.688 1.46-1.805.516 3.093 4.724 4.296 7.817 4.296-.429 1.46-1.117 4.553-1.117 6.615 0 1.029.688 1.803.947 2.662 0 0-.774-.171-1.118-.171-.515 0-.944.17-1.29.343 0 1.117 1.118 7.646 2.408 7.816-1.29.345-2.578 1.29-2.578 2.578 0 1.803 2.748 4.123 3.607 4.896-1.03-.257-1.46-.257-2.319-.257-2.148 0-3.608 1.46-3.608 4.208 0 .688.345 1.805 1.203 3.093.602 0 2.405 0 2.405.945-.602 4.123-9.106 4.897-11.94 4.897-1.89 0-3.865-.43-4.725-.774 1.375-1.117 1.977-1.975 2.147-3.263-.342-.173-1.803-.688-3.263-.688-1.117 0-2.32.515-2.92 1.46-.345-1.632-1.117-3.865-3.265-3.865-1.976 0-3.436 1.288-4.724 2.748 1.976 0 1.288 1.03 1.976 1.976-1.547 1.29-3.438 1.975-6.272 2.148h-4.38c-1.29-4.896-2.149-8.332-4.21-12.283zM95.172 58.492c-4.724 0-7.644 1.203-12.37 2.32-.686-1.633-4.294-5.843-4.294-8.504 0-.947.343-1.633 1.46-1.633.516 0 1.031.173 1.288.516.86-1.031 1.03-2.148 1.03-3.093 0-2.148-1.632-3.78-3.778-3.78-.602 0-1.46.172-1.976.344 0-2.663-.944-3.436-2.75-5.584-.686 1.203-1.117 2.148-1.287 3.608-2.32-1.46-5.927-8.16-6.013-12.714 0-1.288.086-3.779 1.632-3.779.773.343 1.288 1.288 1.89 1.803 2.661 0 5.068-2.318 5.239-4.208 0-1.375-.516-2.148-1.803-2.663l-.173-.602c.688.173 3.093.945 4.725.945 1.374 0 2.662-.772 2.662-2.577-.17-.686-.343-1.03-.686-1.631.686.17 1.288.17 1.976.17 2.148 0 4.208-.686 6.356-1.803 0-.515-.343-1.46-.602-2.148h.602c2.75 0 5.24-3.263 6.872-4.896 1.632 1.803 3.951 5.24 6.358 5.24l.858-.514-.515 2.318c2.748 1.46 5.239 1.803 7.816 1.803l-.516 1.46c0 1.806 1.633 2.407 3.093 2.407 1.203 0 3.608-.345 4.64-.774-1.46 1.117-2.149 1.89-2.149 3.436 0 1.719 2.75 4.037 5.412 4.037.431-.17.774-1.632 1.633-1.632 1.46 0 1.632 2.32 1.632 3.438 0 4.553-3.265 11.595-5.584 12.884-.343-1.46-.772-2.75-1.976-3.435-1.287 1.03-2.234 2.318-2.405 3.778l.344 1.976c-.859-.343-1.547-.515-2.148-.515-2.662 0-3.78 1.46-3.952 3.95 0 .946.345 1.892.688 2.578 0 0 1.288-.515 1.976-.515.772 0 1.288.345 1.288 1.29 0 2.661-3.952 8.331-4.381 8.674-4.81-.944-8.075-1.975-12.112-1.975zm-65.628-9.106c2.662-1.631 4.724-3.952 5.24-6.014.687.431 2.577 1.29 3.092 1.29 2.491 0 2.92-4.38 3.608-5.756.516 2.148 1.46 3.78 3.436 3.78 1.46 0 3.436-1.29 4.724-2.92 0-.688-.686-1.29-.859-1.976.345-.688 1.031-.944 1.633-.944 1.03 0 1.803.429 2.49.944 3.78 2.491 7.817 8.505 7.817 10.91 0 0-1.46-.173-2.318-.173-.775 0-1.633 0-1.72.343.432 1.978 1.892 3.438 4.038 4.725-.772 1.374-1.975 2.32-1.975 3.952 0 1.803 2.663 3.951 5.068 3.951 0-1.201.343-2.491 1.633-2.491 2.748 0 4.896 6.7 5.927 8.334-3.436 3.435-5.67 5.796-7.903 9.449-2.32 3.736-2.92 7.172-4.21 12.068l-4.38.172c-2.492-.086-6.1-.902-6.1-2.448 0-.516.345-1.288 1.374-1.976-.686-1.288-2.319-2.234-3.951-2.234-1.288 0-2.748.43-3.091 1.632l-.86 2.235c-.602-1.118-1.46-1.633-2.748-1.633-.945 0-1.976.172-3.093.688 0 1.115.944 2.319 1.632 2.92-.688.686-2.32 1.031-4.382 1.031-3.606 0-11.768-3.006-11.768-4.812 0-.429.602-.944 2.405-1.115.343-.946 1.031-1.977 1.031-2.922 0-2.491-1.46-4.208-3.436-4.208-.858 0-1.287.086-1.975.602.858-1.118 3.263-3.609 3.263-5.498 0-.86-1.63-2.148-2.748-2.491 1.288-2.32 2.062-3.78 2.405-7.217-.601-.429-1.117-.772-2.232-.772 1.115-.515 1.889-.86 1.889-2.148 0-2.062-1.117-4.553-2.405-6.872 2.405-.601 7.989-.774 8.675-3.867l.774 1.46z" fill="#ef9ba0" stroke="#f19abe"/><path d="M70.174 95.086c0-13.745 11.426-25.17 24.827-25.17 13.743 0 25.168 11.425 25.168 25.17 0 13.744-11.252 24.825-24.997 24.825-13.571 0-24.998-11.081-24.998-24.825z" fill="#eccf00" stroke="#fac300"/></g><path d="M25.635 57.59c.688-1.118 2.32-2.32 3.608-2.32.516 0 1.633.344 1.633.859-.774 1.46-2.234 2.405-3.436 2.405-.43 0-1.633-.43-1.805-.945zm3.007 3.435c1.632 0 3.435-1.633 3.435-3.436 0-2.148-2.146-4.553-3.95-4.553-1.461 0-3.437 1.633-3.437 3.265 0 2.233 2.32 4.724 3.952 4.724zm20.702-.515l-.944 1.632c-.516-2.92-2.148-5.498-5.412-5.498-2.922 0-5.24 1.89-5.24 4.726 0 1.46.515 3.09 1.46 4.38-1.288.171-3.093.516-3.78 1.633l-.085-4.553c.086-1.976 1.46-3.608 1.46-5.24 0-.689-.859-2.32-1.633-2.749l-4.723 8.332 1.717 3.263 1.546-2.49c.43 1.804.43 3.437 1.117 4.897.173 1.115.945 2.491 2.148 2.92.43-3.694 3.264-4.38 6.529-4.896l.429-.601c-1.46-.345-2.75-.688-3.608-.688-.43-.688-.602-1.117-.602-1.633 0-2.146 2.405-4.037 4.38-4.037 2.321 0 2.75 1.719 3.266 4.037-.345 1.118-1.117 1.976-1.117 3.093 0 1.805 1.117 4.124 2.577 4.896 1.288.86 2.92 0 3.608 1.117.17-.086.17-.601.17-.944 0-1.46-.342-2.149-1.802-2.149-1.118 0-2.578 0-2.578-1.287 0-1.46 2.235-4.726 3.695-4.726.858 0 1.03.688 1.46 1.633-.43.858-.602 1.633-.602 2.491 0 1.29.773 2.234 1.46 2.75 0-2.148 1.633-5.241 4.21-5.241 0 1.29 1.031 3.951 1.374 4.124 0-1.547.945-3.952 3.264-3.952.774 0 1.46.686 1.46 1.46 0 4.51-9.148 5.197-14.217 10.007l-.042.13c4.124-1.632 6.529-2.32 8.677-2.663 3.951-.602 7.215-2.234 7.215-5.67 0-2.577-1.976-5.84-4.724-5.84-1.203 0-2.148.6-2.663 1.46-.602-.344-1.633-.86-2.405-.86-.688 0-1.46.344-2.148 1.116-.688-1.288-1.633-3.091-3.436-3.091h-.688l-.773-1.29z" fill="#0d468e" stroke="#3281ba" stroke-width=".176"/><path d="M35.17 137.563c.259-.172.43-.343.43-.515 0-.344-.773-.344-.945-.43-.945-1.803-1.976-4.896-1.976-8.075 0-2.232 1.46-6.013 1.46-6.356 0-.259-.17-.43-.43-.43-.342 0-.687.43-.857.945l-1.118 2.92c-.172.689-1.975 5.24-1.975 6.872 0 1.117.343 4.897 2.318 4.897l3.093.172zm14.517-14.174c.43-.343 1.29-.687 2.235-.687 1.63 0 3.006 1.288 3.006 3.093 0 1.803-1.375 3.607-2.663 3.607-1.46 0-3.264-4.122-3.264-4.896 0-.343 0-.516.171-.859l.516-.258zm-7.816 9.793h3.693l-1.631-3.608c-.172-.172-.172-.515-.172-.859 0-.944.515-2.404 1.632-2.92l1.031 2.662c.6 1.46 2.92 2.75 5.24 2.75 2.577 0 5.326-2.664 5.326-5.241 0-2.577-2.062-4.38-4.553-4.38-1.29 0-2.577.429-3.265.774l2.148-10.912c0-.515-.515-.944-1.03-.944-.26 0-.43.086-.43.601l-9.363 5.412c-1.805 1.117-3.867 1.633-6.013 1.633h-1.117l1.46 2.232s.343.515.602.688l4.122.945c0-.087-.516-.602-.516-1.118 0-1.975 9.45-7.3 10.653-8.16-1.46 3.952-4.295 7.216-4.467 11.769l-3.093 1.805-.257-.516c-.515-.774-1.632-1.117-2.836-1.117-.6 0-1.288.173-1.803.343l4.64 8.161z" fill="#da251d" stroke="#e46723" stroke-width=".176"/><path d="M141.259 66.437c-.688.258-1.46.601-2.491.601-1.633 0-2.75-1.46-2.75-3.093 0-1.803 1.117-3.606 2.235-3.606 1.546 0 3.435 3.263 3.435 4.724 0 .515 0 1.03-.429 1.374zm7.816-9.536l-3.092-.429c-.516 0-1.03.173-1.03.43 0 .172.343.687.514.86l1.117 1.63c.688.947.688 1.29.688 1.462 0 .945-.688 2.405-1.805 2.92-.343-2.404-3.09-5.24-6.184-5.24-2.75 0-5.411 2.663-5.411 5.411 0 2.578 2.146 4.21 4.553 4.21 1.374 0 3.006-.258 3.436-.772-.774 4.036-2.405 10.308-2.405 11.08 0 .515.17.86.429.86.17 0 .515-.172.686-.688l9.794-5.411c1.976-1.117 4.896-1.805 6.7-2.062l-1.289-2.491-4.123-1.117c-.173 0-.43.172-.43.343 0 .258.43.172.43.601 0 2.836-7.646 6.1-10.91 8.677 1.804-3.78 4.724-7.387 4.724-11.77l2.577-1.803c.173-.172.688-.343.86-.343.171 0 1.631 1.804 3.264 1.804.516 0 1.117-.173 1.633-.257l-4.726-7.905z" fill="#68b94b" stroke="#b8db7c" stroke-width=".176"/><path d="M109.045 160.758l1.805-2.664c.17-.172.17-.429.17-.601 0-.171-.17-.343-.515-.343-.084 0-.429 0-.772.172l-.516.17c.86-1.632 1.804-3.608 1.976-6.099.343-.6.688-.944.688-3.09-.86.685-1.805.858-3.006.858-4.383 0-9.622-4.296-10.394-5.241-.173-.343-.345-.686-.86-.686-.171.17-.43.516-.43.858l.259.688-.259 9.277c0 1.29.173 2.577.173 3.608-.345.945-1.376 2.062-1.376 2.578 0 .342.172.515.345.515h1.288c1.03 0 1.373 0 1.632-.515l1.976-2.405c0-.173-.343-.173-.772-.173-1.032 0-1.633-10.823-1.633-11.597l1.117 1.117c1.288 1.288 3.436 5.412 7.816 5.412.688 0 1.288-.173 2.148-.343 0 2.318-3.092 5.068-4.296 5.411-1.288.43-2.747 1.46-2.747 3.093h6.183zm-16.32 0l1.975-2.664c.172-.172.172-.256.172-.429 0-.343-.344-.343-1.117-.343h-1.03c.515-1.29 1.203-2.663 1.46-4.124 1.03-.944 1.803-2.234 1.803-3.092 0-.173 0-.43-.17-.602-1.72.774-3.094 1.29-4.381 1.29-5.241 0-6.529-7.39-7.474-14.089l-.515-2.92c0-.345-.516-.602-.688-.602-.086 0-.259.173-.259.602l.173 3.264c.429 7.731 1.117 16.665 8.247 16.665.686 0 1.374 0 1.976-.172-.345 1.03-1.117 3.435-4.21 3.95-1.633.346-5.24 0-5.412 3.266h9.45z" fill="#96aebe" stroke="#1d5c77" stroke-width=".176"/><path d="M147.615 135.245l.172.515s7.646-.515 9.277-.515c2.32 0 6.013-1.805 6.013-4.896 0-1.891-2.92-6.358-4.723-6.358-1.805 0-3.436 1.805-3.436 3.265 0 1.202 1.201 2.491 1.975 2.92 0-2.404 1.804-3.092 3.091-3.092.688 0 1.031.515 1.031 1.374 0 2.234-5.239 4.725-6.871 4.982l-6.529 1.805zm-5.239-12.371s.17.688.17.946c0 1.803-2.92 3.264-3.95 3.264-1.118 0-2.748-.773-2.748-2.062 0-1.46 1.117-3.093 2.747-3.093 1.29 0 3.093.259 3.781.945zm9.965 2.406l-1.633-3.351-1.46 2.407c-.173.17-.343.343-.516.343-1.117 0-2.405-1.031-3.265-1.633-.686-6.013-8.16-11.425-14.515-14.517l-.173.43c4.208 3.78 9.277 6.7 11.252 12.455-.944-.516-2.575-1.116-4.037-1.116-1.804 0-3.78 1.46-3.78 3.522 0 2.835 3.094 6.356 6.186 6.356 1.46 0 2.92-.601 4.122-2.577.431-.944.774-2.319.774-3.093 1.031.516 1.804 1.46 1.804 2.75 0 .858-.343 1.631-.343 2.662 0 .945.343 2.062 1.287 2.577l4.297-7.215z" fill="#f8c300" stroke="#fff500" stroke-width=".176"/><path d="M99.253 82.244c.172-.173.516-.516.516-.688 0-.773-.945-2.062-1.976-3.609-.945-1.46-1.46-3.09-2.405-4.38-.688-.772-1.805-.945-2.836-.945-3.091 0-6.184 2.577-6.184 6.013 0 1.46 2.319 2.578 3.608 2.578.859 0 1.631-.774 1.976-1.46.515-.602.515-1.29.515-1.806 0 .173-.86.345-1.375.345-.773 0-2.748-.774-2.92-1.632.172-.945 1.03-1.288 1.804-1.288 2.32 0 5.067 2.146 6.356 3.436 1.46 1.63 2.662 2.748 2.92 3.436zm-11.254.515c-.43 0-1.976 2.748-1.976 2.748 0 .515.345.515.86.515h2.147c-1.46.775-2.834 2.92-3.607 3.865-1.03 1.031-1.46 2.492-1.46 3.266.17-.173 1.116-.516 1.803-.516 2.92 0 4.724 2.664 6.958 4.295 0 0 .173-.343.173-.516-.345-.6-1.46-2.575-1.805-3.436.345-1.63 1.375-1.63 3.006-1.63 1.72 0 4.21 1.803 4.21 4.294 0 1.633-.515 2.748-1.976 4.725-1.117-.86-5.068-1.633-7.473-1.633-.515 0-1.203 0-1.29.43l-2.146 3.179c.773-.172 1.46-.688 2.147-.688 3.867 0 8.762.688 11.51 2.92H97.02c-1.804 0-3.952 2.75-3.952 4.381 0 1.03.345 1.975.345 3.179 0 .086-.172.945-.172 1.288.858 0 1.803-1.631 1.803-2.835 0-1.46-.515-.944-.515-2.232 0-1.031.687-1.117 2.148-1.117h1.805c1.46 0 2.405.086 2.405 1.288 0 .429-.602 1.117-1.633 1.804-1.803.171-2.405 1.804-2.577 2.921.515-.345 2.148-.688 2.92-.688 2.92.172 4.296 2.491 4.382 2.663 0-2.147-1.719-4.725-3.351-4.896.774-.86 1.719-1.632 1.719-2.663 0-.43-.602-1.29-.774-1.633l.515-1.117c0-.343-.343-.343-.343-.343h-1.633c-.686-1.287-2.146-3.263-3.092-3.779 2.062-2.062 3.608-3.866 3.867-6.957-.173-3.438-2.75-5.584-5.328-5.757-2.318.173-4.466 1.46-5.239 4.124-1.03-1.46-1.975-2.491-3.78-2.664 1.29-.772 2.32-2.061 3.78-2.92a4.901 4.901 0 0 1 2.405-.602h2.664c.772 0 4.037-1.03 4.037-3.263H88zm16.493 3.263c1.633 0 3.953.945 3.953 2.578 0 .688-.172.944-.515.944-1.805 0-4.21-.601-4.383-2.061.431-1.031.774-1.374.945-1.46zm2.491-1.975c-4.294 0-4.896 4.725-5.24 5.068.173 2.578 2.578 2.92 4.554 2.92 2.319 0 3.436-2.148 3.436-4.123 0-2.06-1.117-3.865-2.75-3.865zm-2.146 12.885c1.632 0 3.608.944 3.608 2.234 0 1.203-.345 1.203-.86 1.203-1.976 0-3.693-1.203-3.693-2.663 0-.774.43-.774.945-.774zm.772 5.497c3.18 0 4.467-2.575 4.467-4.896 0-1.632-1.202-2.405-2.491-2.405-2.405 0-5.498 2.149-5.498 4.21 0 2.147 1.29 3.091 3.522 3.091z" fill="#fff" stroke="#dededd" stroke-width=".352"/><path d="M91.607 31.475l-1.803 2.75c0 .515.172.686.515.686.171 0 .516-.17.773-.17-.43 1.46-1.288 2.747-1.803 4.38-1.118.343-1.72 1.975-2.062 3.265a3.904 3.904 0 0 1 1.803-.431c2.922.086 4.725 1.46 4.725 2.75 0 1.287-1.975 1.803-3.093 1.803-4.723-.343-6.099-2.92-6.099-5.584 0-2.233 1.031-5.498 2.491-6.356.945-.687 1.976-1.633 2.235-3.093h-4.381L82.76 34.74c0 .343.688.343.858.343.345 0 .516 0 .688.43-1.203 1.546-1.546 4.81-1.546 6.271 0 4.38 3.436 7.644 6.27 7.989 4.382 0 5.842-4.896 6.185-6.701-.172-2.491-1.803-4.295-3.778-4.295h-.775c.173-.601 1.633-2.061 2.235-2.75 2.318 1.118 8.159 11.425 9.964 14.69.17.344.343 1.032.859 1.032.258 0 .945-.173.945-.516 0-.172-.173-.343-.344-.515l.516-12.542c0-1.288 0-2.148.515-3.436.17-.859 1.803-2.577 1.803-2.75 0-.343 0-.515-1.373-.515h-2.578l-2.748 3.093c0 .172.17.343.257.343.173 0 .343 0 .515-.17 1.288.685 1.976 10.908 1.976 12.368v1.976l-.945-2.148c-2.663-4.896-1.975-7.989-5.583-12.197.944-.173 2.318-1.633 2.318-3.265h-7.387zm.516-13.228c1.975 0 4.38 1.633 4.38 2.92 0 .516-.17.859-.515 1.46-1.46-.256-4.036-2.061-4.036-3.435l.17-.945zm2.062-1.976c-2.405 0-3.866 3.608-3.866 4.896 0 1.804 2.405 2.835 3.866 2.835 2.318 0 3.78-2.835 3.78-4.467-.172-2.062-2.577-3.264-3.78-3.264zm-.773 11.597c-1.117-2.148-3.951-5.67-6.185-5.67-1.204 0-2.664 2.92-2.835 3.436.171.086.344.259.516.259.17 0 .686-.259.858-.431 3.264.258 7.301 3.437 8.762 5.497l.515-.17.688-1.89c.772-2.493 3.694-2.32 6.785-3.179 2.836-.944 6.358-3.35 6.358-4.896-3.265.17-9.793 1.976-11.51 3.264l-3.18 5.24-.772-1.46z" fill="#fff" stroke="#dededd" stroke-width=".176"/><path d="M65.665 95.128c0 16.15 12.885 29.55 29.378 29.55 15.807 0 29.38-13.4 29.38-29.55S111.366 65.75 95.043 65.75c-16.148 0-29.378 12.885-29.378 29.378zm-10.307-68.55c-1.633-.944-4.038-1.632-5.498-1.632-.345-.686-.345-1.288-.345-1.975 0-1.288.602-2.748 1.462-4.038h.945c2.146 0 3.951.602 4.637 1.805-.515 1.717-.858 4.208-1.201 5.84zm39.685 36.423c4.898 0 9.45 1.46 13.573 2.75.601-.173 1.805-1.29 2.75-3.266l13.743-24.825c1.29-2.405 2.405-6.013 2.405-7.816 0-15.033-15.633-15.72-27.745-20.101-1.46-.516-3.781-2.062-4.726-2.062-1.46 0-3.606 1.46-5.239 2.062-11.597 4.294-27.402 5.411-27.402 19.156 0 2.233.686 6.012 2.318 8.934l13.83 24.652c1.117 1.805 2.148 2.92 2.491 3.265 4.21-1.289 9.45-2.75 14.002-2.75zm0-4.467c-4.724 0-7.644 1.203-12.37 2.32-.685-1.632-4.293-5.842-4.293-8.504 0-.946.343-1.632 1.46-1.632.515 0 1.03.172 1.287.515.86-1.03 1.031-2.148 1.031-3.093 0-2.148-1.632-3.779-3.778-3.779-.602 0-1.46.171-1.976.344 0-2.664-.945-3.436-2.75-5.584-.686 1.203-1.117 2.148-1.288 3.608-2.32-1.46-5.927-8.161-6.013-12.714 0-1.288.086-3.78 1.633-3.78.772.344 1.287 1.289 1.89 1.804 2.66 0 5.068-2.319 5.238-4.208 0-1.376-.515-2.148-1.803-2.664l-.172-.601c.687.172 3.092.944 4.725.944 1.374 0 2.662-.772 2.662-2.577-.17-.686-.343-1.029-.686-1.63.686.17 1.287.17 1.975.17 2.148 0 4.208-.686 6.356-1.803 0-.516-.343-1.46-.601-2.148h.601c2.75 0 5.241-3.264 6.872-4.896 1.633 1.803 3.951 5.24 6.358 5.24l.858-.515-.515 2.319c2.748 1.46 5.24 1.803 7.817 1.803l-.516 1.46c0 1.805 1.633 2.407 3.093 2.407 1.203 0 3.608-.345 4.64-.774-1.461 1.117-2.15 1.89-2.15 3.436 0 1.718 2.75 4.037 5.412 4.037.432-.17.774-1.632 1.633-1.632 1.46 0 1.633 2.32 1.633 3.437 0 4.553-3.266 11.595-5.584 12.885-.343-1.46-.772-2.75-1.976-3.436-1.288 1.031-2.234 2.319-2.405 3.779l.343 1.976c-.858-.343-1.546-.516-2.148-.516-2.661 0-3.779 1.46-3.951 3.951 0 .945.345 1.892.688 2.578 0 0 1.288-.516 1.975-.516.773 0 1.288.345 1.288 1.29 0 2.662-3.951 8.332-4.38 8.675-4.81-.945-8.075-1.976-12.113-1.976zM70.046 95.128c0-13.745 11.426-25.17 24.827-25.17 13.743 0 25.167 11.425 25.167 25.17 0 13.744-11.252 24.826-24.997 24.826-13.57 0-24.997-11.082-24.997-24.826zm-6.7 18.297c2.149 3.608 4.467 6.013 7.99 9.621-1.46.945-3.35 8.332-6.014 8.332-1.805 0-1.117-2.491-2.405-2.491-1.805 0-3.951 1.805-3.951 3.78 0 1.288.686 2.578 1.803 3.609l-1.46.429c-1.29 1.031-1.29 2.834-2.491 4.294.858.345 1.201.516 1.633.516.858 0 1.63-.17 2.146-.516-.343 5.241-5.841 11.254-10.566 12.37-.859-.171-1.202-.43-1.202-.945 0-.516.516-1.288.859-1.803-.859-2.148-3.093-3.265-4.896-3.265-2.149 0-3.093 1.461-3.093 3.092l-.688.688c-.686-1.203-1.115-6.099-3.436-6.099-.6 0-2.232.688-2.405 1.632-1.46-2.404-3.006-4.037-5.927-6.013-.343.343-.772.859-1.117 1.976-.515-3.093-5.239-3.436-7.816-4.294l-.516-.602c.173 0 .173-.345.343-.516.602-1.46 1.46-3.78 1.46-5.411 0-.431-.686-2.062-1.46-2.578 1.633 0 2.578-.172 2.75-.344-.172-3.264-1.29-5.498-2.405-7.644 1.115-.345 2.405-1.29 2.576-2.577-.343-1.976-2.92-3.952-3.78-4.896l.344-.516c.688.602 1.117.602 2.148.772 2.234-.17 3.436-2.061 3.436-4.208 0-1.117-.343-2.148-.859-2.922-.172.173-.601.345-.944.345-1.031 0-1.633-1.031-1.633-1.805 0-3.091 10.137-4.467 11.94-4.467 1.46 0 3.093.172 4.21.688-.86 1.117-1.46 1.976-1.805 3.093 1.46.17 2.32.858 3.436.858 1.117 0 1.975-.515 2.577-1.546.688 1.975 1.376 3.951 3.608 3.951 1.976 0 3.265-1.117 4.553-2.577-1.117-1.202-1.632-1.631-1.632-1.976 0-1.975 3.951-1.975 5.756-1.975 1.63 0 3.436.172 4.724.172 1.46 4.724 2.148 7.989 4.21 11.768zm3.952-2.319c-2.491-3.865-3.78-8.933-4.726-13.66h-32.64c-2.492 0-6.014 1.29-7.819 2.235-6.098 3.264-7.56 7.817-7.56 13.057.173 7.817 4.467 16.837 4.467 24.826 0 .774.602 1.46 1.117 1.975 9.279 6.701 16.923 18.298 27.06 18.555 4.896-.172 10.48-3.263 13.23-8.161l16.147-27.573c-3.606-3.093-6.957-7.303-9.276-11.254zM22.372 95.644v-1.031c-4.896-1.976-6.958-3.865-10.223-8.161-2.835 0-5.412 6.185-6.1 8.677.688 2.404 3.265 8.331 6.272 8.504 3.093-3.951 5.325-6.356 10.05-7.99zm-6.529-.515c-1.633 1.116-3.265 2.577-4.21 3.95-1.803 0-3.779-2.147-4.553-3.95.602-1.804 2.75-3.78 4.553-3.78 1.117 1.03 2.491 2.492 4.21 3.78zm39.515 68.549c-1.633.686-3.695 1.288-5.498 1.632-.345 0-.515.687-.515 1.288 0 1.633.944 4.295 1.287 4.726h.688c2.405 0 4.38-.947 5.326-1.978-.43-1.717-.945-3.865-1.288-5.668zm2.92-5.84l.859.6c-.171 1.116-.516 2.32-.516 3.607.173 2.92 1.031 5.584 2.491 9.106-1.03 1.374-3.093 1.633-5.411 1.633-1.976 0-4.38-.431-5.584-.602-1.631-1.805-4.208-5.756-4.208-8.677 0-.342.17-.772.343-1.117 5.068-.17 8.16-1.46 12.026-4.55zm36.765-26.46c4.038 0 7.216-.859 12.112-1.803.774 1.46 4.21 5.84 4.21 8.332 0 .774 0 1.804-1.117 1.804-.687 0-1.46-.344-1.975-.858-.344.858-.516 1.63-.516 2.491 0 2.06 1.117 4.208 3.779 4.38l1.976-.687-.343 1.805c0 1.46 1.46 3.09 2.75 4.294 1.03-1.203 1.115-2.49 1.803-3.608 2.148 1.117 5.754 7.989 5.754 12.714 0 1.116-.513 3.607-1.803 3.779-.515-.172-1.031-1.633-1.46-1.976-3.264.173-5.412 2.32-5.412 4.21 0 1.202.602 2.146 1.976 3.007v.6c-1.031-.516-3.265-.945-4.896-.945-1.805 0-2.491.945-2.491 2.234 0 .516.343 1.804.343 1.804s-1.117-.171-1.804-.171c-2.147 0-4.382.515-6.357 1.803 0 .688.773 2.148.773 2.148s-.601-.172-.944-.172c-2.577 0-4.553 3.265-6.358 4.896-1.63-1.803-3.779-4.896-6.529-4.896-.343 0-1.115.343-1.115.343s.772-1.631.772-2.491c-3.092-1.116-5.239-1.631-8.16-1.804 0 0 .515-1.117.515-1.46 0-1.46-1.288-2.234-2.662-2.234-1.633 0-4.896.774-4.896.774s2.318-2.062 2.318-3.436c-.172-1.89-2.75-4.037-5.411-4.037-.43.17-.945 1.46-1.805 1.46-1.288 0-1.63-2.148-1.63-3.436.17-4.382 3.435-11.254 5.754-12.542.172 1.288.515 2.062 1.803 3.093 1.462-1.29 2.577-2.664 2.577-4.382 0-.343-.17-.859-.17-1.202.515.17 1.201.343 1.63.343 2.321 0 3.954-2.92 3.954-4.896 0-1.117-.516-1.975-1.633-1.975-.86 0-1.633 1.03-1.633 1.03-.172-.515-.343-1.03-.343-1.46 0-1.546.686-3.265 1.631-4.896l2.491-4.124c4.726 1.118 8.161 2.147 12.542 2.147zm0-4.294c-4.724 0-9.792-1.117-14.002-2.748l-16.32 28.088c-1.976 3.436-2.835 6.358-2.835 8.934 0 12.886 21.39 17.954 33.157 20.961 11.77-4.296 32.128-5.068 32.643-21.561 0-2.149-1.46-6.1-2.748-8.334l-13.573-24.825c-1.117-1.632-2.148-2.748-2.75-3.436-4.123 1.804-8.847 2.92-13.572 2.92zm39.515 36.251c-.343 1.975-.686 4.294-1.202 6.011.859 1.547 3.436 1.978 5.412 1.978.858-.947 1.632-2.578 1.632-4.038 0-.688-.172-1.29-.344-1.976-1.632-.172-3.866-.946-5.498-1.975zm-3.78-5.068l.86-.43c4.037 3.091 7.13 4.208 12.198 4.724.17.172.343.602.343 1.288 0 2.577-3.436 6.873-4.723 8.504-1.032.172-3.266.43-5.241.43-2.32 0-4.381-.43-5.241-1.804 1.462-3.35 2.32-6.184 2.493-8.934 0-.944-.345-2.49-.688-3.778zm-4.209-45.013c2.234-3.608 2.75-7.387 4.382-12.112h4.38c2.835 0 4.725.687 6.1 2.319-.688.601-1.546 1.289-1.632 1.975.601 1.46 2.577 2.577 4.208 2.577 1.975 0 3.092-1.803 3.437-3.95.945.515 1.631 1.545 2.748 1.545 1.117 0 2.319-.688 3.436-.688-.17-1.287-.945-2.49-1.803-3.09.858-.688 2.49-.688 4.294-.688 3.093 0 6.787.687 9.622 1.975.772.516 2.405 1.633 2.405 2.491-2.149.945-3.78 1.72-3.78 4.038 0 1.803 1.031 4.38 2.835 4.38.945 0 2.062-.256 3.092-.601 0 0-3.265 3.437-3.265 5.24 0 1.289.945 2.233 2.407 2.578-1.29 1.976-2.234 4.38-2.234 7.301.601.515 2.234.688 2.234.688s-1.29 1.63-1.29 2.146c0 2.062 1.118 5.24 1.633 6.96-1.976.17-7.818 1.63-7.989 4.122-.515-.945-.944-1.804-1.46-1.804-2.49 1.976-4.21 3.78-5.411 6.186-.774-.602-2.062-1.805-2.578-1.805-2.32 0-3.78 6.356-3.78 6.356-.171-2.576-1.288-4.037-3.436-4.037-1.288 0-3.693 1.117-4.896 3.093.172.86.858 1.804.858 2.32 0 .257-.515.6-1.03.6-5.326 0-10.737-9.45-10.91-12.197 0 0 2.75.343 3.78.343-1.632-2.491-.86-4.81-3.78-5.24.945-.687 1.976-2.835 1.976-3.435-.343-2.664-2.491-4.124-5.068-4.124.172.171.172.686.172.859 0 .774-.516 1.632-1.031 1.632-.257 0-.945-.172-1.117-.344-2.147-1.288-4.724-6.184-5.498-7.817 3.351-3.779 5.67-6.013 7.989-9.792zm-3.951-2.32c-2.578 4.296-6.014 7.818-9.106 10.995 0 .431.43 1.633 1.462 3.694l14.172 24.31c2.92 4.898 8.332 8.161 13.745 8.161 10.051 0 18.21-13.23 27.573-19.413.345-8.332 4.898-17.61 4.898-25.942 0-7.989-5.927-15.292-15.205-15.292h-32.814c-.516 4.553-2.405 9.794-4.726 13.487zm51.54-15.805c1.547 1.116 3.007 2.748 4.295 3.95 1.805 0 3.78-2.147 4.21-3.95-.602-1.976-2.405-3.952-4.038-3.952-1.287 1.374-3.092 2.664-4.466 3.952zm-6.528.172v-.688c4.64-1.633 7.044-3.865 9.794-8.161 3.007.172 5.927 6.185 6.527 8.677-.773 2.577-3.264 8.331-6.184 8.504-3.436-4.295-5.325-6.186-10.137-8.332zm-44.84-16.322c2.405 4.037 3.951 9.278 4.896 13.658h32.298c8.334 0 15.206-7.13 15.206-15.29s-4.124-20.1-4.553-25.943c-9.19-6.356-17.352-19.241-27.746-19.241-5.413 0-10.48 2.748-13.572 7.989l-14.175 24.482c-1.201 1.803-1.803 2.577-1.975 3.263 3.608 2.922 7.044 6.787 9.621 11.082zm3.78-2.147c-1.977-3.78-4.639-5.67-8.16-9.794l2.404-3.865c1.288-1.803 2.149-4.123 4.295-4.123.601.515 1.117 1.46 1.117 2.49 2.234 0 4.896-1.975 4.896-4.123-.516-1.115-1.031-2.92-2.148-3.606.688-.173 1.462-.173 1.632-.345 1.118-1.116 1.29-2.92 2.149-4.38-.173-.344-1.031-.344-1.288-.344-1.031 0-1.462.17-2.493.516.688-4.381 5.929-12.37 10.825-12.37.429 0 1.117.17 1.287.773-.343.858-.686 1.632-.686 2.148 0 1.288 2.748 3.263 4.724 3.263 1.203-1.03 2.148-2.148 2.92-3.951.86 1.803 1.633 5.756 4.467 6.1.602-.344 1.805-1.204 2.234-1.633 1.633 2.061 3.093 4.037 5.584 5.67.516-.173 1.117-.688 1.46-1.805.516 3.092 4.724 4.296 7.817 4.296-.43 1.46-1.117 4.553-1.117 6.615 0 1.029.687 1.803.946 2.661 0 0-.774-.17-1.117-.17-.516 0-.945.17-1.29.343 0 1.117 1.118 7.645 2.407 7.816-1.29.345-2.577 1.29-2.577 2.577 0 1.804 2.748 4.124 3.606 4.896-1.029-.256-1.46-.256-2.318-.256-2.149 0-3.609 1.46-3.609 4.208 0 .688.345 1.805 1.204 3.093.601 0 2.405 0 2.405.944-.602 4.124-9.107 4.898-11.94 4.898-1.89 0-3.866-.431-4.726-.774 1.376-1.117 1.977-1.976 2.148-3.264-.343-.172-1.803-.687-3.263-.687-1.117 0-2.321.515-2.92 1.46-.346-1.633-1.118-3.865-3.266-3.865-1.976 0-3.436 1.288-4.723 2.748 1.975 0 1.287 1.03 1.975 1.975-1.546 1.29-3.437 1.976-6.271 2.148h-4.381c-1.29-4.896-2.148-8.331-4.21-12.283zm7.988-50.08l-1.288-6.014c.602-1.203 2.405-1.632 4.724-1.632h.774c.858 1.29 1.803 2.577 1.803 4.037 0 .688-.17.945-.343 1.633-2.062.515-4.038.944-5.67 1.975zm-3.607 5.068l.945.343c3.436-3.18 6.872-3.951 11.768-4.295.343-.515.343-1.117.343-1.632 0-2.92-3.091-6.529-4.551-8.161-1.29-.516-3.609-.602-5.584-.602-2.149 0-4.038.774-5.069 1.719 1.803 3.179 2.491 5.927 2.491 8.847 0 1.29-.172 2.491-.343 3.78zM62.745 92.637c.772-4.21 2.104-9.62 4.38-13.486 2.535-4.294 6.014-8.332 9.622-11.082L60.426 40.324c-1.46-2.491-4.037-5.24-6.186-6.272-2.318-1.287-4.725-1.889-7.216-1.889-2.233 0-9.277 4.982-10.394 5.84C35 39.122 22.715 48.314 19.106 51.75c0 8.16-4.553 17.61-4.553 25.77 0 5.068 1.633 9.793 7.56 13.23 1.632.944 5.327 1.889 7.818 1.889h32.814zm-33.33-43.209c2.662-1.63 4.724-3.951 5.24-6.013.688.431 2.577 1.29 3.092 1.29 2.492 0 2.92-4.38 3.609-5.757.515 2.149 1.46 3.781 3.435 3.781 1.46 0 3.436-1.29 4.724-2.92 0-.688-.686-1.29-.858-1.976.344-.688 1.03-.945 1.632-.945 1.031 0 1.803.43 2.491.945 3.78 2.491 7.817 8.504 7.817 10.91 0 0-1.46-.173-2.319-.173-.774 0-1.633 0-1.719.343.431 1.977 1.891 3.437 4.038 4.725-.773 1.374-1.976 2.319-1.976 3.952 0 1.803 2.664 3.95 5.069 3.95 0-1.2.343-2.49 1.632-2.49 2.748 0 4.896 6.7 5.927 8.333-3.436 3.436-5.67 5.797-7.903 9.45-2.32 3.736-2.92 7.172-4.21 12.068l-4.38.172c-2.491-.086-6.1-.902-6.1-2.449 0-.515.345-1.288 1.375-1.975-.687-1.288-2.32-2.235-3.952-2.235-1.288 0-2.748.431-3.09 1.633l-.86 2.234c-.603-1.117-1.461-1.632-2.749-1.632-.945 0-1.976.172-3.093.687 0 1.116.945 2.32 1.633 2.92-.688.687-2.32 1.032-4.382 1.032-3.607 0-11.768-3.007-11.768-4.812 0-.43.601-.945 2.405-1.115.343-.947 1.03-1.978 1.03-2.922 0-2.491-1.46-4.208-3.435-4.208-.859 0-1.288.086-1.976.601.859-1.117 3.264-3.608 3.264-5.497 0-.86-1.631-2.148-2.748-2.492 1.287-2.32 2.061-3.78 2.405-7.216-.602-.43-1.118-.772-2.233-.772 1.115-.516 1.89-.86 1.89-2.148 0-2.062-1.118-4.553-2.405-6.872 2.404-.602 7.988-.774 8.675-3.867l.774 1.46zm28.863-17.265l.858-.173c-.343-1.374-.343-2.49-.343-3.606 0-3.093.859-6.013 2.32-9.278-1.289-1.374-3.094-1.633-5.755-1.633-1.805 0-3.695.086-4.726.602-1.803 1.805-4.723 5.411-4.723 8.332 0 .344 0 .86.17 1.117 5.241.688 8.161 1.632 12.199 4.639z" fill="#b4207a" stroke="#f8c300" stroke-width=".564"/></svg>
This is the only plain omelette method that I can pull off. Original is [[here|https://www.bbcgoodfood.com/recipes/basic-omelette]]
# Beat three eggs in a jug. Season with S+P
# Melt a knob of butter in a pan. Pour over the eggs.
# Tilt the pan so they swirl and coat it. Cover it and count 20 seconds.
# Scrape out a line with a spatula and tilt to fill the hole with egg. Cover and cook again. Repeat until the egg has just set
# Fill the omelette with cheese, sliced meat or whatever you want
# Fold in half, serve
I read quite a lot of roleplaying game manuals. RPG stuff is expensive (some supplements go for $30 //for a pdf//). You might wonder "how does she afford all that?"
The answer is, I can't, and I don't.
Now, this isn't exactly a brave thing to say while my wiki is passworded, but if I start making friends with RPG designers that make money from it, this is likely to be a pretty controversial stance. So I will preface this by saying that I do buy RPGs and don't pirate everything. However, I can't afford to buy all the great stuff that's out there, so occasionally I'll just go ahead and pirate it instead.
* Sale not lost by piracy - one copy has to be bought - like being lended a copy by my rich friend - since without piracy, wouldn't buy because can't afford
* Some things very overpriced - consider why
** Art often has to be paid for (at a premium, if the market price for drawings of anime girls or anthropomorphic animals is anything to go by); question is is it necessary? Some books (whitehack) rely more on beautiful typography and evocative passages and are in fact art free
** Labor costs - but how much is just writing up what you do in your hobby time? How hard is it to write an RPG manual (I've done it just for fun before)
** C.f. Open source software
** Recall alternative revenue streams - most games get Kickstarted and most designers have Patreons
** Value proposition of buying pdfs (bytes) - of which infinite copies can be made for the negligible cost of running `cp(1)`, `wget(1)` or `rsync(1)` (artificial scarcity) - again c.f. software. [[An Open Letter to Hobbyists]]?
* Do buy books when can afford, not a total leech
* Will always go for free options (books released without art, for example) over outright piracy
* Model of PDFs + print media very archaic and largely only exists in RPG scene. PDF is a terrible format for reading unless you print it out, and that's not going to happen for a 300+ page RPG manual. Would be better to produce a hyperlinked static html document, or a mini-website, but no-one seems to be willing to go for it (except a handful of retroclones).
* Review story of RPGs very poor, so might not actually like it. RPGs overpriced for what you get, especially when you might not even get to use it.
** Worst for modules/adventures. Some are woefully expensive and most are terrible. I only own ~ToH because of the meme potential, and KOTB because it came with my copy of Moldvay - the rest I've pirated and was glad I didn't spend money on
https://methodsetmadness.blogspot.com/2015/11/one-table-to-rule-them-all-using-2d6-or.html
|!Score|!Modifier|!Description|
|2 | -2 |Terrible, disaster |
|3-5 | -1 |Poor, worse than expected |
|6-8 | ±0 |Average, as expected |
|9-11 | +1 |Good, better than expected |
|12 | +2 |Great, unexpected perks |
|!Score|!Modifier|!Description|
|3 | -3 |Abysmal, disastrous, everything is lost, beyond repair |
|4-5 | -2 |Terrible, no chance, try a different approach |
|6-8 | -1 |Poor, little worse than expected |
|9-12 | ±0 |Average, Neutral, as expected |
|13-15 | +1 |Fair, better than usual |
|16-17 | +2 |Good, got more than expected |
|18 | +3 |Great, impressive success, unexpected perks |
A book of translated Japanese poetry that lives in my laptop bag. Inscribed in the first page is [[泉こなた|Izumi Konata]]. https://www.amazon.com/Only-Companion-Japanese-Shambhala-Editions/dp/1570623007
!! Taxonomy of OSR games
* Retroclones - these are essentially old editions of the world's first roleplaying game, cloned under the OGL and tidied up/modernized. They can be classified by the system they emulate.
** [[0e|https://www.dandwiki.com/wiki/Dungeons_%26_Dragons_(Original_D%26D)]] - LBBs and supplements.
*** Delving Deeper - a faithful 0e clone. Clones the LBBs, with the addition of the "optional" thief from the supplements.
*** Swords & Wizardry - one of the most popular old-school games. Clone of LBBs + supplements.
** [[Holmes Basic|https://www.dandwiki.com/wiki/Dungeons_%26_Dragons_Basic_Rules_(Original_D%26D)]]
*** [[Blueholme|https://www.drivethrurpg.com/product/109409/BLUEHOLMETM-Prentice-Rules]] - clone of, and expansion of, the Holmes Basic rulebook.
** [[B/X|https://www.dandwiki.com/wiki/Basic_Set_(BX_D%26D)]]
*** Labyrinth Lord - B/X compatible retroclone
** [[BECMI|https://www.dandwiki.com/wiki/Basic_Set_(BECMI_D%26D)]]
*** Dark Dungeons - clone of the BECMI Rules Cyclopedia
** [[AD&D 1e|https://en.wikipedia.org/wiki/Editions_of_Dungeons_%26_Dragons#Advanced_Dungeons_&_Dragons]]
*** [[OSRIC|https://osricrpg.com/]] - the first retroclone
* OSR Games - these are games that don't clone any particular edition of the world's first roleplaying game, but are similar or broadly compatible
** [[The Goblin Laws of Gaming|https://diyanddragons.blogspot.com/2019/03/who-is-glogosphere.html]] (GLOG) - A meta-system for deadly, hilarious fun. Constructed on the blogosphere (GLOGosphere) by various OSR bloggers. Has a really cool approach to magic, and a great, pluggable class system.
* OSR-inspired Games - these games are not really OSR, but are inspired in some way by the whole scene or are otherwise adjacent to it.
** Maze Rats/Knave
** Troika! - a clone/update of [[Advanced Fighting Fantasy]], with a weird-fantasy setting evocative of such sources as Labyrinth or old Terry Gilliam movies.
** SWORD DREAM/SWORD*DREAM/*DREAM - A post-OSR... thing. [[Still looking into it myself|WTF is SWORD*DREAM?]]. [[This|https://technicalgrimoire.com/david/2019/06/SWORDDREAM]] looks like a good starting point.
** Lamentations of the Flame Princess
!! /osrg/
* FOE, GYG
** False OSR Enthusiast, Get Ye Gone!
----
* why osr
* osr games
** 0e
** GLOG
** Maze Rats
* other guides
** [[A Quick Primer for Old-School Gaming|http://www.lulu.com/items/volume_63/3019000/3019374/1/print/3019374.pdf]]
** [[Principia Apocrypha|https://lithyscaphe.blogspot.com/p/principia-apocrypha.html]]
** [[Philotomy's Musings|https://www.grey-elf.com/philotomy.pdf]]
Cooking in the oven is a little healthier and more hygienic than frying everything.
Put down a layer of tinfoil and you can just throw it away afterwards, no scrubbing required!
Temperatures are in Fahrenheit unless otherwise specified.
!! Sausages
# Preheat to 350
# Cook sausages for ten minutes
# Flip, cook for another ten
# Slice one open to check for done-ness, there should be no pink.
!! Bacon
# Preheat to 400
# Cook bacon for 10-20 minutes depending on desired crisp.
* [[2021.01.06 - inciting a riot]]
* http://paganbynature.com/2013/05/panenatheist/
* http://paganbynature.com/2014/02/struggles-with-spirituality-2-0/
[[https://www.fionaraven.com/estimate-your-page-count/]]
* Your word count divided by 390 = page count for a 5.5″ x 8.5″ book (fiction)
** For example: 50,000 divided by 390 = 128.20 pages
* Your word count divided by 475 = page count for a 6″ x 9″ book (non-fiction)
** For example: 50,000 divided by 475 = 105.26 pages
!! Ingredients
* 2 oz dark rum (also works with coconut spiced)
* 4 oz pineapple juice
* 1 oz coconut cream OR 1.5 oz coconut milk
* 1 oz orange juice
* Ice
* (optional) pineapple fronds
!! Tools
* 1/1.5 oz jigger
* Cocktail shaker
* Rocks glass
!! Method
# Add ice, juices, rum, coconut cream to the shaker
# Shake, and strain into a glass
# Serve on the rocks. Optionally, garnish with pineapple fronds.
I never paid attention when my parents made these. I'm going to have to learn from scratch. Regardless, I love pancakes, so hopefully I can...
https://www.yummly.com/recipe/Blueberry-Pancakes-471868?prm-v1
* 1.5 cups all purpose flour
* 1/4 cup granulated white sugar
* 1 teaspoon baking powder
* 1/8 teaspoon salt
* 1 cup milk (+ more to thin out the batter, as needed)
* 1 large egg
* 1 Tablespoon vegetable oil
# Whisk together first 4 ingredients; make a well in center of mixture.
# In a separate bowl, whisk together milk, egg, and oil; add to dry ingredients, stirring just until moistened. Gently fold in blueberries.
# Pour about 1/4 cup batter for each pancake onto a hot, lightly greased griddle. Cook pancakes until tops are covered with bubbles and edges look cooked; turn and cook other side. Serve with maple syrup.
!! thoughts
* Bit thick. I added extra milk in the ingredients list AND a splash at a late stage, and they were still quite thicc.
* Tasty, but not overly sweet batter. Might work as a brioche.
** Probably because I took the blueberries out. Maybe a bit of vanilla extract?
* Cooking spray seems to work for "lightly greased".
<<<
Pandit (Sanskrit: पण्डित, romanized: paṇḍita; Hindi: पंडित; also spelled pundit, pronounced /ˈpʌndɪt, ˈpændɪt/; abbreviated as Pt. or Pdt.; Pandita or Panditain can refer to a female pandit or the wife of a pandit) is a Brahmin scholar or a teacher of any field of knowledge in Hinduism, particularly the Vedic scriptures, dharma, Hindu philosophy, or secular subjects such as music.
<<< https://en.wikipedia.org/wiki/Pandit
As close a "Western" (India is not really a Western country, but they are Indo-Europeans (that's where the "Indo" bit comes from) right?) equivalent to the Japanese word "sensei".
I'm more a weeb than an Indiaboo. Still, I imagine I'll be using this term if I'm to refer to masters of music.
Interestingly the English word "pundit", for a knowledgeable person in some area, comes from the same root. Most well-known in the UK for football talking heads or political commentators ("political pundits").
!! RV 1.164.46
<<<
"""
इन्द्रं मित्रं वरुणमग्निमाहुरथो दिव्यः स सुपर्णो गरुत्मान |
एकं सद विप्रा बहुधा वदन्त्यग्निं यमं मातरिश्वानमाहुः ||
indraṃ mitraṃ varuṇamagnimāhuratho divyaḥ sa suparṇo garutmāna |
ekaṃ sada viprā bahudhā vadantyagniṃ yamaṃ mātariśvānamāhuḥ ||
"""
<<< Sanskrit retrieved from sacred-texts.com
<<<
"""
They call him Indra, Mitra, Varuṇa, Agni, and he is heavenly nobly-winged Garutmān.
To what is One, sages give many a title they call it Agni, Yama, Mātariśvan.
"""
<<< Ralph T.H. Griffith translation
<<<
What is but one the wise call by many names.
<<< R C Zaehner translation
<<<
God is one but the wise call him by many names to denote His different attributes.
<<< Arya Samaj<<ref "as">> translation, vol 3, pp. 170-171 (pdf) or pp. 169-170 (print)
---
<<footnotes "as" "One might find the origins of this translation problematic. The translator was an anti-Muslim type.">>
* he/him
* the vidya geemu
* https://www.youtube.com/user/pausebreakreviews
<<list-links "[tag[Pause Break]sort[title]]">>
!! General
* Work on your stronghold
** Wizard's Tower
** Thieves' Guild
** Cloister
* Defeat your nemesis
* Be part of a dragonslaying party
* Attain or work towards nobility, immortality, sainthood, etc.
!! Fighter
* Be part of a party that kills a monster stronger than you
* Be MVP in a tricky battle
* Protect someone weaker than you from danger
* Study under someone highly skilled, e.g. a swordmaster or elvish archer
!! Wizard
* Learn a powerful new spell
* Successfully breed spells
* Scry, predict the future, etc.
* Spend a year and a day apprenticed to a more powerful wizard, a fey creature, etc.
!! Thief
* Make a significant haul (xp gold totals will do)
* Con someone important
* Outwit a stronger opponent
* Defuse a significantly nasty trap
!! Cleric
* Put a stop to an undead threat
* Convert someone significant to your deity
* Donate to the church, or to the poor
* Live in poverty for a significant amount of time
!! Web
* https://jpg2pdf.com/
** Does various useful things with pdfs.
* https://n.d9.lv/
** A good place to collab, perhaps? Kirbs uses it. The only issue I can find is 1. accounts 2. no info on who's running it and what it's funded by.
!! Desktop
<<list-links "[tag[PDF/Print/Document tools]]">>
PDF Swiss Army knife; ffmpeg meets pandoc meets coreutils.
The FLOSS version is called "pdftk server".
Documentation lives [[here|https://www.pdflabs.com/docs/pdftk-man-page/]]
Java version can be installed under ubuntu 18.10 and onwards using apt (package pdftk-java); or you can grab the deb [[here|https://packages.ubuntu.com/disco/pdftk-java]]
A pearl is a little nugget of wisdom you find when diving, maybe WikiWalk-ing.
People, both [[3D]] and [[2D]].
For my teachers, or those I've learned from, see <<tag Senpai>>
<<list-links "[tag[People]]">>
<<<
Perfect is the enemy of good.
<<< Voltaire ([[traditionally attributed|https://en.wikipedia.org/wiki/Perfect_is_the_enemy_of_good]])
<<<
A 50%-good solution that people actually have solves more problems and survives longer than a 99% solution that nobody has because it’s in your lab where you’re endlessly polishing the damn thing.
<<< [[Joel Spolsky|https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/]]
Perfectionism is the enemy of any creative endeavor.
I always remember my best friend at school. A raw perfectionist and very talented kid. He and I were on equal footing, despite me always taking the least effort necessary; I used to think it might've been my natural talent, but honestly I think he might've been too much of a perfectionist and overexerted himself. If he'd put in //less// effort, he'd've actually done better than me.
* https://getpocket.com/explore/item/the-dangerous-downsides-of-perfectionism?utm_source=pocket-newtab
* https://www.youtube.com/watch?v=UHAJR2obCWY
Probably the key to understanding [[Nobu]]-[[Senpai]].
* Tarot cards
* Jung
* Cute girls
* Slice of life dungeon crawling
<<list-links [tag[Persona]]>>
* [[General Guide|https://gamefaqs.gamespot.com/vita/641695-persona-4-golden/faqs/76145/100-guide]]
* [[Social Links|https://www.rpgsite.net/feature/9850-persona-4-golden-social-link-guide-dialogue-options-love-interests-and-full-s-link-walkthroughs]]
```
Knowledge [Rank 2: 20pts] [Rank 3: 47pts] [Rank 4: 72pts] [Rank 5: 105pts]
Guts [Rank 2: 6pts] [Rank 3: 16pts] [Rank 4: 31pts] [Rank 5: 64pts]
Profiency [Rank 2: 8pts] [Rank 3: 21pts] [Rank 4: 38pts] [Rank 5: 55pts]
Kindness [Rank 2: 9pts] [Rank 3: 28pts] [Rank 4: 56pts] [Rank 5: 82pts]
Charm [Rank 2: 4pts] [Rank 3: 32pts] [Rank 4: 56pts] [Rank 5: 79pts]
```
(Meta-)Modern day faerie tale? Looks cool!
* http://phantammeron.com/
* http://phantammeron.com/2017/02/living-in-the-age-of-metamodernism/
* http://phantammeron.com/2017/04/de-chirico-the-mythological-and-the-metaphysical/
<<<
Do not fear to be eccentric in opinion, for every opinion now accepted was once eccentric.
<<< Bertrand Russel
I've never received formal training in philosophy; my understanding of philosophy is second-hand, gleaned largely from reading or discussing the works of my various [[Senpai]]. Thus I'm rather a dilettante in philosophy. Forgive me my ropy understanding of the basics, and my vague, colloquial expressions of my thoughts. I hope to do better.
<<chame-list-links "[tag[Philosophy]]">>
One of the best videos on youtube: https://www.youtube.com/watch?v=AeGEv0YVLtw
It's amazing how much this does and continues to parallel [[my experience|fixme]]. For example, Philosophy Tube would also later come out as trans (after I did, publicly, but in private for probably quite a while). I show this to people to explain to them what my abuse was like.
What can you really say about them? They're the biggest band to never have a radio hit. They sell out huge stadiums. They're [[The Grateful Dead]] for millenials and xoomers. Just about every show they've ever played is recorded somewhere.
* [[YouTube|https://www.youtube.com/channel/UCDEPOd0RCvw8iSTqFpSBZLA]]
* [[Get their music|https://www.livephish.com]]
* [[Fan recordings|http://www.phish.in/]]
* [[Reddit beginner's guide|https://www.reddit.com/r/phish/comments/9ot9ed/welcome_to_phish_a_guide_for_beginners/]]
* [[Streaming just the jams|http://www.phishjustjams.com/]]
* [[The Spreadsheet: show recordings in mp3 form|http://phishspreadsheet.com/]]. Good place to learn what's missing!
!! Gamehendge
Advanced level Phishing
* https://gamehendge.org/gamehendge-lyrics/
* https://stuffthatbubbledup.weebly.com/1988-tmwsiy-remastered.html
* "Read the book" is probably the "Helping Friendly Book" from Gamehendge
----
<<list-links "[tag[Phish]!sortan[]]">>
<<<
1.0
1983-89: Formative years — from college band to local bar band to regional (Northeast) touring band. Sometimes loose, in-jokey, and juvenile, but with a hunger and energy that clearly points towards something greater.
90-92: Relentless touring of the national club circuit. Fast, aggressive playing. Developing a cult following and building a reputation as a must-see band.
93-96: Shifting towards an emphasis on long-form improvisation and exploration. Growing from small clubs to medium venues, then exploding into arena-size shows. The massive influx of fans from the Grateful Dead scene following Jerry Garcia's death in August 95 fundamentally changed the atmosphere of shows and trajectory of their career.
97-2000: More of a focus on funk, rhythm, texture, and groove. Contains many career highlights (including Fall 97 aka the "Phish Destroys America" tour, Spring 98's 4-show "Island Tour," and their New Years 99-2000 festival at Big Cypress in Florida wherein they welcomed the new millennium by playing a nonstop 7-hour midnight-to-sunrise set). In the fall of 2000, the band announced they were taking a hiatus, and stopped playing together until New Years 2002-03.
2.0
2003-04: Return from hiatus. This era was the height of drugs and the party scene on-, off-, and backstage. Forgotten lyrics, flubbed compositions, and mistaken notes galore, but also some of the most exploratory and emotional jams. The beast that was Phish Inc. became too large and unwieldy to manage, and due to a combination of financial issues, drug addiction, and intra-band tensions, they broke up (apparently for good) following their Coventry festival in 2004.
3.0
2009-Present: In 2006, Trey was arrested in upstate New York for a DWI, and was found to be in possession of prescription opiates. He went to drug court and rehab, and finished treatment in 2008 (becoming an outspoken advocate for compassionate drug laws and rehabilitation since). Shortly thereafter, he began writing new music and reached out to the other members of Phish to reunite. They played their first show of the current era in March 2009, and have been playing consistently since then. In terms of sound and style, this era is marked by a more mature, direct, and egalitarian approach to improvisation. 2015 was a highlight year, with Trey joining the living members of the Grateful Dead for their "Fare Thee Well" concerts, and the accompanying practice and focus translated over to Phish, producing some of their greatest musical moments in recent memory. In 2017, they staged "The Bakers Dozen," a 13-night residency at Madison Square Garden in which each show had a unique setlist with no repeats, performing over 230 songs over the course of the run.
<<< https://www.reddit.com/r/phish/comments/9ot9ed/welcome_to_phish_a_guide_for_beginners/
<<<
'91-'93 = absolute facefuckery from the band nightly in the form of perfect renditions of songs at insane tempos and blistering pace, the band at times struggling to keep up with trey. they were on an absolute mission to prove themselves.
'94-'95 = some of the long form improv that began in '93 becomes more prevalent. much of this jamming is extremely atonal and seems to lack clear direction (but is absolutely wild). the tenacity and precision of the prior years is still there. june 1994 and december 1995 are peak phish imo.
'96 = somewhat of a "lost" year as the band moved into larger venues and searched for new direction. there's plenty worth listening to, especially during the fall. the band covering talking heads' "remain in light" inspires a new, groove based "cow funk" style which leads directly into
'97 = the height of the cowfunk (especially the fall), long form improvisation becomes a nightly experience.
'98 = april's island tour puts a stamp on the funk, summer/fall begin to incorporate more ambient textures, some cracks begin to show in the tightness of the band's more composed pieces.
'99-'00 = improv continues to become awash in feedback, even more ambient textures (less groove oriented). very "loose" feeling to much of the music, including the composed pieces. trey's tone is absolute butter.
'03-'04 = the oxy-jam years. the composed pieces really, really suffer here, as do a lot of the vocals. what they lacked in precision they attempted to make up for in taking songs far, far out there. some of it's brilliant, some of it sounds like sludge.
'09-'11 = better sounding composed sections of songs, though trey's reliance on the "whale call" is generally offputting. jams are somewhat few and far between but there are moments of brilliance. the sound of a band trying to get back on its feet.
'12 = finally sounds like the band is back together. great playing and setlists, more jamming.
'13-'14 = some ups, some downs. there's a bit of a trend that appears that the band now takes some time to get warmed up throughout its tours. with a lack of practice much of a prior tour's "style" doesn't necessarily carry over. much of the improv is focused on finding a repeating motif and carrying it to a natural progression/peak. halloween shows both years result in new material, diluting setlists.
'15 = pinnacle tour of 3.0, much attributed to trey's practicing for FTW. interesting and unique improv nightly with improved composed sections of songs.
'16 = much like '96, a bit of a transitional year between two stellar years. trey's type 1 solo'ing during summer tour was actually pretty fire but something just felt off until later in the year. vegas and msg felt much different than summer.
'17 = the second high water mark of 3.0. the 13 night baker's dozen residency forced the band to double down on practicing old songs, learning tons of new covers, and leaning heavily on improv. monster arena rock peaks abound. tons of ambient space throughout.
'18-'19 = tempos have certainly slowed over the past few years (see: the met chalk dust). even more new songs have diluted setlists and some of the older, more complex material doesn't find the stage as much (and are kinda shaky when they do). the improv remains much more prevalent compared to early 3.0 and is the one area where the band is undeniably comfortable. it feels much more of a 4 headed monster with page really stepping up.
<<< https://old.reddit.com/r/phish/comments/g67gtr/different_phish_eras/fo7zdxl/
```
_____
,-:` \;',`'-, ,_______,
.'-;_,; ':-;_,'. | Shhh! |
/; '/ , _`.-\ /¯¯¯¯¯¯¯`
| '`. (` /` ` \`| /
|:. `\`-. \_ / |/
| ( `, .`\ ;'|
\ | .' `-'/
`. ;/ .'
jgs `'-._____.
```
Working to cover [[this bad boy.|https://www.youtube.com/watch?v=7ZQakdMOnz0]]
```
Tuning: EADGBE (standard)
Just use whatever chords sound right. It's a cap'n jazz song so a lot of it is noodling within the central A-D vamp anyways. You could probably extend it to a jam, lol. The slashed chords I use here work real nice for the chorus, they make it sound loud and punchy.
Lyrics are wrong just about everywhere, so I've tried to correct them by ear. "Hey Girl/Hey Guy" sounds closest to what's actually being sung, and also makes the most sense (plus it means cap'n jazz said bi rights)
A/E: 006700
D/E: 057700
Asus2: 002200
Asus4: 002230
Dadd9: 000230
DM7 : 000222
Planet Shhh by Tim Kinsella
===========================
---=== VERSE 1 ===---
We're being too honest
I push you to pull me
Belittle my little attempts at growth
Go on, Go on
Head right down that headlight's stare
Take my wind and blow it back at me
We've happened before
---=== BRIDGE ===---
<palm mute>
D A
Hello my little hoola hoop hug
Squeeze to warm and ribs stab heart
---=== CHORUS ===---
D/E A/E
HEYYYYY GIRL
D/E A/E
HEYYYYY GUY
I dare you to say it to my face
I'll pull you outta the sky and make you 14 again
You'll never say another word about blame
---=== VERSE 2 ===---
We bit lips
We saucer eyes
I can't shake the shapeless memories every time I read Sassy
---=== BRIDGE ===---
---=== CHORUS ===---
---=== VERSE 3/OUTRO ===---
Now the taste of my teeth reminds me
Have I called you today?
Yesterday I called you never
```
Dm(add9) Bb(add9)
(Dm) (Gm7) Am7 Bb(maj7)
e|---0-----------0--------------------------------------------------|
B|------3-----------3--------1-----------1--------------------------|
G|---------2-----------2--------3-----------3--------3--2-----------|
D|------------3-----------3--------3-(0)-------3-----------3--0-----|
A|------------------------------------5--------------------------1--|
E|------------------------------------------------------------------|
Am7
e|------------------------|
B|------------------------|
G|-------------------0--2-| Play the intro 2 times:)
D|----------0--2--3-------|
A|-0--1--3----------------|
E|------------------------|
```
An old classic. The series' most recent entry was very weak, but they've had weak entries before (gens 5 and 6) and bounced back (gen 7).
This was my first [[Roleplaying]] game, because I was slap-bang in the middle of the target demographic when it was new. I think the [[bridge bike gang episode|https://bulbapedia.bulbagarden.net/wiki/EP036]] was the first one I saw.
<<chame-list-links "[tag[Pokemon]]">>
This is probably always going to be a bit of a crunchy game. However, it's probably not impossible to make one that will at least fit the combat resolution subsystem within a few pages.
* https://pokemontabletop.com/downloads-and-resources/
** Contains
*** Pokemon United, a crunchy, class-based system
*** Pokemon Journeys, a new system under active playtest
**** Grid-based tactical, apparently inspired by 4e. So a wargame.
**** Odyssey may be the same thing?
** These seem too crunchy for my liking.
* Thinking: Dice progression system
** 1d4 - 1d6 - 1d8 - 1d12 - 1d20, with advantage rolls (i.e. 2d6 keep highest) for intermediate steps.
* Accuracy translates nicely to a d100 roll.
* Maybe take inspiration from the anime and manga (where a Pikachu can be active forever and still lose occasionally, rather than ending up at L100 from all the tens of gyms it aced and creaming everything).
* Recall the [[One Table to Rule Them All]]
* Progression by actual training (Rocky style) and character moments (Finally, after struggling all his life, Pikachu stands up for his first ever human friend - and unleashes his first ever - [[THUNDERBOLT!|https://www.youtube.com/watch?v=_k5asNXhIpU]])
* FUDGE-mon? Take inspiration from the //*spits*// indie games.
** Hey, maybe even Risus.
* Gen 1
** The simplest, but they really made this primitive hardware shine.
** [[Pallet Town|https://www.youtube.com/watch?v=cOWRNLaCMJg]]
** [[Bicycle|https://www.youtube.com/watch?v=nxU2UjAjN24]]
** [[Lavender Town|https://www.youtube.com/watch?v=-sOadAaGiq4]]
** [[GARY MOTHERFUCKING OAK!|https://www.youtube.com/watch?v=U9P4qY6UjLI]]
* Gen 2
** They pushed the hardware to its limit, and got some really impressive polyphony and beautiful melodies out of it.
** [[Opening|https://www.youtube.com/watch?v=wV2Tma_njUI]]
** [[New Bark Town|https://www.youtube.com/watch?v=ZUJCpOZIjdo]]
** [[Azalea Town|https://www.youtube.com/watch?v=r8MiUBgyeyY]]
** [[Goldenrod City|https://www.youtube.com/watch?v=XVgKMhfuppc]]
** [[Surfing|https://www.youtube.com/watch?v=ImsqqHAIEi4]]
* Gen 3
** OK I have a lot of nostalgia for the ZUNpets and drum rolls. But you have to admit, these tracks are great.
** [[Opening|https://www.youtube.com/watch?v=36is0Mf8Tcs]]
** [[Littleroot Town|https://www.youtube.com/watch?v=im6tbN9SZXs]]
** [[Petalburg City|https://www.youtube.com/watch?v=iIqz0M2MOk0]]
** [[Shopping|https://www.youtube.com/watch?v=o1lXFN3Dfag]]
** [[Victory Road|https://www.youtube.com/watch?v=NE00ckCTwDo]]
* Gen 4
** The DS was where the hardware started to get really good and the music went with it.
** [[Route 209|https://www.youtube.com/watch?v=GJTiVx9jbFQ]]
** [[Route 201|https://www.youtube.com/watch?v=sAIXpLSiXa0]]
* Covers
** [[Genwun heavy metal battle|https://www.youtube.com/watch?v=XecQ5ppJZU0]]
** [[Kalos Power Plant but it's Perturbator|https://www.youtube.com/watch?v=7wlWg-l3pt0]]
** [[Battling Red: the oh shit version|https://www.youtube.com/watch?v=E3t6Y7zh1LU]]
** [[Azalea Town in the style of Pat Metheny Group|https://www.youtube.com/watch?v=gbkF_lQxp1E]]
** [[Verdanturf Town but it's a jazz ballad|https://www.youtube.com/watch?v=lky6Rsk4y7Y]]
** [[Jazzy Pallet Town|https://www.youtube.com/watch?v=P6K34epYSjo]]
* The Pokegirls!
** [[D'aww|https://www.deviantart.com/xlittleluu/art/Pokegirls-203281815]]
** [[AND MANY EGGS WERE HATCHED THAT DAY|https://bulbapedia.bulbagarden.net/wiki/Ashley]]
* Pokeboys!
** [[Wally is underrated|https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fpm1.narvii.com%2F5777%2F5984d3da99f3ca2cb7a773289b3ab974e6cae0ce_hq.jpg&f=1&nofb=1]]
*** [[Me|https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fem.wattpad.com%2F065cde5111b3ae3ded63378056ed8aed5cf2998c%2F687474703a2f2f34312e6d656469612e74756d626c722e636f6d2f36643934396535306663326335346431303062633636353865316238383034362f74756d626c725f6e62767979693059726e31736f397269796f315f313238302e706e67%3Fs%3Dfit%26h%3D360%26w%3D360%26q%3D80&f=1&nofb=1]]
** [[Hau. He's just a chill Hawaiian guy that wants you to have fun and relax|https://i.pinimg.com/736x/a6/90/a7/a690a7be937a4ddf421dec6423177cd5.jpg]]
* [[What's with all the moms lol|https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/3c16901c-5cf2-427d-bda3-079d0b96a23d/d5mqavs-8e0340d6-8f4c-44b9-9098-c485fec3f5dc.jpg/v1/fill/w_1066,h_750,q_75,strp/pokemon___the_moms_by_vivivoovoo-d5mqavs.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwic3ViIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl0sIm9iaiI6W1t7InBhdGgiOiIvZi8zYzE2OTAxYy01Y2YyLTQyN2QtYmRhMy0wNzlkMGI5NmEyM2QvZDVtcWF2cy04ZTAzNDBkNi04ZjRjLTQ0YjktOTA5OC1jNDg1ZmVjM2Y1ZGMuanBnIiwid2lkdGgiOiI8PTEwNjYiLCJoZWlnaHQiOiI8PTc1MCJ9XV19.SUPEr6iVtks0Nj4hgUs4X1PNqQ4SsciIp6yBHj0Zln0]]
* [[Cynthia be existing (and giving a generation of gay nerds a thing for peek-a-bangs)|https://1.bp.blogspot.com/-mpNmaVOtEFY/WDR6qPrt6_I/AAAAAAAAMYE/1KQz8IrJXwIx96-afqPQDsI1xGN34SzgACPcB/s1600/shirona%2Bpokemon.jpg]]
* [[Speaking of Gen 4, I think we all had a thing for Cheryl, too|http://s.sidereel.com/episodes/848621/featured_2x/354973.jpg]]
** [[I'm gay|https://66.media.tumblr.com/395ec50ec3efc2035e88054626fad99b/tumblr_o8evhwbj7W1rswl8zo1_500.jpg]]
Red, Blue, Yellow - the three originals. Broken as hell, but oozing nostalgia and old-school charm.
!! Beloved Genwun mons
* The Yellow Version Pikachu. Will always love you, buddy <3
* Haunter/Gengar. Hypnosis + Dream Eater OP pls nerf.
* Pidgeot you absolute lad.
* My Fearow from my second playthrough. "Oh nice setup move... would be a shame if I were to... //copy it//."
* Nidonido the Nidoking, absolute king <3
* Seadra the unexpected lad... Raised you from a Horsea over a period of about ten years, and you came into your own and KICKED LANCE'S ASS!
* Every Bulbasaur-line mon I've ever used has been badass!
!! Coolness
* The evil team (Rocket) is the fucking mob. They extort, kidnap, and run gambling establishments. The cops are absolutely after them.
* There's much more of a sense of danger. The world seems scary. Trainer types include mediums, bosozoku/yankees, psychics, and martial artists. Some trainers carry whips.
* The legendary Pokemon are truly legendary. There are no cutscenes or story elements related to them - they are whispered legends, spoken about in half-truths, myths, and rumors.
** Elements of this carried over into gen 2, and there was a little of it in gen 3 (the only mention of Rayquaza was a little girl enthusing about "a sky Pokemon!" and I still have no idea how to catch Deoxys or the Regis) but after gen 1 the modern day conception of legendaries as being the mons on the box art which you catch towards the end of the game in story events set in.
** It also has the coolest legendaries - Mew and Mewtwo, and the Legendary Birds
* The game is very open towards the middle-end section. Sabrina, Blaine, and Koga in particular are similarly leveled.
* The dungeons are frightening labyrinths; recall Rock Tunnel, a pitch-black, twisting, multi-leveled maze in which many opponent trainers are //actually lost//.
* Rare occurrence: all three starters are a good choice.
** Charmander becomes Charizard, a perpetual favorite among genwunners and casual fans alike
** Squirtle becomes Blastoise, a fucking GUN TORTOISE
** Bulbasaur becomes Venusaur, your enormous tree-dinosaur buddy
* Yellow remains unique among the entire series - the Special Pikachu Edition!
!! Jank
* Critical hit ratio is determined by speed. This means fast Pokemon using high-crit rate attacks such as Razor Leaf will crit sometimes as much as every turn.
* Attacks such as Wrap, Fire Spin, and Clamp block the opponent from taking their turn.
* Hyper Beam does not require recharging if it knocks the opponent out.
* Special Attack and Defense are merged into one Special stat.
** The first three gens are pre-special-split. This means types are either physical or special. As a result, some Pokemon just suck because their STAB type is the opposite of their high stats.
* There aren't nearly enough moves, so some types are useless:
** Bug types have no purpose after about the second gym, and don't have any strong moves
** There's no real Dragon moves, and the type is only saved by the fact that it has good defensive properties
*** Helps that the only Dragons are all pseudo-legs too!
* Meanwhile, Psychic type is too powerful!
** There's very few moves (if any) that are strong against Psychic... leech life? Lick? but both are weak and shitty.
** This was also the best gen for Ice, see below
* Frozen Pokemon only thaw if hit by a Fire attack or an item (full heal, full restore, or ice heal) is used.
!! Glitches
If you know how, you can make this game your bitch.
* [[The Mew Glitch|https://bulbapedia.bulbagarden.net/wiki/Mew_glitch]]
* [[Missingno./Rare Candy Glitch|https://bulbapedia.bulbagarden.net/wiki/Item_duplication_glitch#Pok.C3.A9dex_000_item_duplication_glitch]]
* [[Glitch City|https://bulbapedia.bulbagarden.net/wiki/Glitch_City]]
* [[Safari Zone Glitch|https://bulbapedia.bulbagarden.net/wiki/Fight_Safari_Zone_Pok%C3%A9mon_trick]]
The music of my childhood/early teen-hood. Coming back maybe thanks to the nostalgia cycle.
https://www.theguardian.com/music/2021/jul/23/there-are-no-rules-now-how-gen-z-reinvented-pop-punk?utm_source=pocket-newtab
.tc-drop-down dd
{
max-width:300px;
word-break: break;
white-space:normal;
padding :0;
padding-left: 5px;}
.tc-drop-down dl
{
padding: 5px;
}
tc-drop-down a {display:inline;padding:0}
---
<<<
You cannot stare straight into the face of the sun, or death.
-François de La Rochefoucauld
<<<
!! Stages of Positive Disintegration:
* Level One – Primary Integration
** Primary Integration is the most basic, primitive level of development. This level is driven by the first factor, with the satisfaction of basic needs and desires as the individual’s only concerns. Those at this level (generally young children) have no need for deep or meaningful relationships with others, and disregard empathy, sympathy, or any acknowledgement of the needs and concerns of others.
* Level Two – Unilevel Disintegration
** Level two is governed by the second factor and focused on conformity and social comparison. In this level, the individual is concerned with “fitting in” and is easily influenced by their social group. Some individuals at this level will begin to question the values and beliefs imposed upon them by their social group, and will begin the process of discovering their own personal values and beliefs.
* Level Three – Multilevel Disintegration
** Individuals who began questioning their own beliefs and values in level two will begin to form their own beliefs and values in level three. They will notice the discrepancy between “the way things are” and “the way things ought to be,” a realization that will likely spark negative emotions, such as shame or guilt, as they look back on their mistakes and question themselves and their moral standing.
* Level Four – Directed Multilevel Disintegration
** The questioning and discovery of level three give way to increasingly goal- and value-directed behavior. The individual realizes who they are and who they want to be, and how they must act in order to be authentic. Those at level four truly care for others, and act in accordance with this empathy.
* Level Five – Secondary Integration
** The highest level of development in Dąbrowski’s theory is marked by alignment between personal values and behavior, and the individual tailors their actions to work towards higher goals such as the betterment of society in general. The individual has formed their ideal personality and experiences peace with one’s self. All motivation is in the higher forms of empathy, autonomy, and authenticity.
!! Frequently Less-Adaptive Coping Styles and Strategies:
* Becoming narcissistic.
** Convincing myself of my own importance and that what I am doing is extremely important to the world.
* Knowing the “truth.”
** Convince myself I'm right and know the truth. If I can convince myself that I know the truth about life and the universal meaning of existence, then I can gain comfort. Often, this illusion is accompanied by an intolerance for others’ questions, beliefs, or style of living.
* Trying to control life, or at least label it.
** Convince myself that if I organize myself and my thinking in controlled, logic-tight compartments, then I can control life. Labels give an illusion of control. If I have power over things around me, then I have power over my life and my destiny.
* Learning to not think.
** Sometimes it is simply less painful if I choose to just not think about things that matter, and certainly to avoid using critical thinking skills. I will selectively ignore areas of my life.
* Learning to not care.
** Convincing myself not to care; it is less painful that way.
* Keeping busy.
** Avoid facing difficult personal issues or my fear of empty space/time, during which I might be forced to face their issues, by keeping busy.
* Seeking novelty.
** Substituting aesthetic experience for authentic close relationships and meaningful self-examination.
!! Frequently More-Adaptive Coping Styles and Strategies:
* Coming to know oneself.
** An individual must "separate the wheat from the chaff" when it comes to his or her values and perception of the world. One’s unique characteristics and personality must be recognized, valued, and accepted by oneself.
* Becoming involved in causes.
** Something beyond yourself to feel connected and worthwhile.
* Maintaining a sense of humor.
** If you push a tragedy far enough, into absurdity, it becomes a comedy. A sense of humor can ameliorate our feelings of hopelessness about existential issues.
* Touching and feeling connected.
** Feed your skin contact hunger.
* Compartmentalizing.
** Just because people are upset in one area of their life does not mean that they should be miserable about everything.
* Letting go.
** People who are intense often try to impose their will on the world around them in virtually all areas yet find themselves unsatisfied or unhappy with the outcome. Let it go, and go with the flow.
* Living in the present moment.
** Living in such a way makes it easier to deal with whatever you are doing at the present moment. People in disintegrative states often focus heavily on the past or on the future, which looks so bleak to them, rather than living in the present.
* Learning optimism and resiliency.
** Optimism significantly affects how people respond to adversity and difficulty. Although there is a genetic predisposition toward optimism or pessimism, and even toward depression, depression is greatly influenced by how an individual has learned to react to what happens in his or her life.
* Focusing on the continuity of generations.
** For some, focusing on the continuity of generations—children and grandchildren—is comforting.
* Being aware of “rippling.”
** Butterfly effect. Each of us creates—often without our conscious intent or knowledge—concentric circles of influence that may affect others for years, even for generations.
The latest thing in the discord is PLOG (Planar Law Of Goblins? Possum Laws of Gaming?) which seems to be DREAM + GLOG (Goblin Laws of Gaming) https://icequeensthrone.blogspot.com/2020/05/the-possum-laws-of-gaming.html https://weirdelfgames.com/2020/05/24/the-possum-laws-of-gaming/ oh this is interesting it's like [[fandom culture|2020.03.07 - idic/kinktomato]] but for dnd
<<<
!! THE NINE POSSUM LAWS OF GAMING
# ''Find your trash.'' your trash is D&D stuff you like, from whenever, however. just find cool D&D shit!!!
# ''Put your trash together!'' the goal of the PLOG is to combine the parts of D&D you like into a cool D&D
# ''Your trash can be anything!'' it doesn’t have to be D&D itself, but the PLOG is geared towards making your own D&D. pull in cool stuff from other games, other media, things you’re excited about
# ''Love your trash.'' the things that you enjoy are great, and talk about why you like them!
# ''…But toss it when it gets stinky.'' Some of D&D is bad and hateful. don’t keep bad stereotypes or ideas about marginalized people. we want to share our trash with everyone!
# ''Share your trash!'' show people the cool things you’ve found, the things you’re excited about, the hidden gem you’re going to use in your games.
# ''Play nice when you share your trash.'' Part of PLOG is explaining why we like the parts of D&D that we do, and we don’t all like the same parts. Have good conversations, don’t hate each other for liking different things.
# ''Let the trash grow!'' finding new trash and adding new trash and reexamining your old trash makes for more fun and even more cool ideas!
# ''Just because it’s someone else’s trash doesn’t mean it has to be yours.'' it’s okay to say you don’t want something someone else suggests, just be polite about it!
<<<
omniversal conversion table
Powergamers (aka smurfs, tryhards, murderhobos, twinks, spikes, munchkins,<<ref "cg">> or min-maxers) are my least favorite people to play TRPGs with. Why? Let's take a look. Powergamers:
# Change what is essentially a co-operative story-telling game into an abstract strategy/deck-building<<ref "db">> game.
# Hog the limelight and make the game boring for the rest of the party.
# Turn fun challenges into either snore-worthy slugfests or presses-of-the-"I win"-button.
# Make a sport out of testing the GM's patience, thus risking them just giving up and no-one getting to play.
# Create ridiculous characters just to make number go up (blind alcoholic sociopaths in GURPS, //shudder//).
# Make the game all about violence and combat when it could be so much more.
What is to be done about the powergamer menace? Allow me to offer some suggestions:
# Play games with simple or fully-random chargen. Powergaming relies on a game where you can rice out a character at chargen, i.e. WOTC D&D or GURPS. If you play [[Risus]], an OSR game, or Classic Traveler, the problem is nipped in the bud. Basically, if Google turns up no results for "`<system name>` character builds", you're golden.
#* If you must play WOTC D&D, ban splatbooks (especially additional PHB volumes).
#* If you must play GURPS, good luck lol.
# Don't play with powergamers. Find artsy storygame types (or grogs that love rolling 3d6 in order) to play with instead.
# (Good DM) Talk to the powergamer. Explain //why// they're ruining everyone else's fun. You can give them the carrot by telling them it'll be more fun and you can reward them if they play nice, or give them the stick by saying they have to cool it or they can't play any more.
# (Evil DM) Make a policy of killing min-maxed and/or twinked characters. Fudge your dice rolls. "Oh dear, there was a master mind flayer on the random encounter table - oh no, he stunned your character with a natural 20 - oops, he ate your brains and is using your body as a puppet. Why'd he target you? Because he's very intelligent and knew you were the strongest, so he went for you first."
---
<<footnotes "cg" "Before the (admittedly very fun) card game stole the word">>
<<footnotes "db" "Please, just go play Magic where this behavior is acceptable.">>
Someone's real name, that is to say their legal name or the one they go by IRL. A closely guarded secret. This wiki will strive not to use real names, unless a contact prefers to go by one.
During my Christian upbringing, I was expected to pray (and, once or twice at Sunday School, to lead it). Unfortunately, I never really knew how because no-one ever taught me<<ref so>>. When I asked how, people would look at me funny. Eventually I just learned the lord's prayer (the long, protestant version) and would say that, which seemed to please them. I never felt back then that prayer was a sincere activity for me. It's one of the reasons I didn't get very much out of Christianity (besides that Yaldabaoth isn't worthy of my or anyone's worship).
I've wanted to pray to [[Lord Shiva]]. At first I prostrated myself (dogeza) before the sun and rattled off whatever came to mind. It felt good, though maybe the prostration was unnecessary<<ref mp>>. I would prefer a frameworked ritual, and I think sitting on the ground (with my new meditation cushion mb) would be a better way.
A source just now said I should:
# Hail the kami (salutation)
# Praise the kami's greatness (veneration)
# Confess and ask forgiveness for your sins (confession)
# Speak with the kami (interlocution)
# Cap off the prayer (valediction)
It would be nice to make this a ritual of day and night, too. I have a source on my home computer that may help with that.
I was originally concerned that thumbs out, palms together, hands facing up - like the :pray: emoji (🙏) - was too Christian, but it seems most everyone uses that position somehow (Namaste/Añjali Mudrā/gassho) so it seems a perfectly adequate way to hold one's hands while praying. Having a separate mudra to the one used for meditation (the dhyana mudra) seems like a good idea.
----
<<footnotes "so" "I used to get worried about sealing off a prayer properly so God wouldn't hear my mundane thoughts about computer games or whatever - or indeed, my lustful thoughts about my crush at school, lol. So I would say 'amen' over and over in my head until I thought about something else.">>
<<footnotes "mp" "On reflection, it seemed more like the Muslim type of prayer that [[Shedu]] showed me.">>
Eastern-style prayer beads are called Japamala<<ref "jp">> or Mala in India and Nenju or Juzu in Japan. They traditionally have 108 beads and a central guru bead - in Japanese, 108 "koshu" (child beads) and one or two "boshu" (parent beads).
108 is an auspicious number. In Buddhism it's the number of earthly desires<<ref "ed">>; there are various uses for it in Hinduism (such as the number of ganas, Lord Shiva's attendants).
The beads should be worn or carried in the left hand when not in use in a prayer or ritual. I keep my prayer beads either in a specially made bag or on my altar (under the protection of the [[kami|EST: Kami]]) when not wearing or using them. You can also wear it around your neck like a necklace.
The uses of the mala are:
# Counting 108 repetitions of a mantra. The method is:
## Sit on the ground, cross-legged or in a lotus position.
## Hold the mala in your right hand, with the first bead (next to the guru/boshu bead) between your thumb and forefinger
## Recite the [[kami's|EST: Kami]] mantra
## Move your thumb to the next bead in the chain (do not cross the guru bead)
## Repeat until you reach the guru bead at the end of the chain
# Rubbing it between your palms while praying
# Rotating it in your hands
# Holding it between the thumbs and fingers while praying with your hands in the Añjali Mudrā/gassho (palms together, fingers and thumbs parallel facing towards your head)
# Passively as a charm
-----
<<footnotes "jp" "After japa, the practice of counting mantras with the beads: https://en.wikipedia.org/wiki/Japa">>
<<footnotes "ed" "In Buddhism, according to Bhante Gunaratana this number is reached by multiplying the senses smell, touch, taste, hearing, sight, and consciousness by whether they are painful, pleasant or neutral, and then again by whether these are internally generated or externally occurring, and yet again by past, present and future, finally we get 108 feelings. 6 × 3 × 2 × 3 = 108. (Wikipedia: https://en.wikipedia.org/wiki/108_(number)#Buddhism)">>
A place to collect manifestos for better, saner computing.
<<list-links "[tag[Principles, Laws, and Software Freedoms]sort[title]]">>
* https://www.technicalgrimoire.com/david/2017/12/coilBoundPrint
** "Staples, Office Depot, UPS"
* Cheaper? https://www.thebookpatch.com/
* http://www.themook.net/gamegeekery/printing-rpg-pdfs/ lulu guide, featuring IANAL notes on legality
* https://www.printme1.com/
* https://forum.rpg.net/index.php?threads/whats-the-best-way-to-print-rpg-pdfs-as-a-book.797836/
* https://www.reddit.com/r/rpg/comments/3x7g5e/is_it_okay_to_print_rpg_pdfs/
<<<
Short answer: it's complicated, but nobody's going to come after you for it.
Long answer: Now, this varies by nation, and even within a single nation, copyright laws change. As a general rule, format shifting is allowed. If I have a CD, I can rip the disc to MP3. This isn't always the case- the UK is moving to ban format shifting (and have banned it in the past).
But one fairly consistent thing regarding copyright violations is that they're civil crimes. That is to say, the wronged party has to bring charges. It's not enough to violate copyright- the owner of that copyright must know about it, and must decide to bring charges against you.
This carves out a pretty clear "personal use" exception. If you make copies in the privacy of your own home, use them for your own reference, or reference around your gaming table, nobody is going to give a shit.
Now, the other wrench in the works is that when you purchase something like an ebook, you're not purchasing a book- you're purchasing a license. That license is an agreement between you and the copyright holder. That agreement may put additional restrictions on your rights, and may explicitly say, "You can't make physical copies of this book". As a note- I've seen some technical books that come with that sort of license.
In this case, you would not be violating copyright, but you would be violating the terms of your agreement with the vendor. That, at least, means they could revoke your license. They may specify other penalties in the license term. But, much like "personal use" above, they have to know about it, and they have to decide it's worth their time and energy.
As a general rule, making copies for personal use does violate someone's copyright, but those copies may still be legally allowed under some provisions, and even if they are not legally permitted, the purpose of copyright law is not to send the copyright goon squad to your door demanding you burn your printed copies.
<<<
Function pointers: https://fuckingfunctionpointers.com/ / https://goshdarnfunctionpointers.com/
"Howdy pardner, how do we combine words together 'round these parts?"
* camelCase
** Because the cap looks like a camel's hump
* ~PascalCase
** Because Pascal used it, I guess.
** AKA a ~WikiWord
** AKA ~TitleCase
* snake_case
** Because the underscore looks like a snake crawling on the ground
* kebab-case
** Because the hypen looks like it's making a word-kebab.
!! When to use which?
* Java: camelCase
* Lisp: kebab-case seems most common.
* Golang: camelCase for unexported things, ~PascalCase for exported things (capitals are semantic)
* C: inconsistent, but usually snake_case
[[https://en.wikipedia.org/wiki/Puja_(Hinduism)]]
पूजा
[[The Abyssal]] loves these. They're like taco bell at home, and are that great intersection of delicious and easy to make.
!! Ingredients
* 1lb chicken (white meat fillets, breast is best)
* 4 tortillas
* Pack of fajita mix
* Lots of grated cheese (colby jack works best)
!! Method
# butterfly the chicken fillets
# fry the chicken fillets in a pan with the fajita mix
# when done, shred the cooked chicken with a carving knife
# pack chicken and cheese into half-moon in each tortilla
# fold tortillas
# fry on medium for 2 minutes (using a lot of oil; video joked "be scared of deep frying them"). flip, fry other side
# (optional) cut finished quesadillas into wedges like pizza slices
# serve alone or with guac.
!! Todo
Figure out how to make the fajita mix.
//Copied from [[The Glatisant #7|https://questingbeast.substack.com/p/the-glatisant-issue-7]] (Under subheading "Free Kriegspiel Revolution")//
Discussions surrounding the Free Kriegspiel style of play (discussed in [[Issue #3 of the Glatisant|https://questingbeast.substack.com/p/the-glatisant-issue-3]]) accelerated quite a bit in August. FKR (also known as Arnesonian-Style or Ancient School) focuses relentlessly on the fiction of the game, removing most visible mechanics in order to force players to imagine the world directly rather than through the lens of rules and dice mechanics.
A FKR discord channel [[has been set up here|https://discord.gg/njtEJRc]]. It’s hosted many of the most fertile and interesting discussions I’ve seen since I first found the OSR. It has also compiled [[this document|https://docs.google.com/document/d/1_4IIrBbn4ddoq-9dYlsnaluDbJJmX20rvAKzL31vxK4/edit]] full of links for people curious about FKR and has started it own community zine: [[The Neverending Drachenschwanz|http://darkwormcolt.blogspot.com/2020/08/the-neverending-drachenschwanz-wants-you.html]].
Pits Perilous has a great post from 2016 explaining something fundamental about the play style: that stripping out most of the rules of an RPG can serve to //[[increase|http://pitsperilous.blogspot.com/2016/04/minimalist-gaming-doesnt-exist.html]]// [[the realism and complexity of the game|http://pitsperilous.blogspot.com/2016/04/minimalist-gaming-doesnt-exist.html]] rather than decrease it.
Aboleth Overlords [[expands on this idea|https://aboleth-overlords.com/2020/08/29/less-rules-to-do-more/#more-746]] in their “Less Rules to do More” series and gives examples for [[combat maneuvers|https://aboleth-overlords.com/2020/08/30/less-rules-to-do-more-combat-maneuvers/]] and [[wounds|https://aboleth-overlords.com/2020/09/03/less-rules-to-do-more-wounds/]].
Patrick Stuart’s Goose-Gold and Goblins game feels like it’s [[leaning in a FKR direction as well|http://falsemachine.blogspot.com/2020/08/a-dice-mechanic-for-goose-gold-and.html]].
The Invicta ~YouTube channel has [[a video on the origins of wargaming|https://www.youtube.com/watch?v=-seIA9tukDs]], (which gave rise to the original Free Kriegspiel), as well as a [[follow-up interview with Jon Peterson|https://www.youtube.com/watch?v=ZedVhT_NEPU]], author of Playing at the World.
<<<
I legitimately fucking hate you. Seriously.
<<< donut
<<<
Take my friend [[chameleon]]. She's terrifyingly abnormal by common standards (perilously beautiful). Sociologists will tag her as deviant on many bellcurves. She's one of them ~~persons~~ weebs the normies warned you about. In the eyes of so many I hold in contempt, her existence, apparently, is a form of bad manners (which is so hard to fathom). Fuck that. Her weirdness is [[beautiful]] to me. Her honesty is breathtaking, hilarious, and insightful.
<<< [[h0p3]]
<<<
I'm prone enough to cancer as it is without you helping the process along
<<< [[Lofty]]
<<<
I feel like we should measure things in [Chameleon] Snake Oil Quotient, which is inversely proportional to her attempts to understand it
<<< Lofty
<<<
I'm Lofty. [Chameleon] somehow adopted me into her elite circle of friends and it's been madness ever since.
<<< Lofty
<<<
([chameleon] is an exception to the RL picture complex of mine because I'm used to her and she qt)
<<< [[Nobu]]
<<<
She's a living meme.
<<< Tasos
<<<
She's usually sober in the same way that a river is usually dry.
<<< Lofty
<<<
I don't think she knows what she means sometimes
<<< Alex
<<<
Once I learned about fractals, I started seeing them everywhere.
<<<
<<<
The more I learn about philosophy, the more I learn I'm absolutely hopeless at it and will never be worthy of licking the ground where even a lowly Real Philosopher has treaded.
<<<
https://www.playleadguitar.net/free-raag-yaman-course.html http://www.tanarang.com/english/yaman_eng.htm
Seems to be a good intro; the scale is simple (lydian; linked videos in D) and thus the learner can focus on the unique aspects of the raag.
* [[Ustad Shahid Parvez & Ojas Adhiya perform it|https://www.youtube.com/watch?v=ed4SIvGjqNI]]
<<<
[[You|chameleon]] give me the feeling like you've got 10,000 rabbitholes to pull out of your hat.
<<< [[h0p3]]
<<<
Metaphor for the conceptual path which is thought to lead to the true nature of reality. Infinitesimally deep and complex, venturing too far down is probably not that great of an idea.
[...]
The origin of the term is from the rabbit hole in Alice in Wonderland which leads into Wonderland.
<<< UD entry for [["Rabbit Hole"|https://www.urbandictionary.com/define.php?term=Rabbit%20Hole]]
Rabbitholes are a precious treasure to me, as someone interested in the farthest reaches of human experience. I aim to find places online where I will get well and truly lost, learning and experiencing new things along the way.
!! Nashville
|!Frequency|!Callsign|!Format|!Distance|!City of License|
|88.1 FM|WFSK|Smooth Jazz|2.5 miles|Nashville, TN|
|89.1 FM|WECV|Christian Talk|1.0 miles|Nashville, TN|
|90.3 FM|WPLN|Public Radio|9.6 miles|Nashville, TN|
|91.1 FM|WNXP||5.9 miles|Nashville, TN|
|92.9 FM|WJXA|Soft Adult Contemporary|11.8 miles|Nashville, TN|
|95.5 FM|WSM|Country|5.9 miles|Nashville, TN|
|97.9 FM|WSIX|Country|8.3 miles|Nashville, TN|
|100.5 FM|WBOU-LP||4.9 miles|Nashville, TN|
|101.5 FM|WXNA-LP||2.2 miles|Nashville, TN|
|103.3 FM|WKDF|Country|9.6 miles|Nashville, TN|
|104.1 FM|WDYO-LP||2.8 miles|Nashville, TN|
|105.9 FM|WNRQ|Classic Rock|9.6 miles|Nashville, TN|
|!Frequency|!Callsign|!Format|!Distance|!City|
|650 AM|WSM|Classic Country|11.0 miles|Nashville, TN|
|760 AM|WENO||1.0 miles|Nashville, TN|
|880 AM|WMDB|Gospel|5.1 miles|Nashville, TN|
|980 AM|WYFN|Religious|6.1 miles|Nashville, TN|
|1200 AM|WFCN|Adult Standards|7.2 miles|Nashville, TN|
|1240 AM|WNVL|Regional Mexican|0.5 miles|Nashville, TN|
|1300 AM|WNQM|Religious|8.2 miles|Nashville, TN|
|1360 AM|WNAH||2.6 miles|Nashville, TN|
|1510 AM|WLAC|News/Talk|8.0 miles|Nashville, TN|
I don't know where these come from. They might be brainworms, or I might've forgotten the source.
<<<
Cancel culture is just Gamergate for lefties
<<<
<<<
Haters are what a demagogue calls their critics, and a fool calls the wise
<<<
<<<
Life on social media versus life in the real world is a zero sum game
<<<
Possibly my fave anime of all time, behind only really Lucky Star.
I've mentioned it on the wiki before:
<<<
I'm listening to Ranma 1/2's soundtrack as I write this and that's one of the most infamous No-Endings in anime (and in manga to a lesser extent). Ranma has lived in my head rent-free for like 10 years. I'm still in the fandom of a show that ended in '96, even to the point of writing fanfic now.
<<< [[2021.08.15 - Wiki Review: Don't call it a comeback]]
!! The Link Tree of Awesome
* [[The series introducing itself!|https://cdn.discordapp.com/attachments/675728138063314944/887889316133617714/ranma_intro.mp4]]
* [[Subbed episodes|https://www.youtube.com/playlist?list=PLCyQireo0gUw7b1rX25wjJnYM617gU-Hp]]
* [[Mangadex|https://mangadex.org/title/d41bebac-1fd3-45dd-80f4-c371db540a2a/ranma-1-2]]
* [[TVTropes|https://tvtropes.org/pmwiki/pmwiki.php/Manga/RanmaOneHalf]]
** [[Characters|https://tvtropes.org/pmwiki/pmwiki.php/Characters/RanmaOneHalf]]
** [[FF Recs|https://tvtropes.org/pmwiki/pmwiki.php/FanficRecs/RanmaOneHalf]]
* [[Plebbit (r/ranma) |https://old.reddit.com/r/ranma/]]
* Pixiv
** [[Series tag|https://www.pixiv.net/en/tags/%E3%82%89%E3%82%93%E3%81%BE1%2F2/artworks]]
** [["Ranma is too cute to live" tag|https://www.pixiv.net/en/tags/%E3%82%89%E3%82%93%E3%81%BE%E3%81%8C%E3%81%8B%E3%82%8F%E3%81%84%E3%81%99%E3%81%8E%E3%81%A6%E7%94%9F%E3%81%8D%E3%82%8B%E3%81%AE%E3%81%8C%E3%81%A4%E3%82%89%E3%81%84/artworks]]
** [[Ryoga/Ranma tag|https://www.pixiv.net/en/tags/%E8%89%AF%E4%B9%B1/artworks]]
** [[Kodachi tag|https://www.pixiv.net/en/tags/九能小太刀/artworks]]
** [[https://www.pixiv.net/en/users/479715]]
*** https://twitter.com/wanfutoshi
* Fic
** https://archiveofourown.org/tags/Ranma%201*s*2/works
** https://www.fanfiction.net/anime/Ranma/
** https://jusenkyo.fandom.com/wiki/Ranma_1/2_Fan_Fiction_Wiki
** Ranma/Ryoga
*** https://www.fanfiction.net/s/5308231/1/Tabula-Rasa - Tabula Rasa. Featuring a permanent Ranma-chan.
*** https://archiveofourown.org/works/3117836/chapters/6755804 - The Autumn Effect. Ranma gets pregnant.
** An essential part of fan canon: [[The Bitter End|https://www.fanfiction.net/s/11108496/1/The-Bitter-End]]. Warning, this is a darkfic with major character death and discussions and depictions of domestic abuse.
*** [[Ranma: The Darkfic Problem]]
* Vid (add to me!)
** [[Djclyve's Ranma 1/2 Character Profiles|https://www.youtube.com/playlist?list=PLDC1CAF27B282E2A0]]
*** [[Highlight: the best character, Ryoga|https://www.youtube.com/watch?v=unhl3t6aJE0]]
** [[The Most Badass Ryoga Moment|https://www.youtube.com/watch?v=GApD5uG5IlE]]
*** Context: He's looking for his love interest but instead found Ukyo. Being an eternally lost boy, she offers to lead him to her. His finishing move, the Shi Shi Hokodan, is a ki blast powered by his own depression.
** [[Kodachi "Ohohohoho!" compilation|https://www.youtube.com/watch?v=6G2BeiKz1_0]]
* Music
** [[OST album|https://www.youtube.com/watch?v=ObXAbCuWKQw&list=PLl7nrO_ShqxIfGkN9YXXTiqCweINRFQIb]]
** [[My fave OP|https://www.youtube.com/watch?v=LnniwRQcbJg]]
*** It's actually wonderfully nostalgic for me. This was the OP at the point in the anime I was at when I was revising for my A-levels, where watching Ranma was one of the few things that really made me happy (I had a rough childhood). Also the song is just hella nostalgic in general.
** [[The first OP is also good|https://www.youtube.com/watch?v=QlZiGylP1M8]]
*** [[Spanish, for extra nostalgia|https://www.youtube.com/watch?v=pZ3qsLzssKI]]
* Fandom Wiki
** https://ranma.fandom.com/wiki/Ranma_%C2%BD
** https://ranma.fandom.com/wiki/List_of_Ranma_½_episodes
** https://ranma.fandom.com/wiki/List_of_Ranma_%C2%BD_manga
* Old internet stuff
** http://www.dougmacd.net/ranma/index.html
*** https://web.archive.org/web/20020206064252/http://www.dougmacd.net/ranma/index.html archived feb 2002, so the links aren't dead.
<<list-links "[tag[Ranma ½]]">>
Ranma is a comedy gag manga with occasional martial arts action and occasional romance. It is a farce that plays on [[aspects of Japanese society|2021.09.21 - Some thoughts about Ranma, time, and Japanese Society]] (so much so that Rumiko Takahashi was surprised the series did well in the West). Thus, darkfics which explore darker sides of the characters, while potentially great stories in and of themselves, somewhat miss the point (and the tone) of the original series.
<<<
H3Knuckles Thu 30 Sep 2021 02:24AM EDT
Eh, you sound like someone who only knows the series from fanfiction. I'll grant the ending of the manga was subtle, but it's pretty clear where the series was going. And no, Akane isn't 'notoriously asexual'. She's prudish and jealous, but those do not an ace make. It's kind of insulting to imply a violent tomboy in a farcical comic is demonstrating a sexual identity with her immature behavior that's entirely dictated by the needs of situational comedy. Her behavior towards Ranma is practically Punch & Judy fare.
I'm all for fanfic that explores a more dramatic take on the series, but it sucks when an author plays favorites in which aspects they adapt and which they take verbatim. Like Zen's The Bitter End was well written, and I like what-ifs, but Ukyo absolutely gets violent with Ranma when he annoys her just like Akane. She just doesn't have as much screen time. Shit, look at how she exploits Konatsu, it's not at all the cute trans couple fanfic writers like to write. I like the latter more, but it goes against who she actually is in the series.
H3Knuckles Thu 30 Sep 2021 02:58AM EDT
Hating on Akane for how she treats Ranma is like writing a fanfic where Bart Simpson is this broken down wounded animal and Homer's a monster because of all the times they had Homer throttle Bart for slapstick. Or writing angst fics where Yukari-sensei loses her job because of when she hit Tomo with a lunch tray several times at the end of that one Azumanga Daioh sketch. After all, Tomo may have hit her first, but even if it hadn't been an accident Yukari is still the adult and a teacher and has a responsibility to hold herself to a higher standard. But it's actually just a moment of slapstick from the final panel of a silly four-panel comic strip.
That's the tone of the Ranma series most of the time, and in order to understand the characters and narrative you need to look at it through that lens. As for emotional mistreatment, it's actually pretty mutual. Ranma is an ass who genuinely does treat all the girls quite poorly. But that's an important part of the series in general, all the character are like that. That's where most of the humor comes from. Like canon Nabiki has antisocial personality disorder, Ryoga's as self-absorbed and delusional as Kuno (like the fan-favorite Lost Boy straight up tries to brainwash Akane into loving him, so add attempted rapist to the list if we're taking all this seriously), the list goes on.
After a while it starts to feel like people either are misappropriating a character/series as a means to work through some shit, or they're just the type that always has to inject cynicism and negativity into everything. You know, the type that goes 'isn't Superman fun and uplifting? But what if we made it grim and violent and sad all the time, and make it so Superman doesn't give two shits about all the civilians that would have to be getting injured or even killed in his third act special effects extravaganza/orgy of violence. Wouldn't that be so much more deep and clever?' Instead of doing a story with a property that lends itself to those kinds of themes. One could make a whole deconstructionist piece about how Batman's an aristocratic piece of shit who wastes vast amounts of time & money on a futile quest for catharsis through non-specific acts of violent aggression, when he could do so much more to improve Gotham by doubling down on using that wealth and the influence he has as Bruce Wayne to treat the causes of the city's out-of-control crime problem, rather than the symptoms. But where would be the fun in that?
Valentine20xx Thu 30 Sep 2021 03:37AM EDT
OK, Not had a reviewer like this in a few weeks. Shows how much I've posted. So, We need to look at Ranma and call it slapstick. Ha ha ha... NO. Slapstick has hilariously exaggerated injuries and reactions, full of comedic timing. Ranma's narrative has very few times where the narrative pokes fun at itself.
So, Apparently, the entire cast is a bunch of douchebags who abuse each other, and we should accept Akane's treatment of Ranma as equal measure to his mistreatment of others, and we should laugh at when he gets hurt. Look, I don't know where you get your information, especially about Nabiki having 'antisocial personality disorder' and that Ranma pretty much deserves all the shit he gets.
From how I see it, and many other fans, Akane is abusive, prone to flying off the handle whenever Ranma seems to be unfaithful to her, placing herself on a pedestal above Xian Pu, Ukyo and Kodachi, while she is largely faithless, actually hitting Ranma for not taking her side on an argument.
So, I'm a terrible writer for doing a short piece exploring the vague possibility that Akane would take her mindset of that she'd never marry 'that pervert' to screw him on the day, because I'm not having Ranma put his foot in it and get ready for Hammer Time, instead I have Nabiki point out that, if Akane did do something like that, most of the NWC would go out to kill her on the spot.
H3Knuckles Thu 30 Sep 2021 04:58AM EDT
First off, I didn't say you were a terrible writer. I'm just saying it's weird that you've written at least a couple short 'Akane is crazy and something terrible happens to her' stories. Also, it feeds into the larger tendency towards vilifying her which gets tedious. There's been _so many_ Akane-bashing fics over the years Valentine. It's some of the most worn-out subject matter for Ranma fanfic.
Also Ranma 1/2 is totally a slapstick series. Like, what are you talking about? If you're seriously trying to argue that it isn't then I know you haven't checked out the actual series for yourself. What about when Ranma is laid up in a Looney Tunes style full-body cast at the hospital for how he acted during the reversal jewel story arc and still gloating about getting to Shampoo? The same arc where Ranma pressures Ukyo to confess her feelings for him to soothe his wounded pride over Shampoo's rejection, and she proceeds to clobber him with her spatula while doing a cliche anime style overreaction before running away full-tilt (watch from the seven-minute mark to 7:20 in the following ~YouTube video: [[https://youtu.be/um9DFP1kFpI?t=420]]<<ref vid>>). Or all the cartoonishly deformed weirdos like Picolette or the niku-men? How about Happosai throwing around spherical bombs rather than actually fighting people? It's full of cartoon violence. Just because a series doesn't lean on the fourth wall to poke fun at itself has nothing to do with whether it's slapstick.
I didn't say Ranma deserves all the shit he gets. I said the style of humor in the series often revolves around people being inconsiderate, selfish, or petty, so when trying to get a sense of a character, you have to grade on a curve as it were. That if you take things super literally, most of the cast comes off a lot worse than the kind of person they are meant to be seen as. How many times does Ranma hit Genma and other people outside of a proper fight or spar just because they are annoying him? A lot more than you probably realize. But he's not supposed to be seen as a bully. And neither is Akane supposed to be taken as an domestic abuser.
As for my take on Nabiki? She's put other peoples lives in jeopardy for profit on multiple occasions. She tried to sell Ranma (in girl form at the time) into slavery to the Yakuza (see the Kasha-Oh Kinnosuke arc). If we take Kasumi calling Akane a 'violent maniac' seriously, then it's worth noting during the Kinnosuke arc Nabiki is described as having 'no maidenly feelings' (in context the narrator is saying she's heartless). Pretty sure I recall Takahashi herself identifying Nabiki as the only character besides Happosai she considered evil in a translated interview as well. Maybe from the Memorial Book?
How many fans see it is based in part on a self-fueling loop in the fan community going back to when few people had access to the whole anime, and the back third or so of the manga didn't have an English translation. A bunch of fanfic writers who naturally had a poor understanding of the series(due to limited access and no such thing as fan wikis) then wrote tonally-different stories with shaky characterization, and the nascent community didn't know any better about what was canon and what was intended divergence by the authors. Fights broke out about character interpretations, people dug their heels in, and when they finally could easily see the whole thing they went in with a heavy dose of confirmation bias. The fanon then got perpetuated with these later writers' contributions, which then influenced successive waves of fans. This is not the only series where this has happened, look at the Harry Potter fandom and how many have such a divergent conception of characters like Snape from what's actually in the books.
Not going to address my point regarding your flying leap regarding Akane's sexuality, I take it?
At the end of the day, I'm just some rando on the internet, so I don't expect to convince you of anything. But I wanted to speak my mind about your notes at the end. I'm sorry that I said it in an abrasive way.
<<< [[AO3 users commenting on an Akane-bash fic|https://archiveofourown.org/comments/470911840]]
------
<<footnotes vid "The part in the Curse of the Reversal Jewel OVA where Ranma coerces Ukyo to admit she loves him, and she gives him a couple'o fookin' slaps for the pleasure.">>
!! Books
* https://www.goodreads.com/book/show/289669.Tarrying_with_the_Negative - Zizek on Kant, Hegel.
** Should also read the source material, lol.
* [[Hypersanity - Thinking Beyond - Neel Burton|https://www.amazon.co.uk/Hypersanity-Thinking-Beyond-Neel-Burton/dp/1913260003/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=&sr=]]
** The book behind the [[blogpost|2019.08.05 - Hypersanity]] from the other day
** Not out at time of writing, so wait for Oct.
* [[The Divided Self - Laing -|https://www.amazon.co.uk/Divided-Self-Existential-Madness-Classics/dp/0141189371/ref=pd_rhf_dp_p_img_3?_encoding=UTF8&psc=1&refRID=1GDPJDWQ7N613KAHC58B]] a primary source for the above?
* I need to read more primary sources in general.
** Psychobabble
*** Jung
*** Lacan
** [[Buddhism]]
*** Pali canon
*** Tibetan works
*** [[Diamond Sutra|https://diamond-sutra.com/]]
** Ugh, the problem with being monolingual and having no fucking focus to learn Sanskrit, or German, or Pali, or Chinese, or Latin, etc etc ad nauseam is that I can't read this shit in the original languages, so I have to rely on translation.
* Drink books
** [[Smuggler's Cove: Exotic Cocktails, Rum, and the Cult of Tiki|https://www.amazon.com/Smugglers-Cove-Exotic-Cocktails-Cult/dp/1607747324]]
** [[Liquid Intelligence|https://www.amazon.com/Liquid-Intelligence-Science-Perfect-Cocktail/dp/0393089037/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=JYMGN3AMXFV0EY5TSJAA]]
* Ergodic literature
** House of Leaves
** https://www.alluvium-journal.org/2013/03/26/explorations-in-the-ergodic/
!!! Steven recommends (philosophy books)
{{2019.10.29 - steven reccomends}}
!! Link dump
* Parenting<<ref "pr">>
** [[How Inuit Parents Teach Kids To Control Their Anger|https://www.npr.org/sections/goatsandsoda/2019/03/13/685533353/a-playful-way-to-teach-kids-to-control-their-anger]]
** [[We have ruined childhood.|https://www.nytimes.com/2019/08/17/opinion/sunday/childhood-suicide-depression-anxiety.html]]
*** The stress from my high school finals was comparable to my stress at having to apply for a visa to one of the most immigration-hostile countries in the world. I don't want my kids to go through that.
** [[Chores kids should do based on age|https://www.reviewed.com/parenting/features/age-appropriate-chores-for-children-chore-lists-for-kids-of-every-age?utm_source=pocket-newtab]]
* [[Kickscondor|https://www.kickscondor.com/]]'s shit:
** https://www.kickscondor.com/cardhouse/ - fun internet trash blog
*** http://cardhouse.com/2017/2017.htm#20170525 - the kind of mad information overload shit I could probably process given my emacs addiction
*** http://cardhouse.com/links/links.htm - link dump
** https://www.jwz.org/blog/ - dude's name keeps coming up in the circles I frequent
** Source: https://ask.metafilter.com/337066/Any-old-school-bloggers-still-posting
* A while back I found a bunch of noise/background sites. I've lost a bunch of the links, but I liked them. Gonna try and recreate a list.
** https://www.noisli.com/
** https://noises.online/ - this one is good!
* http://www.structuredprocrastination.com/ - classic idea, procrastinate on something bigger to get something smaller done
!!! useful links
{{UsefulLinks}}
!! Eastern Mythology /tg/ post
<<<
"""
Alright, I wanna know about china and india and all of their weirdass mythology. I wanna know about wuxing and hindu myths and all the other fancy shit that western stories don't have.
Give me all the required reading you fucks can muster and don't skip on anything
"""
<<<
<<<
"""
Chronologically, the answer is the Vedas, but it's literally a thousand pages so:
-Upanishads. These are commentaries of the Vedas so can be read before diving into the Vedas.
-Ramayana. It's a basic story and is easy enough to follow. It's trippy tho. That's to be expected, because Hindu Lit is trippy in general.
-Bhagavad Gita. Real good shit. Lots of lesson on Virtue Ethics.
-I don't know, something random along these lines, the Purunas are disjointed but give you more insight to specific aspects of the myth. Basically these are your electives.
-In any of these, although the texts themselves are ideal, I STRONGLY suggest you to pick up audio or video versions of them, even if it's some shitty CGI movie. Because you have a lot of ground to cover holy shit.
-I also recommend just checking out wikipedia if it's informational stuff like gods or whatever. Some of them can be successfully compressed, so yes you're allowed to be lazy if it's too much for you.
Then when you're big boy enough: The Mahabharata.
"""
<<<
<<<
"""
For china
Classic of Mountains and Seas, basically work as Monster Manual of China.
In Search of the Supernatural :a collection pre-Tang fantasy stories in China.
Strange Stories from a Chinese Studio, What the Master Would Not Discuss - for the interesting, wierd, small stories about supernaturals in daily life.
Legend of the White Snake - earliest monster girl fall in love with a guy story of the east.
Journey to the West, Investiture of the Gods :the 2 big epic fantasy stories.
"""
<<<
https://en.wikipedia.org/wiki/Ramayana:_The_Legend_of_Prince_Rama
----
<<footnotes "pr" "I'd like to be a parent some day, I think, though it might be difficult, as my hubby and I can't get pregnant.">>
You have entered into the mouth of madness. You have stumbled across [[chameleon]]'s wiki.
You're probably wondering `wҺ𝘢ʈ ╤ћᘓ 𝔽ᵁʗꗪ`<<ref "ts">> (what the fuck) and to be honest, it's a little hard to explain. If you want to quickly vet me, hopefully my [[Absolutes]] will do that in short order. If you're here for the long haul, I'll start with just my motivations, and we'll build upon it from there.
I write shit down. A lot. I write down probably 70% of the thoughts I have. I've filled notebooks with crap like Perl code snippets, sub-200 word fictions, quotes I heard, diagrams of software that will never be written, bad ideas that sounded good at the time, doodles of loved ones, etc. Sadly, notebooks are dead trees. They get lost, they get damaged by water, they get thrown away. Buying a lot of nice notebooks can get pricy (look up the price of a Moleskine and try not to vomit). They're difficult to search, index, or share.
I also have some thoughts I might like to share with others. I design roleplaying games. I listen to music a lot and like to curate recommendations. I'd like to keep track of what I've watched and read, alongside recs. Sometimes I have a half-decent idea. I like thinking about philosophy and politics, even if I'm an autodidact.
I used to have a blog, but posting to it grew infrequent with time. Part of this is that, in the first few posts, I established a mood, tone, and subject - and subsequently exhausted the well of things I wanted to talk about in that mold. Another part was that writing a blog post had a certain gravitas to it that I grew unable to reach. I wanted somewhere to put more shallow posts than a blog, but less shallow than the deliberately awful Twitter or the downright-evil Facebook.
The wiki is the synthesis of these. It's somewhere to post what's going on, and stuff that is worth sharing, without the pressure of making it into a full blogpost. It's highly interlinked, so ideas can bounce off each other. And it's part of a small internet of like-minded people.
The wiki is organised into tags. These are a little disparate, but hopefully they communicate the broad array of things I talk about. You can see them on the sidebar and above posts. I also rate how finished an article is using the [[Development Levels]] system. Briefly, the article is rated from 5 (not started) to 0 (perfect and immutable) via 3 (scaffolding finished) and 2 (text finished, maybe tweaking will occur).
There is a web of [[Meta]], [[Unsorted]], and [[Shitposting]] lurking at the fringes of the wiki. I wrote an article about [[myself|chameleon]], including how to contact me. I write [[Letter]]s to other wiki-ers and internet folx. Every day (or at least as close as I can get, depending on life stuff) I complete my two [[Daily Tasks]]: respond to a prompt, and comment on today's random Tarot card. I write [[Journal]] entries and collect [[Links]].
The wiki may seem solipsistic, even narcissistic. It is mostly meant for me, with a little extra on the side for the curious bystander and a treasure trove for those that (one way or the other) care about me. Ultimately, however, the wiki hides an awful truth: I'm not very interesting. I'm mundane, a bog-standard lefty lady with only the weirdness of weeabooism and waifuism to differentiate me from any other.
However, as my senpai would say, I aim to do you justice. I'm developing my moral sensibilities, a virtue ethics tempered through the fires of Stirner's ethical egoism, I'm learning from [[Senpai]] in new and exciting ways, and I'm finding out more about myself and the world.
So my question for you, traveler, is thus:
{{Text Art: magical realm||ASCII: 30%}}
----
<<footnotes "ts" "thanks, [[senpai|h0p3]]">>
<<chame-list-links "[tag[Religion and Spirituality]]">>
I love this article: [[http://swordofmassdestruction.blogspot.com/2020/01/rethinking-clerics-and-religion-part-1.html]]. It really strikes at the way I think about "religion".
I think I've mentioned in other places about how "religion" is specifically a Christian concept. I should add another idea: "conversion" is only really a thing between Christianity and Islam, the two "religions of the book" that encourage prosletyzation. I've heard that if a Buddhist priest doesn't like you for whatever reason, he's likely to refuse to teach you - unthinkable from the Christian perspective, where getting someone to believe is a goal no matter what means used.
For someone like me, "conversion" is a long process of total deprogramming from a Christian upbringing, followed by many avenues of exploration, arriving at a worldview that is very unique - strongly influenced by Indian thought for sure, and yet I'm not entirely in one camp or another.
I hope this element of religious studies makes it out of academia. I remember having a similar conversation with an undergraduate when I was at university, many years ago.
{{Text Art: tombstone||ASCII: 100%}}
<div style="font-family: 'Go Mono', monospace; padding-top: 40px">
<p>Goodbye objective morality...</p>
"""
You died in chameleon's wiki on [[level 69|Monadism]] with 420 points and 1337 pieces of gold, after 3069 years.
You were level 69,420 with a maximum of 9001 hit points when you died.
"""
</div>
<<list-links "[tag[Retired Wiki Mechanics]sort[title]]">>
Very much a nice-to-have ;)
* PC XT, hercules card, amber monitor `*drool*`
* Commodore 64c
** Disk & tape drive for old-school fun
** SD card addon
* 486 PC
** Can this run 3.1?
** Soundblaster
** master 3-drive setup
** Could boost up to a Pentium + 3d card for early 3d games
* More famicom games
** Mod your famicom to do rgb
http://retroforth.org/
!! Gotchas
* [[Prefixes|http://forth.works/book.html#prefixes]] instead of the usual "are we interpreting" dance.
** Strings use a prefix and are whitespace-terminated. Use an underscore for a literal space.
* Stack comments use no spacing & a single dash: `(nn-n)` rather than `( nn -- n )`
!!! Prefixes
| !Prefix | !Used For |
| @ |Fetch from variable|
| `!` |Store into variable|
| & |Pointer to named item|
| # |Numbers|
| $ |ASCII characters|
| ' |Strings|
| ( |Comments|
| : |Define a word|
!! Naming conventions
* Readability is important
* Be consistent
* Don’t use a prefix as the first character of a name
* Don’t use underscores in word names
* Use short names for indices
* Word names start with a - for “not”
* Words returning a flag end in ?
`[namespace:]name`; words: kebab-case, variables: ~PascalCase, constants: UPPER-SNAKE-CASE.
!! Stack notation cheatsheet
| !Notation | !Represents |
| b, n, m, o, x, y, z |generic numeric values |
| s |string |
| v |variable |
| p, a |pointers |
| q |quotation |
| d |dictionary header |
| f |`TRUE` or `FALSE` flag. |
!! Building
Might be useful later to see how the image is constructed.
```
mkdir -p bin
cc -o bin/retro-embedimage tools/embedimage.c
cc -o bin/retro-extend tools/extend.c
cp tools/document.sh bin/retro-document
cc -o bin/retro-muri tools/muri.c
cc -o bin/retro-unu tools/unu.c
cat tools/retro-describe.retro doc/words.tsv >bin/retro-describe
./bin/retro-muri image/rx.muri
chmod +x bin/retro-describe
Wrote 1013 cells to ngaImage
./bin/retro-extend ngaImage image/retro.forth
Initial Image Size: 1536
+ 4476 tokens from image/retro.forth
New Image Size: 9306
MAX SP: 20, RP: 67
cp ngaImage rre.image
./bin/retro-extend rre.image interface/filesystem.retro interface/floatingpoint.retro interface/unix.retro interface/rng.retro interface/sockets.retro interface/retro-unix.retro interface/clock.retro
Initial Image Size: 9306
+ 404 tokens from interface/filesystem.retro
+ 1209 tokens from interface/floatingpoint.retro
+ 288 tokens from interface/unix.retro
+ 67 tokens from interface/rng.retro
+ 200 tokens from interface/sockets.retro
+ 581 tokens from interface/retro-unix.retro
+ 166 tokens from interface/clock.retro
New Image Size: 14600
MAX SP: 19, RP: 76
./bin/retro-embedimage rre.image >vm/nga-c/retro-image.c
cd vm/nga-c && cc -o ../../bin/retro retro-unix.c -lm
cd package && ../bin/retro -f list.forth
./bin/retro-embedimage rre.image >vm/nga-c/retro-image.c
rm rre.image
cd vm/nga-c && cc -o ../../bin/retro retro-unix.c -lm
```
Links from [[https://www.tarot.com/tarot/decks/rider]].
Script used:
```bash
#!/bin/sh
echo "Links from [[https://www.tarot.com/tarot/decks/rider]]."
echo ""
echo "Script used:"
echo ""
# shellcheck disable=SC2016
echo '```bash'
cat "$0"
# shellcheck disable=SC2016
echo '```'
echo "!! Major Arcana"
for card in the-fool the-magician the-high-priestess the-empress the-emperor the-hierophant the-lovers the-chariot strength the-hermit wheel-of-fortune justice the-hanged-man death temperance the-devil the-tower the-star the-moon the-sun judgement the-world
do
echo "# $card - [[https://www.tarot.com/tarot/cards/$card/rider]]"
done
echo "!! Minor Arcana"
for suit in wands cups swords coins
do
echo "!!! $suit"
for card in ace two three four five six seven eight nine ten page knight queen king
do
echo "# $card of $suit - [[https://www.tarot.com/tarot/cards/$card-of-$suit/rider]]"
done
done
```
!! Major Arcana
# the-fool - [[https://www.tarot.com/tarot/cards/the-fool/rider]]
# the-magician - [[https://www.tarot.com/tarot/cards/the-magician/rider]]
# the-high-priestess - [[https://www.tarot.com/tarot/cards/the-high-priestess/rider]]
# the-empress - [[https://www.tarot.com/tarot/cards/the-empress/rider]]
# the-emperor - [[https://www.tarot.com/tarot/cards/the-emperor/rider]]
# the-hierophant - [[https://www.tarot.com/tarot/cards/the-hierophant/rider]]
# the-lovers - [[https://www.tarot.com/tarot/cards/the-lovers/rider]]
# the-chariot - [[https://www.tarot.com/tarot/cards/the-chariot/rider]]
# strength - [[https://www.tarot.com/tarot/cards/strength/rider]]
# the-hermit - [[https://www.tarot.com/tarot/cards/the-hermit/rider]]
# wheel-of-fortune - [[https://www.tarot.com/tarot/cards/wheel-of-fortune/rider]]
# justice - [[https://www.tarot.com/tarot/cards/justice/rider]]
# the-hanged-man - [[https://www.tarot.com/tarot/cards/the-hanged-man/rider]]
# death - [[https://www.tarot.com/tarot/cards/death/rider]]
# temperance - [[https://www.tarot.com/tarot/cards/temperance/rider]]
# the-devil - [[https://www.tarot.com/tarot/cards/the-devil/rider]]
# the-tower - [[https://www.tarot.com/tarot/cards/the-tower/rider]]
# the-star - [[https://www.tarot.com/tarot/cards/the-star/rider]]
# the-moon - [[https://www.tarot.com/tarot/cards/the-moon/rider]]
# the-sun - [[https://www.tarot.com/tarot/cards/the-sun/rider]]
# judgement - [[https://www.tarot.com/tarot/cards/judgement/rider]]
# the-world - [[https://www.tarot.com/tarot/cards/the-world/rider]]
!! Minor Arcana
!!! wands
# ace of wands - [[https://www.tarot.com/tarot/cards/ace-of-wands/rider]]
# two of wands - [[https://www.tarot.com/tarot/cards/two-of-wands/rider]]
# three of wands - [[https://www.tarot.com/tarot/cards/three-of-wands/rider]]
# four of wands - [[https://www.tarot.com/tarot/cards/four-of-wands/rider]]
# five of wands - [[https://www.tarot.com/tarot/cards/five-of-wands/rider]]
# six of wands - [[https://www.tarot.com/tarot/cards/six-of-wands/rider]]
# seven of wands - [[https://www.tarot.com/tarot/cards/seven-of-wands/rider]]
# eight of wands - [[https://www.tarot.com/tarot/cards/eight-of-wands/rider]]
# nine of wands - [[https://www.tarot.com/tarot/cards/nine-of-wands/rider]]
# ten of wands - [[https://www.tarot.com/tarot/cards/ten-of-wands/rider]]
# page of wands - [[https://www.tarot.com/tarot/cards/page-of-wands/rider]]
# knight of wands - [[https://www.tarot.com/tarot/cards/knight-of-wands/rider]]
# queen of wands - [[https://www.tarot.com/tarot/cards/queen-of-wands/rider]]
# king of wands - [[https://www.tarot.com/tarot/cards/king-of-wands/rider]]
!!! cups
# ace of cups - [[https://www.tarot.com/tarot/cards/ace-of-cups/rider]]
# two of cups - [[https://www.tarot.com/tarot/cards/two-of-cups/rider]]
# three of cups - [[https://www.tarot.com/tarot/cards/three-of-cups/rider]]
# four of cups - [[https://www.tarot.com/tarot/cards/four-of-cups/rider]]
# five of cups - [[https://www.tarot.com/tarot/cards/five-of-cups/rider]]
# six of cups - [[https://www.tarot.com/tarot/cards/six-of-cups/rider]]
# seven of cups - [[https://www.tarot.com/tarot/cards/seven-of-cups/rider]]
# eight of cups - [[https://www.tarot.com/tarot/cards/eight-of-cups/rider]]
# nine of cups - [[https://www.tarot.com/tarot/cards/nine-of-cups/rider]]
# ten of cups - [[https://www.tarot.com/tarot/cards/ten-of-cups/rider]]
# page of cups - [[https://www.tarot.com/tarot/cards/page-of-cups/rider]]
# knight of cups - [[https://www.tarot.com/tarot/cards/knight-of-cups/rider]]
# queen of cups - [[https://www.tarot.com/tarot/cards/queen-of-cups/rider]]
# king of cups - [[https://www.tarot.com/tarot/cards/king-of-cups/rider]]
!!! swords
# ace of swords - [[https://www.tarot.com/tarot/cards/ace-of-swords/rider]]
# two of swords - [[https://www.tarot.com/tarot/cards/two-of-swords/rider]]
# three of swords - [[https://www.tarot.com/tarot/cards/three-of-swords/rider]]
# four of swords - [[https://www.tarot.com/tarot/cards/four-of-swords/rider]]
# five of swords - [[https://www.tarot.com/tarot/cards/five-of-swords/rider]]
# six of swords - [[https://www.tarot.com/tarot/cards/six-of-swords/rider]]
# seven of swords - [[https://www.tarot.com/tarot/cards/seven-of-swords/rider]]
# eight of swords - [[https://www.tarot.com/tarot/cards/eight-of-swords/rider]]
# nine of swords - [[https://www.tarot.com/tarot/cards/nine-of-swords/rider]]
# ten of swords - [[https://www.tarot.com/tarot/cards/ten-of-swords/rider]]
# page of swords - [[https://www.tarot.com/tarot/cards/page-of-swords/rider]]
# knight of swords - [[https://www.tarot.com/tarot/cards/knight-of-swords/rider]]
# queen of swords - [[https://www.tarot.com/tarot/cards/queen-of-swords/rider]]
# king of swords - [[https://www.tarot.com/tarot/cards/king-of-swords/rider]]
!!! coins
# ace of coins - [[https://www.tarot.com/tarot/cards/ace-of-coins/rider]]
# two of coins - [[https://www.tarot.com/tarot/cards/two-of-coins/rider]]
# three of coins - [[https://www.tarot.com/tarot/cards/three-of-coins/rider]]
# four of coins - [[https://www.tarot.com/tarot/cards/four-of-coins/rider]]
# five of coins - [[https://www.tarot.com/tarot/cards/five-of-coins/rider]]
# six of coins - [[https://www.tarot.com/tarot/cards/six-of-coins/rider]]
# seven of coins - [[https://www.tarot.com/tarot/cards/seven-of-coins/rider]]
# eight of coins - [[https://www.tarot.com/tarot/cards/eight-of-coins/rider]]
# nine of coins - [[https://www.tarot.com/tarot/cards/nine-of-coins/rider]]
# ten of coins - [[https://www.tarot.com/tarot/cards/ten-of-coins/rider]]
# page of coins - [[https://www.tarot.com/tarot/cards/page-of-coins/rider]]
# knight of coins - [[https://www.tarot.com/tarot/cards/knight-of-coins/rider]]
# queen of coins - [[https://www.tarot.com/tarot/cards/queen-of-coins/rider]]
# king of coins - [[https://www.tarot.com/tarot/cards/king-of-coins/rider]]
Risus is one of the few RPGs that can do just about anything without relying on 500 page doorstops. In fact, the whole game can be squeezed onto two sides of US letter! Most amazingly of all, it's free - only the optional Risus Companion actually costs anything.
* [[DTRPG link|https://www.drivethrurpg.com/product/170294/Risus-The-Anything-RPG]]
* [[Fansite|http://www.risusiverse.com/]]
* [[Cumberland Games, the publisher|https://rolltop-indigo.blogspot.com/p/cumberland-games-diversions.html]]
<<chame-list-links "[tag[Roleplaying]]">>
{{Text Art: chameleon-dialectic||ASCII: 30%}}
{{Text Art: SEIZON SENRYAKU||ASCII: 30%}}
<div style="text-align: center">भजगोविन्दं भजगोविन्दं गोविन्दं भज मूढमते । संप्राप्ते सन्निहिते काले नहि नहि रक्षति डुकृञ्करणे ॥</div>
<<<
shimapan tastes like a real bowl of sushi – it doesn't just taste like a bowl of rice.
<<<
This is my wiki, a compilation of irreverent irrelevance, terminal technobabble, and poncey postulating & posturing. First time here? ReadMe
Who am I? I am [[chameleon]], [[The Last Waifuist]]. My wiki is an experiment in radical honesty and a living document that catalogues my thoughts, feelings, and dialectics. I hide very little in this space; only that which could put me or my loved ones in danger. This is definitely a gold mine if you think I'm a [[cringe weeb!|Lol chameleon]]
Jump into the TOC in the sidebar, or check out one of the many tags. Note that, if you are viewing the page at [[https://wiki.waifu.haus]] you are viewing the //public// version of the wiki. If I have given you a password, you may view the //private// version at [[https://wiki.waifu.haus/private/]]
<<list-tags-links "[tag[Root]]">>
!! Dungeons & Dragons
The original, and most popular, fantasy role-playing game. It has fluctuated between crunch and lightness in its various editions.
!!! Proto-D&D
* Braunstein, the first RPG, played by the Twin Cities scene in the '69, run by David Wesely, which Dave Arneson played in (and won)
* Blackmoor, the first fantasy campaign, run by Dave Arneson, co-author of the original game
* Chainmail, a fantasy wargame by E. Gary Gygax that would provide a basis for D&D
!!! OD&D
Released in 1974, the original, and the first commercial tabletop RPG. Was very successful in its time. These days, the original books are very difficult to get hold of. It's also a very hard game to learn from these books (known as the LBBs, little brown books) - you really need to understand concepts from the wargame Chainmail alongside things that would be expanded in later editions. Generally played heavily houseruled, or cloned - Delving Deeper is the most faithful clone, but Swords & Wizardry is the most popular.
!!! Holmes Basic
Released in 1977. Blue book. Has a dragon facing the viewer & party of adventurers. A simplification of the original rules, with character advancement up to level 3.
!!! B/X or Moldvay-Cook
Boxed sets released in 1981. Red for basic, blue for expert. Basic book has a draconic creature facing off against a warrior and sorceress; expert book has a wizard watching the action on a crystal ball.
Similar to Holmes basic, it's a summation/simplification of the LBBs. Each book is 64 pages long, including spells and monsters, making it the most compact complete D&D game.
B/X Companion, a fan product, has an expansion of the rules to level cap & fortress building rules. This edition was cloned faithfully in OSE (old-school essentials).
!!! BECMI
Released in 1983. Basic, Expert, Companion, Master, Immortal rules. Red basic books have a warrior fighting a red dragon, blue expert books have a knight on horseback fighting a gold/green dragon.
It's essentially an updated B/X, with rules seperated into Player & GM sections (based on AD&D, which was released roughly in parallel).
Notable for its setting, Mystara, where the "gods" are actually immortals (rules for dealing with which are in the Immortal boxset).
!!!! Rules Cyclopedia
Released in 1991. Compilation of BECMI rules. Fucks up the thief skills by stretching them out over the full level progression.
!!! AD&D
Advanced Dungeons & Dragons. The final form of E. Gary Gygax's dreams for the D&D game. Expands the older editions greatly, and is known for its crunch and thick books.
Some differences from the old-school editions:
* Armor class starts from 10 and descends, rather than 9 descending
* Strength has a percentile at 18 (e.g. Yuugi the Strong, F Oni Fighter, STR 18/00)
* New races and classes introduced, including classics like Monk & Druid
!!!! 1E
Released in 1977 (contemporary to Holmes Basic). The first edition to introduce the now familiar three core books:
* "Player's Handbook", rules for creating and playing characters. Iconic cover of adventurers removing a gem from a statue's eye.
* "Monster Manual", monster stats & flavor text/information.
* "Dungeon Master's Guide", rules and advice for running the game. Cover features a large red demon.
!!!! 2E
Released in 1989 (two years before the rules cyclopedia). The final TSR edition and the swansong for the original family of D&D games. Later editions were very incompatible both with TSR D&D & each other.
2E introduced a lot of settings, including:
* Forgotten Realms
* Spelljammer (D&D IIIIN SPAAAAAACE)
* Al-Qadim (araaaaaaaabian niiiiiights)
2E originally didn't have a Monster Manual, originally you were to get a binder and collect monster cards from various sources, but eventually they did release a "Monstrous Manual".
!!! WOTC D&D
WOTC D&D is characterised by complicated character builds, the OGL (open gaming license) making the d20 system (3e) the most expanded RPG system of all time, and by a wildly different experience between editions.
!!!! 3E
Released in the year 2000, 3e is essentially a new game. It is crunchy and detailed, with skills, prestige classes, and more. It also unifies mechanics to the d20, D&D's most iconic die, and a roll-over system thereof.
Released as an SRD (system reference document) under the OGL, spawning the d20 system. There was a ghetto in the 00s where a lot of RPGs were just d20 system hacks (BESM and [[Advanced Fighting Fantasy]], for example, had d20 versions).
!!!!! 3.5E
Released in 2003. Standalone expansion to the 3rd edition rules.
!!!!! Pathfinder
Not actually made by WOTC, but heavily based on 3.5, it's unofficially nicknamed 3.75 by fans.
It now has a second edition, meaning the family tree has branched again...
!!!! 4E
Released in 2008, this is the most controversial edition. Inspired by MMOs such as World Of Warcraft. WOTC lost their market lead to Pathfinder for a time. Extremely crunchy with detailed miniatures-based combat.
This was my first roleplaying game! I spotted the books in the book store - they were a bit expensive for me, but I was inspired - and got them as a gift later on. I DM'd a long-running game with them in the early 10s, which was good fun but exposed me to a lot of the flaws of the system, and was where I started to develop my DM style.
!!!! 5E
The most popular D&D edition, released in 2015 and originally referred to as D&D Next. Had an open playtesting period. Went viral thanks to a podcast called Critical Role & a TV show called Stranger Things. Matt Mercer, the DM of Critical Role, has even DM'd for celebrities like Stephen Colbert.
Mechanically, it's like 3E with a splash of the old-school. It can be hacked into an pseudo-OSR game by way of Five Torches Deep.
!! Runequest
//Cribbed from [[a short guide to RuneQuest editions|https://www.reddit.com/r/Runequest/comments/4bxs5y/a_short_guide_to_runequesteditions_or_what_the/]]//
A d100 (percentile) system. Shares with T&T the title of the second most well-known fantasy roleplaying game. Provides the basic mechanics for the BRP (Basic Roleplaying) and Call of Cthulhu games.
!!! Classic Chaosium Editions
!!!! RQ1
Released in 1978.
!!!! RQ2
Released in 1979. It was practically the same game, only cleaned up and streamlined a bit. This was the edition that made the game its name, with a cornucopia of supplements and a wide distribution.
!!! RQ3 (Avalon Hill)
Released under a partnership in '84. Split from Glorantha, and instead set in medieval pastiche (first Europe, then Japan). Games Workshop distributed it in the UK.
A generic version of the rules was released by Chaosium under the name "Basic Roleplaying" (BRP) contemporary with the Mongoose editions.
!!! Mongoose
Takes place in Glorantha's second age, prequel to RQ2's Glorantha's third age.
!!!! MRQ
Released in 2006 to mixed reception.
!!!! MRQII
Released in 2009 to a better reception.
!!! RQ6
Released by Moon Design in 2012, this is an expansion of the MRQII rules. It doesn't take place in Glorantha. It's well-rated.
!!! RQG ("4E")
Back in the hands of Chaosium after a merger with Moon Design, RQG (~RuneQuest: Roleplaying in Glorantha) was released in 2018. It's very well-rated, and returns the game to the Glorantha setting.
Some fans call it 4E or RQ4 - presumably because MRQ, MRQII, and RQ6 weren't released by Chaosium or Chaosium/AH. Check the publisher if you're confused about the edition.
!! Tunnels & Trolls
Spun from a simplified take on the original D&D, Tunnels & Trolls is a more mischievous, playful take on the fantasy role-playing game. It's easier to learn (and easier to program for a computer), and is played with just six-siders.
!!! Old
1e T&T, designed by Ken St Andre, is essentially a spin on OD&D. The original editions are long since out of print, but a re-released (anniversary) first edition is available on DTRPG.
!!! 4e
The main readily-available edition prior to 5e. Released in '77.
!!! 5e
5e is the old-school edition of choice. Released in '79, it was the last edition until the 00s.
<<<
The 5th edition Tunnels & Trolls core ruleset does not detail a specific setting, saying only that gameplay occurs in "a world somewhat but not exactly similar to Tolkien's Middle Earth." In an interview in 1986, Ken St. Andre stated that "my conception of the T&T world was based on The Lord of The Rings as it would have been done by Marvel Comics in 1974 with Conan, Elric, the Gray Mouser and a host of badguys thrown in."
<<< https://en.wikipedia.org/wiki/Tunnels_%26_Trolls#Setting
!!!! 5.5e
40 extra pages of material were appended to 5e in 2005 by publishers Flying Buffalo.
!!! The missing 6e
Someone else released their own 6th edition, and T&T went straight to 7e after that.
!!! 7e
30th Anniversary Edition, made by Fiery Dragon Productions round about the same time as 5.5. Skills and attribute-based leveling were introduced here.
!!! Deluxe T&T
The "9th edition" (the 8th was a spin on the 7th with improvements from 5.5, released in French), and now the definitive edition. I suppose they finally decided to drop the numbers, since they were so wonky (they make early D&D look simple).
!! Shadowrun
* 3e is good for old-school play
* 4e is apparently OK but supplanted by 5e
* 5e is good "with krautfixes"
* Avoid 6e
<<list-links "[tag[RPG Tables]]">>
* Ryutaro Ikeda
* He/him (assuming, since Ryutaro is a masculine Japanese name)
* https://ryutaroikeda.ovh/
https://heredragonsabound.blogspot.com/2020/02/the-forever-project.html
[[Slow Application Development|https://agingminotaur.blogspot.com/2017/05/the-slow-application-development-sad.html]]<<ref sa>>
---
<<footnotes "sa" "archive: https://web.archive.org/web/20201030203058/https://agingminotaur.blogspot.com/2017/05/the-slow-application-development-sad.html">>
<<<
[chameleon], you need to write professionally
<<<
SaltyFox, aka Chris-chan (no relation to the infamous eceleb) is another waifuist from 2dl. We've been on good terms for a while, but he's finally around more for me to pester him.
* he/him
* Zero Two from Darling in the Franxx
** Stop watching after episode 15!
* has access to my [[Stories]]
* Reading and writing, memes, waifu feels, music
* Born in Germany to Air Force parents, lives in the Southwest of the USA.
----
<<list-links "[tag[SaltyFox]sort[title]]">>
https://en.wikipedia.org/wiki/Svara#Solfege
<<<
A dot above a letter indicates that the note is sung one octave higher, and a dot below indicates one octave lower. Komal notes are indicated by an underscore, and the tívra Ma has a line on top which can be vertical or horizontal. {Or, if a note with the same name - Sa, for example - is an octave higher than the note represented by S, an apostrophe is placed to the right: S'. If it is an octave lower, the apostrophe is placed to the left: 'S. Apostrophes can be added as necessary to indicate the octave: for example, `''`g would be the note komal Ga in the octave two octaves below that which begins on the note S (that is, two octaves below g).}
<<<
# Sa (सा) - 1/8 (octave)
# Re (रे) - 2 (shuddha re) or minor 2 (komal re)
# Ga (ग) - 3 (shuddha ga) or minor 3 (komal ga)
# Ma (म) - 4 (shuddha ma) or augmented 4 (teevra ma)
# Pa (प) - perfect 5
# Dha (ध) - 6 (shuddha dha) or minor 6 (komal dha)
# Ni (नि) - major 7 (shuddha ni) or minor 7 (komal ni)
|!Sr. No.|!Note|!Notation|!Western|
|1 |Shadja (Sa) | S |Root|
|2 |Komal Rishabh (Re) | r |Minor Second|
|3 |Shuddha Rishabh (Re) | R |Major Second|
|4 |Komal Gandhar (Ga) | g |Minor Third|
|5 |Shuddha Gandhar (Ga) | G |Major Third|
|6 |Shuddha Madhyam (Ma) | m |Perfect Fourth|
|7 |Teevra Madhyam (Ma) | M |Augmented Fourth|
|8 |Pancham (Pa) | P |Perfect Fifth|
|9 |Komal Dhaivat (Dha) | d |Minor Sixth|
|10 |Shuddha Dhaivat (Dha) | D |Major Sixth|
|11 |Komal Nishad (Ni) | n |Minor Seventh|
|12 |Shuddha Nishad (Ni) | N |Major Seventh|
https://thepioneerwoman.com/food-and-friends/how-to-make-sauerkraut/
Basically:
!! Ingredients
* Head of cabbage (2.5 pound)
* Salt (1.5 To 2 Teaspoons Per Pound Of Cabbage)
!! Method
# Remove the outer leaves of your cabbage and any that are damaged. Discard. Cut out the core and rinse the cabbage well, allowing the water to flow between the cabbage leaves. Drain well.
# Reserve 1 outer leaf. Thinly shred the remaining cabbage with a knife or food processor. Place in a large bowl. Sprinkle the calculated amount of salt over the cabbage and toss well. Let sit for 15 minutes.
# Massage the cabbage with your hands for 5 minutes. The cabbage should release a good amount of liquid during this time.
# Pack the cabbage firmly into a very clean glass quart jar. Pour the liquid that was released during kneading on top. Cut a circle the same diameter as your jar out of the reserved cabbage leaf. Place it on top of the packed-down cabbage. Place a weight on top of the cabbage to ensure that it stays under the brine. If the brine doesn't completely cover the cabbage and weight, top off with a 2% solution of salt water (1 teaspoon salt per cup of water).
# Screw a plastic lid onto the jar. Place the jar in a rimmed pan (to catch any overflow) and allow to ferment at room temperature until the kraut is as sour as you like it. This can take anywhere from 1–4 weeks.
# After it's done fermenting, store the sauerkraut in the refrigerator. It's ready to eat.
<$set name="pNom" value="she">
<$set name="pAcc" value="her">
<$set name="pGen" value="her">
<$set name="pRef" value="herself">
<$set name="pPer" value="lady">
<$set name="pChad" value="Stacy">
<<<
All I can say, is "ree"
<<<
<<<
If trump makes anime illegal worldwide I'll be your dealer ok
<<<
<<<
abolish all religions except haruhiism
<<<
In 2014 (iirc) I took an internship at a local software company for some extra cash while I studied.
One day, while I was working, a tall, mischievous-looking <<pPer>> helped me to write a man page for something. I was absolutely blown away by <<pGen>> vim skills - I'd never met someone who was not only better than me at vim, but //in a whole other league.//<<ref "vi">>
I didn't catch <<pGen>> name. Later I talked to one of <<pGen>> coworkers, and recalled that <<pNom>> was very good at vim. The coworker instantly knew the <<pPer>>'s name.<<ref "lt">>
I don't use [[PowerWord]]s on this wiki, but as <<pNom>> goes by this name online, I imagine it's ok to tell you <<pGen>> handle: `score_under`, or `score` for short.
Score is probably the most diligent programmer I've ever met<<ref "lg">>; <<pNom>> has an encyclopedic knowledge of computers which surpasses mine in just about any field you can name. A fun game I play is to hack something together, show it to <<pAcc>>, and marvel as <<pNom>> builds on or rewrites it to be ten times better. We make a pretty good team in that regards - the duct-tape programmer, and the only one badass enough to tidy up after her.
Also, <<pNom>>'s surprisingly kind and empathetic when he needs to be. Being bested by score never feels like a loss, more like a learning experience. When we hang out, 90% of it is programming and bouncing ideas off each other. I'm more than happy to take the kouhai role to <<pGen>> [[Senpai]]. I respect no-one's opinion more when it comes to my code - score knows the territory, and you do well to heed <<pGen>> words.
Score speaks Japanese, or at least is very good at it for a foreigner. So I can rely on <<pGen>> to either aid me with translation or provide the latest amusing anecdote about the goofy language to me.
Score knows about [[Konata]] and is pretty cool about waifu stuff; <<pNom>> was even on /mai/ with me back in the day<<ref "mai">>, only as a guest though lol. In <<pGen>> own words, <<pNom>>'s never been in love (<<pNom>> has been asked out though, the <<pChad>>).
* <<pNom>>/<<pAcc>> pronouns
* ace/aro spectrum
* year or two older than me
* welcome to the nhk, gachaman crowds, flcl
* Shell, Python, C, Scala
----
<<footnotes "vi" "Ironically I don't even use vi family editors any more.">>
<<footnotes "lt" "Quite literally. “Hey who's that $(pPer)$?” “Who?” “$(pNom)$'s really good at vim.” “Oh, that was [score]”">>
<<footnotes "lg" "If score wasn't still working as a computer janitor for that company, $(pNom)$ would be a legend mentioned in the same breath as the likes of Carmack by now.">>
<<footnotes "mai" "And that, dear reader, is a rabbithole for another day if there ever was one.">>
[[THE INSANE ULTIMATE DAMNSHIT MOZERFUKERS|https://www.youtube.com/watch?v=ukhd9OBnOZI]] PRESENT:
{{Text Art: RWIIR||ASCII: 100%}}
<div style="text-align: right">(but please don't actually rewrite it in Rust lol)</div>
A batshit, nigh-suicidal project cooked up by INSANE IN THE BRAIN guru of goreshit programming [[chameleon]]-roshi!
!! ABSTRACT(IONS)
[[Scrivener|https://www.literatureandlatte.com/scrivener/overview]] is, in its own words, "the go-to app for writers of all kinds". It has a corkboard, an outliner, a word processor, and a text wrangler all-in-one. It's really rather incredibly useful for writing fiction.
It's also a proprietary program only available for Mac and Windows (and until recently, the Windows version was gimped). Furthermore it saves to a proprietary format (an XML index into a pile of hex-named RTF files). This cannot stand!
In the great ~OpenBSD tradition, we are to PUT UP OR HACK UP.
!! (CREATURE) FEATURE LIST
* Targets for word count (including progress bars)
* A decent text editor
** Word-wrap
** Move by screen lines rather than file lines
** Unlimited undo
** Live word count
* Outliner
* Corkboard
* Export
** To PDF, by chapter or entire fic (in manuscript format)
** To HTML, ditto (with proper horizontal rules!)
** (Personal) To "friendly" t-filez (markdown?)
!! PRIOR (OUTSIDER) ART
* [[gomacs|https://github.com/japanoise/gomacs]] & [[emsys|https://github.com/japanoise/emsys]]
* [[wordgrinder|https://cowlark.com/wordgrinder/]]
* ~WordStar (as used by [[my bitch!|https://www.cnet.com/news/george-r-r-martin-writes-with-a-dos-word-processor/]])
A seance (from the French, //séance//, a session) is a communique with dead people, spirits or other creatures that satisfy only two [[Dimensions of Personhood]] - that is to say, [[2D]] entities.
Much like the Black Mass, the "how" is shrouded in mysteries, half-remembered truths, accounts from passive observers, and Abrahamic bloviating. All I can speak for is my own practice; I am no guru, and I am no teacher.
Do I really believe in spirits? I don't know. I guess I take the view that I'll give them the respect that they deserve, so long as they don't pretend at existence.
生存戦略しましょうか。 - "Let's initiate the Survival Strategy."
The cult's catchphrase, from [[Penguindrum|https://myanimelist.net/anime/10721/Mawaru_Penguindrum/]], probably the [[Weirdest|The Weird]] anime ever released.
<<<
I know how hard it is to [...] orient your moral compass
<<<
Writing & [[Touhou Project]] friend.
* Pronouns: She/her
* https://archiveofourown.org/users/Sunshowersy/pseuds/Sunshowersy
** Highlight: https://archiveofourown.org/works/32611219/chapters/80895433
<<list-links "[tag[Senarai]]">>
[[A hard and probably still unsolved problem|https://xkcd.com/949/]]!
* Pomf clones - these are the standard "send a file and share a link" solution for anime perverts. The sites constantly die though, so it's not good for permanent storage.
** On that front we have mega.nz. Trustworthy? Probably not. But they've been used for YARHAR without much trouble.
* [[Sphygmus]] recommends: https://www.station307.com/#/
<<<
Should you find a wise critic to point out your faults, follow him as you would a guide to hidden treasure.
<<< The Buddha
"Senpai" is a Japanese word I use as-is rather translating into English, because its particular meaning is useful for me. From [[jisho.org:|https://jisho.org/word/%E5%85%88%E8%BC%A9]]
<<<
# ''senior (at work or school); superior; elder; older graduate; progenitor; old-timer''
# ''Senpai and kōhai'' are an essential element of Japanese seniority-based status relationships, similar to the way that family and other relationships are decided based on age, with even twins being divided into elder and younger sibling. Senpai is roughly equivalent to the Western concept of mentor, while kōhai is roughly equivalent to protégé, though they do not imply as strong a relationship as these words mean in the West.
<<<
To me, a senpai is someone who has more experience than me, who I can/do learn from. The [[Solipsism]] of the wiki may make it seem like I mostly enjoy the sound of my own voice (or the clack of my own keyboard); this is only mostly true ;) I'm young and foolish, and have only been younger and more foolish the further back in the past you go. Keeping in mind that I don't know everything, that wisdom can be found in unexpected places, that the dialectic will continue, is as important to me as anything. My senpai are those in life who can help to point the Way, the ones that keep the glow alive, my treasured friends and teachers.
I once said to a senpai of mine, [[Shedu]], that in life there are people we teach, and people we learn from. Sometimes this relationship is two-way; we learn //and// we teach.
<<chame-list-links "[tag[Senpai]]">>
* Robotech
** next episode: 17
!! Universal
* Emacs
* Firefox
* Linux
* Version control just about everything
!! Desktop
* Hostname: Mahadeva
* Specs:
** AMD Ryzen 5 5600X 6-Core Processor
** 64 GB RAM
** AMD Radeon RX 5600 XT
** MAG B550 TOMAHAWK
* Runs very quickly for everything I've tried. My hubby's similar setup runs heavily modded skyrim at a rock-solid 60fps.
!! Laptop
* Hostname: sadhu
* Thinkpad x200.
* Has enough grunt for on-the-go, but I could probably replace it.
* Lubuntu - 'my' distro. It rules to have good documentation on tap, and for stuff to "just work". Having said that, there were definitely issues with sound @ work - might be the hardware, though.
!! VPS
* Hostname: gotama
* Ubuntu 18
!! Retired
* Hostname: mahakala
** Retired when I left for america
** KDE Neon - it's OK, but I'll probably stick with lubuntu next time I make a fresh install
* Hostname: anubis
** 5 years of faithful service o7
** Some ubuntu flavor I forget.
When talking about the Mass Effect series, it would be remiss of me not to link the [[lengthy deconstruction by Shamus Young|https://www.shamusyoung.com/twentysidedtale/?cat=508]] - yes, that's 50 parts for the main series, 25 parts for Andromeda, and several wrap-up parts.
This is the definitive work on what went wrong, and how it could have been avoided/what could have been. Here is someone beyond my intellectual level putting it into words I couldn't find.
<<<
I came all this way... And now you're saying you won't give ass?
<<<
The Persian Sphinx. I met him at university, and never before had I been blown away by someone's force of personality so much. One of the wisest men I've ever met, and surely the first I would gladly call senpai.
* he/him
* English, Persian, Ancient Greek, Latin
* ASOIAF; The Silmarillion; Poetry
** He composes his own poetry in Persian and English
* Banter
* Theology
If he and [[Nobu]] were to meet, I think even the gods would be hanging from their every word.
<<list-links "[tag[Shedu]]">>
<<<
Shinto is the native religious tradition of Japan, and centres on the veneration of kami. The best definition of "kami" may be "what you venerate when practicing Shinto", because Shinto places much more emphasis on what you do than on what you believe. One widely accepted explanation is that "kami" refers to anything that has an outstanding impact on people's lives, including the kami that appear in the ancient legends of Japan, spectacular natural phenomena such as mountains, oceans, and waterfalls, ancient trees and woodlands, and exceptional human beings.
<<< [[An Introduction to Shinto|https://www.amazon.com/dp/B0878R77SC/]] by David Chart, Chapter One.
AKA funposting. If it's tagged with this, don't take it seriously. It's a joke; private or otherwise, but mostly to make //me// laugh.
<<chame-list-links "[tag[Shitposting]]">>
[[Listen here|https://player.fm/series/the-shrieking-shack]]. Don't bother streaming. DL and open.
Progress (episode to watch next): 87
* Episodes 1-7: Book 1
* Episode 8: Book 1 games & movie
* Episode 9-17: Book 2
* Episode 18: Book 2 games & movie
* Episode 19-28: Book 3
* Episode 29: Book 3 movie
* Episode 30-49: Book 4
* Episode 50: Book 4 games & movie
* Episode 51: Book 4 summaries
* Episode 52-82: Book 5
* Episode 83: Book 5 movie
* Episode 84-: Book 6
----
* Episode 93 1st segment: JKR stands with Maya (TERF mask-off)
https://github.com/gildas-lormeau/SingleFile
A place to put my ideas (and code) for a role-playing game idea I've had.
!! Gameplay
* [[BASE BUILDING|https://latenightzen.blogspot.com/2019/08/base-building-mini-game.html]]
* Time-travel/dimension hopping/pan-weeb setting
* OSR-lite combat
* Game should be playable as a tabletop
* Lots of random tables and other randomness
* Cool fun NPCs/Companions
!!! Quickstart
* 3d6 * 3 attributes (att)
*# brn - Brawn (Brawny)
*# agi - Agility (Agile)
*# wil - Willpower (Willful)
* Reroll if nothing 10+
* 3d6≤att to save; 3 always succeeds, 18 always fails
* HP: brawny 8/lv, agile 6/lv, willful 4/lv
* 4 levels
*# Adventurer
*# Hero (4 adventures)
*# Legend (8 quests)
*# Immortal (16 legendary feats)
* Attack: 3d6, remember rolls, beat 18-AC (9 worst, 2 best). Sort dice low, mid, high.
** Light weapons low dam
** Med weapons mid dam
** Heavy weapons high dam
** Guns high+mid dam/instakill (playtest)
* GLOG magic
!! Code
https://git.sr.ht/~japanoise/ssof
<<list-links "[tag[Skyrim]]">>
<<<
The threat today is not passivity, but pseudo-activity, the urge to "be active", to "participate", to mask the Nothingness of what goes on.
<<<
Marxist philosopher and top lad.
* Pronouns: he/him
<<list-links "[tag[Slavoj Žižek]sort[title]]">>
I sneer a lot at "tankies". h0p3 wasn't entirely clear at what that meant. I mentioned that there's different degrees here, so let's go into that.
# Prototankie - just a woke kid who's read about the soviet union on wikipedia or something. They're pretty harmless since, with any luck, they'll read some actual theory and leave Leninism alone.
# Pseudotankie - Not a committed Leninist, but a socialist that sees state intervention as an important or necessary in some way. My disagreements with these types tend to be theoretical with a splash of historical.
# Marxist-Leninist - here we come to the real tankies. MLs themselves come in different degrees, but I've only met very few that I would stand with (and some of those were Trots, who are generally looked down upon by tankies). Anyways, maybe later I'll expand on why I disagree with them (besides the quick refutation of "the USSR fell, and was never headed to anything good anyway") but the fringe of actual sensible leftism is met here. The name "tankies" comes from these types making excuses for or even endorsing the rolling-in of tanks to quash protests in the USSR.
# Twitter Anti-imp - this is where we start to get into incoherence and quackery. These are the people who put in their banners on twitter: "Marxist Leninist. Anti-Imperialist. [10 different national flags]". They generally believe anything that's not the US is Good, with no particular qualifications on that, which leads them to ridiculous positions like making excuses for Assad or acting as if modern-day Russia is a socialist nation. They also like to call anarchists "anarkiddies" and will SEETHE if you call them "redfash" (which they are). Favorite things to do: excuse the actions of cops in "socialist" countries, direct brigades to harass trans folk, and say those aren't REAL concentration camps guise
# Juche gang - further still than the idiots on twitter, these are people who take the intelligent thought "maybe the media exaggerates about North Korea" to its (il)logical conclusion and start to take the country's propaganda at face value. Expect them to unironically believe that the DPRK is a socialist utopia. (You have been banned from /r/pyonyang).
# Dengists - this is the deep end. These are people who believe that not only is contemporary China better than the USA, it's either well on its way to Real Socialism™ or already there.
# "Pol Pot did nothing wrong" - Beyond the pale; so much Lenin brainwormery they've reached the point of forwarding absurd positions.
These aren't hard-and-fast boundaries. There's a lot of overlap between the later categories (most tankies think china good usa bad, even if they don't embrace dengism).
Positions 1 and 2 I take to just be misguided idiots, and 3 to actually be socialists, if hopelessly down the path of an unproductive historical dead-end.
[[Text/Email/Hacker Jargon]] notes that "to snarf" means to get, copy, download something. I use it in a generic way as a filler word as well, especially in tiddler titles. If "to get" makes no sense, just think of it as "oh chame couldn't think of what word to use here".
<<<
Rationalists pride themselves on being on the cutting edge of technology and intellectualism. As Scott Alexander writes in a blog post, "We’re almost certainly still making horrendous mistakes that people thirty years from now will rightly criticize us for. But they’re new mistakes. They’re original and exciting mistakes...."
This is the diametric opposite of reality. They have not, intellectually speaking, made any fundamental advances past perhaps Victorian thought at best.
<<< [[/u/snugglerific|https://old.reddit.com/r/SneerClub/comments/9i32o4/sneerquence_2whatever_we_havent_noticed_the_skulls/]]
[[/r/SneerClub|https://old.reddit.com/r/SneerClub/]] is an important check on the rationalist-adjacent/meta-rationals/internet-philosophers/blah. If we're to understand what to do, we must also understand what not to do.<<ref "cf">>
Certainly for me, the "rational"ists came first. They were doing "philosophy" when I was in diapers<<ref "nq">>. That doesn't mean they were doing it well.
I have a few points of comparison with some of them: I'm autodidactic (outside of my high-school education and my compsci degree), I'm into Jung<<ref "jl">> and LGBT stuff and what have you. I'm a STEMlady which means I'm basically a noblewoman<<ref "if">> among them.
Points of digression?
# I ain't no fuckin utilitarian, buster!
# I don't buy into the stupid fucking AI meme or the stupid fucking transhumanism meme<<ref "th">>
# I'm actually on the left, instead of being a clAsSiCAL lIberAl or "I'm totally left wing, let me just tell you all about skull shapes and how bad tr*ps are"
#* On that note I don't believe in iq or other phrenology-tier pseudoscience
#* I'm also not a tankie, lol. If you want to talk about Mao or the USSR, do it far, far away from me.
# I'm not afraid to [[laugh at myself|Lol chameleon]] sometimes
# I refuse to be a useful idiot for the far-right
# I actually understand computers
## I can tell you why bitcoin is useless bullshit in over seven hundred ways, and that's just with my bare hands
## again, AI. It's bullshit. Learn how to program fucker
## I know that my computer skills are domain knowledge //at best.// I don't talk over experts in other fields. No-one can program themselves into being a good philosopher/sociologist/economist/political-analyst/policy-wonk/etc, they need to read actual philosophy/blah for that<<ref "oc">>
# I finished high school<<ref ":^)">>
So yeah. I sneer not because I'm a sociopath<<ref "so">>, not because I'm on the left<<ref "lt">>, nor because I personally find the rationalists distasteful<<ref "nd">>. I sneer because sneering has something to teach me about my own fallibility, and the possible wrong paths I could take.
------
<<footnotes "cf" "cf. badphil, badreligion, iamverysmart, etc etc.">>
<<footnotes "nq" "Well, not quite. I'm 25 at the time of writing (2019-08-08) and their origins are late-90s at the earliest, by which point I was no longer in diapers. Forgive me the flowery language.">>
<<footnotes "jl" "Real Jung, mind, weird philosophy about the subconscious and shit, none of this //kermit// “Tidy your bloody room” pseud trash">>
<<footnotes "if" "chameleon dragonslayer of the house izumi, the last waifuist, queen of trash">>
<<footnotes "th" "No offense, but your machine god ain't coming to save you">>
<<footnotes "oc" "Or, “Computing is a useful skill, but you need other skills to truly be an expert”">>
<<footnotes ":^)" "Ok this one is just a dig at big yud to be fair">>
<<footnotes "so" "I don't think I am, anyway. Practicing radical empathy and radical kindness is important to me">>
<<footnotes "lt" "I am, but it's not my primary reason">>
<<footnotes "nd" "The nerd persecution complex is particularly distasteful to me; as someone who both was bullied at school for being nerdy, and is a member of an Actually Oppressed Actual Minority, I'd take the former times one thousand over the latter.">>
{{Text Art: chameleon-dialectic||ASCII: 30%}}
<<<
Only you can prevent existential solipsism.
<<< [[Meme|https://cdn.discordapp.com/attachments/493236786475302924/587639083623383056/solopsism.png]]
The wiki is a solitary activity sometimes; even if I do use it to keep in contact with others, the vast majority of wiki activity will be responding to my own prompts, recording my own thoughts, and speaking about what's going on in my life. This is [[chameleon]]'s wiki and [[chameleon]] is the focus.
I've used the word solipsism, or rather "solipsistic" ("of or pertaining to solipsism") a few times in the wiki before; enough that I'm starting to see a pattern:
<<<
Part of the solipsistic nature of the wiki is that trolls don't really have much of an effect on it. I don't visit that side of the internet and I'd prefer to keep it that way.
<<< [[@: hypertext 2020]]
<<<
I sometimes feel that I am alone in my waifuism, even if I am surrounded by other waifuists. It is, in the end, a solipsistic practice. I can point you the way, as a zen master points at the moon; you must not look at the finger, or worse, worship it - but follow to where the finger is pointing.
<<< [[The Last Waifuist]]
<<<
The wiki may seem solipsistic, even narcissistic. It is mostly meant for me, with a little extra on the side for the curious bystander and a treasure trove for those that (one way or the other) care about me. Ultimately, however, the wiki hides an awful truth: I'm not very interesting. I'm mundane, a bog-standard lefty lady with only the weirdness of weeabooism and waifuism to differentiate me from any other.
<<< [[ReadMe]]
<<<
Playful selfishness. Ethical egoism. Ironic solipsism to trigger the libs.
<<< [[Monadism]]
I am not actually an adherent of anything that can be called solipsism except in very broad strokes. Nonetheless:
<<<
Solipsism … is the philosophical idea that only one's mind is sure to exist.
<<< [[https://en.wikipedia.org/wiki/Solipsism]]
The wiki may seem very much like this, even if creating a solipsistic heaven isn't really the intention here.
Oh, but I downplay. Sometimes I forget I even have readers. A lot of the wiki is written only half with the idea that someone else might read it. I even have some ideas that I would totally put on the wiki but that I later think better of. I don't do creativity-work on here (it seems tmi-y for this space) even though I'm starting to far prefer WikiText to markdown. I don't write literally everything here; [[you people|Dear Reader]] don't need to know exactly when I pissed during the week in 2019 when I was worried about having diabeetus because I like candy too much, even though I totally have that information written down somewhere. It's tee-em-fucking-eye. So, maybe I do think a little bit about readers; or rather, I am conscious of what's "out of scope" (if you'll forgive the compsci-ism).
Still, to some degree it's... fuck it? This is my wiki, not yours? I could totally lock it down and send it out via a mailing list or something (put a .htpasswd up and give keys out only to h0p3, sphygmus, and kickscondor, for example) but it's live. It's oversharing in the Real. You can find it easily, at wiki dot waifu dot haus. There it is. It's me. Look at my big bouncy tits ye mighty, and despair!
A perennial fascination of mine is playing RPGs alone. I would like to do this for a few reasons:
# As a storytelling & world-building tool
#* On that note, as something to scratch my ~~henry darger~~ creative work itch.
# For getting my RPG fix when I can't get a group together or don't have the means, connection(s), time, etc. to gather an internet group
# To give me something to do whenever I feel like it, rather than on an infrequent schedule.
# To explore settings, situations, characters, that I can't in a group setting
# For testing out new games and systems
# For fun!
Back in the day, resources on solo play were sparse, and I didn't know anyone else who was interested. Even my gaming buddies were like "why, we have a regular group, right?" Nowadays, we have [[Reddit|https://www.reddit.com/r/Solo_Roleplaying/]] (and yes, I've quit Reddit, but I think it's probably harmless to follow a few links) and Discord.
!! Resources
* Guides & general links
** [[Geek Gamers|https://www.youtube.com/channel/UCLnDxuZE6qWwWxZCN9y8JQA]] - motherly geeky lady points thinks out with a knitting needle and explains solo play.
** https://empaitirkosu.wordpress.com - a [[regular poster|https://www.reddit.com/user/bionicle_fanatic]] on [[/r/Solo_roleplaying|https://www.reddit.com/r/Solo_Roleplaying/]]. He has documented everything in his campaign thoroughly, including a lot of actual play reports, a complete history/timeline of the setting along with development notes, and various musings on the practice of solitaire. Currently working [[on his own system|https://www.reddit.com/r/Solo_Roleplaying/comments/gbs4cz/whats_on_your_solo_rpg_pipeline_tell_us_about_the/fp7vf8b/]].
* Resource silos
** https://www.reddit.com/r/Solo_Roleplaying/wiki/solitairesystems
** https://www.dieheart.net/solo-rpg-resources/
* Specific resources
** Mythic GME - the classic.
*** [[Epic GME|https://noonetoplay.blogspot.com/2013/11/epic-playtest-bird-of-wisdom-part-2.html]] - a d6-based fork of Mythic. It's a good start, but not explained very well and kinda lacking (I don't have, nor do I have much interest in, story cubes).
*** My own Waifu Engine experiment had a lot of elements pinched from Mythic.
!! Thoughts
* I wouldn't bother with gamebooks/solo modules. Good modules are difficult to write at the best of times, and the T&T solo modules I've played were mostly set-dressing for "kill everything". You can do a dungeon bash of that quality by just rolling on the wandering monster tables.
* Ha, wasn't Terry essentially talking to the Mythic GME when he claimed to be speaking to God?
<<chame-list-links "[tag[Solitaire RPG]]">>
https://www.rpgsolo.com/play.php has an interesting take - a web application with nice clicky buttons, random tables on the fly, etc. Unfortunately it's a little limited and isn't hackable. I wonder if I could do something like this - either natively, or a similar JS-based web client, but with ~no limits~.
* https://solodungeoneer.blogspot.com/2012/09/mythic-fate-chart-variant.html
* https://anydice.com/program/1ce53
I have a big binder containing:
* Page one: Oracle & Risus flowchart
** The Risus flowchart is from the companion. Basically deciding whether a target number, single-round combat, or full-on combat is best.
** The Oracle consists of a simplified FURPG table: 1d6 among `(Yes|No)( but..| and...)?`, higher is better...
** ...and also the [[One Table to Rule Them All]]
* Risus rules
* 1975-Style (SOTU) rules
* Random tables from Risus Companion
* Random tables from UNE & BOLD
* Monster/encounter generator
* [[Big List of RPG Plots|https://rolltop-indigo.blogspot.com/2018/10/the-big-list-of-rpg-plots.html]]
* Maps & Various notes
* Names
** 1001 Nights (Persian-ish & Arabic-ish)
** Englishy
** Elvish
** P-Engilsh
** Norse
** [[Kobolds/Monstrous|Worldbuilding: Names]]
** Dwarves
** Towns
** Taverns
TODO:
* NPC name generators
** That hoary old Japanese one
** Indic
** Infernal
* Place name generators
** Town name generator
** Dungeon name generator
** Syllable generator?
Oracles generally give answers to Yes/No questions.
* Mythic GME
** "Roll 1d100 on a very big table".
* FURPG
** Roll 1d6. Extra dice for different (better or worse) odds, pick best (or worst) roll accordingly. Odds fail, evens succeed - see below.
* [[Recluse|https://gravenutterance.com/2019/03/24/recluse-solo-engine/]]
** Roll 1 white and 1 black die. white highest = yes, black highest = no, tie = [[Mu]] (question contains mistaken assumptions). If both are low (3 or less), add But. If both are high (4 or more), add And. Add an extra black or white die if no or yes are more likely, and discard low rolls.
!! FURPG table
|!Roll|!Get what you want?|!Succeed?|
|!6|Yes, and...|Legendary success|
|!4|Yes|Complete success|
|!2|Yes, but...|Only just succeed|
|!5|No, but...|Only just fail|
|!3|No|Complete failure|
|!1|No, and...|Catastrophic failure|
It seems making sourdough is getting really popular these days; probably because a) it's fucking delicious b) I don't think you have to buy expensive, fussy dried yeast from the store.
From what little I know, you use "starter" instead of your usual leavening ingredients.
Watch this space. I'm going to bake some sourdough loaves for my hubby!
!! Starter
https://www.youtube.com/watch?v=sTAiDki7AQA
You can use starter for other things - the tips video from below shows that fried starter in p much its own glory is a yummy, good breakfast. Weissman (who I've sub'd too) also recommends using it as a substitute for yeast whenever yeast is called for (I could use it for Ragusea's pizza!): https://www.youtube.com/watch?v=ToBMly0nx4Q
!! Recipe
* https://www.youtube.com/watch?v=eod5cUxAHRM
* https://getpocket.com/explore/item/how-to-make-sourdough-bread?utm_source=pocket-newtab
!! Tips
Including fried dough-balls (grapes of wrath?)
https://youtu.be/BJEHsvW2J6M
!! Shopping list
[ ] Parchment paper
[ ] Proofing bowls/baskets (brotforms/bannetons)
[x] Dutch oven
[x] Flour (unbleached, rye)
[x] Mason Jar(s)
https://www.drivethrurpg.com/browse/pub/13327/Better-Games
http://www.spacegamer.com
https://sphygm.us/
<<chame-list-links "[tag[Sphygmus]] -[tag[$:/tags/Stylesheet]]">>
Spiritual Computation was my old blog from the period 2016-2019, hosted at [[https://blog.kingdomofmysteries.xyz]]. It is now archived & mothballed; use your wiki password to access it, if you have one.
The name comes from a half-baked, [[weird|The Weird]] idea I had about using computation, and especially programming, to extend my spiritual/religious praxis. So, in a way, this wiki is an extension of the blog's original mission.
While I wrote some great articles on there, a lot of it was utter rubbish, or stuff that I've since changed my mind on. If I can get a decent markdown->tiddlywiki renderer (pandoc extension?) then I can start to migrate stuff to the wiki and eventually retire it for good.
"Systems" and "stances", in this context, are Chapmanic jargon:
<<<
Mostly, people think about thinking about meaning in terms of systems. (By “systems,” I mean religions, philosophies, political ideologies, psychological frameworks, and so on.) But I think that is not how we actually think about meaningness.
When I say “think about thinking about,” I mean that if you ask “How do you think about questions of meaning, value, purpose, or ethics,” the answer is something like “I’m a Christian / existentialist / progressive / Jungian.” Or more likely, nowadays when few people want to commit to a single system, they may mention several.
It seems to me that this is a mistake. In practice, when we actually need to make decisions, we do it mainly on the basis of stances, not systems.
Stances are simple, compelling patterns of thinking and feelings concerning meaningness. For example: “I’m an ordinary guy,” or “the only real purpose in life is to squeeze as much pleasure out of it as you can before you die,” or “good people follow the rules,” or “everyone is responsible for their personal reality.”
<<< [[David Chapman]], [[https://meaningness.com/stances-trump-systems]]
Collecting systems to answer a variety of questions is a very post-post-modern approach; you might try to categorize me as "a Jungian-influenced Stirnerian-egoist Buddhist" or something to that effect, for example.
Systems are big packages of meaning, like a cable subscription, whereas stances are bite-sized, like a single channel or a single show.
<<<
Whatever system, or systems, someone believes in, they probably often adopt stances that contradict it. For example, Christians, in everyday life, often act on the basis of materialism. (I have never been a Christian, but I know this by reading books by Christian pastors, who say this is a big problem.) Progressives also fall into materialism—another contradiction. Many professed Christians say that “all is one, really”—the stance of monism—which goes against the central teaching of Christianity.
<<< ibid
This is just about inescapable. Being 100% consistent in a system is very hard. Sticking with the Christian example: the Bible is supposed to be the word of God, but there are lots of stupid and contradictory parts that most (almost all) Christians either headcanon out or follow some greater and maybe contradictory system (the Western Canon, for example; Hell & Satan are barely in Bible, our conception of such comes from Dante and Milton).
<<<
Systems are big, complicated things with lots of details you are supposed to believe and do. Systems have salespeople, who argue passionately in their favor.
Stances are very simple, and don’t require any specific beliefs or practices. No one explicitly promotes them. You pick them up automatically from our cultural “thought soup.” They are the ways people talk about meaning in soap operas and cafes.
<<< ibid
The "thought soup" is a salient point. No human is an island; we interact to such a high degree with each other that original thought is very hard. We are drawing on thousands of years worth of human interaction - the last time someone had an original thought was when an Indian guy came up with the idea of the number zero, eons ago. We live in a ''remix culture''.
----
* https://triangulations.wordpress.com/2013/10/13/many-selves/
* https://triangulations.wordpress.com/2009/06/15/many-selves-no-self/
* https://triangulations.wordpress.com/2010/03/26/your-modular-god/
* I'd be a rogue/[["facking feef"|https://youtu.be/4fRY6J6lD7k?t=35]], obviously.
** I had thought I might be a wizard, previously, but nah. Maybe a scroll-reading rogue (T&T style), but a facking feef is me for sure, lol ;3
** Decent CHA and INT, good DEX, low WIS, CON, STR
* [[h0p3]] - Wizard (white mage)
** Just seems to fit the philosopher archetype.
** I could also see him as the jack-of-all-trades Red Mage.
* [[The Abyssal]] - Wizard (black mage)
** Embraces the darkness!
** He has always thought of himself as a magic-user, hehe
** High INT and WIS, decent CHA, decent STR, avg DEX, low CON
* [[Shedu]] - Warrior, or possibly paladin
** He's definitely got high STR and CON. He can lift me and a friend with no issue irl, lol. INT, WIS, and CHA also decent. Lower than avg DEX.
* [[Nobu]] - Sorcerer
** Fits her autodidact nature
** 18 CHA and high INT, WIS. Physical stats decent to average.
* [[Lofty]] - Bard
** So spoony.
* Alex - Cleric
** Buzzkill, but you need him around (sorry bro [[=w=.]])
** Surprisingly high WIS, INT. Low CHA. Decent CON, STR, DEX.
I write fiction in my spare time. Most of it is quite personal (Read: [[Waifu]]-related) but a handful of it gets posted online or shared with trusted friends.
''Bold'' //Italic// ~~Strikethrough~~ __Underline__ ^^Superscript^^ ,,Subscript,, `monospace`
[[Internal link|Root]] [[External Link|http://example.com]] [[Broken link]]
<<<
Blockquote
<<< Atribution
```golang
// Code block
import "fmt"
func main() {
fmt.Println("Are you living in the real world?")
}
```
* UL
** Nested UL
*# OL in UL
*# 2
* 2
# OL
## Nested OL
#* UL in OL
# 2
! h1
!! h2
!!! h3
!!!! h4
!!!!! h5
!!!!!! h6
plaintext
HR:
----
```c
/* Github style code block */
#include<stdio.h>
int main() {
println("Are you living in the real world?\n");
return 0;
}
```
This song kicks my ass. If you don't dance to this you ain't got rhythm.
* [[Paris '72|https://www.youtube.com/watch?v=t2RJ3l_0_PA]]
* [[2-9-73|https://www.youtube.com/watch?v=AWuQiGaIsso]]
* [[10-15-77|https://www.youtube.com/watch?v=K_BcfaOrnfM]]
* [[7-8-78|https://www.youtube.com/watch?v=c8sRKSorxgQ]] - [[alt|https://archive.org/details/gd78-07-08.sbd.unknown.294.sbeok.shnf#]]
''SUNSHINE DAYDREAM!~''
!! lyrics
The lyrics are super lovely. Apparently it was written by one of the band members about his wife. Well, that makes it even more [[pertinent to me|Izumi Konata]]
"""
Sugar Magnolia blossoms blooming
Head's all empty and I don't care
Saw my baby down by the river
Knew she'd have to come up soon for air
Sweet blossom come on under the willow
We can have high times if you'll abide
We can discover the wonders of nature
Rolling in the rushes down by the riverside
She's got everything delightful
She's got everything I need
Takes the wheel when I'm seeing double
Pays my ticket when I speed
She come skimming through rays of violet
She can wade in a drop of dew
She don't come and I don't follow
Waits backstage while I sing to you
She can dance a Cajun rhythm
Jump like a Willys in four wheel drive
She's a summer love in the spring, fall and winter
She can make happy any man alive
Sugar Magnolia
Ringin' that blue bell
Caught up in sunlight
Go on out singing
I'll walk you in the sunshine
Come on honey, come along with me
She's got everything delightful
She's got everything I need
A breeze in the pines in the summer night moonlight
Crazy in the sunlight, yes indeed
Sometimes when the cuckoo's crying
When the moon is halfway down
Sometimes when the night is dying
I take me out and I wander 'round
I wander 'round
Sunshine daydream
Walkin' in the tall trees
Goin' where the wind goes
Blooming like a red rose
Breathing more freely
Light out singing
I'll walk you in the morning sunshine
Sunshine daydream
Walk you in the sunshine
"""
''S''econd ''W''ave ''O''f ''R''oleplaying ''D''esign <span style="color:yellow">*</span> ''D''IY ''R''ules ''E''verything ''A''round ''M''e
* https://www.wizardthieffighter.com/2019/anti-canon-worlds-and-the-uvg/
* https://technicalgrimoire.com/david/2019/06/SWORDDREAM
* [[archive 1|https://web.archive.org/web/20190606062503/https://graverobbersguide.blogspot.com/2019/06/a-sword-dream.html]], [[archive 2|https://archive.is/8HrwF]] from a now scrubbed [[article|https://graverobbersguide.blogspot.com/2019/06/a-sword-dream.html]]
* https://twitter.com/the_strix/status/1116065753206104064
* https://itch.io/jam/dreamjam
* https://twitter.com/search?q=%23SwordDream
* https://forum.rpg.net/index.php?threads/system-kitbashing.478427/
* https://dungeonspossums.blogspot.com/2018/09/a-take-on-appendix-n.html
* Manifestos?
** [[The Nine Principles of the *DREAM|https://docs.google.com/document/d/1GnbWtwHuCD_HtfjaKWmqrgcTp9F8DwUOi8ZxQ4ANUg4/edit]] - the Ur Text? ([[pdf copy|https://blog.waifu.haus/pdfs/9pod.pdf]])
** https://www.paperspencils.com/poser-manifesto/
** https://permacrandam.blogspot.com/2020/07/dung-manifesto.html
* [[A history of both the DREAM and the OSR wrapped into one?|https://rolesrules.blogspot.com/2019/06/post-osr-adventure-gaming-with.html?m=1]]
* [[An entryway into a leftist DnD rabbithole|https://lotbieth.blogspot.com/2019/06/a-spectre-73-hd-is-haunting-flaeness.html?m=1]]
<<chame-list-links "[tag[SWORD*DREAM]]">>
!! Vocal Synthwave
* The Midnight
* Electric Youth
* Le Cassette
!! Ambivalent/Dreamy Synthwave
* Timecop1983
* Miami Nights 1984
!! Dark Synthwave
* Perturbator (He's a cool guy too, going by my interactions with him on 8/mu/)
Stuff I don't want to miss that's not in the TOC or Recent.
!! Sidebars
<<list-links "[tag[$:/tags/SideBar]] $:/core/ui/SideBar/Open">>
!! Scripts
<<list-links "[prefix[$:/scripts/]]">>
!! Stylesheets
<<list-links "[prefix[$:/stylesheets]] popupStyle">>
!! Images
<<list-links "[prefix[$:/images/]] OM_MANI_PADME_HUM.svg">>
!! UI
<<list-links "[prefix[$:/ui/]]">>
!! Macros
<<list-links "[prefix[$:/macros/]]">>
!! Plugins
<<list-links "[prefix[$:/plugins/]]">>
```bash
for i in $(seq 1 3)
do
for j in $(seq 1 6)
do
echo \|$i$j\| \|$((i+3))$j\| \|
done
done
```
gives:
```
|11| |41| |
|12| |42| |
|13| |43| |
|14| |44| |
|15| |45| |
|16| |46| |
|21| |51| |
|22| |52| |
|23| |53| |
|24| |54| |
|25| |55| |
|26| |56| |
|31| |61| |
|32| |62| |
|33| |63| |
|34| |64| |
|35| |65| |
|36| |66| |
```
[[Computing]] is a cluttered mess. Let's try and break it up a little.
# Put into webdir
# Retag [[Links: Migrated]]
List of pages that I need to tag somehow (either journal or development level)
<$macrocall $name="list-links" filter="[all[]] +[!is[system]] -[tag[LevelZero]] -[tag[NoLevel]] -[tag[LevelOne]] -[tag[LevelTwo]] -[tag[LevelThree]] -[tag[LevelFour]] -[tag[LevelFive]] -[tag[Journal]] -[tag[Lucky Star Rewatch]] -[tag[Letter]]
-[tag[Note]] -[tag[Shitposting]] -[tag[😳]]" emptyMessage="Everything is tagged, good job!"/>
* she/her, afaict.
* of [[Unimaginable Heights|https://unimaginable-heights.neocities.org/]]
* Partner is Jack. We've yet to be introduced :)
* Got me confused with [[https://chameleon.neocities.org/]] which isn't me (afair ;) )
<<list-links "[tag[Talita]sort[title]]">>
A useful website for playing specifically Hindustani classical music - http://www.tanarang.com/
Quick notes:
* Uses [[Sargam (Indian Solfege)]] for all note values.
* The "Swaras" row of the table can be used as a quick cheatsheet to see what Western scale it follows. For example, the Raag Yaman has "Madhyam Teevra. Rest all Shuddha Swaras"; which is to say, aug4, rest of notes are natural - so the scale is the Lydian.
* Named after [[Pt.|Pandit]] [[Vishwanath Rao Ringe|https://en.wikipedia.org/wiki/Vishwanath_Rao_Ringe]]
[[Hara Tanzan (原坦山).|https://en.wikipedia.org/wiki/Hara_Tanzan]] He was well known for his [[Monadism]].
!! [[Tanzan and the Muddy Road]]
{{Tanzan and the Muddy Road}}
!! [[Tanzan and the Buddha]]
{{Tanzan and the Buddha}}
In Tokyo in the Meiji era there lived two prominent teachers of opposite characteristics. One, Unsho, an instructor in Shingon, kept Buddha's precepts scrupulously. He never drank intoxicants, nor did he eat after eleven o'clock in the morning. The other teacher, Tanzan, a professor of philosophy at the Imperial University, never observed the precepts. Whenever he felt like eating, he ate, and when he felt like sleeping in the daytime he slept.
One day Unsho visited Tanzan, who was drinking wine at the time, not even a drop of which is suppposed to touch the tongue of a Buddhist.
"Hello, brother," Tanzan greeted him. "Won't you have a drink?"
"I never drink!" exclaimed Unsho solemnly.
"One who does not drink is not even human," said Tanzan.
"Do you mean to call me inhuman just because I do not indulge in intoxicating liquids!" exclaimed Unsho in anger. "Then if I am not human, what am I?"
"A Buddha," answered Tanzan.
Tanzan and Ekido were once traveling together down a muddy road. Heavy rain was falling. As they came around a bend, they met a lovely girl in a silk kimono and sash, unable to cross at an intersection.
"Come on, girl," said Tanzan at once. Lifting her in his arms, he carried her over the mud.
Ekido did not speak until that night when they reached a lodging temple. Then he could no longer restrain himself. "We monks don't go near females," he told Tanzan, "especially not young and lovely ones. It is dangerous. Why did you do that?"
"I left the girl there," said Tanzan. "Are you still carrying her?"
* https://www.duplication.ca
* Use red M/M cable. curved end in recorder. See screenshot for level (it's something like 10%)
* no setup tape->pc yet. Shoebox has hum, portable bobbit is noisy and crappy (might work for a quick poc with the red cable though)
* don't leave laptop unattended when recording, it'll go to sleep
!! Major Arcana
# the-fool
#* [[2020.02.04 - the fool]]
#* [[2020.04.03 - foolish girl!]]
#* [[2020.04.18 - Daily Task: influential]]
# the-magician
#* [[2019.11.01 - carpe diem but monthly]]
#* [[2019.12.10 - magician's money]]
#* [[2020.02.09 - rorschach]]
#* [[2020.04.02 - the magic of the wizard's dream]]
# the-high-priestess
#* [[2020.03.25 - Aunt Senpai]]
#* [[2020.04.12 - key change!]]
# the-empress
#* [[2019.10.29 - good vibes]]
#* [[2019.11.07 - bax]]
#* [[2019.12.08 - students]]
#* [[2020.04.09 - honey and vinegar]]
#* [[2020.04.24 - Daily Task: marked]]
# the-emperor
#* [[2019.11.04 - Mastery]]
#* [[2019.11.25 - power & privilege]]
#* [[2020.02.16 - self-mastery]]
#* [[2020.02.24 - Thunderstruck]]
#* [[2020.03.21 - je refuse le Spectacle!]]
# the-hierophant
#* None yet
# the-lovers
#* [[2020.01.12 - lovers and vacation]]
# the-chariot
#* [[2019.10.25 - SILVER CHARIOTTO]]
#* [[2019.11.27 - change again]]
#* [[2020.05.09 - Daily Task: takeaway]]
#* [[2020.06.07 - Daily Task: extravagance and hubris]]
# strength
#* [[2020.06.03 - Daily Task: foo bar baz qux snarf blurt]]
#* [[2020.04.06 - kanyedere]]
# the-hermit
#* [[2019.11.19 - chame said trans rights]]
#* [[2019.12.14 - hermit habits]]
#* [[2019.12.30 - hermit dress]]
#* [[2020.01.25 - parade]]
#* [[2020.06.04 - Daily Task: me me me. me too]]
# wheel-of-fortune
#* [[2020.04.05 - WHAT ARE YOU SAYING]]
#* [[2020.05.25 - Daily Task: eternal reoccurence ramblin']]
# justice
#* [[2020.03.17 - five years time]]
#* [[2020.03.02 - Journey to Justice]]
#* [[2020.01.19 - bbbbb]]
#* [[2019.12.18 - watch out, here it comes]]
#* [[2019.11.21 - serve justice]]
# the-hanged-man
#* [[2019.12.29 - trash]]
#* [[2020.03.08 - cigarettes and alcohol]]
#* [[2020.06.06 - Daily Task: ...and cousin kohai!]]
# death
#* [[2020.05.26 - Daily Task: harvest]]
#* [[2020.03.18 - death of school]]
#* [[2019.12.07 - ☠️☠️☠️☠️☠️]]
# temperance
#* [[2019.11.11 - Kill your TV]]
#* [[2020.01.02 - other people]]
#* [[2020.02.19 - squeezed in before midnight]]
# the-devil
#* [[2019.11.26 - hail satan!]]
#* [[2020.01.26 - drawing the devil]]
#* [[2020.02.06 - hail satan again]]
#* [[2020.04.17 - Daily Task: just b urself xd]]
#* [[2020.04.22 - Daily Task: the rally queen of Devon]]
# the-tower
#* [[2020.01.22 - the end]]
#* [[2020.02.02 - imagine no change]]
#* [[2020.03.03 - tower transport]]
#* [[2020.03.20 - Superpower]]
#* [[2020.05.12 - Daily Task: GIVE ME FOOD]]
# the-star
#* [[2019.10.30 - star shines in all of us]]
#* [[2019.11.15 - star platinum]]
#* [[2019.12.09 - star platinum za warudo]]
#* [[2020.03.05 - SBNRBAR]]
# the-moon
#* [[2019.11.14 - ghosts]]
#* [[2020.02.22 - moonyditation]]
#* [[2020.04.10 - aw yeah... N!]]
#* [[2020.06.01 - Daily Task: indispensable]]
# the-sun
#* [[2020.01.20 - pet and sun]]
#* [[2020.03.16 - jhbfc]]
# judgement
#* [[2020.01.09 - return]]
#* [[2020.01.23 - tabula rasa]]
#* [[2020.03.12 - woah dude]]
#* [[2020.05.30 - Daily Task: this too shall pass]]
# the-world
#* [[2020.01.24 - optimism]]
#* [[2020.02.12 - i miss you]]
#* [[2020.04.13 - Daily Tasks: no soul]]
#* [[2020.05.15 - Daily Task: dlrow eht]]
!! Minor Arcana
!!! wands
# ace of wands
#* [[2019.11.05 - heroes]]
#* [[2020.01.01 - change and carpe diem]]
# two of wands
#* [[2019.11.23 - return; ambition]]
#* [[2020.01.14 - patience]]
#* [[2020.01.15 - imgui]]
# three of wands
#* [[2020.02.17 - livestreamed DT]]
#* [[2020.02.27 - music and chips]]
#* [[2020.05.11 - Daily Task: i wanna be famous before I turn 29, it's too bad I've wasted my life on computer time]]
#* [[2020.05.24 - Daily Task: dobeedo-be-do-ba-da]]
# four of wands
#* Nothing yet
# five of wands
#* [[2019.11.13 - za warudo]]
#* [[2020.02.20 - koff koff]]
#* [[2020.04.07 - denpa kei]]
# six of wands
#* [[2019.11.12 - kindness]]
#* [[2020.01.16 - drink and drive - d&d]]
#* [[2020.01.30 - wrong, learn]]
#* [[2020.04.23 - Daily Task: Lead, and you shall gain followers]]
# seven of wands
#* [[2019.12.11 - what the fuck]]
#* [[2020.04.01 - snarf title]]
# eight of wands
#* [[2019.12.04 - spaaaaace]]
# nine of wands
#* [[2020.04.26 - Daily Task: winning]]
#* [[2020.05.17 - Daily Task: just drive]]
# ten of wands
#* [[2019.11.03 - kamehameha]]
#* [[2020.01.17 - I break mirrors with my face in the USA]]
#* [[2020.03.07 - dindins]]
#* [[2020.05.20 - Daily Task: wrong & hard]]
# page of wands
#* [[2020.02.01 - fils de pute]]
#* [[2020.02.10 - ZA WARUDO!!!!!]]
#* [[2020.03.22 - plumbing]]
#* [[2020.03.28 - throw a rope to my homies in the undertow]]
# knight of wands
#* Nothing yet
# queen of wands
#* [[2019.11.28 - thanksgiving]]
# king of wands
#* [[2019.11.02 - astuhesatuh]]
#* [[2019.12.02 - convenience]]
#* [[2020.04.19 - Daily Task: captain, my captain]]
!!! cups
# ace of cups
#* [[2019.10.22 - material girl?]]
#* [[2019.12.31 - nye cups]]
#* [[2020.03.01 - introspective]]
#* [[2020.03.10 - optimism]]
#* [[2020.05.14 - Daily Task: *snap* yep. that's going in my epic compilation]]
# two of cups
#* [[2019.11.24 - create]]
#* [[2020.04.14 - Daily Task: i wuv my fwends]]
# three of cups
#* [[2019.12.24 - Christmas!]]
#* [[2020.03.23 - family forever]]
#* [[2020.06.05 - Daily Task: journey not the destination]]
# four of cups
#* [[2019.12.05 - trophy]]
#* [[2019.12.15 - chamecringe]]
#* [[2019.12.22 - squander]]
#* [[2020.01.18 - the Big Cheese]]
#* [[2020.02.13 - computer shit]]
#* [[2020.03.13 - scary dreams]]
#* [[2020.03.31 - we live in a society]]
#* [[2020.06.05 - Daily Task: journey not the destination]]
# five of cups
#* [[2019.12.16 - the past]]
# six of cups
#* [[2019.10.31 - shoppe]]
#* [[2020.03.06 - dress-up]]
# seven of cups
#* [[2019.10.23 - advice]]
# eight of cups
#* Nothing yet
# nine of cups
#* [[2019.12.03 - lenny]]
#* [[2020.02.08 - happiness in victory]]
# ten of cups
#* [[2020.03.24 - so much for my happy ending]]
# page of cups
#* [[2020.02.07 - cups and memories]]
#* [[2020.04.28 - Daily Task: imagine no cups]]
# knight of cups
#* [[2019.12.13 - knights]]
#* [[2020.03.19 - fastntng]]
#* [[2020.04.16 - Daily Task: fuj]]
# queen of cups
#* [[2019.11.30 - dislike]]
#* [[2020.01.29 - courage and friendship]]
# king of cups
#* [[2020.02.11 - pops]]
#* [[2020.04.15 - Daily Task: fellate a cactus]]
!!! swords
# ace of swords
#* [[2019.11.20 - tdor]]
#* [[2019.12.19 - secret secret]]
#* [[2020.02.21 - chameleon's book]]
#* [[2020.02.26 - completion]]
#* [[2020.05.29 - Daily Task: sphyg-friend]]
# two of swords
#* [[2020.02.03 - manners]]
# three of swords
#* [[2019.12.17 - separation and poverty]]
#* [[2020.03.04 - clean break]]
# four of swords
#* [[2019.11.17 - donuts]]
#* [[2020.03.14 - flesh-prison spectacle]]
# five of swords
#* [[2020.05.04 - Daily Task: wow I'm glad to have power again]]
#* [[2020.05.13 - Daily Task: no bootstraps, but an outstretched hand]]
# six of swords
#* [[2019.12.21 - the navigator]]
#* [[2020.03.15 - ハロ/ハワユ]]
# seven of swords
#* [[2019.10.24 - money add then multiply]]
#* [[2020.01.13 - ice cream]]
#* [[2020.02.28 - always against the consensus]]
#* [[2020.04.11 - ethics]]
#* [[2020.05.28 - Daily Task: smart, not hard]]
# eight of swords
#* [[2019.10.26 - the mind prison]]
#* [[2019.11.18 - age of lies, will you open your eyes?]]
#* [[2020.04.08 - woolly mammoths]]
#* [[2020.04.27 - Daily Task:]]
# nine of swords
#* [[2020.04.20 - Daily Task: and no sleep tonight]]
# ten of swords
#* [[2020.05.06 - Daily Task: rip soldier's va ;_;7]]
#* [[2020.05.21 - Daily Task: mi-mi-million, mili-run-run]]
#* [[2020.06.02 - Daily Task: miller lite]]
# page of swords
#* [[2020.05.10 - Daily Task: The best laundry folder in the West]]
#* [[2020.05.31 - Daily Task:]]
# knight of swords
#* [[2020.01.31 - fave books, za maindo]]
#* [[2020.05.01 - Daily Task: happiest]]
# queen of swords
#* [[2019.12.26 - forever 25]]
#* [[2020.02.23 - chame the ost]]
# king of swords
#* [[2020.05.07 - Daily Task: your internal senpai]]
!!! coins
# ace of coins
#* [[2020.02.18 - da rulez]]
#* [[2020.02.25 - seeds]]
#* [[2020.03.09 - liam rules]]
#* [[2020.04.25 - Daily Task: fyeb, seed boy]]
#* [[2020.05.16 - Daily Task: woah dude]]
# two of coins
#* [[2019.10.27 - helluva catch, that catch-22]]
#* [[2020.03.11 - still emo in 2020]]
#* [[2020.05.27 - Daily Task: george lucas made one good movie and it was largely because of his (now ex) wife's editing chops]]
# three of coins
#* [[2020.06.08 - Daily Task: master inventor chame]]
# four of coins
#* [[2019.10.21 - æ]]
#* [[2020.01.28 - being a better friend]]
#* [[2020.02.15 - fuck steve jobs]]
# five of coins
#* [[2019.10.20 - eyes wide open]]
#* [[2019.11.09 - uh oh, stingy]]
#* [[2020.04.04 - WHAT ARE YOU DOING]]
#* [[2020.05.22 - Daily Task: parents]]
# six of coins
#* [[2020.02.29 - karen]]
#* [[2020.05.03 - Daily Task: WANTED: tech daddies to give me lots of money for nothing in return]]
# seven of coins
#* [[2019.11.16 - manners & hard work]]
# eight of coins
#* [[2019.10.28 - the real world]]
#* [[2019.12.01 - courage and work]]
#* [[2019.12.23 - inspiration unknown]]
#* [[2020.02.05 - honest work]]
#* [[2020.03.29 - crapitalism]]
#* [[2020.05.18 - Daily Task: if you work, you lose]]
# nine of coins
#* [[2020.01.21 - no smoking]]
#* [[2020.02.14 - taxation is a diet]]
#* [[2020.03.26 - rather]]
# ten of coins
#* [[2019.11.29 - growing up]]
#* [[2020.05.19 - Daily Task: boots mcsnarf]]
# page of coins
#* [[2020.01.05 - page of coins]]
#* [[2020.03.27 - beginner's mind]]
# knight of coins
#* [[2020.04.21 - Daily Task: the very lazy chameleon]]
#* [[2020.04.30 - Daily Task:]]
#* [[2020.05.08 - Daily Task: groundhog first day of school]]
#* [[2020.06.09 - Daily Task: power suit]]
# queen of coins
#* [[2019.12.12 - teach and share]]
#* [[2020.01.11 - work & relax]]
#* [[2020.01.27 - fto & freeze peach]]
#* [[2020.03.30 - analphabetapolothology]]
#* [[2020.05.05 - Daily Task: read desert by anonymous]]
# king of coins
#* [[2019.11.10 - 3 tibet]]
A category to use to work through creating [[The Big Picture]].
<<chame-list-links "[tag[TBP Workshop]]">>
Inventor of the Back button, with in-depth lectures about computer history, and visions for alternate computing.
* [[Computers for Cynics|https://www.youtube.com/watch?v=KdnGPQaICjk]], a must-watch series. [[Full playlist|https://www.youtube.com/playlist?list=PLTI2Kz0V2OFlgbkROVmzkfQRW2FrX2KfR]].
* [[Xanadu Basics|https://www.youtube.com/watch?v=hMKy52Intac]], I haven't watched these yet, but it may be an alternate history of hypertext - an interesting concept!
* [[Fast-Talking Intro to ZigZag-- Multidimensional Structure for Anything|https://www.youtube.com/watch?v=DlyJzGEQpbs]] - I've seen this concept come up before, interesting...
I'm not as prolific with my jargon as my [[Senpai]] might be, but I still can't escape it.
<<list-links "[tag[Terminology]]">>
!! Chanspeak
<<list-links "[tag[chanspeak]]">>
<<list-links "[tag[Test: Footnotes WRT Tiddler Transclusion]]">>
{{Test: FWRTTT refs}}
<<footnotes "pt" "Test 1 succesful!">>
{{Test: FWRTTT footnotes}}
<<footnotes "tt" "Test 2 succesful!">>
This is a footnote included in the parent tiddler<<ref "pt">>
This is a footnote included in a transcluded tiddler in the parent tiddler<<ref "tt">>
<div class="tc-table-of-contents">
<<toc-selective-expandable 'TOC'>>
</div>
Finally, someone with some interesting video game takes; an author of what I now christen (Buddh-en?) [[Anti-Review]]s
http://tevisthompson.com/
* [[On Zelda|http://tevisthompson.com/saving-zelda/]]
* [[Saying what needs to be said about "games" "critics"|http://tevisthompson.com/the-failure-of-game-critics/]] (part of a larger series about 2018 and in particular Fortnite)
Relate hard:
<<<
When I left twitter last summer, it was to get away from this whole self-serving games scene as much as anything. Games twitter is neverending humiliation. The metrics grubbing, the peer jockeying, the paranoia induced, the deference shown, the steady stream of petty-ass tweets and subtweets, even from talented critics, the constant in-group stroking. This social environment feels designed to make you dislike everyone. People you might like if you met them offline. And who might like you. Because I was certainly not immune. I grew to dislike my own hard twitter voice. So incomplete, so lacking in vulnerability. I couldn’t blame anyone there who disliked it too.
<<< http://tevisthompson.com/the-other-failure-of-game-critics/
Some of his writing reminds me of the Myst essay [[Two histories of Myst|http://archive.is/hUnE7]] (archived from [[original link|https://medium.com/picking-up-the-pieces/two-histories-of-myst-8b37e1504f9e]]). We desperately need more thoughtful stuff like this.
ASCII art hits a few sweet-spots for me:
* Usually small (in filesize)
* Minimalist (in aesthetic/implementation)
* Schway as fuck
TiddlyWiki has quite good support for ASCII once you poke it a bit, so it's natural that my wiki (and others) should include it!
!! The art itself
<<list-links "[tag[Text Art]] +[prefix[Text Art: ]]">>
!! Filters
<$macrocall $name=list-links filter="[tag[Text Art]] +[prefix[ASCII: ]]" emptyMessage="Nada"/>
<<chame-list-links "[tag[Text Art]] -[prefix[ASCII: ]] -[prefix[Text Art: ]]">>
++++++++++++++++++++++++++++++++++//////////////////////////////////////++++++++++++++++++++++++++++
mmmmmmmmmdddddddddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdddddddddddddddddddddddmmm
mmmmmmmmdddddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddddddddddddddddddddm
mmmmmmdddddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddddddddddddddddd
mmmmmdddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddddddddddddddd
mmmddddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddddddddddddd
mmdddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhdddddddddddddd
mddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhdddddddddddd
ddddddddddddddddddddhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhddddddddddd
mdddmddddddddddddddhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhdhhhhhhhhhhhhhhhhhdddddddddd
mmmmmdddddddddddddhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhyyyyhdhhhhhhhhhhhhhhhhhddddddddd
dmmmddmdmdddddddddhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhyyyyyyyyyhhhhhhhhhhhhhhhhhyhddddddd
mmmmmmmmmmmmmddddddddhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyssyyyyssssossssyyyhhyyyhhhhyyyyhhyohdddhhhh
mmmmmmmmmmmddmddddddhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyy:++-osss-:+:-++-syys/+o//hhh/:oohhs:hhds/ss:
mmmmmmmmmmddmdmmddddhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyso://./ooo./so.hy.+syo`+oo:yhh//hhhho.hhh-+ddy
mmmmmmmNmmmmmmmmmdddhhhhhhhyyyyyyyyyyyyyyyyyyyyyyysssso/.++./ooo./oo.dh.+sss.+ss/hhh//hhhho-hhh+:hy/
mmmmmmNNNmmmmmmmmdddhhhhhhyyyyyyyyyyyyyyyyyhyyssssooooo+////+ooo/+oo+ss+oosss+++yhhhssyhhhyshhhhyssy
mdmmmmNNNmmmmmmdmmmdddhhhhyyyyyyyyyyyyyyyyyssssoooo++++++++ooooo//o//o/o//o++s+s+shyoyohohhhhhhhdddd
mmmmmmNNNNNmmmmdddddhhhhhyyyyyyyyyhhhyysssssooooo++++++++++ooooo++ooooooo+ooososssyhyyyhyhhhhhhhdddd
mmmmNNNNmmmmmmmddddhhhhhhyyyyyhhhyyssssssoooo++++++++++++++oooooooooooooooooossssyyyhdhhhhhhhhhhdddd
mmmmNNmmmmmddddddddhhhhhhhhhhhysssssoooooooo++++++++++++++ooooooooooooooossssssssyyyyhdhhhhhhhhhhddd
mNNNNmmmmddddddddhhhhhhddhyssssssooooooooo+++++++++++++++ooooooooooooooooossssssssyyyyyddhhhhhhhhddd
NNNNmmmmmmdddddddddddhyysssssssoooooooooooooooo++++++++oooooooooooooooooooossssssssyyyyyddhhhhhhdddd
NNNNNmmmmmmdddmmdhhyyyssssssssooooooooooooooooooooo+o+ooooooooooooooooooooosssssssssyyyyyhdhhhhhhddd
mmmmmmmmmmmNNdhyyyyyysssssssoooooooooooooooooooooooooooooooooooooooooooooossssssssssssyyyyhddhhhdddd
NNmmmmmmmddmmhhyyyyyssssssssooooooooooooooooooooooooooooooooooooooooooooosssssssssssssyyyyyhddhhdddd
mmmmNmmmmddhdddhhyyysssssssssooooooooooooooooooooooooooooooooooossoooooosssssssssssssyyyyyhhhddddddd
mNNmmmmmmdddddddhhyssssssssssssooooooooooooooooooooooooooooooooosssssssooossssssssssyyyyyyyhhhhddddd
mmmmddmddddddmmhyyyyssssssssssssssoooooooooooooooooooooooooooooosyyyyssssssssssssssyyyyyyyyyhhhhdddd
mmddddddhddmmmdyyyyyssssssssssssssooooooooooooooooooooooooooooooss+/++ossyyssssssssyyyyyyyyyhhhhhdmm
dddddddmddddmmdyyyyyyysssssssssssssssoooooooooooooooooooooooooooss/:--.-:yhsyssssssyyyyyyyyyyhhhhhdm
ddddmmmmmmdddmhyyyyyyyyyssssssssssssssssooooooooooooooooooooooooss/---...shsyssssssyyyyyyyyyyyhhhhhd
mmmmmmmmmmmdddhyyyyyyyyyyssssssssssssssssoooooooooooooooooooooooss/---...shsyssssssyyyyyyyyyhhhhhhhh
mmmmmmmmmmmhdhyyyyyyyyyyyyysssssssssssssssssooooooooooooooooooooso+---.--oyssssssssyyyyyyyyhhhhhhhhd
NNmmmmmdhydhdhhyyyyyyyyyyyyyyssssssssssssssssssssssssssosssssoooooo/::---+sssssssssyyyyyyyhhhhhhhhhh
Nmmmmdyo//hhhhhhhyyyyyyyyyyyyyyssssssssssssssssssssssssssssssooooo/--:::/+ssosssssyyyyyyyyhhhhhhhhhh
mmmmdo+-.+yhhhhhhhyyyyyyyyyyyyyyyssssssssssssssssssssssssssssooooo/`````./ssosssssyyyyyyyhhhhhhhhhhh
mmmmy+:.-yhdhhhhhhhhyyyyyyyyyyyyyyyysssssssssssssssssssssssssoooo+- .+sossssssyyyyyhhhhhhhhhhhh
mmmmo+-./yhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyssssssssssssssssssssssooo+: :+osssssyyyyyyhhhhhhhhhhhh
mmmh++..shdhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyysssssssssssssssso/` ` `/++sssyyyyyyyyhhhhhhhhhhhh
mmmso:.:hhdhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyssysssssssys+` ``` oyssyyyyyyyyyyhhhhhhhhhhhd
mmmoo--shdddddhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyhhyyyyyyyyyyyyyyyyyyyyo++:-``shyyyyyyyyyhhhhhhhhhhhhddd
NNdyyydddmddddddddhhhhhhhhhhhhhhhhhhhhhhhhddmmdhhdhhhyyyhhhhhhhyyyyyyyhhyshhhyhyyyyhhhhhhhhhhhhhdddd
NNNNmmmdmmdddddddddddddhhhhhhhhhhhhhhdddmmmmmdhhhhyhhhhhhhhyyhhhhhhhhhhhyyhhhhhhhhhhhhhhhhhhdddddddd
+++////////////////////////////////////+++/////::::://:::::///::::::::://::::::::///////////////////
..';:llodxxxxkkkxxxddollc;'..
.':ldxOKXNWWMMMMMMMMMMMMMMMMMMMWWNXKOxoc;..
.,coOKNWMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMWWXOdc,.
.;okKNWMMMMMMMMMMMMMMWWXKOxdoxXMMMMMMMMMMMMMMMMMMMMMMWNKxc'
.'lkKNMMMMMMMMMMMWNXKOkxddddddxk0XWMMMMMMMMMMMMMMMMMMMMMMMMMMWXOl,.
.'oONWMMMMMMMWNX0Oxdoooodxk0KNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOl.
'lOXWMMMMMMMWXkooddxkO0XNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWXx;.
.:xXWMMMMMMMMMWKllOXWWWMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMNk:. ..,;';:;;;,..
.l0NWMMMMMMMMMMMNocKWWMMMMMMWWWWWMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNO; 'cc:lkxd:.',;:lc'
.oKWMWMMMMMMMMMMMMNllXWWMMMMMWNNWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk, .:oooc,cl, 'xkd' .,cc,
.lKWWMMMMMMMMMMMMMMMWOcdXWMMMMMXocdxk0KNNWWMMMMMMWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMWXxkk:.;OXx. 'xkd. . 'll'
.c0WMMWWMMMMMMMMMMMMMMMWO:oXMMMWM0:o0Oxdddoccclllllcc:ccllooxk0XWWMMMMMMMMMMMMMMMMMMMMMWMMMWWW0, .oXl 'kKd..ckl. ,ll.
,kNWMMMMMMMMMMMMMMMMMMMMMW0coXMMMWXo:x0Odl;. ..;cdOKNWWMMMWMMMMMMMMMMMMMMMMWO, cKc '0Wk. 'c, .;o:.
.lXWWWMMMMMMMMMMMMMMMMMMMMMWWOcdNMMMWNOoc;''. .;d0NWMMMMMMMMMMMMMMMMMW0, :0c '0Wk. ..,;;;;'. .co,
,kNMMMMMMMMMMMMMMMMMMMMMMMMMWWWO:dNMMWWWWNNNXKd, .,dKWMMMMMMMMMMMMMMWK; ;0c '0Wx. 'clodxdolccc;.'ll'
:0WMMMMMMMMMMMMMMMMMMMMMMMMMWWMWK:.dNMMMMMMMMMMWO. .cONWWWMMMMMMMMW0; ;0l '0Wx.:ddk0NWNNKx;,ll'.:dc.
.lXWMMMMMMMMMMMMMMMMMMMMMMWMMMWW0l. .dNMMMMMMMMMMK; .cONMMMMMMMMWK; ;0l '0WxlddKNKXWWMMWXl.cd. .co,
.oXMMMMMMMMMMMMMMMMMMMMMMMMWWWW0c. .xNMMMMMMMMMXc ..,;:ccccc::;'. .lKWMMMWMMK: ;Ko ,0NOxoxx;..:0WMMMO''x: ,dl.
.lNMMMMMMMMMMMMMMMMMMMMMMMMMWWKl. .xNMMMMMMMMNl,dKXNWWWMMMWWWWNXOdc,. ,ONWWWWXc :Xd ,OKxdolc. .kWMMWx.'x; .co,
cXMMMMMMMMMMMMMMMMMMMMMMMMMMNx' .xWMMMMMMMNo:0MWMMMMMMMMMMMMMMMWN0o,. .dNWWKc lXd ,0Xl;olclodONMWXo..oo. ,ol.
:KWMMMMMMMMMMMMMMMMMMMMMMMMWKc. .kWMMMMMMWo;0MMMMMMMMWWMMMMMMMMMMWNk:. .dNXc .dNo '0Nc 'llcloddoc,';l:. .cd;
,0WWMMMMMMMMMMMMMMMMMMMMMMMW0, .,kWWMMMMNo:0WNXOxdlc:cloox0XWMWWMMMNk, lKl. :KWo '0N: .,ccc::::cc:. ,xo.
.xWMMMMMMMMMMMMMMMMMMMMMMMMWO, ,xdckWWWMWNo,ll,. ..:dKWMMMMWKc. :Ol. .:cccokXWWd. .OX; ...... .ld,
cXMMMMMMMMMMMMMMMMMMMMMMMMWO, .lKWNdcOWWWMXc .lKWMMMMXc :Ol. .dXWMMMMWWWWd. .k0, :x:.
.kWMMMMMMMMMMMMMMMMMMMWKO0XO; .oNWWMNd:OWWMX: .,clooolc,. 'kNWWWMX: :Oo. .dNMMMMMMWWWNk. .ok. .:l;. ,dc
:XMMMMMMMMMMMMMMMMMMMMWOlcc;. .oNWWMMWXocOWM0' .:xKNNK0O0KKXKd, .dNWWMMO. :Oo. .dWWX0kdlc;,:d; .. .:l:,:c:'. .l;
.xWMMMMMMMMMMMMMMMMMMWMMMWWNKOxoc;'.. ;KWMMMWWMXl,lo, ;ONN0o,.....':kNXl. 'OWWMMX: ;Ol. 'c;.. ;o, .:l:. .,cc::;;;,,;;;,,,'.......lo.
,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNK0kdlc;',:clxKWWMX: :KWXl. 'oxolol:.cKXc lNMMMNl.lO, 'ccc::cc:,. ..'''';xk:;;;:::::::c:'
lNMMMMMMMMMMMMMMMMMMMMWMMMMMMMWMMMMMMMMMWWXKOxo:,l0Wk. 'OWWd. ;KXl...,xc.xWx. cNMMMNl ,kd. ..''. .dl
.xWMMMMMMMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMMMMMWNk,;Ol ;XMXc lNXo...,d:,OXl .oWMMMX: ,dko;,.. ,k:
.OMMMWWMMMMMMMMMMMMN0xdddddONWMMWMMMMMMMMMMMMMMMWNo'oc ;KMNo 'OX0dlloooOKo. ;KMMMWx. ':clxOOxoc;'.. ck,
.:xxddollc::::dXMWKxddxkKNWMWWWKxoodk0K0xll0WMMMWWNKOddKWMMMMMW0;,kx. .xWMK: .lkkkkkOOd, .:0WMWWO, lNMMMWWNX0kol:,.. .dx.
lXMMMMMMMMWWWWMMWNXK0kxoldKWXdcd0NWWWWWWXo:xkdoc;'. lNMMMMW0;,kWK, ,0WWXd,.....'.. .,xNWKolxd. ;KWMMMMMMWMMMMWNX0kdc. 'xc
.lXMMMMMMWMMMMMMMMMMMMMN0dllldKWWMXdxNMWWO' .oNMWMW0;;OWMWx. ,kNWWNKko:.....':oONWMXc .co. ;KWMMMMMMMWMMWMMWWO:',. cx'
.cKWWMWMMMMMMMMMMMMMMMWMWX0KWMMMM0',KMMMX: .lKWMMW0;,kWMMMNo. .:ONWMMMWXKKKXNWMMMWW0, .co. :KWMMMMMMMMMMMWMMWK; .dc
,kWMMMMMMMMMMMMMMWNK000KNWWMMMWk.'0MMMNc .;loloxKNWMMW0;'kWMMMMMNo. .,lkKNWWWWWWWNX0xcox' .ll. .dXWMMMMMMMMMMMMMMWK: ld.
.oXWMMMMMMWWWWKxoddddddddkXWMWd.'OMMMNl .kNMMMMMMMMMWK:,kWMMMMMMMWk, .',;::::;,.. :d. .ldo0WMMMMMMMMMMMMMMWWK: :x;
:0WMMMMMWWNxcoOOdl::coolcxNWo .OWMMNl.lNMMMMWMMMMWK:.oNMMMMMMMMMWXd' cd. .oNMMMMMMMMMMMMMMMMW0; 'd:
.dNWMWWWNocOKl. .;coo:dXl .OMMMNl.xWMMMMWWMMWK: ,OWMMMMMMMMMMWXx;. cd. .dNWMMMMMMMMMMMMMNd. .oc
:0WWWMO:xXl ;0WNOxlckc .OMMMNl,OMMMMMMWMMXc 'kNWWMMMMMMMMMMN0dc'. .od. .dNMMMMMMMMMMWW0:. .ll.
'xXWMO:kK; ;ONNkolcx: .kWMMNl;0MMMMMMWMXc .lKWMMMMMMMMMMMMMWNKOxolcccccclodk0Nk. .xNMMMMWMMMWKl. .ol.
;OWXllKd. .'''::lO; .kWMMWxoKMWMMMWMXc. ,xNWWWWMMMMMMMWWMMMMMMMMMMMMMMMMMM0' .xNMWWWMW0o. .lc.
.oX0llkd;. .';:lKK; .OWMMMWWWWWMMMMXl. .;kNWWMMMMMMMWWMMMMMMMMMMMMMMMMMMK, .xWMWNOl. 'o:.
,kKkolol:;;;:cokNMK, .kWMMMMMMMMMWWNl. ,dKWMWWMMMMMMMMMMMMMMMMMMMMMMMNc 'kXx;. :d;
.c0NKkdddddkKNWMM0, .OWMMMMMMMMMWXl. .cxKWMMMMMMMMMMMMMMMMMMMMMMWWKl. 'dc .cl.
.oXWMMMMMWKodKW0' .OMMMMMMMMMMNo. .:dOXWWMMMMMMMMMMMMMMMMMMWWWXOkkxo;. 'o: ;o:.
,xNWWWMWk,,kW0' .OMMMMMMMMMNo. ..;cdk0KNNWWWWWMMMMMMMWNKOxoc;,ll. 'd: 'll'
.:ONWWWWXXWMO' .OWMMWWXO00l... ..',;::cldooooooddlc:;;'.'dc ,o; .co:.
.:kNWWWMMMO. 'OWMWWKc... ;o;. ..,;:lo, .o: .co:.
.;d0NWWWO. .kKxl;. .cl, ,o' .coc.
.';:c, .. 'll, ;d' ,ld:.
'cl;. .;o; .cdl;.
.:l:' ..',;::c:. .:ooc'
.,cl:. ..';:ccc:;,'.. .':ooc'
.;ccc,. ..';:::::;;,'.. .':ccc;.
.,clc:,. .:c:;'.. ..,;ccc;.
.';::c:;'. ..,:ccc:;'.
.';:::::;;;;,,'''.......'',,;;:::::::;,'.
...',;;:::::::cccc:::;,'..
. .. . . . . .
. . . . .
. ..xxxxxxxxxx.... . . .
. MWMWMWWMWMWMWMWMWMWMWMWMW .
IIIIMWMWMWMWMWMWMWMWMWMWMWMWMWMttii: . .
. IIYVVXMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWxx... . .
IWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMx..
IIWMWMWMWMWMWMWMWMWBY%ZACH%AND%OWENMWMWMWMWMWMWMWMWMWMWMWMWMx.. .
""MWMWMWMWMWM"""""""". .:.. ."""""MWMWMWMWMWMWMWMWMWMWMWMWMWti.
. "" . ` .: . :. : . . :. . . . . """"MWMWMWMWMWMWMWMWMWMWMWMWMti=
. . :` . : . .'.' '....xxxxx...,'. ' ' ."""YWMWMWMWMWMWMWMWMWMW+
; . ` . . : . .' : . ..XXXXXXXXXXXXXXXXXXXXx. ` . "YWMWMWMWMWMWMW
. . . . . . . ..XXXXXXXXWWWWWWWWWWWWWWWWXXXX. . . """""""
' : : . : . ...XXXXXWWW" W88N88@888888WWWWWXX. . . . .
. ' . . : ...XXXXXXWWW" M88N88GGGGGG888^8M "WMBX. . .. :
: ..XXXXXXXXWWW" M88888WWRWWWMW8oo88M WWMX. . : .
"XXXXXXXXXXXXWW" WN8888WWWWW W8@@@8M BMBRX. . : :
. XXXXXXXX=MMWW": . W8N888WWWWWWWW88888W XRBRXX. . .
.... ""XXXXXMM::::. . W8@889WWWWWM8@8N8W . . :RRXx. .
``...''' MMM::.:. . W888N89999888@8W . . ::::"RXV . :
. ..''''' MMMm::. . WW888N88888WW . . mmMMMMMRXx
..' . ""MMmm . . WWWWWWW . :. :,miMM""" : ""` .
. . ""MMMMmm . . . . ._,mMMMM""" : ' . :
. ""MMMMMMMMMMMMM""" . : . ' . .
. . . . . .
. . . .
▄████ ██▀███ ██▀███ ███▄ ▄███▓
██▒ ▀█▒▓██ ▒ ██▒▓██ ▒ ██▒▓██▒▀█▀ ██▒
▒██░▄▄▄░▓██ ░▄█ ▒▓██ ░▄█ ▒▓██ ▓██░
░▓█ ██▓▒██▀▀█▄ ▒██▀▀█▄ ▒██ ▒██
░▒▓███▀▒░██▓ ▒██▒░██▓ ▒██▒▒██▒ ░██▒
░▒ ▒ ░ ▒▓ ░▒▓░░ ▒▓ ░▒▓░░ ▒░ ░ ░
░ ░ ░▒ ░ ▒░ ░▒ ░ ▒░░ ░ ░
░ ░ ░ ░░ ░ ░░ ░ ░ ░
░ ░ ░ ░
██▓ ██████ ███▄ ▄███▓▓██ ██▓
▓██▒▒██ ▒ ▓██▒▀█▀ ██▒ ▒██ ██▒
▒██▒░ ▓██▄ ▓██ ▓██░ ▒██ ██░
░██░ ▒ ██▒ ▒██ ▒██ ░ ▐██▓░
░██░▒██████▒▒ ▒██▒ ░██▒ ░ ██▒▓░
░▓ ▒ ▒▓▒ ▒ ░ ░ ▒░ ░ ░ ██▒▒▒
▒ ░░ ░▒ ░ ░ ░ ░ ░ ▓██ ░▒░
▒ ░░ ░ ░ ░ ░ ▒ ▒ ░░
░ ░ ░ ░ ░
░ ░
▄▄▄▄ ██▓▄▄▄█████▓ ▄████▄ ██░ ██
▓█████▄ ▓██▒▓ ██▒ ▓▒▒██▀ ▀█ ▓██░ ██▒
▒██▒ ▄██▒██▒▒ ▓██░ ▒░▒▓█ ▄ ▒██▀▀██░
▒██░█▀ ░██░░ ▓██▓ ░ ▒▓▓▄ ▄██▒░▓█ ░██
░▓█ ▀█▓░██░ ▒██▒ ░ ▒ ▓███▀ ░░▓█▒░██▓
░▒▓███▀▒░▓ ▒ ░░ ░ ░▒ ▒ ░ ▒ ░░▒░▒
▒░▒ ░ ▒ ░ ░ ░ ▒ ▒ ░▒░ ░
░ ░ ▒ ░ ░ ░ ░ ░░ ░
░ ░ ░ ░ ░ ░ ░
░ ░
.....
.;loddolllcc:;,.
.lkOOkkxdooooooodoc;'.
.;c:::lodddollc::clloddc'
..;coddl;.....;odo;.
.,coo:. 'ldol,.
.,lo:. .;ool;.
.cdo:. .;loo;.
.:dx:. .,loo:.
;do;. ,odo;.
;do:. .cdol,
.:xxc. ,odxc.
.cxo, .;oxxo.
'od; ,oxxl'
.lxl'.'okxc'
.cxx:.,xko;.
.cxxc:okx:.
'dkkdoxxc.
:xkkddo;.
.oxxddo,
.cdxxxo,
.:ddxxo'
.:dxxxc.
.ldddd:.
.. ...:oxxdo:.
...',,;:clcccccllodxxxkd:.
..',,:llooolccll:::::clooodxxdl:'..
.':coddoll:,.... .... .....,clloddoolc;,..
.,cooollc;'... .......',;clllc;.
.,cddoc,.. ...,:cc,.
.':loc;'. .;ool,..
..:ll:,. .:oddlc,.
.',;:;,.. 'cooddl:.
..,;clc;.. ..,:odol;.
.,.'''',:::;,,;'. .,loll;.
.locllc;,'. ':cll;.
;o:... ..;:,.
;oc. .,c'
;oc. .,:,.
;ol' 'lc'
.:l:. 'c:.
.,cc,. .;;.
.:c,. . 'o:
.:lc,.... .,' .cd:. .cd;
.'',clc;,. .:xkl'. .'. .dK0x:. .lo;
.cdl:,. .oOKo... 'lxc. 'x0olxx: .. ,oo;.
;do:. .l0K0o' .ckOd' .o0c .cOk: ;xdc. .:xd;
'cdl,. .o0Oloxo, .:k0k:. ,x0d. .,dkd:. .oOooxl;..... ,oc. .ldo'
;xxd, .:c' .ckk; .cxo;.;k0Od, ,kKKxcldkkxkkl....xk'.:xOxolcc;,.'dkl. 'ldc.
,dxdc. 'dxc' ,kO; .:xkxk0K0Od;. 'dKK0xodxkOOOOxoold0d. ,x00OkkOOkO0Oc. :xd,
.:do:. .lOko;.. .d0l. 'okkxxO00OOOxl. 'lOK0kxxxxxdl:'.'cdkOo'.,lOKKKK0kkO00x:. 'dxl.
'odc. .:odkkdc:ckk' 'dOkdooxOd;ckOxc. .:dO0d,,,;;;,,;cdxOOO0OkkO0OO000OkkOOko, ;dd:.
,dd:. ,okK0kdoo; .lkkdlldo:' .cdxo;..,lxOO;.cdk0K00kdol:;cc;''lkkkOOOOkxkkdl, ... .ldo'
'oo, .:x0X0d,. .,,'... .',;ldkkdoodxOdcdOOxO0Ox;. ;OkxOO0Okkkko:' ,c:. .:o:.
'dd. .. .o0XK0kd:....,;:clolccclddodddxxdddxkxodkkdlxko' ,kOkkkkkxkkd, .co;. .:,
.ld, .;ol. .l0XK0OO00OxkOOK0Okxol:,.. 'ldool:;:c:clxkdcoxl. .lOOkkOOkxdl:. ;ol' ,c.
.ll. .oxxo, ;kKK0OOkkO000Ok00o,.. ;ddl' .,cdxolddc,. ;xOkkkkxxxl;. ;dc. .cc.
.cc,;ododd:. 'xOkkOkOOOkkkxoxOc. ,dd, .:dxlccooc'. .;x0Okkkxdxdo; .ok; ;o:.
.,col'.,dl. .lxkkxxkkkkOOo':kl. .lxl. ,odlc::lll:,,:okOdoxOOOxxxx; :xx, .cd;
.. .lo' .cxxddxkk0K0d'.cd; ;dx; .'::;;:ldollool:,,:oxxxdol. .lkx; .co'
;oc. .;loooddOKKOkx;.;ol;. .;odc. .'. ..'...'::,...cdxxc. .:dkx, .ll.
.co, .;cl:;cok0kxkOOxllddlcl::odl,. .lx: ;x0Ol. .lOOkl. .lkkl. ... .:dl'
,ol. .,:l, .'o0OxxkOxdoollllc:;. .cdoc,. .::'. ;kOkd; .,dOx; 'cllclddl'
.lxc. .;oo:. .:oxkkdc'.... .,::. .. ,dkkxl' 'cdxl' .clc:;:;,.
'ox; .okxl. .;oddl,. .,,...;odo' ..;dkxooc. .;ldl' 'c:.
.ld,'lkkd:. 'ldkkdo:. .';dOkdodkxo:. .';:cdkxol:. .lxd:. ,c;.
.:lokx:. .cddoodxkko:'. .:oxkxlcccc,. .:odxxxxxolc, ,dxl' 'cc:.
.:kOc. .,oxd;..;oxOOOdc,........,:cc::;;'''..';:cldxxxxxooxdl:. .oko:. .,cll,
:kd' .coxxl. .':loddxkxddolooolllllllooddxxxxO0OOkxdllxxo:,. .lxo;. .,:cl;.
'dx; ,xOkxoc, .;ldkO000KK000OkkkkOkdollokOkkkkolxkkxl. .:xo:. .;:coc.
cxl. .:xOOOxocc;. .;dO0KK0Oxddooddkkc. .cOx;....oOOkl. .lkxc. ..'coc.
.ld:. ,oxo:;oxdc;'. .lkOOOxl:,.....:okx' ;Ok' ;OOdl'. 'dOkl' .:ol,
'ol. .';oko,. .ldl, ':dxl:'. ,dkc .dk: .l0koc;,:dkdooc. .col;.
,o:..:dxd;. .loc' .;okd:. ..;lkx' .lOx; ;O0xoldxxx:. .lo' .;lol:.
.:l'.;dd:. 'oxl,.;dkkc. ..,ldxkOOOc ,xOd'.d0koldkkx; ;o' ,lodo,
.oo:lko. cOkoldkkc. .lOOkdodkOd. .cxkooOOxdkxc;;. 'l; 'codo'
.oxdko. :kkdodOk, .oOxddx00x, .'cxxxOkkkl. .. 'xKo. .:ooc,
.cxkd' .:okxdk0k, lOxdddl;. .dxldOkl;. cOOo,..',;,'. .;ooo:.
.ox; .:oxkOOO0Kk, cO: ;xx,'oo. .:kOkkkxxoooddddl;. .;looc.
',. .,ldxddxOOOk0x. .ckc .lOx, .,. . .okdlcc:'. .',lkOx:. .,cdl.
'ldo:'...'.,oOx. ,dOxcccloolloolc;;oOx' .lkkc. .ck0Ol. 'lddc.
.:ddc. .:xx. .oOOxxolclldddkOOO0x' ,xOd; ...:dOo. ,oxdc.
.cxc.. .;dk, .lOd'. .'lko. ;xkOo, .lOx, .:oxd:.
,okc. .dOc .do. cOd' :O0kc. .:kOc .;cdko'
:kk: cOx' .xx' ,kx:. :kdl;. ,xO: .':odd:.
:OO: 'dk: .xk; .dx'. .ckd,. 'x0l. .'cxkc.
;k0l. .oOd. .oOc .okc. .oxl. 'd0o. .;dxc.
'x0k; ;dO0l. ,xo. .l0d:' ,dx:. 'x0d, .ckx;.
.l0Ol. ,oOKk; .dk, cKko; ;dx:. ,k0x:. :kOd'
'x0o. .,oOOl. .l0o. 'xOo' .oxd:. ,x00o. .;okk:.
:0k, 'dOx, 'xk; .d0kd, ,xOkc. ,kK0o. ..:k0o.
.x0: .ckOko' cOo. cOOxc. ,k0Ok; .cO0k: .,dOx'
.c0d. 'ck0Ox; .xk'.d0xd' ;kOkOk; .:. ;kKOc. 'lkx:.
:kO; .. .cOK0x; .oKdlOkdc. .:kOxOOo' .co:. ,d0Oc. ..;dkl.
'xO:. ,:. ,kKKKk; ,O0O0d:. 'dOkloOd; .oko'. .cO0d' 'lxo'
.d0l ,ol. .o00KKx' .l0K0l. ,k0x:;dOl. ,dOx;. .ckOo. .:xd,
.l0k' .:dx; ;O0O00o. .c0Kx' ,k0d,'d0x:. :k0k:. ,x0k:. .;dkl.
:00c .:dOx' .d0OOKKd. .l00o. .oO0x' ;kOx; .o0Kk: .o00o,. 'lxo,
.xXd. ;dO0l. ,O0kk0Ko. ;k0o. .dKKOl..dKOl. ,dk0k; .l00o. .;dx:.
cK0; .oOKk, .xKkodOKkclk0k;'o00xc. :OKx, ,dkOd, ,xK0o. ,dxc.
,kKo. .:x00l. cOOdclOXKOkOkdk0Od' .d0Ol. .;oxOo. .:xK0x; 'dOl.
.dKx' 'ok0x' .xKk,.:k0K0O00KOc. ;O0x;. .,lkkc. ,x0Kkc. 'dOl.
.c0Kc ,oxO0: cK0; .:kKXNXOo. .lK0o' ,okx:. .,dO0Ol. .lx:.
;OKd. ;ox00o. .xXo. 'oKWKx:. .xKkl,. .:dOx; .ck00x;. .lxc.
.xKd. .:oOKXOc. .k0, :KWXO:. .dX0l;:' 'cdOk; ;k0Kk:. .ckl.
.oK0; ,lxKNNXO' :0kl:cxXWNXK0kl,c00o:;'. .':dOd, 'lOKOl. .lkd'
.c0Kl. 'o0WKxk0c 'lxO0XNKKK00XXKK0o::' .'okd, .;kK0d, .cOx,
,kKd. ,xXXc ,Ox. .c0X0dlx0kxkKX0Odc' ;xOx;. ,x0Kx' .lOk:.
.o0k' .cKNd. :0O; .cONKd' .lOOxocd00Okl;. .lkOx, .lkOx:. . .o0k;
:0O:. .xXd. ,00l. .ckKXKk; 'd0x;..,,;cdOx:. ,oO0d' .:x0k: .;O0d,
'xKo. cXO. .kKx; ;OK0KKOd. .:kOc. .;ldxo,. .,oOOo. .:O0k;. ..cOKd.
.oKO, .;OK; .oKOo:oO0o:x0Oc .lkx, .:ddc'. .;okOc ;x0Oc'. .'l0Kl
:0Kl. ,kXd. .dK000Oxc..d0x. .;kx' .:kxc. .;dOx, .lkOd;. .,o0k,
,OKd. .oK0, .lKKKOd;. ,OO; ,Ok. :kkl. .:dOd' .:k0kc' .,ck0l.
.kNx' .:kKc .cO0x;. ,x0k' .dK; ,OKk, .:x0x, .cOKOd;. .,coxd,
.oX0; .:dKO. .o0O; cO0k: ;0O' .d00d. .:k0x, .:xO0kc. .;coko.
;O0l. ,oOXl ;k0o. ,xkd, .xK: .oKOxc. .:xOo. .;;;d0Oo'. ..... ..;lkOc.
;k0o,. .:oKO' .o0k: .o0x; lKo. .lKKo:;. .,dOo. .. .oOOx;...,;'',,'';lx0x.
;0Kk, ,ckXl 'k0o. ;0Oo' .xo. .l00o.. ,xOd, .:dkkl'.;:cdkdooxkOKO;
,OKl'. .cdKO' :Ox, .d0kl. .lk; .cOOx, .:kKd' 'okxl:::cxk; ..,;;.
'OXl ,oONo .lOl. ,OKx. ,OO, .xKOkc. ,o0Xk; .,lkkdc:lxOc
.xXk, 'lkNK; .d0c. .dKOl. ;Kk. .o0kd, ,cdKXx;. .:dkxolokk;
.lK0c. ..;lxKNd. .x0o. ,k0x; 'O0, .c00o. .,:dKN0d' .,:dkdodOd.
;kKOc. .clooON0, .l0Ol. :OO: .oKd. .l0Xx'. .,clONX0Oc. 'dOkxkOc.
.lKXOo' .coxKNo ;OKk, .oXd. .l0x' 'l0Kc. .:oxOXKxdOk; .:dkOOk:.
'xXKx:. .oKWO' .dK0o' .d0l ,dko;.. :0Oc,. .,lxO0K0d,.'d0k:. 'lkOOx:.
;OX0d:. .;xXNl 'x00x;. ....;kk: .,oxkkxl:,,kX0xo'.. .,cxkOKNX0l. .oOk, .,oO0kl.
'dKXOl'. 'oONO. .c0NOc;;:cclxKOc''....... .:loxkkkO0000Ol'.. ......'cdk0KK00K00O: .d0x, ..'lxkk:.
;0N0xc. .;xXXc 'dKX0dlloONN0OkOkxdoooolc:cccloodooolooddocc;',;coddxkOO00OOOxl'.ckOd:, ,x0x;. .,dOd,.
'dKKkl,. ,oOWk. ,kXOloOXKxx0XXXXXKKK0OOO000KK0OkkxkkOOOOO00OOO0KKKXXOkl,.':'. .ckkc. ,xkxc'. .d00d'
'dKKOd:. .. .,c0X: ;0X00XO;.;0XOolcokkxdolokXXOdxkkkkxddokKOxxdooocoO0d:. ,c' .cxko. :OOdc. .;d0k,
.:0N0xl;. ',lNO. ;KWXx:. 'OKo. .. .xKO: .lOo;,'... 'x0x; .ld, .lxOd. :xkxl. .cOd.
.cOK0xc. .,:0Mx. .dKx:. :KO, .kX0l. .oOc l0k:. 'od, .:xkc. 'oOOl. .ox'
c0K0xd;. ..lNX: ,OXd'. .k0; ;0Kk; .d0, 'kOl. ;xo. :kx:. .oOkc. ck:
.xX0kxo;. ...kWO' ,0Xx, .lKd. .d00d. 'xk, .oOd, .ox; .oxd; 'd0O;. ;kO:
,0WKkko, ..;KWx. 'k0:. cXX: .x0x; :kk; .l0Oc. .okc. .cdo;. .o0x;. ..:kl.
.dXXOdc' lNWd. ,O0: .lKNd. .dKk' :0x' ;k0d' 'od' 'dkd, .oOd;. . .lOd.
.dX0xo;. .dWXc 'k0, .cKNO' .xXx. .l0d. .d0O: ;xl. ,dko' ;O0l. ...'xKk;
.oKKOxc. .kN0; .xk' .l0NXc 'OXc lO: .lOx' .lo' ,dkd, .oKx;. ..';:okOO0XXO;
,kXN0d;'. .. 'OW0, 'kx. .c0NXl. .oKO' .xk, ;kd. ;dd:. . .cO0x, lOxl. .,ldOKKK00kdddox0k,
.oXWNKkl'... ,0W0, .:Ok' .;xXNo. .:OKo. :Kk;. 'kxc. 'oxx, 'dO0d. :kkd;. .. 'cx0KX0kxdc,.. .lOx,
.xNNNNKkoc,. cKW0' 'xKx, 'l0Nx. .oX0: :Kk; .dOx' .cdOl ;dOOc. .dKOc. ...':oOKK0Oxl:;'. ,k0d.
'kWXdclOKK0xl,.. .c0NO. .o00l. .'dNO' .xXO, .l0x, 'xOx, .lkd. 'x0d. ;x0x,. .':dOK0Oxoc:' .cO0l.
;ON0: .'o0XX0xc,. .c0Wd :0Xx, .:dKX: :0KO; ..o0d, .oOk; .ox; .oKO: .okxl::;;;:cxOkxoc,.. .lKk'
.lKWk' .,lkKX0dc,.. .'.cXK, .dK0d' ;xKXc .dXKx. .:xOc' .lOO: 'dd. :OKx' .,lddxxkOK0d:'. ...... ;00:
cKNO' .ck0KKOxoc,.. .,. .:oooOO; .l0NKd, ;xXXo. cKN0; .ckk:. ;O0c 'ok: .dKO; 'xKOc. ....... .;lokOd.
:0N0, ..:dk0K0kko:..,c:oO0Kkl. .:0WNkc' 'dXXl. 'xXXd. ,okx, 'xOc .,xx. .oXXo. .xNk. .',:lxOKK0d, ....,,,,;::l:.
.xNKc .,coxOXXKkk0KK0k:. ;kNN0l. cXXc :0N0, .dK0x, .oOl. 'xO; ;KNO' ;0K; ..;coOOO0OkO00ko:;;;;:::::clodxxxkkOkxddkOx,
.dNKo,. .dNXOo::'. .dXWKo' .:0Kc .kNXl 'xK0o. .l0o. ;xOo. 'ONO' .lX0, .cxxkOOOOkooolc''lxdooooddoooollccodl;;,',cxko.
... .dKXX0xl;. ;kKo. .cONNOc. ,x0k, ;KNx. ,OKk; .l0x' .oOk' .dN0; .cOOl'..,:o0KKX0xodd:.'..,:cdxocllldo' .''. .:kOo'
,xOkdl;'.. ,kKXWWNOl' :OKo. .cOXXOc. .c0Xo. .dN0, 'OKx. .l0x. .lO0: :KKo. .lxxkO00OxoONk::do. ;oooooooloOO; .:oxxl'
.l0OlcdOkkdo:;,;;;,:ox0XNNXXK0dc,. ,k0d. .oNNOl. .oX0: 'xXXc .dKKd. .cOx' :OKo. .oKk' .;;:;,;'.dKc .,. .:dkk:. .;coxkd;.
'dx:..,cddddkk0KKXNXKK0koclx0KK0ko:... .kXd. .oKOl,. .dX0: .kNNd. ;00Ol. ;kx. .dKx. .lKO, ;Oo'. ,ldl;.. .'oOOOd:.
,od;....... .',cO0O00kdcc:,:dxk0K000kl:;ckKd. ;0Xk:.. ,0WKl. ;K0l. ;OOx: ,OO' cKO' cKO, .x0d;. .:,. ..,cloxxxl,.
'lol, ;OX0xdxxo' ..,lox0NXOk0KKo. .oXNKd... :KW0; .xXo. cOkd: ;OO' 'kKc :KK: .ckkkoclc;,'......';okOkxl;'.
'oklll. .;dOx;. ,loxXx..',,. ,x0NXxoxo:'.. .cKNXd,... .oNk. .oOxo; .lOx' .l0l 'OXc ..;:ldkkkO0K0OOxol:::,.
'cxkdc' 'xk; ..c0c ,xKNNNXXXkl:;c0NXXXO:'... ;K0, ;O0l,. .:kx. c0l. .x0: ..'',dXKx;.
.,lxdc;',,.',. .;xo. 'o0XNNNWWXOxkXWXKNNOo;'. .xNo. c00c. .;kk' ,ko. .dKo. .xNNd.
.,;coxxddoldddolllclkOo. .;kXNXXNWNNNXXXXXWWXKOl,. .xN0, .oKk, 'lOx. .dd. .oKk: .oXWd.
..,:dOOOkkkdl;. .;dKXXNNNWWWNXKXNWMWNXOo' .dN0c. 'xKx;'. ,oOd. .ox. .oKkc. ,0Nl
.. .,lx0XKXNWNXNNNNNWMWWWXkl;.. .xWNk;.. cK0o:;;. ,xOc. lk, lKO: ;K0'
.;cd0Kxd0NNNXXXNWWNXXKkl,..lNNkOKxc,. 'xXOoccc;. .;xk; .oO; c0O: .oNk.
.,::dXKkk0KXNWWNKdoxOOxd0Xo.'xOOko;..... .;dKNX0kkd;. .ckk:. .oO; ;00c ..;kNx.
.'cKNk;,:coKWWWx' .;dKXO; .':xO0Oxdoc;,:lONWWWWWXOdc:' .,oko' .o0l cKKo. 'cdXXc
.lKNO; ,0MWK: ':;. .,lkKK00OkxdONWWWNNNNWXK0dc'.....'lxKKx:'.. .oKd. oXKo. .:lkKx.
.lXW0l. .:OWXk' .'codxKNXNWWNNNNXNN00KXKOdolllloONXKK0ko,. .oKx,.. oXKd. 'coO0,
.xNNO:. ;0N0l. ,kXWWWWWWWWWNkooxk0KXKOxx0XKkloxk00xc'.. ;0KO0Oo,'lk0x. ;lxKx.
'kNXx:. 'dXXOc ..;kXWWWWWWMMMWO:''';clldk0KOo:'...:dOKOxl'. .;d00OKX0OOkOk' .:oOKc
'kXOc. ,OX0o. .ckXXXNWWNNNNWWKl,.. .. ,odc. .,cdxOkdxxdk000XNXKOxd. .;okX0,
'x0l. .lKKx, ,xKX00NNXK0O0XNKdc' .:;. ;0XK00KKKK0KK0x,.. ';cx0Nd.
;O0; .oK0x, :0N0l;;coo;';dXNd;. .dXX0kdlc;'.... .:cokXO'
.:00: ;ONKl. .oNK: .lXXxc' .dKX0x; ,oodO0:
:KXc .dXN0, ,OXo. .o0Xk, .xKXOo. .cxOO0d.
;0Xo. 'kWNo. .;dNk,. .c0Xk, :0XXOl. 'd00X0;
;0W0, cXWK; 'cOXo. 'lkKx' . .oKNXx:. . .oO0KXd.
'kNXc 'kNNd. .cOKd,. ..:dkKk' 'd0NKd, .,' ;0NXXk.
,OXo. .oKW0, .cOXKc. .'d0XO, ,kKNXd' ,xO: .dXNNk.
cNO. .lxXNd. 'oXNk' .c0XO; ,kXNKd' 'cxXWO' .dNXXk,
lNl .:okNK; ,ON0c. 'kXOc. ;OXN0d' .coOWW0o. lXWXO:
.kN: .;o0Wk. ,kNKc. ,kKOo, ,OXXOo' .:loKMWKk; :KWNk:.
.ONl .,xXNc 'dKXo. ,xX0d' ,ONXOc. 'lokNWWNKd' .oKNNKo.
oNo .. ..cKM0' :0NO' .xXKd. 'kXXOl. ;oxKWNKKXOl. .dNNKOd,
:Kk:lo;. .'.;::xXWl ,kNO, ;kXKd' .,kX0x:. .coOXX0k0XKk, .oXN0xc.
.d0kxkkxx0kxxooON0, 'xKK; ,kKKx' .,kX0d; .:okKXOolx0XXl'kNXOdc.
.xKOx0NNKO0OdkXWd. .oXNo .l0Kx. 'o0XOo, ,lxKX0l;:lOXXkkXXOd;.
.cOKNW0okX0xOWNc ;0Wk. .:OXk' ;xKKkl' .cxKX0l...'oKXKK0xc'
.oOd. 'OXKNMK, 'dXX: .cKNk' .:ONNOo' .cd0X0c. .:oxd;.
cXWWWx. .c0Nx. ,0Nk' .l0NNOo' ,lkXXo.
lNMNl .;xN0, .:OXO, .xXNKxc. .:xXNk'
'OW0' .oKKo. .lxK0: 'xXNKx:. .:dKNd.
.OWd ,0XOc. .:kX0: ,kXNXk;. .,' ,x0Xd.
'0Nc ,kX0d, 'kKOc. ,OKXXx;.. ;d: .;dKNk.
;K0, .. ,kXXd,. ,xX0c ;0XXKo:' .:k0d. ;kNXd.
lXx,....cOkl,... ,kXN0: .:kX0c. c0KXOo:. :0NXk' .;kKO;
.kNK000KKKXNNXK0Oxoc' .o0N0:. .:xXKl. .oKXKkl. ,kXNXO, ;0Kl.
.lK0dlllodxkdoxOKNWWNKxx0XKo. .oKKo. ;kXNKkc. .xK0KXO, .cKKc
cKKc .. ..,lk0NWWWNNk' :0Ko. ..,,,;;;;;'.;kXX0d, .oXKk0Nk' ,kN0:
.kNx. .'dXWMN0d. ;0Kd;;clx0000OK0O0K000XNN0d:,oKKdcxXkclOXO;
,0K; .oXWWKd, :OKK0kdll:;'.....',:cdKXKOolxKOl;;d0kOKkc.
.dNx. ;kNWKx:. .lkKk;. 'xKKxoOKOc'';dkkkc.
oNX: ;ONWXkl. :kKl ;OK0kOkc. .,oc.
'0Mk. ,xXWNOdc;. ;k0c ,OK00o.
.oNX: .l0NN0xxxxo' ...::. ;OKl :OX0o.
'0Wd. .:kXXKXNX0kd:. .odlxKkc. ,OKd. .d00k;
:XK; 'dNNo:OWWKOkl. .c0XXNWN0: 'kKx. 'x00x,
.oNd. ..c0Nx. ,0MN0kd, :0WKocdXNd. .dKd. ;k00x;
'OX: .'kKl. ;KWX0kc. :KXd. .OWO. .lKd. .l0K0k;
.lXO. lKo 'dKN0xo:..c0Kc .dN0, .;xXO' .dKKOx,
:0NO, ,ko. ,OX0xddkKXx. ,0Kl. ,odONK; .d00Ox,
,OXK0; .xk. .lOOkk0X0: :Ox' .lk0NNXd. .x000x'
.xWWXk, :O; .lk000l. .x0c .:lxKXKKX0d. ;k00Kx.
,0WN0o. ;Ol .:o:. .lOxodkkxdl,.:00o. .cO00Oc.
.lKNKx; ,KO. .;ol:. .k0o' .cO00x'
.lKNXkc. 'kK: .kKx: ;OKKl
'ONNOl' .x0: .oKk; :0NK;
:KWXd' .ox; :0k' .dKNO'
.dNNk, .dk; 'Ok. ,O0Kk'
cKWKl. .dNx. .kO, ;0KKk'
.OWXd, .dNO' .OKl. :0XXd.
cXNk:. .cKK, '0Xo. .c0XXl
.dNKl' ;OXc ,0Xd. .oKNK:
'kKx;. 'xNd. .ONo. ;xKNO'
.oKkc. .lXO' .xNl .lkKNd.
:KKl' :KNl oXo. 'dOXNo.
.kXx' 'OWO' lXO' .o0NXl
cXXc. .lXK; lN0, 'xXNK;
.kNO, .c0Xl oWK: ;ONN0,
:XKl,. .:ONd. cNXc. ,kXXk'
.kNO:'. .:ONO' cNNo. .xNXd.
.oXNx;. 'xNNc :XWd. .kNXo.
cKNO,. .cXWx. ,0Nx. ,0WXo.
.kNKc ;kW0, ,0Nd. cXNKc
;0Nx. .oXX: '0Nx. .xNN0:
.oNXl .c0No. '0WO. ,0WW0;
,ONd. ,kNk. .xW0; ,0MNO;
.xX0; .oX0, cNXl. ;KWNk,
cXKl. :KXc ;XNd. ;KMNk'
.kXd. .xNd. ;0Xx. ;XMW0;
.oX0; .lX0' ;KNk. cXMMK,
'OXd. .cKWx. ;KWx. .dWWWx.
:0o. ,0WK: ;KWd. .dNWX;
'OO;.. .dNNd. ;KNl .OMWd.
.d0l.... .c0WXl. ;KX: lNM0'
'x0l. .lONMNd. .dXWk,.';:o0WW0c.
.'l0WXdlolcodoxOXNNXN0' .c0WMMWX00OO0K0OOKOl.
.,cok0XWWWWNK000KKXX0Oxc'lOc lNXXNOl::;:clkxc:lxXO,
..;cdkOKNNNNNWWN0d,.''..''.. 'kd. :XK:;dkkk0KNNXXKkkOXNW0;
.,okkkxoc:dKXXWWN0:. .xk. .OXo. ,;;dXWNK0kxdOKodNK:
.:kNNk:. ,kXNXKkl;. ,Ok. lXk, .;,:dkxOk; 'kN0:
.:OK0KNNKxoxKKkc,. ..''':x0o. dN0xocc:. ..'',ckNW0'
;kKkddx0XNX0x:. .',,;ldk0KXNXXXO, .:oxk0KKo,,',coxxk0XXXX0ko;.
:KKxoooddxxdl:::;;:cc:ccoxk00KXNWNNXKKK0k: ..';:cloxxxxxdol:,..
.xXkddxkOkxxdxxkkxxdolllc;,''';;;;;;;;,,'.
,::::cc:,'........
(chame♥).
o / \
o__\____
.-"__, ,\\`
/| /-^ \/ ^-\,
/"|/ --- ---\\
"\V .|v|
| | w / |
| |\________/V|`
\ |888) (888\ \
|\ \"u\_/u",| |
| \/ "888" |\ \
| ^ v "-\ \
__ ,..---.._
+''''`--''-..`--..__
.\ _,/:i--._`:-:+._`.``-._
/`.._,,' \ `-.``--:.b....=.
|`..__,,..`. '`.__::i--.-::_
)- .....--i'\.. --+`'''-'
,' .'.._,.-'|._-b\
/,'<' V `oi| \\ _.
|/ -|,--.." ,'-. ||\.. _.,;:'_<'
''/ | . ' |\||'\ /-'_/' `.
|,','| , . .-.|:.`. + .,:.. |
._,:'/ /-\ '^' -Y"\\ |.| || /,+8d| |
.|/,'| |/':: ':=:' ,'| | | \\|| "+)=' |
|+,';' /|_/ \ _/ \b':.\ \'| .|| ,'
,,:-i''_i' | ``-.Y',. ,|`: | \;- | |_,'
__ |'| |i:'._ ,' ,' ,; | |-)-' __--:b__
.P| | |/,'|\ - ._ / / _,Y- ,:/' `. `'".._
,'|| -','' | ._i._ `':| ,..,' ,Y;' \ `- ._
|||||,.. | \ '-.._ _,' / _,b-' `. '-.
||||P..i, .| '....,-' _,'''''-''' ' _,.. `\
+'` <'/ |`-.....---' ._ ,._
| | ,'``,:-''''/,--`.
Y|.b_,,: | || ,;,Y' / |.
,' /'----' .'| .. | | '" .`Y' .,-b_....;;,.
|+|,' | | \., ' ,' `:. _ ,/__` _=: _,'``-
/ +,' | /\_........:.' '"----:::::'Y .'.| |||
|' ' .'/- \\ /'|| || | |||
||| /| \L /'|| ||/ | |||
`.| ,'/ .| / ,'||/o;/ |||
`..._,, | |/| ' |||
``-' | |, |||
| ,. | |||
,=--------.... | "" | |||
,/,'. i=..+._ ,.. '..;---:::''- | |
'/| __....b `-''`---....../.,Y'''''j:.,.._ | `._
.' _.Y.-' `.. ii:,'--------' | :-+. .| | b\
| .=_,.---'''''--...:..--:' / _..-----..:= | | '|\
| '-''`'--- ---'_,,,--'' `,.. | | \.
\ . ,' _,--'' :dg: _,/ ||| | \
`::b\` _,-i,-' ,..---' ,|:| | _|
`'--.:-._ ____,,,;.,'' `--._ '''''''' |'|' .' '
``'--....Y''-' `''--..._..____._____...,' | 'o-'
`''''`'''i==_+=_=i__
||'''- ' `.
`-.......-''
██████╗ █████╗ ██████╗ ███████╗ ██╗ ██╗ ██████╗ ██╗ ██╗ ███████╗███╗ ██╗████████╗███████╗██████╗ ███╗ ███╗██╗ ██╗ ███╗ ███╗ █████╗ ██████╗ ██╗ ██████╗ █████╗ ██╗ ██████╗ ███████╗ █████╗ ██╗ ███╗ ███╗██████╗
██╔══██╗██╔══██╗██╔══██╗██╔════╝ ╚██╗ ██╔╝██╔═══██╗██║ ██║ ██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔══██╗ ████╗ ████║╚██╗ ██╔╝ ████╗ ████║██╔══██╗██╔════╝ ██║██╔════╝██╔══██╗██║ ██╔══██╗██╔════╝██╔══██╗██║ ████╗ ████║╚════██╗
██║ ██║███████║██████╔╝█████╗ ╚████╔╝ ██║ ██║██║ ██║ █████╗ ██╔██╗ ██║ ██║ █████╗ ██████╔╝ ██╔████╔██║ ╚████╔╝ ██╔████╔██║███████║██║ ███╗██║██║ ███████║██║ ██████╔╝█████╗ ███████║██║ ██╔████╔██║ ▄███╔╝
██║ ██║██╔══██║██╔══██╗██╔══╝ ╚██╔╝ ██║ ██║██║ ██║ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ██╔══██╗ ██║╚██╔╝██║ ╚██╔╝ ██║╚██╔╝██║██╔══██║██║ ██║██║██║ ██╔══██║██║ ██╔══██╗██╔══╝ ██╔══██║██║ ██║╚██╔╝██║ ▀▀══╝
██████╔╝██║ ██║██║ ██║███████╗ ██║ ╚██████╔╝╚██████╔╝ ███████╗██║ ╚████║ ██║ ███████╗██║ ██║ ██║ ╚═╝ ██║ ██║ ██║ ╚═╝ ██║██║ ██║╚██████╔╝██║╚██████╗██║ ██║███████╗ ██║ ██║███████╗██║ ██║███████╗██║ ╚═╝ ██║ ██╗
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝
DOZ8IO8$+?Z$$$$$$$ZDDD88O+7Z?$+O=+8?:Z,$DI....+$==8D,,.....ON..O$8OOO~$Z8IO7O88D
D$OO8OOOI$+$++?7$O8DOO8D$=Z++=??=8=I,ZZZO=,?,I=IO=+O?ZZ.~$7=.Z.+ND8OOD=88D?OZ8ZN
OZ8I8ZOO8+7O$7ZZ8O8OOD8+?..$=7OZ7O+==?,$?$+===$=I~I+.OZO,.O,,?=,DOO8O8MID8OZ8DDN
O8IO8OZ=O$+ZZOZDZZOZO+.~...,Z7+=O8=I..,Z=?=IZ+=88+IO.,Z++~OZ8$.7$7DD8=+O$8D?+ZI$
87O8OZO+Z=$I?=ZZI8Z...II.+Z.Z=+OIZO~~7=$~?I=78I~+ZI+$7?OZ:.I,DZ=O=78==I8D8=?$$$Z
OO7??78$7==+$O8DD7$.ZOI=I.,:O=Z+=$Z=7?Z$$I=Z7$=88?Z$$8Z7ZI$?O+?=7Z+==+:.7..7O+$=
788ODD$88==++7+==?D.OZI,I:,$.?=7==I,+~II:~Z==ZZ$?Z?OO7$ZO7?O7$++I=Z+O.OZ,:,$,OZ$
O$OZDZD$IO+==I+O=+=..??+OZZZO~7OD,8,8DNZ+7~D.ID.8?+$~~:?OZ$$+O+8=D$:7,.Z..,.,8~$
Z$7+D8II$7IZ7==7=+8?ZIOIOZ.N8:O8:8Z:OID:O.888I8I87D$::~7IOI?=+=++=78.,$I~?8~.8Z8
ZOZOOZ+?+~=+$+=I7$7O8?O?$=O,DO88ZOOOO8OOOOOOO88888OZ:+8NZ8O+$+Z:I$.$$O,Z.:,,OO8$
D8878I7====+?=O7$O8????ZID88ZO88ZOOOOOOOOOOOOOOOOOOI8.8D8888==:I~?=.+=ZO=:.8I7D8
NOII7OD$,7=++++=ZZ+7==7$D8887Z8Z8OD8OOZOOOOOOOOOZODOOOOOO.ZD7$~7$:,,Z,8Z,I=+?+=O
NIO878NZ+=~Z=+~DDDD=8:+D88888ZDZO8$OZZOOO8OOOOD~~:~DOOOOO888:?I7=I~I?.Z?II??7$87
D7$D8O,~7,++~D8DDDO7~:Z8888DOOZO8NZZO7+OD8OOD..~...ZZZOOOO8OZ,?7=$I=7?,=++==88DO
D8O8Z78Z$D$8DODD8DDO+D8888877DOODOOOZO?OD8OD.==NN?.,ZOOOOOOOODD,~I7++7:O8==OOD?=
N8Z8D8ZD77+D8N8ODDDODD8888OD8OOO8OZ?O8ZZD8OZ.~D8OD.:ZOOOOOOO8~O8+~I:I:OI+++?D$Z$
I$~:Z$OI?DDDODODDD8D8888ODOO78OO8OZ8OO8I8DO~:..~,..DOOOOOOOOO8O~88D==7~$=O+ZO8Z+
::~:88OZODDODDNDD8D8888OO8OOO8D8OOO88OO$Z88N:=:::.DO88OD?$I8OO88I$D$Z=IO=,I?..:I
Z:~~,O8O?N8D8NDDDD888OOOOOODN8OOOOD8IODOIOD8?+=INODDI7DIDOD8778888D88~:..+NO..?.
:,$::,8I7DNDDDODD88888OOOOI~:~,....NOOO7O8OND8DD8ZDO8O8DZO8$IDD777ZD+.~O7,O.,DZ,
:?7:,$8$N8DODD8D888O888OOD=:~...?Z?.IOZOIDDOODIZZ8Z8O8$IOOODOOZ778D?=.OZ.$Z=.7.+
?8DD88?ZDOD8DD8D88OOD88OO8=~,.,8D++8.N?8ZDD8D$OZDOOD878ODZ8O8ODD?ZI?~7,=+=Z,:$O=
=~+8N$$DD8ND8ODD8DOOODD88OI,,..8+NNN,+?Z$DD78IDOOO8888O8888ZDO$OZ8D,N.ZI,IZO$Z~O
===+==7D888ODO788D8OOOOOOOOOO8Z,ZN8:,78ZDDO$88OOOOO88ZOO$8OOZ8OO88D$IOIZOZO=?=8D
?+=I7$D88D8NDD?D8$$OO$OOOOOOOOOOO:,~?8D8OODON:,:,..NOOOODDDOO8D888O=++DZ7?OZ$$?=
7+8DD88O8D7DD88D8DO7I$OOOOOOOO888D8IO8OOODD+:~:......~8OOOOO88888D7~=Z+8Z$D~Z==I
?IDD8OON+NO8888$?$O$88OZOOOO888DNO8O8OOOODD=,~...ZDDD8.OOOOOO8888DZ+?O?O?I?$Z+Z+
DDD8ON+I=D8OODDD$DZ887OOOO888DDOODD8OOOOD87Z?,...D?DN$I,?OD88888DDDDDZ?O?7=$ZOO8
7DDOOO=$=D8888OD78$$OO8OZ888DOO888ODOOODOOOD8OZ=.:DDN8.~DOOO88DDODDD8ODZ=O=+==?+
ONDD$D==ZDD888OZOODZ8ZO7O7+888OO8888OOO88D8OD88ON....,=OOOO88DD8DO8DDODI:O7O+Z+8
ZZ7O7==8O?8O88=OO$ZZDDD8Z8=++=O8O88OOO8OOOOD888OOO8DDNOOOO8O8D8DDD8DN8D~~7~$O887
=+++=Z=ZZO$D8888OOD8+?$7I7..7I?+OO8OOO8888OO888OOOODD888DDO88DO8DN8D8D7+==~$IOZO
===+?8IDDDD88888OZ$8II8DD..,..$7+?DOOOONNO8888OOOOOOOOOOOO88DD8DDDO8DO:~7=,787$8
8ZO+8D.$DDDD8888ZDZO78OD8.ID.?..=77?+===ODDD888OOOD?DIOOO88DNDDO8N8N8D7$,,,$8O$O
7$D.D8.8DO$8888OOOO7I8.8DNDDZIO,...7.$7?+=888888$Z?ZO8DDO8DN8DD8D8D8DDDD7?7D8888
Z$D78N.N87OD888O8OOZ..=8DDD=O=??+Z~......???DZ78ODD7$OD8DDNDDD8D8NDDD?$7D::~:8OO
+7D:8?D8DDDD888OOO+?....$$?+?=?I?+DDD,..O7OOO7Z88OO78D8D8DDD88DDND$$,:::~~+7I7N$
++D,8.D88NDDD888OO8++?7$....+$77I7DND..DD?$IDO8O777ZDZD8O8ZDNODNDO,,~,7,::,8O8~7
Z=8D8?8.88NNDI88OOOZZ==++I$,.=.,7I?ODZD8+Z7$+$8OIOOOO=D8DD88DNDOZ$Z,:77~,Z7O88OO
=I7D:DO+88Z8O8888OOOO88D8$I=?I,.I.=ID8..8?7?88IO787888ODDD88D7===8?$8,77~$8D888O
Z=O8.8,D+888DDD8888O788OZDD8OZ=?$.,.....I$+DZZD8OO78O7O$888DD==+==~8NO,:~=~?7DDI
77+DD+8.8Z888DDD88I88O888ODO8IO$=+?$,..I$$88IOOOO78888D88OO8NOIZ++=7OOZ8OZ8D8O8$
+O7=$:D.Z$$D88D88888ZIO$O8O8$D888O++???=D$888DO8888DD8DDODODDOI++?=?$+?+Z+=++ZN8
==O,.O,8=I+ONOZODDD78DIDDZDOODZZDOOOOOOOOO88888888N88D$8ONODDDO7+OZ==?I=+=+Z7=$O
==7.78D+?Z=$Z=?I=$OI8DDDIDI78DOOOOOOOOOOO888888DDDDOO7?7D8DDZD88$$O==7Z?$.,$7+?=
D?7 D+?++O=,D8=8..NI7$DDDDZ8888O8OOOOOO888888878NDN?Z+=Z7$.D8I788?Z+O++?+==+++IO
8DD8Z+=8$?=8D?.NI?7D8888OO8D8D8Z88888888DOOD88D$8O8$===+?ZNDDD8$=??IDDD7==?+++7+
GlassGiant.com
▄████████ ▄█ █▄ ▄█ ▄█ ▄████████
███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███▌ ███▌ ███ ███
▄███▄▄▄▄██▀ ███ ███ ███▌ ███▌ ▄███▄▄▄▄██▀
▀▀███▀▀▀▀▀ ███ ███ ███▌ ███▌ ▀▀███▀▀▀▀▀
▀███████████ ███ ███ ███ ███ ▀███████████
███ ███ ███ ▄█▄ ███ ███ ███ ███ ███
███ ███ ▀███▀███▀ █▀ █▀ ███ ███
███ ███ ███ ███
,**, ..///. ..///. ,,,. ,//, ..*//,..*//,..*,, ...,,,,,,... .///..
../((* ..(((, **(//. *//, ,((/.. ..(((,../((,,,///, .//(((((((((*.. *(((,,.
,,(((, ..(((, ..,,,,,,,//#((,,,,,,,,,,,,,,,... ,((/...//(,, **(//.../((,..*((/.. ,(((((#((((((.. ../###//******,
.//%##((((((#%%((((((((((//, ,//((((((#%%#(((((((((((((((((/,, **/,,.,,,..,///.. ..*((, ,,*,, ,//*,,***,**/,,*((#//,,,,**(##*
*((#((((((##%%%#(((((((((//* ......**(##*.................. .**///******////,, ../((*...,,,,, ,//*,,***,**(//((((//. **(//.
../((/,,,,,,**(##*,,,,,,,,,... **(//. ............. ,//(((((((((/(((//***(##(/////(**. ,//*,,***,//###(***//*..,(((,,
,(((** ..(((, ../((/...**((((((((((###//. ,((/,,,//(**,**(((///(##(**,,,,.. ,((#((###(##(,, ,,(###//.
,///.. ..(((, .**(((, ...,,,,,,,,/##(,, ,((#(((###((/((#((,..,((/.. ,,*.. ,(((((#((((((.. .**(%%#//.
... ..(((, ,((#//. .**(((, ,(((***((#//*//(//. ,((/...///.. ,//***/**,///.. ..*(((//(((*..
.**(((((((##%%%#(((((((((** ,((#%%#** ,,(((, ,((/,,,//(**,**(//. .//(**///, ,//*,,***,//((((##(**,...,,(###//.
.**/((((((((#%%(((((((((/** ../##((((**....,,,,,,//#((*,,,,,... ,//((((###((/(((//. .**((((**. ,//*,,***,//####%%#////////(###//.
.........,,(((*......... ..***,**(**,**(((((((##%##(((((((**. .,,***/((#((****,, **###(,, ,//***///,//(//(###(((((((((##(,,
..(((, **(**. .......**(((,........ ..*//////###((////**, .//###, ... ,((#((((((((*,,*((* ,((/..
..(((, **(** ,,(//. ..*((((((##%##((((//,..*((%##* .**, ,///,,,,,,.....*((* ,((/..
..(((, **(** ,,(//. ...,,,,((#//,,,,,,,**((((((/,,,//, ,//, *((* ,((/..
,//((((((((((((####((((((((((((**. **(** ...,//(//. .//(,, .//(//, **(###//. *###((((((((###/..
,//(((((((((((((((((((((((((((/** **(** ..*((((((** **/,, .***.. ..*((/,, ,(((////////(((*..
.............................. ..*,, ,/////*.. ..,.. .. ... .,,,.........,,.
_.`,;~r~`~~,.
/8&&/*~\/r~r\#`,
88?8/__ __%%,\
)(/ ___` ´___ `8
)(`8 @ " " @ )(
)8#\ / 8\
)2`8\ ` |99|
)(8$\ ___/ /&8&\
)`388)\ /#@888
)%%988'------'#389\8
`,_____| |_____,
/ \__/ \
| |
| |
_____|~~\_____ _____________
_-~ \ | \
_- | ) \ |__/ \ \
_- ) | | | \ \
_- | ) / |--| | |
__-_______________ /__/_______| |_________
( |---- | |
`---------------'--\\\\ .`--'
`||||
.m. ,_
' ;M; ,;m `
;M;. , , ;SMM;
;;Mm; ,; ____ ;, ;SMM;
;;;MM; ; (.MMMMMM.) ; ,SSMM;;
,;;;mMp' l ';mmmm;/ j SSSMM;;
.;;;;;MM; .\,.mmSSSm,,/, ,SSSMM;;;
;;;;;;mMM; .;MMmSSSSSSSmMm; ;MSSMM;;;;
;;;;;;mMSM; ,_ ;MMmS;;;;;;mmmM; -,;MMMMMMm;;;;
;;;;;;;MMSMM; \"*;M;( ( '') );m;*"/ ;MMMMMM;;;;;,
.;;;;;;mMMSMM; \(@;! _ _ !;@)/ ;MMMMMMMM;;;;;,
;;;;;;;MMSSSM; ;,;.*o*> <*o*.;m; ;MMMMMMMMM;;;;;;,
.;;;;;;;MMSSSMM; ;Mm; ;M;,MMMMMMMMMMm;;;;;;.
;;;;;;;mmMSSSMMMM, ;Mm;, '- ,;M;MMMMMMMSMMMMm;;;;;;;
;;;;;;;MMMSSSMMMMMMMm;Mm;;, ___ ,;SmM;MMMMMMSSMMMM;;;;;;;;
;;'";;;MMMSSSSMMMMMM;MMmS;;, " ,;SmMM;MMMMMMSSMMMM;;;;;;;;.
! ;;;MMMSSSSSMMMMM;MMMmSS;;._.;;SSmMM;MMMMMMSSMMMM;;;;;;;;;
;;;;*MSSSSSSMMMP;Mm*"'q;' `;p*"*M;MMMMMSSSSMMM;;;;;;;;;
';;; ;SS*SSM*M;M;' `-. ;;MMMMSSSSSMM;;;;;;;;;,
;;;. ;P `q; qMM. ';MMMMSSSSSMp' ';;;;;;;
;;;; ', ; .mm! \. `. / ;MMM' `qSS' ';;;;;;
';;; ' mmS'; ; , `. ;'M' `S ';;;;;
`;;. mS;;`; ; ; ;M,! ' luk ';;;;
';; .mS;;, ; '. o ; oMM; ;;;;
';; MMmS;; `, ;._.' -_.'MM; ;;;
`;; MMmS;;; ; ; ; MM; ;;;
`'. 'MMmS;; `;) ', .' ,M;' ;;;
\ '' ''; ; ; ; ;' ;;
; ; `, ; ; ; ;;
|. ; ; (. ; ; _.-. ;;
.-----..__ / ; ; ;' ;\ _.-" .- `. ;;
;' ___ `*; `; '; ; ; ;' .-' : ;
; """*-. `. ; ; ; ; ' ,' / |
', `-_ (.--',`--'..' .' ',
`-_ `*-._'.\\\;||\\) ,'
`"*-._ "*`-ll_ll'l ,'
,==;*-._ "-. .'
_-' "*-=`*;-._ ;'
." ;' ;"*-. `
; ____ ;//' "- `,
`+ .-/ ".\\;
`*" / "'
_______
/ \
/ REST \
/ IN \
/ PEACE \
| |
| Objective |
| morality |
| killed by a |
| chameleon |
| |
| 2020/01/31 |
*| * * | *
__)/\\_//(\/(\/\/|_)_
<<chame-list-links "[tag[Text Editors]]">>
"''J''oe's ''o''wn ''e''ditor". Useful when editing very large files, or if you can't install Real Emacs for some reason.
Install the mirbsd joe-jupp version:
```
sudo apt install joe-jupp
```
https://www.mirbsd.org/MirOS/dist/jupp/joe.htm
Leafpad is a free clone of Notepad. As such, it is extremely primitive, with many limitations (the most notable I've run into being that it will end documents at null bytes).
You might think it's too primitive to be useful for anything but quickly flipping a few bytes in a config file. However, it has a killer feature that makes it part of my toolkit - it can print using GTK's print dialog (like Firefox). This means I can convert plaintext to PDF or create physical copies of my documents.
!! Printing notes
# Use ten-point Go Mono. It's attractive and Just Works.
# If you meet 1, the resolution of one page is about 80 columns by 71 lines. It seems the line continues outside of the margin, and meets the edge of the page somewhere around column 90 (ten-character margins?)
# On the Canon [[you|chameleon]] have in your office, it prints down to line 71, but gets very close to the bottom of the page (presumably because it's assuming a4) and up to column 88 before being truncated. The margins are exactly ten characters. You'll probably get slightly better results if you print to file, then print the resulting pdf.
It's unlikely that you've not seen this stuff in the wild, but I use it enough that it bears explaining briefly here.
!! Acronyms
* lmk = let me know
* smh = shaking my head
** smdh = shaking my damn head
** also my fucking head, etc.
* tbh = to be honest
** tbqh = to be quite honest
** Don't use it, but we could probably do tbbh = to be brutally honest
* iirc = if I remember/recall correctly
* imo = in my opinion
** imho = in my humble/honest opinion
* idk = I don't know
* idc = I don't care
* fyi = for your information
* jsyk = just so you know
* icymi = in case you missed it
* afaik = as far as I know
* afaict = as far as I can tell
!! Words
* to snarf = to grab, copy, download something. "I snarfed a copy of that video."
* to gronk out = to go to sleep, pass out - "I gronked out at 3am after fixing that function."
* foo = metasyntactic variable; a generic "thing". Used for examples where it'd be something relevant to an actual solution. See also bar, baz, quux. "This function transforms foo into a map of string to foo."
My husband, soulmate, best friend. In his mid-20s with a flowing river of hair, he cuts a striking profile. A little (an inch or so) shorter than me, with a much cuter face and beautiful green eyes.
Candidate for root access (If I ever get a multi-user setup going...)
* Pronouns: He/him
* [[Lucifer In Love: Definitely Not A Black Metal Blog|https://lucifer501275053.wordpress.com/]]
---
<<list-links "[tag[The Abyssal]]">>
<<<
Envy is the only deadly sin that isn't fun.
<<< Her Majesty, Natalie "Contrapoints" Wynn
{{Text Art: Evil Eye||ASCII: Exact}}
<<<
Do not allow yourself to be guided by feelings of love or lust.
<<< [[Musashi Miyamoto|Miyamoto Musashi: 21 Precepts]]
{{Text Art: Succubus||ASCII: Exact}}
<<<
"""
Is it worth the aggravation
To find yourself a job
when there's nothing worth working for?
"""
<<< Oasis, "Cigarettes & Alcohol"
{{Text Art: Sleeping Jiva||ASCII: 100%}}
* [[The Altar of Lust]]
* [[The Altar of Gluttony]]
* [[The Altar of Greed]]
* [[The Altar of Sloth]]
* [[The Altar of Wrath]]
* [[The Altar of Envy]]
* [[The Altar of Pride]]
https://www.nngroup.com/articles/anti-mac-interface/ (Archived: [[https://web.archive.org/web/20200316081206/https://www.nngroup.com/articles/anti-mac-interface/]])
Too large to reproduce here, except for the table:
|!Mac|!Anti-Mac|
|Metaphors |Reality|
|Direct Manipulation |Delegation|
|See and Point |Describe and Command|
|Consistency |Diversity|
|WYSIWYG |Represent Meaning|
|User Control |Shared Control|
|Feedback and Dialog |System Handles Details|
|Forgiveness |Model User Actions|
|Aesthetic Integrity |Graphic Variety|
|Modelessness |Richer Cues|
El Sandifier, who wrote the sneerclub primer //Neoreaction: A Basilisk//, finally took on Scott Alexander, the modern voice of the rationalist movement (and the link between the online caliper crew and the offline gropehouses) in an essay entitled [["The Beigeness, or How to Kill People with Bad Writing: The Scott Alexander Method"|http://www.eruditorumpress.com/blog/the-beigeness-or-how-to-kill-people-with-bad-writing-the-scott-alexander-method/]]. This is a highly technical takedown, of the sort I'm not qualiifed to do, and I'm glad we now have this as a resource.
Every tiddler in my wiki, oldest (by creation date) first.
<<list-links " [has[created]sort[created]]">>
//Or, the complete narrative. Draw from what you've learned and make a "big picture" of it, little [[chameleon]].//
<<list-links "[tag[TBP Workshop]]">>
Gave me a purpose. Cured my depression. Laid the cornerstones of my worldview.
Even if I never sit nowadays, and even if I've never had a formal teacher, I am eternally indebted to ol' Golden Gotama.
!! Quotes
<<<
Give, even if you only have a little.
<<<
<<<
Radiate boundless love towards the entire world — above, below, and across — unhindered, without ill will, without enmity.
<<<
<<<
They blame those who remain silent, they blame those who speak much, they blame those who speak in moderation. There is none in the world who is not blamed.
<<<
<<<
Let none find fault with others; let none see the omissions and commissions of others. But let one see one’s own acts, done and undone.
<<<
<<<
"""
Some do not understand
that we must die,
But those who do realize this
settle their quarrels.
"""
<<<
<<<
Ceasing to do evil, Cultivating the good, Purifying the heart: This is the teaching of the Buddhas.
<<<
For more quotes, sourced from the suttas, check [[here.|https://www.realbuddhaquotes.com/]]
Let's. Fucking. Do. This. [[https://philosopher.life/#2019.06.25%20-%20DeathOfRobinhood%3A%20The%20Chickenscratch%20Confession%20Booktour]]
h0p3 opens by apologizing for its length... that's a good start. hehe.
> Not everyone takes the time to write letters, especially not to random strangers or even a pain in the butt like me; I hope the practice spreads like wildfire. It is something missing in our virtual world. The cost of committing oneself to such a transforming task is among the highest I've encountered.
Preach. Sending and receiving letters is a joy no matter the medium.
<<<
Your e-mail is well-formatted, and I don't think I do it justice here. This may need to be something I put more thought into.
I like the plaintext look too (I try to let the words and links do the talking), but I also want to do your voice justice (plus, it's fun). In case you ever change your mind, the offer stands. I will make whatever reasonable accommodations I can.
<<<
Since this DeathOfRobinhood collection is mostly based on [[kopipe]], the formatting doesn't really survive.
I love plaintext. I work mostly in plaintext for my RPG design and [[Tutorials and Guides]] I work on outside of this wiki. It's leet and ticks the boxes for me.
> Well, thank you. I hope to be a useful, impactful, and talented artist like yourself. Assuming I live long enough, maybe in a few decades, this pile of mine will be worth thinking about more generally. Sometimes I think of my delusional ravings and artful narcissistic avatar as a spiritual trufe bomb or a dialectical ball of lightning I'm hurling at the world (not that I predict almost anyone would listen). Of course, I'm probably just a retarded prejudiced keyboard-warrior arrogantly trying to take over the world. XD. Yeah, I've got a ways to go, lol.
Working on the wiki and writing stuff every day, in my opinion, is an underrated part of being a philosopher. Remember that the historic philosophers were mostly men (and women) of letters; they wrote and read a lot. If you don't try at writing, you'll never fail at it, never learn from it, and never get better.
My advice to aspiring writers is always to write like hell, no matter how bad it is, because that way you'll learn what does and doesn't work.
> I do my best to accurately represent myself in this wiki. The artists on the wiki seem to handle my abrasiveness and extreme disagreeableness well enough; it probably requires a high-tolerance to differences in some sense. I have found some people tend to drop off fairly quickly with me, understandably: I have the tact and finesse of a dripping asshole, I'm painfully absurd, I seek precision and possibility where others find it impractical or lacking (what they refer to as) grace, and I'm what most people consider overly concerned with moral accountability down to the detailed threads of the fabric of our lives. Out of the gate, I assume people do not find me worth their time and energy (or worse), and you and others restore my waning faith in hope for Humanity. Sometimes I'm just a mean old perfectionist gom jabbar; you continue to demonstrate you are the rare credit to our species.
I'm lucky, I don't often see an abrasive side of [[h0p3]]; or maybe I just have a thicker skin than some others. Most of my best friends growing up were autistics and outsiders (both categories h0p3 sees in himself) so perhaps I just gel well with this type of person.
My own personality has its downsides: I can be frivolous, clueless, tactless, rude, even manipulative. I try to do better, and I avoid ever applying an //is// to myself (the self doesn't and yet does exist; malleable and cloudlike; [[chameleon]] is your skin).
There's probably nothing wrong with being morally sound and uptight. If anything, I value it in companions. Since I myself don't believe in any form of objective morality, I sometimes act outside other people's moral codes; I need someone that understands how they work to reign me in sometimes. Maybe this is where h0p3 and I can help each other!
<<<
I try to radically invest myself in the people who interact with me. How else should I spend my life? Unless I'm smalltalking, joking, informing, or learning (and not usually even then): I tend to be overbearing, insolent, judgmental, and demanding in dialectics. There are arenas in which I give abnormally little space, and I make you walk me through every single step. I'm paranoic in how I aim to detect sociopaths. I'm like a masked bloated fascist hyperlegalistic hairsplitting vigilante sovereign citizen freespeech domestic terrorist cringeworthily testing people for The Golden Rule. Privacy is a difficult right to exercise with me; I don't think most people deserve it in most cases. I'm a challenging person to deal with because I demand everyone tell the truth as best they understand it; I am on a mission. I aim to show what P2P friendship, integrity with enemies, and epistemic humility look like (which, again, is hardly to say I'm successful in these practices). We live in a low-trust society where I predict the majority of my interactions with humans to be failures at some level which require me to be on guard. It's hard to be realistically hopeful without being naive; some dok of happiness are the result of holding particular delusions in one's context.
<<<
I have to understand this if I'm to understand my senpai.
To some degree, I definitely understand the default being mistrust - sociopaths are master manipulators, and they clad themselves in sheep's clothing. They're often charming and disarming; they have many friends; they are good at getting people to do them favors. The corporate world in which I have to exist as a programmer attracts these types of people. I've met people that were lovely to my face who (I discovered) hated me behind my back. This is the chameleon of [[chameleon]] - I hide myself from people because I've been fucking burned before.
h0p3 has actually been rather respectful towards my own privacy, and he's exercised it with DeathOfRobinhood too by hiding what the man wanted him to hide. That's good; I am (despite my public self-modelling) actually a rather private person, and this predates [[chameleon]].
He provides a good friendship for me. He's become rather important to me (that sounds super gay to say out loud [[=w=.]]) and I value our contact together. So, he can be proud of one of his goals having been met.
Happiness being the result of delusion is a tricky one. I argue through [[Monadism]] that I can see the world for what it is and yet still be rather happy about it (I am pretty content with my lot in life) but that's a topic for another article, or perhaps sometime later in this one.
<<<
Indeed, my respect for identities, including emergent branches of possible versions of my identity(s) at any given timeslice in my 4DID, comes in a wide range. There are many places where I do not respect the beliefs, feelings, and desires of others (including other versions of who I have been or could be) which they find unbearable (though I aim to be painstakingly justified). Horrifying to many progressive neo-Kantians, I make the distinction between one's constant 'moral worth as a person' and one's variable 'worth as a moral person.' I take people to task for who they are and how they represent themselves. I see accountability where others do not because I see radical freedom in our identities which most aim to ignore (it is why I like you so very much; this is no mere game). I think Hanlon's Razor is the psychopathic gaslighting variant of my axiom: Virtue is Knowledge. I'm the asshole who will openly express the dok to which you are evil to the best of my accountable, transparent knowledge (with my skin in the game from the beginning). As an elite elitist debate-me-dickhead (who argues with himself in the shower like an anxiety-god), I self-righteously hold most adult humans I meet in quiet contempt, and I'm told I eat people alive. I agree that psychological egoism is a fitting description of most humans I meet, but it is never the prescription: we are free to be good persons.
<<<
(note: the [[razor|https://en.wikipedia.org/wiki/Hanlon's_razor]] is "Never attribute to malice that which can be adequately explained by stupidity")
<<<
Lifelong friendships of mine require developing immunities to being allergic to me (my bark is my bite) and a paranoic openness to being wrong all the way down; I vulnerably bend over backward to put my own mutable perspective on the line in T42T.
<<<
<<<
I'm not convinced the wiki is a significant filtering mechanism on myself exactly (though it gives me a chance to prepare my expression and digest) but rather a distance or space in which we can all reason asynchronously, often embroiled in multiple simultaneous conversations with my premoves and hopefully some memetic scaffolding set in advance for a rapid mindmeld.
As usual, there is too much emergence in hyperconversations for me to easily give a clean account (though I aim to do so in time); it is easier to show than to tell yourself, especially with two or more hyperobjects of discourse. Of course, it has other properties; for example, I have a chance to transparently wrestle with a number of sociopaths on this wiki which I'd otherwise not be in a position to do offline. Further, the length, density, and intensity of the conversations I can have over the wiki can require quite a bit of emotional and cognitive energy, prices difficult for all parties to pay realtime. Maybe that is the point, though, and I will continue to think about how this medium is or shapes the message. I also like that the wiki gives me a chance to communicate my unkosher milk+meat (simultaneously rather than one before the other) insanity without unfairly putting someone on the spot to some dok. I can't communicate my point of view in person to most people very easily unless they have traveled similar paths in the desert or have practiced speaking with me significantly. My offspring and my wife decode my compressed idiosyncratic abstractions fluently (a sentence goes a very long way with us); the wiki gives someone a chance to engage in that practice, imho.
<<<
<<<
Letter-drafting, even with our radical information asymmetry, likely saves us both time in the end, as iterations give me a chance to unpack my suitcases and connect dots that would normally take longer for me to recognize need connecting in the conversation, and the wiki aids in making it otherwise high-bandwidth and crawlable (if any, I don't know which links or searches are going to be useful for you).
<<<
<<<
So, to your question: I generally don't get along with people unless I am not openly myself, or I've identified that my interlocutor is not capable of understanding what I have to say,
or my interlocutors ever so politely ignore who I am. As you no doubt can tell, I'm a deeply flawed, paranoid, and fucked up person. You'll find most will not speak with me beyond smalltalk (though I think most people primarily engage in smalltalk). It takes an extensive attention span, focus, and perseverance to build a relationship with a 4eak like me. It is rare that someone doesn't eventually experience bad vibes from me or find me horrifying (and even rarer that people maintain a relationship despite those feelings); this becomes more complex in discourse in which I challenge others, sometimes by forcing others to look in the mirror by drawing up illustrations for them, mimicking semblances of themselves back,
or more often by argumentatively flipping the switch at every turn toward a reductio (generally with material leftover to help us build something else). Some change their minds about me later, but most don't. Being justifiably useful to others is one of the primary goals of FTO, and that often conflicts with maintaining what is standardly conceived of as a friendship. Please feel free to exercise The Ol' Yeller Clause with me if I'm too rabid.
<<<
<<<
Perhaps jarringly, I am willing to openly burn bridges where others wouldn't, but that's part of what makes crossing them so meaningful. My paranoically charitable hyperreligious perspective and seemingly imperious assertions of what I take to be my moral rights and obligations in my context combined with my unpredicted sticky, rabbitholing, and looping viscosity in both verbal and hypergraphic conversations (some of my conversations take decades) make it appear like I'm a devious ambusher, epic grudge-holder, appalling rhetorician, dogmatic fascist, and sadistic interlocutor. Part of my vocation as a philosopher is to sincerely, surgically, and kindly engage in morally justified ad hominem. Who wants that? Everyone should. Even as a madman, IA2DYJ. Pursuits of truth and honest existential wrestling are gorgeous exceptions I encounter with others. Especially in virtue of being what most people call insane, clearly, I'm lucky to have some absurd people who speak with me consistently and long-term; they likely hedged-love me far more than I deserve.
<<<
<<<
I don't feel like I'm an effective guide, but I try to be useful to people I interact with; I'm trying to meet them where they are. I make for a reasonable study and sparring partner, especially if you seek a deconstructor to throw protons or more complex functions at the layered images we grow together as we shed light upon The Other via a lossy interactive process of discovery and mediation. I can be thorough and rabbithole with a Straussian mindset, which can make me a useful sounding board. Metagamers and I get along well enough. Some people like to geek out with me. I've been trying and failing to set aside mere games for the only one which matters (a recursive problem complicated by the fact that playing mere games is part of playing the one that matters).
In a way, I think openly sharing the wiki allows me to filter people. It reminds me of OkCupid hackers who fight to balance the odds men face in finding partners in sexual mating markets.
<<<
<<<
Giving my self-model away freely accomplishes many goals, including changing the odds of finding meaningful relationships and hopefully being useful to others.
<<<
<<<
As I get older, I think I'm becoming increasingly intimate and alienating (however paradoxical that may sound). My text and meaning are more black-and-white (with some links and functions, I guess).
<<<
<<<
Even while I am less confident and certain in many areas, there is less and less middleground with me. I get along with the powerless who are doing their best with what they have (those are the people I'm fighting for) and others engaged in the same activity. With these people, I try to listen in silence or ask leading questions. When I do speak, it is to build a bridge in their reasoning by handing them the best steelmanned expressions of their argument I see while pointing out the gaps (and, usually, I think the gaps are tremendous). My children and these people (almost all of whom I will never meet) are the only reason I have left to live on this planet. I await the day that I can be done with my work.
<<<
<<<
I know it isn't pleasurable to hear it; maybe you'll think I'm evil, radically wrong, or insane for it: I'm convinced I should like about 3% of the humans I get to know. I do my best to love everyone and their Reason even when I hate their guts (to varying dok, of course).
ridtyawtr. I see the light of possibility in almost everyone, and it is why I hold us so very accountable for not being who we ought to the best of my knowledge and abilities.
<<<
I've made a zine about romance manga; it's called "The Childhood Friend Wins" in reference to the amount of childhood friends that //don't// win. Issue 1 is completed and I'm planning the first (probably only) print run and who gets a copy. If you're interested, [[Contact]] me in the usual way and be prepared to send me a few bucks for P&P.
|!Recipient|!Location|!Printed?|!Sent?|
|[[The Abyssal]]|In house ;)|No|No|
|SaltyFox|Domestic|No|No|
|[[Zodai]]|Domestic|No|No|
|Plat?|Domestic|No|No|
|Yesterday's Money|Europe|No|No|
|Kirby|Europe|No|No|
We use software for our everyday needs because we want to get
something done. We have goals to achieve and things to do.
The software we use is coded by brave programmers that have
their own goals. Most of the time there is an overlap between
their goals and ours.
Over time these will diverge.
This means that the tools we depend on grow features we don’t
use or understand. There will be bugs in these code parts which
will prevent us from reaching our goals.
So we are at a fork in the road:
* We have the choice of trying to understand the code and fix it.
* We have the choice of trying another program, whose creator’s goals are closer to ours.
* We also have the choice of coding the software ourselves.
All but the last path mean endless seeking, evaluating and
further deviation from our goals. Therefore we replace programs
we do not understand fully with our own implementation.
The followers of the Code It Yourself Manifesto believe in
these things:
# We implement it according to our own goals.
# We make mistakes and learn from them.
# We learn how our tools we depend on need to work.
# We gain a deep understanding of our problem domain.
# We still embrace sharing of ideas and code.
Sharing is only possible if we are excellent developers to
each other. The next developer reading our code will be us
in a not so distant future. Coding It Ourselves means we will
document our code, clearly stating the goal of the software
we write.
Together we enjoy the diversity of implementations and ideas.
We encourage our colleagues to:
''Code It Yourself.''
----
Written by Christian Kellermann on 2016-01-12, licensed under
a ~CreativeCommonsAttribution-ShareAlike3.0UnportedLicense.
Tweaked for SPAG and numbered by [[your humble correspondent|chameleon]].
Original text taken from
http://pestilenz.org/~ckeen/blog/posts/ciy-manifesto.html
* https://coinsandscrolls.blogspot.com/2018/01/osr-drow-part-1.html?m=1
* http://coinsandscrolls.blogspot.com/2018/01/osr-conspiracies-and-culture.html
The vast majority of things labelled "AI" are little more than applied statistics. The term has been so diluted the cultists had to invent a new term, "AGI", to refer to their spooky machine god.
AGI itself, of course, is equal bunk. I don't believe we're any closer to it than we were in the 80s, and frankly, I don't think it's possible.
My [[Senpai]], [[David Chapman]], wrote about this in greater detail [[on Meaningness|https://meaningness.com/metablog/artificial-intelligence-progress]].
----
And after checking up on Chapman's [[shitter|birdsite.hell]] looking for pearls, he retweets an incredible blogpost about the whole AI sham: https://blog.piekniewski.info/2019/11/18/late2019-the-wizards-of-oz/
* https://twitter.com/GaryMarcus/status/1194081788307496960?s=20
** "Prediction is not understanding" is a true gem.
* lol: "Elon Musk and Jack Ma apparently had some debate about AI in China. I had seen some cringeworthy clips of that and did not manage to find the strength to torture myself to watch the whole thing. I bet some of my readers will be disappointed by this, but please understand, I'm only human."
* "John Carmack is going to take a shot at AI. Whatever he accomplishes in that field I hope it will be equally as entertaining as Quake and equally as smart as the fast inverse square root algorithm."
** Honestly if there's anyone who can crack it it's him. He's probably the greatest living, active programmer.
* He goes into the scaling problem, that is to say that current "AI" is only getting more and more expensive and less and less feasible considering the moore's law apocolypse
** Processors have only been getting better thanks to concurrency, but [[Amdahl's|https://en.wikipedia.org/wiki/Amdahl%27s_law]] ~~Basilisk~~ [[Law|https://en.wikipedia.org/wiki/Amdahl%27s_law]] is staring us right in the face. We may have hyperchips with six quadrillion cores, but they're limited by what can actually be parallelized.
* "The whole field of AI resembles a giant collective of wizards of Oz. A lot of effort is put in to convincing gullible public that AI is magic, where in fact it is really just a bunch of smoke and mirrors. The wizards use certain magical language, avoiding carefully to say anything that would indicate their stuff is not magic. I bet many of these wizards in their narcissistic psyche do indeed believe wholeheartedly they have magical powers..."
Writing is something you may have guessed (from my logorrhea) I am very passionate about. I newly christen the art of writing "The Eternal Art". Writing is one of the earliest and most enduring human innovations; the ability to freeze speech in such a way that it can be reconstructed later has helped us document our history to an incredible degree of precision. Text has survived wars, genocides, purges, and crusades. Learning to write - whether fiction, poetry, non-fiction, or even personal journaling - will allow you to become a part of the great dialectic that stretches out across time and space.
# Materials to obtain
## A decent text editor (either something big and complicated like Emacs or something simple like Notepad++)
## Paper to write on and a pen to write on it with
# Basic technique
## Learn how to write longhand in a comfortable way (you may want to try with a fountain pen)
## Learn how to touch-type. [[Dvorak]] is better in many ways, but it may be easier to stick to QWERTY.
# Fiction/Novel writing
## Ignore all advice, especially this.
## Learn how to write engaging dialogue and descriptions. My style hues towards the "[[beige|https://tvtropes.org/pmwiki/pmwiki.php/Main/BeigeProse]]" side, at its extreme just raw dialogue with minimal action (like stage directions). You may like that, or prefer a more "[[purple|https://tvtropes.org/pmwiki/pmwiki.php/Main/PurpleProse]]" style.
## Learn about structure. I've read The Hero with 1000 Faces, Save The Cat Writes a Novel, and Romancing the Beat.
## Learn how to outline. Trust a former "pantser": you'll never write anything longer than an engaging short story if you don't outline.
## Learn how to create engaging characters. This will tie into structure in most cases.
<<chame-list-links "[tag[The Eternal Art]]">>
The Fall are one of the most prolific English bands of all time. Here's my attempt to make sense of their vast discography.
|!Year|!Title|!Listened|!Thoughts|!Best track|
|1979|Live at the Witch Trials||||
|1979|Dragnet|2019-01-23|Punk blues? Sounds amazing.|A Figure Walks|
|1980|Grotesque (After the Gramme)|2019-02-01|The lyrics were 2deep4me. I love it|The NWRA|
|1982|Hex Enduction Hour||||
|1982|Room to Live||||
|1983|Perverted by Language||||
|1984|The Wonderful and Frightening World Of...|2019-01-07|Stonking post-punk LP|CREEP|
|1985|This Nation's Saving Grace|2019-01-07|Bit abrasive but great fun|Barmy|
|1986|Bend Sinister|2019-02-02|Dark and creepy, probably my favourite yet|R.O.D.|
|1988|The Frenz Experiment||||
|1988|I Am Kurious Oranj||||
|1990|Extricate|2019-01-21|Dancy and toe-tapping. Some tracks were even kinda gazey|I'm Frank|
|1991|Shift-Work||||
|1992|Code: Selfish||||
|1993|The Infotainment Scan|2019-01-08|Probably the poppy-est so far, but a good listen|The League of Bald Headed Men|
|1994|Middle Class Revolt||||
|1995|Cerebral Caustic||||
|1996|The Light User Syndrome|2019-02-16|This one's almost mathy, or groovy. Good shit|Spinetrak|
|1997|Levitate||||
|1999|The Marshall Suite||||
|2000|The Unutterable||||
|2001|Are You Are Missing Winner||||
|2003|The Real New Fall LP (Formerly Country on the Click)||||
|2005|Fall Heads Roll||||
|2007|Reformation! Post-TLC||||
|2008|Imperial Wax Solvent||||
|2010|Your Future Our Clutter||||
|2011|Ersatz GB||||
|2013|Re-Mit||||
|2015|Sub-Lingual Tablet||||
|2017|New Facts Emerge||||
# Denial
#* "Pfft. Just normies doing silly things. A flash in the pan. It'll pass"
# Anger
#* "Why the fuck are these stupid emojis in Unicode!? What the hell! ''NORMIES''!"
# Bargaining
#* "Well, I guess there were smily faces in Unicode before this, it's not so bad..."
# Depression
#* "It's no use. Now they're making emojis that are composites. This is so fucked. They even made a movie out of these fucking things..."
# Acceptance
#* "TRUUUUUUU 😂😂😂👌👌👌"
Thanks to Pagefire for the [[Folk Punk video|https://www.youtube.com/watch?v=9Jebr1JxS_U]].
Essential to writing punk songs. All you really need to know is what a key is (which set of 7 notes & chords you're using) and roman numeral notation (a way of referring to the chords in a key).
The progressions themselves are:
* Major [[4 chords|https://www.youtube.com/watch?v=oOlDewpCfZQ]]: I, V, vi, IV
* Major 4 chords alt: I, IV, vi, V
* [[Doo-wop|https://www.youtube.com/watch?v=hD6_QXwKesU]]: I, vi, IV, V
* Minor 4 chords: i, VI, III, VII
In the key of G:
* I = G = `320003`
* IV = C = `x32010`
* V = D = `xx0232`
* vi = Em = `022000`
You can also use the "[[wonderwall|https://www.youtube.com/watch?v=Gvfgut8nAgw]] trick"<<footnote ww "the reason douchey bro-guitarists use this song is because it uses only those five chords and a repetitive rhythm. it's easy. to annoy them, say “oh cool, oasis” and ask them to play morning glory or champagne supernova. and if you ever meet noel, tell him liam is the better brother">>, where the high strings are drones:
* Folk G: `320033`
* Cadd9: `x32033`
* Em7: `022033`
* Dsus4: `xx0233`
* Bonus! A7sus4: `x02033`
In the key of A minor:
* i = Am = `x03320`
* VI = F = `xx3211` (FM7: `xx3210`)
* III = C = `x32010`
* VII = G = `320003`
[[Now go start a band|https://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2012/5/23/1337810776607/sideburns940.jpg]] ;)
Completed articles, or cool stuff I love and want to preserve, my fire!
* [[Absolutes]]
** So absolute that they're frozen in time. Before freezing it, I hadn't touched it since 2019.
<<<
"""
A star shines in all of us, we'll search for all our lives,
One day we'll find a way, and a reason to survive
"""
<<< [["Reasons to Live" by Dragonforce|https://www.youtube.com/watch?v=vYzg16nKrxs]]
[[I want wind to blow.|https://www.youtube.com/watch?v=5WvWkUhszeE]]
The Glow is the spark inside, the reason we carry on, the ultimate source of happiness.
The Japanese word for the Glow is Ikigai (生き甲斐), and is often translated as "a reason to live".
"""
>sneers at theists
>believes in God ironically
>starts to believe in [[God|Lord Shiva]] unironically
>mfw
"""
!! Some older groundwork:
<<<
The Master said, “To live in the neighborhood of the Good is fine. If one does not choose to dwell among those who are Good, how will one obtain wisdom?”
<<< 4.1
<<<
The Master said, “Merely set your heart sincerely upon Goodness and you will be free of bad intentions.”
<<< 4.4
//I've never been comfortable with the idea of something fixed. A spook is something I will not attempt to nail down, lest I become bespooked myself. Still... there could be something here. Something I dare not point at directly. Something I imply rather than describe.//
The way the Master spoke of it, or in this translation anywho, reminded me of our mutual friend and [[Senpai]]. https://philosopher.life/#The%20Good
Thinking of it not as something physical, not as something either within or outside our experience (non-dual) but still something we can strive towards (c.f. Chapman's [[nobility|https://approachingaro.org/nobility]]) seems to work for me.
----
Is this gonna be my God (big-G) article? I have [[A-Theism: A Given]], to debunk the monotheist (especially Abrahamic) God. So this is I guess my article to talk more sympathetically, or less [[sneer|Sneering]]ifically. Engaging on the same level with theists puts a bad taste in my mouth.
Do people ~naturally~ (for whatever the fuck that word means that isn't committing an appeal to nature) want to believe in the man upstairs? Am I going against my ~nature~ by opposing the idea so much - even violently at times? It has been argued that even committed Atheists and Antitheists, as in not Buddhish a-theists like yours truly, still believe in the big-G, but give it another name, like progress, morality, or humanity. The definition of religions is so fuzzy and ambiguous that even baseball fandom can be said to be religious in some way. I learned as much speaking to an undergraduate in the field of religious study.
The form seems to matter, though, and I could never even consider worshiping the Abrahamic. The slaves of Christ killed our gods long ago; the closest remaining is great Indra, a form of Zeus/Jupiter/Thor (a sky-father). It seems silly to worship merely one; especially one that is so particularly fixed to an aspect. Made in "his" image; the male image only, with no regard for the female; sky but not earth; good but not evil. It seems more that Shiva and Parvati would be better - male //and// female, sky //and// earth, good //and// evil. Lord Shiva is the destroyer; and really that seems more like our conflict on this earth. Is this a [[Joseph Campbell]] idea I'm pawing at?
I cannot accept something fixed and external-to-humanity trying to control me - you can just read [[Monadism]] if that's in doubt - but fixed-ness seems to not really be an attribute in play here. [[h0p3]]'s article seems to dance about it; not speaking of things in such concrete terms.
First, listen to [[Europe '72|https://www.youtube.com/watch?v=FDWRZEd3Ouc&list=PLCC2EEDF80A02206A]] and [[Scarlet Begonias > Fire on the Mountain 5/8/77|https://www.youtube.com/watch?v=luAqu8VX5wo]]
Next you can find more using Google or one of the Grateful Dead subreddits. Or, if you're in the mood for some mind-blowing space jazz hyperjams, you can listen to the jam compilations on ~YouTube.
* https://www.youtube.com/watch?v=Y4TW70xVkmU
* https://www.youtube.com/watch?v=u26N0brERuU
* https://www.youtube.com/watch?v=Eh7yeysPDhI
---
* https://www.rukind.com/index.php
** https://www.rukind.com/gdpedia/titles/view/103
* https://www.youtube.com/watch?v=sOx0Aos4u38
----
https://archive.org/search.php?query=collection%3A%28GratefulDead%20AND%20stream_only%29%20date%3A%5B1970-01-01%20TO%201974-12-30%5D
`collection:(GratefulDead AND stream_only) date:[1970-01-01 TO 1974-12-30]`
! The Insight that Brings Us to the Other Shore
"""
Avalokiteshvara
while practicing deeply with
the Insight that Brings Us to the Other Shore,
suddenly discovered that
all of the five Skandhas are equally empty,
and with this realisation
he overcame all Ill-being.
“Listen Sariputra,
this Body itself is Emptiness
and Emptiness itself is this Body.
This Body is not other than Emptiness
and Emptiness is not other than this Body.
The same is true of Feelings,
Perceptions, Mental Formations,
and Consciousness.
“Listen Sariputra,
all phenomena bear the mark of Emptiness;
their true nature is the nature of
no Birth no Death,
no Being no Non-being,
no Defilement no Purity,
no Increasing no Decreasing.
“That is why in Emptiness,
Body, Feelings, Perceptions,
Mental Formations and Consciousness
are not separate self entities.
The Eighteen Realms of Phenomena
which are the six Sense Organs,
the six Sense Objects,
and the six Consciousnesses
are also not separate self entities.
The Twelve Links of Interdependent Arising
and their Extinction
are also not separate self entities.
Ill-being, the Causes of Ill-being,
the End of Ill-being, the Path,
insight and attainment,
are also not separate self entities.
Whoever can see this
no longer needs anything to attain.
Bodhisattvas who practice
the Insight that Brings Us to the Other Shore
see no more obstacles in their mind,
and because there
are no more obstacles in their mind,
they can overcome all fear,
destroy all wrong perceptions
and realize Perfect Nirvana.
“All Buddhas in the past, present and future
by practicing
the Insight that Brings Us to the Other Shore
are all capable of attaining
Authentic and Perfect Enlightenment.
“Therefore Sariputra,
it should be known that
the Insight that Brings Us to the Other Shore
is a Great Mantra,
the most illuminating mantra,
the highest mantra,
a mantra beyond compare,
the True Wisdom that has the power
to put an end to all kinds of suffering.
Therefore let us proclaim
a mantra to praise
the Insight that Brings Us to the Other Shore.
Gate, Gate, Paragate, Parasamgate, Bodhi Svaha!
Gate, Gate, Paragate, Parasamgate, Bodhi Svaha!
Gate, Gate, Paragate, Parasamgate, Bodhi Svaha!”
"""
---
“The Insight that Brings us to the Other Shore” translation by Thich Nhat
Hanh is licensed under a Creative Commons Attribution-NonCommercial 4.0
International License.
I write raw html, and a fair amount of it at that. Why? I feel like I can actually understand my pages better if I build them from the ground up. When I used to run a markdown-first website, the html was an afterthought, something generated, and thus issues with it had to be fixed further up the pipeline. But with a raw html page, I tweak the page itself to get it working. There's some real beauty about that.
Should sex be forbidden to me, I will fuck.
Should having a second partner be forbidden to me, I shall take three.
Should I be prohibited from entry, I will trespass.
I spit in the eye of your principles, rules, and forbidden fruits. I will do what I want, and you will get over it.
The Monad is [[yours truly|chameleon]]. More generally, it's any of us. It's a person, an //ego// if you will, that has been despooked and puts no stock in artificially fixed concepts. The Monad is a liberated soul - an anātman ātman - enlightened and unenlightened, brimming with Buddha-nature. It is both an eternal state and a goal; something you already are and yet can never achieve; you are your own ideology.
In order to understand Buddhism, the first thing you must understand is that there is no such thing as Buddhism.
<<<
If you meet the Buddha on the road, ''kill him.''
<<< Koan
---
For most of Western (European) history, "religion" meant Christianity. Sure, you had the schism between the East and West church, and sure, you had Martin Luther inventing callout posts, but it was all the same shit with Jesus and all that. So it must've been a bit weird going abroad and finding out that no-one had heard of Jesus, or Yahweh.
Go abroad they did<<ref "eu">> and they discovered that, not only did folks have no idea who that Jesus bloke was, but they spoke similarly reverentially about some guy called Gautama or Buddha or something. Interesting. The colonizers asked questions and figured out that this Gautama Buddha guy was a really holy dude who figured everything out by sitting under a tree. Sounds kinda like Jesus, really. So, for once not just forcibly converting them, they figured "I guess this is kinda like us with our Christianity, only they're worshiping some other guy called Buddha instead. Alright, we'll call stuff like this 'religions' and we'll say these guy's religion is 'Buddhism'." Off on their merry way they went.
If you know anything about Buddhism, you'll be raising your hand right now. Yeah, "buddh"ists don't actually worship the Buddha as a god like the Jesus freaks do... and uh, the schisms are actually a lot bigger than some esoteric squabble in the 11th century or some 16th century shitposter, we're talking "major and fundamental differences in philosophy" here... also these aren't rosaries, they're mala beads...
But the colonizers had already left to "discover" America or something.
---
At this point, non-"buddh"ists will be howling: "Hey, your little theological differences don't make different religions! You're still Buddhists!" This is a category error of "not even wrong" proportions.
<<<
"""
A monk asked Master Chao-chou, "Has a dog the Buddha Nature or not?"
Chao-chou said: "[[無|Mu]]"
"""
<<< Koan
It's fair that a lot of "buddh"ists will say "oh yeah, sure, my religion is based on this handsome prince who sat under a tree until he figured all this shit out", and you'll probably get that as the answer if you google "what is buddhism", but they're simplifying it for you.
The tale of Siddhartha Gautama is an inspiring, beautiful, bold-faced lie. The historical Buddha was most likely rather like the historical Jesus: a charismatic ascetic whose followers thought he was so brilliant that everyone needed to hear about him; and in a time before written tradition, his brilliance got a little bit exaggerated.
Now as a "buddh"ist I can quite proudly tell you this; but good luck getting a Christian to admit that their messiah was nothing more than a mendicant who got too uppity for the Romans. What's the difference here? It's that my "belief" (put a pin in that word, we'll come back to it) is of a fundamentally different sort to the Christian. The Buddha was not a divine being, and this is repeatedly asserted even in the crustiest of scripture.
I still wrestle today with a formative experience when it comes to the tale of the Buddha: I was told the story, in beautiful and extravagant detail, by a committed (I thought) big-B Buddhist. He showed me his meditation room, a Tibetan image of the Buddha, a singing bowl. Then he gave me a wry smile, and said "of course, all of this is bullshit."<<ref "sa">>
All in all, you cannot apply the same standards to "buddh"ism as you can Christianity.
---
"Well, okay," you might be saying, "sure, Buddhism isn't the worship of this Gautama guy, but I'm an advanced and very clever Westerner, I know that 'religion' doesn't just mean 'worshipping some guy'. You Buddhist chaps must share some doctrine or other."
//master [[chameleon]] slapped her foolish pupil on the head//
Show me three "buddh"ists of different schools who agree on anything past Gautama's enlightenment and I'll show you a flying pig!
Alright, let's drop it with the koans for a second and go back to plain English. You might've heard in your Google adventures that ol' Golden Gautama went to the nearest town and said "hey guys, awesome idea here, follow this four-step program and these eight weird tricks, and you can be enlightened like me!" And thus might've guessed that these Buddhist guys are out here trying to follow the path and learn all the tricks to become enlightened, right?
//master [[chameleon]] slapped her foolish pupil on the head again, harder this time//
Yes, allegedly the Buddha preached a doctrine called the Four Noble Truths, which:
# Affirm that life is suffering
# Tell you that suffering comes from craving/attachment
# Tell you there's a way out of suffering
# Tell you the way out of suffering is to follow the Noble Eightfold Path
That fourth one points to an eight-point plan to enlightenment, with some good tips along with your usual puritan values of "don't drink, don't fuck, be nice to people".
The actual interpretation of the Truths and the Path is an unspeakably deep and wide digression which I could write an entire new wiki about, many times the size of this one.
Unlike Christianity with its priests, prophets, and saints, people to interpret ancient scripts (allegedly) recording (allegedly) the words of (allegedly) enlightened individuals are pretty hard to come by. Even if they weren't, it could all be bullshit. The historical Buddha lived thousands of years ago, and most of his life is known through sacred texts based on oral tradition. He was dead for hundreds of years by the time a monk first wrote down anything about the Four Noble Truths and the Noble Eightfold path. He could well have taught this doctrine, yes, but what it meant and whether what we got written down is what he actually said are a gigantic [citation needed]. As a result, some traditions don't even teach it, or gloss over it in Buddhism 101 to get to the more juicy stuff (tantra! meditation! enlightenment!).
Personally, I've never followed even the spirit of the Eightfold Path, let alone the letter. Part of it is literally "give up everything and become an ascetic" which isn't really possible for me, so that's one tentpeg down. Also, you're not supposed to get involved with sex or drink and hoooooooboooyyyyy. I tried to do vegetarianism at one point, but I liked gummy candy and Maccas too much to stick to it. I think this is the case for the vast majority of non-monastic "buddh"ists in the world (apart from some very brave vegetarians and vegans, who are awesome btw). It's often hand-waved away as "eh, that stuff's for monks anyways, not laypeople."
---
Now that we've got some myths out of the way (there's no one religion "Buddhism"; the Buddha wasn't a god; the Four Noble Truths/Eightfold Path aren't just the Ten Commandments for people who think the Buddha was way cool) you might be wondering just what we "buddh"ists do at all.
Whistlestop tour: there's two very broad traditions. They're called "Mahayana", or "great vehicle", and "Theravāda", or "School of the Elders". Mahayana types cheekily call Theravāda "hinayana', which means "small vehicle", but not to the Theravādan's faces.
Simplifying it extremely, the Theravāda tradition is all about doing Gautama 2.0. They say to themselves "OK, the Buddha is supposed to have come down from the bodhi tree with the Four Noble Truths and the Eightfold Path; let's follow that and get enlightened." It's the oldest tradition to be called Buddhism, and if you google "what is buddhism" (going back to this again) you'll likely be given a quick primer on Theravāda. I don't know much about the Theravādans but I'll just leave it there out of respect for them. You have Google and Wikipedia if you need to know more. With me so far? Good, let's continue.
The Mahayana is where all the weird shit comes in. Briefly, the parable that started the Mahayana tradition is about someone called the Bodhisattva; who upon reaching enlightenment was like, "ok, this is great, before I achieve nirvana I should tell everyone else". Mahayana types want to enlighten every other sentient creature in the universe as well as themselves; consider the Bodhisattva Vows:
<<<
# Sentient beings are innumerable; ''I vow to save them all.''
# Desires are inexhaustible; ''I vow to end them all.''
# The Dharma Gates are infinite; ''I vow to enter them all.''
# The Buddha Way is unexcelled; ''I vow to attain it completely.''
<<<
Yeah that's right, Mahayana has four vows you can never possibly keep. But we (I follow Mahayana) take them anyways. Shit like that is the norm in "buddh"ism. Get used to it.
Enlightenment is very different in Mahayana. Surprise, Mahayana actually has traditions within it! It's a supercategory! However, all the Cool Buddhisms you've heard of are most likely Mahayana, such as:
* Zen Buddhism (the Japanese form is most well known, but there's also):
** Chan Buddhism (Zen's Chinese ancestor)
** Korean Buddhism
* Tibetan Buddhism
* Tantric Buddhism
* Esoteric Buddhism
I'd call myself Zen if pushed. I'd even, trying not to boast, say that I'm enlightened. Want to hear how? Scroll down.
---
So, now we've demarcated the lines. "Buddhism" is not a thing, we've learned. What is called "Buddhism" is actually two very broad schools who have very different ideas of what to do with the information "this guy in India (modern day Nepal) sat under a tree and got enlightened". And within those schools there's further subdivisions, digressions, traditions, and hoary old monks who live in caves in the mountains with moss on their beards and will only take you as a pupil if you sit out in the snow until you lose a limb.<<ref "bd">> This is as good a place as any to tell you that traditions other than "buddh"ism //also// revere the Buddha: he's said to be an incarnation of Vishnu (akin to Krishna) by some Hindus (Hinduism is also not a religion, but that's a whole other can of worms) and is revered in the Bahá'í faith too.
I stuck two pins further up. The first was "belief". You may hear tell of Buddhist "faith"; for example "refuge in the three jewels (the Buddha, the Dharma, the Sangha)." Wikipedia puts it better and more concisely than I ever could:
<<<
In contrast to perceived Western notions of faith, faith in Buddhism arises from accumulated experience and reasoning.
<<< [[https://en.wikipedia.org/wiki/Refuge_(Buddhism)#Faith]]
The second pin was enlightenment. I had an enlightenment right out of a Zen koan in early spring, 2017. I was at my parent's place. I was emerging from a period of depression. I saw a beautiful red butterfly. I rushed inside to tell my mother of the butterfly. I said "it's the most beautiful thing I ever saw", or something to that effect. My mother said "it's just a butterfly." In that moment I was enlightened.
Can I explain what happened? Nope. I can only point you to another Zen practitioner, name of [[Brad Warner|https://en.wikipedia.org/wiki/Brad_Warner]], and his bridge experience. You can read about it in his books "Hardcore Zen" and "There Is No God And He Is Always With You".
That's all I have to say. I'll continue to call it "Buddhism" outside of this essay. It's on you to remember that it's not a religion. You can do it.
You could also remember that all of this is bullshit.
---
<<footnotes "eu" "That's a euphemism. They conquered, enslaved, and pillaged their way around the globe. But I digress.">>
<<footnotes "sa" "They say satori, enlightenment, is like a flash of inspiration that comes to you in a moment. I glimpsed, but did not yet achieve, satori in that very moment.">>
<<footnotes "bd" "This is supposedly how Bodhidharma, the founder of the Chan school, got his first disciple.">>
<<<
is that like joy division
<<< [[score_under]]
Post-emo/Modern Rock/Synthpop?/thing band. Find their music on [[bandcamp|https://panicdivision.bandcamp.com]].
They're one of the few bands I like where the lyrics are consistently interesting and worth paying attention to. They back it up with Colton's voice, which is deep and mature for a former emo band.
Ironically, I heard their music first in the [[waifuism|Waifuism]] diss track, "Waifuism And You".
!! Flowchart
OK, flowlist. But /mu/'s "how to get into" flowcharts are still worth copying.
# Eternalism
#* "More 80s!" → Touch
#* "More of this?" → Photograph B-side & Aero Nautical
#* "More of the ambient thoughtful stuff" → Sleepwalker
# Touch
#* "Too much 80s!" → Aero Nautical
#* "80s but with rock?" → Songs From The Glasshouse
#* "Can we explore the dark side some more?" → Sleepwalker
# Aero Nautical
#* "More of the mid-period sound?" → Sleepwalker
#* "Wasn't this an emo band?" → Versus
# Sleepwalker
#* "Just ambent me up fam" → TRU2TH
#* "More songs?" → Aero Nautical
#* "What if the 80s got dialed to 11??" → Touch
# Songs From The Glasshouse
#* "This sucks, what came before?" → Versus
#* "This sucks, did they do this sound better?" → Aero Nautical
!! [[Eternalism|https://panicdivision.bandcamp.com/album/eternalism]]
This is the first full album where their sound and image had really evolved into a shape you'd recognize it as. This album is really great but suffers from a bad structuring and a couple of dud tracks. The album really blows its load early with the two best tracks - "Silver Rings" and "The Miracle in You" being first and second after the forgettable instrumental intro. The dismal "Shut Up and Leap" should've just been left on the cutting room floor, and the dull but inoffensive "Melody Avenue" should've been replaced with [["Photograph"|https://panicdivision.bandcamp.com/track/photograph]], the B-side.
The name should be a recognizable one if you've ever read the works of [[David Chapman]]-senpai. A buddhish theme definitely runs through the band's work. The B-side especially:
<<<
"""
You get what you wanted and you suffer
When you cant hold on to it forever
Falling way too fast
For the gifts in life that can never last
"""
<<< Photograph
is from the 101: it's the Four Noble Truths.
"The Miracle In You", similarly, seems to be advocacy for living in the moment and not holding onto lost pasts and dimly-lit futures:
<<<
"""
Long goodbyes. Lay your heart to rest
Boy, you gotta learn when to let go
You've been wasting all your life, living only in your dreams
Boy, you gotta learn now that it's time. Time to let go.
"""
<<< The Miracle In You
And even more explicitly:
<<<
Hold on to your future... fuck the past.
<<< ibid
!! [[Aero Nautical|https://panicdivision.bandcamp.com/album/aero-nautical]]
Following the lead set by Eternalism and especially "Photograph", here's an album that still keeps the driving modern rock tone, but is more heavily synth-driven. It also teases the more 80s sound of the later "Touch".
While the album once again opens strongly, the load is more evenly balanced across the album, and there are no dud tracks (save, again, the instrumental opener).
The theme of embracing the moment, and the buddhish sentiments, seem to be highlighted here. "Spinning Around The Wheel" presents samsara as being like a casino, with references to dice and the obvious roulette wheel reading, but of course, also refers to the Wheel of Dharma (Dharmachakra) that is such a well-recognized symbol of Buddhism. The song emphasizes these themes by referring to the power of love actually blinding the narrator; clinging/craving in action!
<<<
"""
Help me see what is right in front of me
When the power of love is slowly blinding me
I'm fighting all the while, and pushing every mile
But the power of love is slowly blinding me
"""
<<< Spinning Around The Wheel
"Home" is the famous Carl Sagan "Pale Blue Dot" speech set to music. This seems to emphasize one of the band's main themes; the speech evokes the wonder of seeing one's home and loved ones in miniature, and how small it makes petty human problems seem.
Other highlights include "Shadows" and "When The Night Calls Out", the latter arguably the closest the band would get to the sound of the next album.
!! [[Touch|https://panicdivision.bandcamp.com/album/touch]]
The most recent album, with a 2019 release, Touch embraces the 80s sound teased on Aero Nautical, with the promotional material playing up this angle:
<<<
Born in 1981, Holliday pulled everything from his youth in the 80’s and compiled it into an album that will truly bring some people back to the golden age of pop.
<<<
This is hardly a new direction for the band; pre-bandcamp release "Songs From The Glass House" teased it somewhat, and they have always used synth sounds. However, this is the first time they've embraced it fully.
The songs do, of course, owe a great deal to the 80s; but the best of them have an emotional depth like the band's previous releases that the mainstream music of the time lacked.
This one seems to have been well-received. There's even a music video with a cute girl dancing to the song: https://www.youtube.com/watch?v=yOVAaMloJxk
!! The EPs
The Panic Division released two EPs on Bandcamp:
* [[Sleepwalker|https://panicdivision.bandcamp.com/album/sleepwalker]] got me into the band via the aforementioned diss track. "When Your World Turns Around" and "Pretender" are highlights.
* [[TRU2TH|https://panicdivision.bandcamp.com/album/tru2th]] is an instrumental mix, intended for licensed usage but released to the public (i.e. to Panic Division fans).
!! Pre-Bandcamp
Two of their albums predate bandcamp: Versus (2005) and Songs From The Glasshouse (2007). These are very different from the later sound, but do have hints of the band's later direction. Versus is a straight up mid-00s emopop release, like later Simple Plan or Taking Back Sunday, but stands out because of Colton's voice. Songs From the Glasshouse is more synth-driven, and is the main one I can find reviews of, one of which has a Funny:
<<<
[Have you ever] needed something to listen to at like the Gas 'n' Sip on a Saturday night completely alone drinking beers with no women anywhere?
<<< https://www.punknews.org/review/6906/the-panic-division-songs-from-the-glasshouse
The general consensus on the Glasshouse is that it's already trying to do an 80s revival thing, but that it fails. I can't disagree too strongly; the best track is [["Big Day"|https://www.youtube.com/watch?v=d6pmDP6y5Vo]] but the rest failed to grab me. The band seemed to take direction from this track in their later rock releases.
As for Versus... if I'd discovered it in the period 2005-2008 I would've thought it was the best thing ever. As-is, it's good, but lacks the depth of their later releases.
"""
I take it you already know
of tough and bough and cough and dough?
Others may stumble, but not you
on hiccough, thorough, slough and through.
Well done! And now you wish, perhaps,
To learn of less familiar traps?
Beware of heard, a dreadful word
That looks like beard and sounds like bird.
And dead; it's said like bed, not bead.
For goodness sake, don't call it deed!
Watch out for meat and great and threat,
(They rhyme with suite and straight and debt)
A moth is not a moth in mother,
Nor both in bother, broth in brother.
And here is not a match for there,
Nor dear and fear for bear and pear,
And then there's dose and rose and lose --
Just look them up -- and goose and choose,
And cork and work and card and ward
And font and front and word and sword.
And do and go and thwart and cart --
Come, come, I've hardly made a start.
A dreadful language? Man alive,
I’d mastered it when I was five!
"""
//Anonymous//
<<<
Men rarely (if ever) manage to dream up a god superior to themselves. Most gods have the manners and morals of a spoiled child.
<<<Robert A. Heinlein
<<<
Once you realize that documentation should be laughed at, peed upon, put on fire, and just ridiculed in general, THEN, and only then, have you reached the level where you can safely read it and try to use it to actually implement a driver
<<< Linus Torvalds
<<<
I must create a system, or be enslaved by another man's. I will not reason and compare: my business is to create.
<<< William Blake
<<<
Beware of bugs in the above code; I have only proved it correct, not tried it.
<<< Don Knuth
<<<
Explanations exist; they have existed for all time; there is always a well-known solution to every human problem — neat, plausible, and wrong.
<<< H. L. Mencken
<<<
Brevity is the soul of wit.
<<< W. Shakespeare (Hamlet)
Give a show that you're interested in or have been recommended three episodes to hook you. If after three episodes you hate it &| don't care what happens, you can drop it safe in the knowledge you gave it a fair shake.
!! Picking a distro
There's as many linux distros as there are computer users (well, not quite, but there are a lot!) Here's how to choose one:
* Are you a noob?
** Ubuntu
*** Vanilla works nicely
*** Xubuntu or Lubuntu for a lighter desktop
*** Kubuntu or KDE Neon for a full-featured (KDE) desktop
* Want to experiment with the nuts and bolts?
** Arch until you have some experience
** If you're good at Linux, you might try Gentoo
* Want to buff up your CV?
** Redhat, Fedora, ~CentOS.
* Are you a hipster?
** Source mage
** Stali
** Alpine
!! Basic terminal usage
The program which shows text is called a terminal (or more properly, terminal emulator). Examples of this are xterm, konsole, Gnome Terminal, and st. The program which actually interprets what you type and runs commands is called a "shell". Examples of a shell are bash (probably what you're using), zsh, dash, and rc. You can test by doing this:
```
echo $SHELL
```
It will probably say `/usr/bin/bash` or something similar; this will tell you for sure that it's bash you're using. I'll assume bash for this tutorial; most stuff ports over.
If you're ever confused by a command, run `man cmd`, with `cmd` replaced by whatever command is confusing you.
!!! Getting around
Find out what directory you're in with `pwd` - ''P''rint ''W''orking ''D''irectory
See what's in the current directory with `ls` - Directory ''L''i''s''ting.
Change directory with the command `cd` - ''C''hange ''D''irectory
Example session:
```
$ pwd
/home/chameleon
$ ls
games src wiki
$ cd games
$ pwd
/home/chameleon/games
$ cd ..
$ pwd
/home/chameleon
```
!!! Working with files and directories
Create directories with `mkdir` - ''M''a''k''e ''Dir''ectory
Remove directories with `rmdir` - ''R''e''m''ove ''Dir''ectory. This only works for empty directories.
Print the contents of files with `cat` - Con''cat''enate (more about this later).
Copy files with `cp` - ''C''o''p''y
Remove files with `rm` - ''R''e''m''ove
Example session:
```
$ cd games
$ ls
zelda mario ff
$ mkdir giana
$ cd giana
$ cp ../mario/mario1.nes giana.nes
$ cat giana.nes
Piracy is bad, kids!
$ rm giana.nes
$ cd ..
$ rmdir giana
```
!!! Pipes
In UNIX, processes send their output to "stdout" and take their input from "stdin". The core UNIX philosophy is to send this output to other processes' input - a "pipe".
For example, `grep` filters based on an expression:
```
$ cat file
foo
bar
baz
foobar
$ cat file | grep foo
foo
foobar
$ grep foo < file
foo
foobar
```
Note the usage of `|` (pipe) which sends the //output// of one command to the //input// of another; and `<` which sends a file to the input of a file.
You can use this to create files, as well:
```
$ grep foo < file > file-filtered
$ cat file-filtered
foo
foobar
```
`>` sends the output of a command to a file.
You'd be amazed what you can compose with just pipes and standard unix commands. This chain:
```bash
tr -cs A-Za-z '\n' | tr A-Z a-z | sort | uniq -c | sort -rn | sed ${1}q
```
Performs a useful task:
> Read a file of text, determine the n most frequently used words, and print out a sorted list of those words along with their frequencies.
[[Read the article|https://franklinchen.com/blog/2011/12/08/revisiting-knuth-and-mcilroys-word-count-programs/]] for more!
!! Where is everything on Linux!?
* `/home/` is where everyone's home directories live (analogous to idioms like `C:\Users\chameleon` on Windows)
* `/bin` is where programs (''bin''aries) live
* `/lib` is where libraries (''lib''raries) live (analogous to DLLs on Windows)
* `/etc` is where configuration files live
* `/dev` is where interfaces to your ''dev''ices live
* `/var` is for ''var''ious crap (web directories, logs, mail)
* `/share` is for shared files, such as icons, or other files programs need to operate (analagous to installation directories in Windows)
** Note that you'll rarely get a `/share`, usually `/usr/share` instead. Stuff gets installed in `/usr`, which is pretty much the same as `/`. So you can treat directories like `/usr/bin` as being roughly the same as `/bin`
* https://www.learnreligions.com/the-principal-upanishads-1770572
** List with summaries. This is a good website.
* https://www.infoplease.com/primary-sources/philosophy-religion/the-upanishads
*# The Khândogya-Upanishad
*# The Talavakâra-Upanishad
*# The Aitareya-Âranyaka
*# The Kaushîtaki-Brâhmana-Upanishad
*# The Vâgasaneyi-Samhitâ-Upanishad
** Site looks like a good rabbithole. Unsure who translated it, or indeed if it's an original translation.
* https://www.wisdomlib.org/hinduism/book/chandogya-upanishad-english
** Was recommended to start here by a practitioner, sometime in 2018-2019.
* Rigveda
* Yajurveda
* Samaveda
* Atharvaveda
Comes from root "vid"; knowledge. Attested in other IE languages; root of "wit" and many other English words, e.g. wisdom, wizard, idea. PIE *weid-
Believed to be divinely inspired; predates earliest other such works (the Abrahamic texts, for example). Internally asserted - (RV. X.90.13), (YV. XXXI.7), (AV X.7.20). Apparently this was "placed in the heart of the seers" (RV. X.71.3).
Progress: RBB p34
<<<
In order to make harsh noise music, you have to have something wrong with you.
<<<
The outsiders, creatives, neurodivergents, and savants that make life worth living and the internet worth browsing.
I have a long-standing fascination with art that pushes the boundaries of the human experience, that makes you rethink who you are and what it means to be alive.
<<<
I'm not interested in ordinary menus!
<<< [[Konata]]
The unique, the art worth seeing, often exists right out there on the ragged edge. To truly experience it, [[chameleon]], that is the goal you must strive for! Embrace the weird, the strange, the unacceptable!
<<chame-list-links "[tag[The Weird]]">>
Reddit works very heavily on churn. The upvote/downvote system combined with the "hot" algorithm reflects this; it prizes newer content over quality content, and churn/shininess over community building. Contrast a typical phpbb forum with its threads that last forever or an imageboard with long-lasting threads. Add onto this the nested-comment format of Reddit, where each stream of replies is a rabbithole and an island all in itself - the thread itself is an archipelago sinking into the sea of history.
I wonder if both Reddit's best and worst elements are a function of its large size. At best, it means that the smart, insightful people are there waiting to be found; at worst, it means that the place is flooded with unsavory types like nazis, tankies, shitposters, epic gamers, and general morons.
---
A taxonomy of subreddits:
* General interest reddits
** /r/Gaming
** /r/Politics
** /r/Pics
* Political dens. Rabbitholes for any ideology, tendency, or person of interest under the sun.
** /r/COMPLETEANARCHY
** /r/Socialism
** /r/neoliberal
** /r/conservative
* Point-and-Laugh
** /r/sneerclub (a personal favorite)
** /r/subredditdrama
* Geographical locations
** /r/Canada
* Hobbies
** /r/Skateboarding (the other shreddit)
** /r/EDH
* Sports and other fandoms
** /r/~GrandPrixRacing
** /r/Football
** /r/ASOIAF
* Complaining about reddit
** /r/Negareddit
** /r/~ShitRedditSays
** /r/srssucks
** Subcategory: circlejerking
*** /r/f1circlejerk
*** /r/gamingcirclejerk
* Porn
** /r/~AnimeMilfs
* Shitposting/Memes
** /r/gangweed
** /r/surrealmemes
The one good a-theist youtuber.
* https://www.youtube.com/user/TheraminTrees
This community is afraid of me. I have seen its true face.
The forums are extended gutters and the gutters are full of blood and when the drains finally scab over, all the vermin will drown. The accumulated filth of all their FP and formal verification will foam up about their waists and all the Rustaceans and Haskellers will look up and shout "Save us!"... and I'll look down and whisper "No."
# Porter Robinson - Sad Machine
# Johnathon Coulton - Code Monkey
# deco*27 - stickybug
# Walk the Moon - Shut Up and Dance
# Hyadain no Kakakata☆Kataomoi-C
# ren'ai circulation
# [[Together in Electric Dreams]]
# Anamanaguchi - Bosozoku gf
# [[Deco*27 ft. 初音ミク - Rooter's Song|https://www.youtube.com/watch?v=D-qkBOyBKMw]]
# [[* ハロ/ハワユ *- Hello/ How are you|https://www.youtube.com/watch?v=fNB8VRwCPTM]]
I've used these terms a bit hap-hazardly but I think now I can define them more clearly.
A tiddler is the raw page unit on tiddlywiki. This is a tiddler. [[Root]] is a tiddler. [[2019.09.27 - Islandpunk]] is a tiddler.
An article is a non-journal tiddler that uses the [[Development Levels]] system. So [[The Last Waifuist]] is an article, but [[2019.12.10 - roguelikes and OSR]] is not.
A journal entry is tagged [[Journal]] and begins with a date in the usual format (YYYY.MM.DD on my wiki). So [[2019.10.28 - chame writes a half-decent progression!?]] is a journal entry, [[h0p3]] is not.
The distinction can be thought of thusly: "tiddler" is like "book"; "article" is like "novel" or "encyclopedia"; "journal entry" is like "diary". A novel is a book, a diary is a book, but a novel is not a diary.
You're looking at it, buster :)
This wiki runs on TW, which is a frankly amazing piece of software which allows you to squeeze an entire wiki into a single HTML document. It's the exact kind of [[weird|The Weird]], rube goldberg, duct-tape programming I love and admire. It's the Emacs of websites!
If you want to join me and the others on this [[Long Strange Trip|The Grateful Dead]], check out [[How to make a wiki]].
!! Overworld/Wilderness Time
1 mile per inch of movement speed per day; since hexes are six miles, one day at a move speed of 6" will let you move by one hex (six miles). A party moves at the speed of its slowest member.
|!Transport|!Move Rate|!Hexes per day|
|Dwarf afoot| 9" | 1.5 |
|Draft horse| 12" | 2 |
|Riding horse| 24" | 4 |
|Warhorse| 18" | 3 |
|Man afoot| 12" | 2 |
|Enc. Man Afoot| 6" | 1 |
|Mule| 12" | 2 |
|Wagon Train| 6" | 1 |
!! Dungeon Time
Turns last 10 minutes. There are six such turns per hour.
Underground, a movement rate converts to tens of feet, with two moves allowed per turn; 12" thus converts to 120ft, 240ft per turn (10 minutes). If running, this is quadrupled, but the party cannot map.
Torches last 6 turns (an hour). Lanterns last 24 turns (4 hours). Both light a 30ft radius.
Searching carefully takes a full turn, unless using ESP or other special means, in which case it will take a half or quarter turn (at the ref's discretion).
!! Combat Time
Ten rounds of combat make up 1 turn (10 minutes); thus each combat round is one minute.
!! Summary
10 rounds = 1 turn = 10 minutes = ⅙ an hour
!! Aides
https://simplednd.wordpress.com/2019/09/10/time-tracking-worksheet/
TinyD6 is a rules-light system. I have the ~TinyDungeon book in pdf format.
The core mechanic is nd6≥5; roll nd6 (n=2, or n=1 if disadvantage or n=3 if advantage) and score at least 5 on one or more dice. [[AnyDice probabilities (set to "at least" and look at the probability of at least 1; 33% for disadv, 55% for normal, 70% for adv)|https://anydice.com/program/182ec]]
Characters are classless and level-less; character abilities are determined by traits.
A wide variety of settings are on [[DTRPG|https://www.drivethrurpg.com/browse/pub/10267/Gallant-Knight-Games/subcategory/26112_27017/TinyD6]]
The practice of titling a wiki page with a semicoloned "topic" tag. For example, in [[2020.04.20 - Daily Task: and no sleep tonight]], the TitleTag is "Daily Task".
!!! [[h0p3]]
<<list-links "[tag[To]] +[tag[Letter]] +[tag[h0p3]]">>
!!! [[Nobu]]
<<list-links "[tag[To]] +[tag[Letter]] +[tag[Nobu]]">>
!!! [[kickscondor]]
<<list-links "[tag[To]] +[tag[Letter]] +[tag[kickscondor]]">>
!!! [[Talita]]
<<list-links "[tag[To]] +[tag[Letter]] +[tag[Talita]]">>
!!! [[dadgum]]
<<list-links "[tag[To]] +[tag[Letter]] +[tag[dadgum]]">>
!!! [[LOL CRINGE SHE WRITES LETTERS TO FICTIONAL CHARACTERS|Lol chameleon]]
<<list-links "[tag[To]] +[tag[Letter]] +[tag[Konata]]">>
<<list-tags-links "[tag[TOC]]">>
---
* [[ToDo]]
* [[Admin]]
* [[Journal]]
* [[Letter]]s
* [[Note]]s
* [[@]]
!! Do today
[x] Clean the kitchen
!! Do Soon
[x] Send off those forms!
!! Shopping list
[ ] Coffee table
[[jan akesi kule|chameleon]] here ;)
Toki Pona is a very small language, at 120 words. It can be learned, so they say, in 30 hours. I'm going to learn it or die trying!
<<chame-list-links "[tag[Toki Pona]]">>
//Thanks, jan Sonja.//
!! a
* a - interjection. Ahh, haha, ARGH! etc.
* ala - no; negation
* alasa - hunt; gather
* ale, ali - all, everything; the universe
* akesi - non-cute earth animal, reptile, amphibian, etc.
* anpa - the bottom, underneath, floor
* ante - difference, change, otherwise
* anu - or
* awen - stay, wait, keep
!! e
* e - //sep// (introduces a direct object)
* en - //conj// and (used to coordinate head nouns)
* esun - market, shop
!! i
* ijo - thing, something, stuff, object
* ike - bad, negative, complex, wrong
* ilo - tool, device, machine
* insa - inside, innerworld, centre, stomach
!! j
* jaki - gross, dirty, garbage
* jan - person, human, being, humanity
* jelo - yellow, light green
* jo - have, contain
!! k
* kala - fish, sea creature
* kalama - sound, noise, voice, play (an instrument)
* kama - coming, become, arrive, begin, future, bring about
* kasi - plant, leaf, herb, tree, wood
* ken - can, able to, (make) possible
* kepeken - use; with
* kili - fruit, pulpy vegetable, mushroom
* kin - also, too, even, indeed (emphasizes the word(s) before it)
* kipisi - cut
* kiwen - hard, hard thing, stone, metal, mineral
* ko - semi-solid or squishy substance, e.g. paste, powder, gum
* kon - air, wind, smell, soul
* kule - color, colorful
* kute - listen, hear
* kulupu - group, community, society
!! l
* la - //sep// (between adverb or phrase of context and sentence)
* lape - sleep, rest
* laso - blue, blue-green
* lawa - head, mind, main, leading
* len - clothing, cloth, fabric
* lete - cold, uncooked; cool down, chill
* li - //sep// "(between any subject except mi and sina and its verb; also used to introduce a new verb for the same subject)"
* lili - small, little, young, a bit, few, less
* linja - long, very thin, floppy thing; string, rope, hair, thread, cord, chain; (line/linear)
* lipu - flat and bendable thing; paper, card, ticket
* loje - red
* lon - located at, be there, be present, be real, exist, be awake
* luka - hand, arm, five
* lukin - see, look, watch, read
* lupa - hole, orifice, window, door
!! m
* ma - land, earth, country, outdoor area
* mama - parent, mother, father
* mani - money, material wealth
* meli - woman, girl, wife, girlfriend, feminine; (Virgin Mary)
* mi - I, we, my, our
* mije - man, boy, husband, boyfriend, masculine
* moku - eat, drink, food, meal
* moli - death, die, kill; (Morir, mortal)
* monsi - back, rear, butt, behind
* mu - cute animal noise; (mew, moo)
* mun - moon, lunar
* musi - fun, playing, game, art; (aMUSIng)
* mute - many, very, much, more
!! n
* namako - extra, additional, spice
* nanpa - number, -th
* nasa - silly, crazy, drunk, weird
* nasin - way, manner, custom, system, doctrine, method
* nena - bump, nose, hill, mountain, button
* ni - this, that
* nimi - word, name
* noka - leg, foot
!! o
* o - O (vocative), OI! (calling someone's attention)
* oko - eye; (Ojo, ocular)
* olin - love
* ona - she, he, it, they
* open - open, turn on
!! p
* pakala - screw up, blunder, destruction, damage; cuss word; (perkele)
* pali - activity, work, deed, project
* palisa - long, mostly hard object e.g. rod, stick, branch
* pan - grain, cereal; (bread)
* pana - give, put, send, place, release, emit, cause; (poner)
* pata - //obsolete// brother
* pi - of, belonging to
* pilin - feelings, emotion, heart
* pimeja - black, dark, shadow, darkness
* pini - end, tip, done, ago
* pipi - bug, insect, spider
* poka - side, hip, next to, with, neighbouring
* poki - container, box, bowl, cup, glass
* pona - good, simple, nice, correct, right; make good, fix, improve; (bon)
!! s
* sama - same, similar, equal
* seli - fire, warmth, heat, cook
* selo - outside, surface, skin, shell, bark, shape, peel
* seme - W5H - question word (who what where when how and why)
* sewi - high, up, above, top, over, on; deep, magical, or mystical (divine)
* sijelo - body, physical state
* sike - circle, wheel, sphere, ball, cycle
* sin - new, fresh, another, more
* sina - you, your
* sinpin - front, chest, torso, face, wall
* sitelen - picture, image, draw, write
* sona - knowledge, wisdom, intelligence, understanding
* soweli - animal, especially land mammal, lovable animal
* suli - big, tall, long, adult, important
* suno - sun, light
* supa - horizontal surface - furniture, table chair, pillow, floor
* suwi - candy, sweet food
!! t
* tan - from, by, because of, since, origin, cause
* taso - only, sole, but; (that's all)
* tawa - to, in order to, towards, for, until; go to, walk travel, move; movement; move towards; (towards)
* telo - water, liquid, juice, sauce; (de l'eau)
* tenpo - time, period of time, moment, duration, situation; (tempo)
* toki - language, talk, speech; hi!
* tomo - indoor constructed space; urban, household; (domicile)
* tu - two, pair, halve
!! u
* unpa - sex, sexuality, have sex with someone; (hump)
* uta - mouth, oral
* utala - conflict, war, battle, attack, physical or verbal violence
!! w
* walo - white, light (color)
* wan - one, a, unit, element, particle, part, piece, unite
* waso - bird, winged animal; (French)
* wawa - energy, strength, power, confident, empower
* weka - away, absent, missing; throw away, get rid of
* wile - want, need, wish, have to, necessary; (will)
!! Consonants
Optionally, you can voice consonants.
|!Cons |! Pronounced like|
|k|''k''ill|
|l|''l''et|
|m|''m''et|
|n|''n''et|
|p|''p''it|
|s|''s''ink|
|t|''t''oo|
|w|''w''et|
|j|''y''et|
!! Vowels
Simalar to romance languages, especially Spanish.
|!Vowel|!Pronounced like|
|a |p''a''t|
|e |m''e''t|
|i|p''ee''l|
|o|m''o''re|
|u|f''oo''d|
//Fucking get in my brain!//
* suli - Big, important - from the Finnish.
* telo - Water, liquid - French, de l'eau
* kiwen - metal/stone - from the Finnish.
* len - clothing - French linge (laundry)
* seli - warm, hot - Georgian
"""
Alex (PAUSE BREAK)10/23/2018
Tommy was some guy I used to know circa 2008-2012
...
Alex (PAUSE BREAK)10/23/2018
Who we believe time travelled from 1994
Deleted User10/23/2018
lol
Alex (PAUSE BREAK)10/23/2018
He listed to oasis on tape religiously and firmly believed his Amiga 1200 was the best computer ever built
japanoise10/23/2018
wait I didn't know he liked oasis too
Alex (PAUSE BREAK)10/23/2018
He did
japanoise10/23/2018
the tommy lore gets deeper
Alex (PAUSE BREAK)10/23/2018
Hence the AMV
japanoise10/23/2018
this story is honestly funnier every time I hear it
tell them about the graphics card
Alex (PAUSE BREAK)10/23/2018
I'll get to it
So he was a good few years older than us, mostly because as well as being stuck in the 90s he was stubborn as a brick
Deleted User10/23/2018
nrock?
Alex (PAUSE BREAK)10/23/2018
He was 20 when he started (and involuntarily finished) uni in 2012 so
Deleted User10/23/2018
lol
Alex (PAUSE BREAK)10/23/2018
2 years older
Anyway, so Tommy used to get made fun of a lot for his excentricities
He said games on his Amiga looked better than the 360 and PS3
Deleted User10/23/2018
*eccentricities
W H A T
Alex (PAUSE BREAK)10/23/2018
because those systems had a lot of screen tearing and stutter
Deleted User10/23/2018
PLS ARE YOU KIDDING ME
Alex (PAUSE BREAK)10/23/2018
Unlike the smooth 50hz his Amiga put out
"The best scrolling on any computer before or since"
His fucking words
Deleted User10/23/2018
lmfao
score10/23/2018
just wait until he learns about this crazy idea I had about synchronising drawing with the vertical blank
Deleted User10/23/2018
does he not know of the glory of 3d graphics?
LMFAO
Alex (PAUSE BREAK)10/23/2018
Oh but he did
There was some jealousy
//here's where the graphics card came in//
So despite enjoying the glorious wonders of Zool and having to choose between music or sound effects when playing it
(sound effects were his choice, as he could put a tape on in the background that way)
He did have some interest in newer games
One of which being Wipeout, since he liked racers and he liked sci-fi
(notably Babylon 5, whose special effects were indeed created on an Amiga)
But wipeout was not available on his lowly Amiga 1200
What was a Tommy to do?
Perhaps buy a PS1 for £20 and get the game for £5?
That, you shall learn, was not the Tommy way
Deleted User10/23/2018
lol
Alex (PAUSE BREAK)10/23/2018
That would be admitting defeat, of course
It would be sacrilege to the Amiga gods
Instead he cut a fucking hole in the side of his Amiga's case with pliers
And through some cludge of like 12 adaptors
Managed to connect some old ATI graphics card to it
Deleted User10/23/2018
WHAT THE FUCK
Alex (PAUSE BREAK)10/23/2018
This is before shit like the Vampire2 was a thing
He had to have a separate PSU JUST for the graphics card
Deleted User10/23/2018
JESUS
uh
did he have to write his own drivers for that gpu?
lol
score10/23/2018
who knows if that wasn't abstracted away with one of the adapters at some point
Deleted User10/23/2018
lol i dunno
Alex (PAUSE BREAK)10/23/2018
Anyway so yeah it was literally poking out of the case at some wrong angle
And we went to his house and he had the audacity to //show this off to us like we were supposed to be impressed at the amiga's power//
Again, he could have bought a PS1 and played it for like £25?
Or on a Windows PC just emulated it?
Not some weird hacky port with some weird hacky adaptor board monstrosity
This isn't even the worst part of Tommy's refusal to budge in the face of technology
Because he went to university and instead of getting a laptop or something he brought the Amiga with him
score10/23/2018
you have to admit though
rule of cool
and that is cool
Alex (PAUSE BREAK)10/23/2018
I mean, it would be cool if it didn't crash whenever the fan was on in the room
Because the slightest vibration loosened the connections
score10/23/2018
just needed a liberal slathering of solder
Deleted User10/23/2018
LMFAO
Alex (PAUSE BREAK)10/23/2018
To fucking kill it, perhaps
Anyway
So university
Of course, as with most, they have lists of certain formats they could accept documents in
.PDF, .DOC, .DOCX
Not WPDs, which is what WordPerfect for Amiga uses
Deleted User10/23/2018
oh god here we go
Alex (PAUSE BREAK)10/23/2018
He asked the IT team for help and they rightly said they don't support Amiga 1200s from 1996
And he could either get a newer machine or use the library PCs
japanoise10/23/2018
HE ASKED THE IT TEAM FOR HELP
jesus sorry to interrupt but what I wouldn't give to be a fly on the wall in that room lol
Alex (PAUSE BREAK)10/23/2018
Tommy did not like this and rebelled, getting into the longest fucking email argument I've ever seen asserting how if he wrote it and can prove he did then it should be accepted
He even said he would be fine if one of the library PCs had a floppy drive so he could transfer the files onto a PC and convert it but couldn't
Which tbh is my favourite detail
japanoise10/23/2018
haha
Alex (PAUSE BREAK)10/23/2018
Imagine being the library IT technician and being like
"hey this guy wants us to install a floppy drive on one of the PCs"
Anyway
This argument raged on
score10/23/2018
tbh USB floppy drives are fairly easy to get hold of
Alex (PAUSE BREAK)10/23/2018
Bold of you to assume the Amiga 1200 has USB ports
score10/23/2018
no I mean for the library pcs
Deleted User10/23/2018
@score i mean, yeah, i have one for fuck's sake
Alex (PAUSE BREAK)10/23/2018
Oh right
I think it's more the principle
Maybe he could have bought one?
Anyway the argument was eventually ended by the fact that due to his stubbornness he had not submitted any of his assignments by the half way point of the first year
He was failing in literally every module and an advisor told him it would be best for him to quit while he was ahead
And with his parents threatening to stop paying for his accommodation as well he jumped before he was pushed
In a rare instance of being slightly less stubborn
Few months after I ran into his dad and apparently Tommy is a fish farmer now
score10/23/2018
:What:
Alex (PAUSE BREAK)10/23/2018
And spends 8 months a year at sea off the coast of Scotland
Probably because he had crap GCSEs and crap A levels and only got into uni through clearing
japanoise10/23/2018
thus ends the tale of Tommy, the man with the Amiga
11/10 needs a feature film adaption
Alex (PAUSE BREAK)10/23/2018
He's really mellowed out a lot, I saw him last Christmas
He could also pass for brain-dead though
Considering 2/3 of his life is spent moving nets towards fish for 10-12 hours a day
I don't envy him but like, he had every opportunity to avoid his fate
...
lmfao someone else i told this story to was like "honestly this sounds like a character in a sitcom or something"
he also said "Sure, be an Amiga fanboy, use one as your main computer if you're that masochistic, but don't kid yourself and think it can do everything... and don't make it anyone elses problem (IT support will laugh at you)"
Alex (PAUSE BREAK)10/23/2018
On the Seinfeld spectrum he is smack dad in the middle of the Kramer/Costanza index
Both extremely eccentric and incredibly pathetic
"""
<<list-links "[tag[Tools]]">>
>TOUHOU IS NOT AN ANIME
...except when it is.
Touhou project is (ostensibly) a series of bullet hell games; only real freaks play them though. Most everyone is a secondary and reads the doujins or fanfiction.
I love Touhou and all the (many, many) characters.
* https://tohosort.frelia.my/
** 2019.08.17 - [[Top 3: Yuugi, Tewi, Seija|https://tohosort.frelia.my/?IwVgbGAMYCwExhHYMA+BOeAOO7WUmGGQMNNKOAKsjhJrnMvMKqpMbOSLJtr6Lc2fRm149hXKYRItiZJjXYTBIpSp69xYpbNZ7m8ydVqsmJrjt6dKfGc0WGhdpVuW2F1NkLPnWIijkPHStNAMDXIP9bO2svFnigmIdohxdk2IsJWlRhfCSMwpigA]]
The Other Wiki or That Other Wiki.
Here it refers to [[h0p3]]'s, probably, but elsewhere it probably refers to Wikipedia.
Chanspeak because Encyclopedia Dramatica possibly invented the term (that or TVTropes)
Generates English-sounding town names. Prefix + suffix; add "upon [RIVER]" or "-on-sea" for extra flair.
|!1d66 |!Prefix|!1d66 |!Prefix|
|11|Rose |41|Fox |
|12|Oak |42|Man |
|13|Elm |43|Has |
|14|Hay |44|Elf |
|15|North |45|Grand |
|16|South |46|Drake |
|21|East |51|Middle |
|22|West |52|Clack |
|23|Pine |53|Arch |
|24|Holly |54|Hol |
|25|New |55|Troll |
|26|Wheat |56|Ar |
|31|Red |61|Iron |
|32|White |62|Patch |
|33|Blue |63|Stan |
|34|Green |64|Dark |
|35|Black |65|Tor |
|36|Wands |66|Head |
|!1d66 |!Suffix|!1d66 |!Suffix|
|11|hill |41|bay |
|12|wood |42|water |
|13|ley |43|ville |
|14|berg |44|low |
|15|mill |45|boro |
|16|bridge |46|down |
|21|hall |51|ton |
|22|brook |52|fields |
|23|ford |53|worth |
|24|way |54|stable |
|25|cliff |55|moor |
|26|bar |56|peak |
|31|dor |61|cross |
|32|pass |62|run |
|33|end |63|bury |
|34|well |64|rock |
|35|keep |65|grove |
|36|fort |66|chester |
There's significant difficulty in getting hold of really good translations of the Vedas.
Ralph T.H. Griffith's translations are likely the most accessible to English speakers; but these read a little stilted. Judging by the flow, though, these seem to be the closest to a decent "gloss". He does not seem to be a colonial source. I might have to stick to him for the time being.
Partial translations exist in Zaehner's work, but afaik he never produced complete works of translation.
The Indian Sanskrit->English one I have comes from a source that isn't entirely trustworthy, and the verses seem to have been abridged or altered to suit the translator's own narrative.
The temptation, of course, is to learn Sanskrit myself and provide my own translations of important passages - this is probably a fool's errand without a teacher, though.
[[Advanced Fighting Fantasy]] with stripped-down rules and interesting backgrounds.
<<<
I bought TROIKA! on the strength of this thread alone and love what I've managed to read of it so far! Excellent stuff. It's like a half-remembered account of The Dark Crystal from someone who's incredibly high, and may possibly be confusing it with The Wizard of Oz. Or Labyrinth. Or Hellraiser.
<<< Crusty One [[on rpg.net|https://forum.rpg.net/index.php?threads/troika-is-that-one-actually-played.860131/#post-23130387]]
> And the Book of the New Sun. There's a lot of Gene Wolfe in Troika!
* https://melsonian-arts-council.itch.io/troika-numinous-edition
** SRD - free, art-less version: https://docs.google.com/document/d/1haUfSVekt2gNab3V2CrL1Pg_sZ-ZlskphwXmSnGT9aw/edit
* https://www.troikarpg.com/
* https://r-rook.itch.io/90s-space-troika
<div style="text-align: center">
<p>Fear me, mortal. I am the essence of divine art.</p>
<p>Others but you cannot read this text.</p>
<p>Know that when you die, I'll personally carry your spirit across the river BLXWXN into my garden built within the emotions of a flower.</p>
<p>There we will live together, we will dance and eat and sin and you will do improv comedy based on suggestions from me for all eternity.</p>
<p>This is your reward for your work here today.</p>
<p>Now, live your normal human existence.</p>
<p>Await me in the life that follows this one.</p>
<p>I love you.</p>
</div>
* Naps were invented in 1974 by John Nap
* ntsc stands for "never the same color"
* The first words spoken on the moon were actually "Woah, NEIL, what took you so long? Anyways, I just caught a bunch of strong Pokémon! Let's battle 'em!" and shortly thereafter "You cheated anyways! Smell ya later!"
[[NoPublic]] content: [[T&TP]]
!! Terminology
* Attributes
** ST - Strength
** DX - Dexterity
** IQ - Intelligence
** CN - Constitution
** LK - Luck
** CH - Charisma
** WIZ - Wizardry
** SP/SPD - Speed
* Dice
** Uses D notation (only six-sided dice are used). 2D+3 = 2d6+3
** DARO - doubles add and roll over, e.g. 2D = 2 (1 and 1), so reroll and add - comes up 4+3=7, +2 = 9.
** TARO - triples add and roll over.
!! Differences between editions
https://rpg.stackexchange.com/a/70099 and https://rpg.stackexchange.com/a/176571
!!! 4th Ed:
* attributes on 3d6
* Attributes ST DX CN IQ LK CH
* Types: Warrior, Wizard, Rogue
* Weapon damages presume 1d for daggers, 0D unarmed
* Combat Adds on St, Dex, Lk
* Rogues have a level limit; at cap, change class to warrior or wizard
* No spell schools
* Level by total EP
* Saving rolls presumed to be LK; other stats optional
* Saving rolls fail on natural rolls of 3 (⚀⚁) and 4 (⚀⚂) that aren't doubles
!!! 5th Edition:
* attributes on 3d6
* Attributes ST DX CN IQ LK CH and optionally SP
* Types: Warrior, Wizard, Rogue, Warrior-Wizard
* Weapon damages presume 1d for daggers, 0D unarmed
* Combat Adds on St, Dex, Lk
* No spell schools
* Weapon damages hit "modern" levels; 1d unarmed, 2d daggers.
* Level by total EP
* Saving rolls presumed to be LK; other stats optional but encouraged
* Saving rolls fail on natural rolls of 3 (⚀⚁) and 4 (⚀⚂) that aren't doubles
!!! 5.5 Edition
* attributes on 3d6 TARO
* Attributes ST DX CN IQ LK CH and optionally SP
* Types: Warrior, Wizard, Rogue, Warrior-Wizard
* Weapon damages presume 1d for daggers, 0D unarmed
* Combat Adds on St, Dex, Lk
* No spell schools
* Talents optional
* Level by total EP
* Saving rolls presumed to be LK; other stats optional but encouraged
* Saving rolls fail on natural rolls of 3 (⚀⚁) and 4 (⚀⚂) that aren't doubles
!!! 7.0 Main book
* attributes on 3d6 TARO
* Attributes ST DX CN IQ LK CH WZ SP
* Types: Warrior, Wizard, Rogue, Paragon, Citizen, Specialist (Specialist Mage, Leader, Ranger)
* Weapon damages presume 2d for daggers, 1D unarmed
* Combat Adds on St, Dex, Lk
* spell schools listed
* Talents optional, different from 5.5
* Level by highest of 4 attributes by type; EP raise attributes
* Saving rolls now on any attribute.
* Saving rolls fail on natural rolls of 3 (⚀⚁)
!!! 7.5 Main book
* attributes on 3d6 TARO
* Attributes ST DX CN IQ LK CH WZ SP
* Types: Warrior, Wizard, Rogue, Paragon, Citizen, Specialist (Specialist Mage, Leader, Ranger)
* Weapon damages presume 1d for daggers, 0D unarmed
* Combat Adds on St, Dex, Lk
* spell schools listed
* Talents optional, different from 5.5 and 7.0 (but close to 7.0)
* Level by highest of 4 attributes by type; EP raise attributes
* Saving rolls fail on natural rolls of 3 (⚀⚁)
!!! Deluxe
* attributes on 3d6 TARO
* Attributes ST DX CN IQ LK CH WZ SP
* Types: Warrior, Wizard, Rogue, Paragon, Citizen,
* Weapon damages presume 2D for daggers, 1D * [the kindred's STR multiplier] unarmed
* Combat Adds on St, Dex, Lk, SPD
* spell schools listed
* Talents optional, different from 5.5 and 7.0 (but close to 7.0), and can be (with very narrow limits) raised directly with EP.
* Level by highest of all 8 attributes. EP raise attributes and talent bonuses.
* Extensive world background
* Saving rolls fail on natural rolls of 3 (⚀⚁)
!! Sorceror's Apprentice
I have:
* 03
* 06
* 09/10 (double issue)
* 11
* 12
* 14
* 17
Missing:
* 01
* 02
* 04
* 05
* 07
* 08
* 13
* 15
* 16
"""
Midunesti nane, nane, nane
Sarbazi bad-e, bad-e, bad-e
Morakhasish kam-e, kam-e, kam-e
Nane chera man-o zayidi?
To ke dahanam-o gayidi
Midunesti nane bozorg misham sarbazi miram
Chera dadi to shiram? Nazashti man bemiram?
Sarbazam o sarbazi baram ye mosht-e khak-e
Hame dar o nadaram faghat yek del-e pak-e
Sarbaz tu har gelim-e par-e shabra sar miyare
Kalagh par, pa morghi - vasash farghi nadare
You knew mother, mother, mother
That military service is bad, bad, bad
The time off (leave) is very short, short, short
Mother why did you give birth to me?
You screwed my mouth (screwed me over)
You knew, mother, that I would grow up and get enlisted in the army
Why did you give milk to me? Why didn't you let me die?
I'm a soldier and army is just a fistful of dirt for me
All I have is a pure heart
A soldier spends his nights on torn rugs (metaphorically)
''Kalagh par, pa morghi'', - it's all the same to him
"""
---
''Kalagh par'' - a disciplinary action that requires soldiers to squat down and and move forward by leaping like a crow, keeping their hands behind their heads (Kalagh means crow in Persian)
''Pa morghi'' - another form of disciplinary action that requires soldiers to squat down and walk forward
<<chame-list-links "[tag[Tutorials and Guides]]">>
* [[http://www.motoslave.net/tweego/docs/]]
* [[https://github.com/tmedwards/sugarcube-2]]
* [[https://github.com/tmedwards/tweego]]
* [[http://www.motoslave.net/sugarcube/2/docs/]]
Sub-(micro)genre of [[Emo]]. Despite how obscure they are outside of the online midwest emo community, the [[Pennikurvers|https://www.youtube.com/watch?v=Jd5_fuO53Ms]] are probably the most famous example, or possibly [[Jejune|https://www.youtube.com/watch?v=qoo_20X1HTQ]], who toured with and did a split with Jimmy Eat World.
I'd describe the sound as using the classic emo tropes, paired with lofi aesthetics and twee female vox.
https://rateyourmusic.com/list/HalogenBromine/tweemo/
<<<
"""
Through the darkness of future past,
the magician longs to see.
One chants out between two worlds...
fire, walk with me.
"""
<<<
Twin Peaks is the best TV show I've ever seen - yes, even if we include anime.
I imagine after the choice to start watching it - [[2020.11.14 - Carpe Diem]] - Twin Peaks references or thoughts from Twin Peaks are going to show up all over the wiki.
I lost the piece of shit remote in the netherworld somewhere, so a new universal one is coming from bezosland. Parking the codes here.
https://www.eliztech.com/remotes/ge-4digit-v3-tv-codes.php
Based on my grandmother's bolognese, I think. This dish isn't very sophisticated, but it's easy to make, filling, tasty, and is often better reheated.
!! Ingredients
* Tin of tomatoes
* Meat (about 500g, I think). Works best with mince, but it's quite tasty with chicken or turkey breast too.
* Bell pepper
* Small onion, or half a large one
* Herbs or spices to taste
* Pinch of salt
* Oil (sunflower/vegetable seems to work best)
!! Tools
* Frying pan
* Wooden spoon or spatula
* Tupperware (if preparing to fridge/freeze)
!! Prep
# Chop the onion and pepper into small (thumbnail size) chunks. If you have a chop/fillet/breast, chop it now.
# Heat up the pan
# Oil the hot pan - it should run freely without becoming a lake, we're shallow-frying
# Fry the onions until they turn transparent. If you prefer soft peppers, fry them now.
# Put in the meat. If it's mince, break it up. Fry until browned.
# Put in the herbs/spices, tomatoes, salt. If you like crunchy peppers, put them in now.
# Stir until even consistency.
# Simmer. It should be bubbling. This can take a while. Leave it for 20 minutes or so, checking to see if it's thickened and to stir it. Water it if it dries out or looks like it'll burn.
# Should have a thick consistency; the sauce should cling to the meat and not be watery. Serve with pasta, rice, or bread.
The dish can be stored for later:
# Put in tupperware. Freeze it or put it in the fridge. DO NOT FRIDGE RICE - IT WILL GROW MOULD
# To defrost, nuke in the microwave for a minute or so
# Reheat the cold concoction in a frying pan or saucepan. It should bubble all over. Best to sit with it and stir it when you do this.
!! Variants
* Make with tofu or lentils for a veggie option.
* Overspice each stage and add kidney beans (drained!) with the tomatoes for a ghetto chili.
* The onion and pepper can be subbed or supplemented with other veggies.
Things that I haven't gotten round to putting in a category/tagging yet.
<<list-links "[tag[Unsorted]]">>
* https://www.coolgenerator.com/ascii-text-generator
* http://fa5-free-svg.tiddlyspot.com/
* https://www.cheatography.com/mishin/cheat-sheets/perl-reference-card/
* https://tiddlywiki.com/static/Upgrading.html
* [[https://tiddlywiki.com/#backlinks%20Operator%20(Examples)]]
{{Color tools}}
```
<<list-links "[tag[Computing]]">>
```
```
<<list-links "[tag[To]] +[tag[Letter]]">>
```
```
<<list-links "[tag[Waifuism]] -[tag[Journal]]">>
```
One for [[my own damn macro|$:/macros/list-tags]]:
```
<<list-tags "[tag[Root]]">>
<<list-tags-links "[tag[TOC]]">>
```
And [[another|$:/macros/chame-list]]:
```
<<chame-list-links "[tag[Ideology]]">>
```
!! Aliases
Add an "aliases" field, with space separated links that should lead to the tiddler
* https://rolltop-indigo.blogspot.com/p/an-rpg-lexicon.html
** "An RPG Lexicon". Good blog, too
* https://www.datafortress2020.com/
** Fan-made cyberpunk 2020 rules
* http://robkelk.ottawa-anime.org/rpgs/index.html
** Time machine of a website... Various material on anime-related RPGs.
* https://dungeonscrawl.com/
** Map out your own old-school dungeon!
* https://1d4chan.org/wiki/Setting:CATastrophe
** /tg/ gets shit done: animesque catgirl setting
* Zak S
** For the uninitiated: You may want to skip this section. Zak S is a game designer and artist who runs a popular (or formerly popular) OSR blog and was big on the G+ scene. He got accused of some pretty serious stuff by his ex (CWs at source): https://www.rpggeek.com/thread/2149373/mandy-speaks-out-regarding-zak-smiths-abuse which he denies, and is disputing in court. Apparently he's unpleasant to deal with because he's argumentative and belligerent (which doesn't come across in his blog posts)
*** I don't know if the accusations are true. If they are, they're not the sort of thing I condone. He's a persona non grata in places I enjoy, so I will prematurely disavow and say that enjoying the man's work does not mean I like him as a person. I believe at least somewhat in separating the art from the artist. I will also disclaim that I've never spent money on anything he was involved in, and don't plan to any time soon (because I'm a. poor and b. more of a DIY kinda gal).
*** The accusations seem to have sparked a shitstorm, the fallout of which has still yet to settle. "The Zak Thing" will be referred to. This was allegedly the end of the OSR as it had existed up to that point ([[the end of the G+ scene|https://beyondfomalhaut.blogspot.com/2019/08/blog-third-years-charm-end-of-osr.html]])
** He wrote some good stuff on "theory" in trpgs
*** [[Smarm and Snark and why there's no tabletop RPG theory|http://dndwithpornstars.blogspot.com/2016/04/why-theres-no-tabletop-rpg-theory.html]]
*** GNS series
***# http://dndwithpornstars.blogspot.com/2018/03/the-impossibility-of-fastball-special.html?zx=13a5058c228d3e48
***# http://dndwithpornstars.blogspot.com/2018/03/the-plottist-in-westworld-what.html
***# http://dndwithpornstars.blogspot.com/2018/03/the-gamists-have-lot-to-teach-rest-of.html
***# http://dndwithpornstars.blogspot.com/2018/03/chaosless-theory-gns-narrativism-and.html
** [[Quick descriptions of RPGs (good idea, gonna steal it)|http://dndwithpornstars.blogspot.com/2012/10/rpg-speedcyclopedia.html]]
I don't play them nearly as much as I used to. I quit being a "gamer" after being betrayed by Mass Effect 3. But I'm a millenial; I can't escape them.
<<chame-list-links "[tag[Video Games]]">>
> Violence is a means, not an end.
Zizek's book "Violence" deconstructs the myth that we, the "enlightened" West, are nonviolent compared to the "violent savages" of elsewhere; au contraire, their reaction is muted compared to the evils we have wrought on them.
The best album you've never heard of. https://www.youtube.com/watch?v=lFsnPQ6JoQA
# ● - CIRCLE
# ⛤ - STAR
# ♥ - HEART
# ꩜ - SPIRAL
# 〜 - TILDE
# ◎ - TWO CIRCLES
# ↑ - UP ARROW
# Ω - OMEGA
# ずっと - ZUTTO
(Zutto is the only pronouncable track name; it means "forever" in Japanese).
I've interpreted this album before to be about the cycle of reincarnation.
Some call it krautrock; art rock, noise rock; space rock; it's rather unique, however. Gong probably come closest.
```
Alex (PAUSE BREAK)Today at 5:22 PM
Are you a housewife [chameleon]
R-LoToday at 5:22 PM
yes
Alex (PAUSE BREAK)Today at 5:22 PM
haüs-waifu
japanoiseToday at 5:23 PM
I kinda am, aren't I
I even do household chores
tfw reached my transition goals
Alex (PAUSE BREAK)Today at 5:25 PM
You did it
Now for the next goal
R-LoToday at 5:26 PM
"play Tony Hawk Pro Skater 4"
Alex (PAUSE BREAK)Today at 5:26 PM
No [chame]'s done that
I was gonna say making konata real, bending her over a table and fucking her for a solid 28 hours non-stop
R-LoToday at 5:26 PM
No, [chame]'s done that
Alex (PAUSE BREAK)Today at 5:27 PM
:bigeyethink:
Then I guess beating thps4 100% is back on the cards
```
I believe my 'boards are the v2 model.
https://support.wasdkeyboards.com/hc/en-us/articles/115009171708-Keyboard-Manuals
* https://www.novelupdates.com/
* https://forum.novelupdates.com/threads/how-do-you-mtl.34213/
They're quite hit-and-miss, but when they hit...
https://abnormoinfo.tumblr.com
https://evilmartians.com/chronicles/images-done-right-web-graphics-good-to-the-last-byte-optimization-techniques
<<chame-list-links "[tag[Weird Experiments]]">>
* [[ØØ Void|https://www.youtube.com/watch?v=-iWV-JMMsOI]]
* [[The Grimmrobe Demos|https://www.youtube.com/watch?v=aerqIZ5aebE]]
* [[Hymns to the Ur-Mind: The Essential Sunn O))) in 10 Records|https://thevinylfactory.com/features/hymns-to-the-ur-mind-the-essential-sunn-o-in-10-records/]]
Sunn O))) (pronounced "Sun") is a drone metal band, probably the most notable example. The band's following speak of them in hushed tones, lest they overhear you. Their aesthetic is individuals in black robes, faces obscured by darkness, surrounded by smoke, playing at inhumanely loud volumes. Their discography frequently calls on pagan and occult imagery to supplement the pounding drones. They are open to guest musicians, having featured other bands, harsh noise demigod Merzbow, and even string sections over their twenty-year tenure.
Sunn O)))'s early work evokes a feeling of transcendence in me. This is music to astral project to.
[["Three Pounds of Flax"]].
```
Ravenslofty05/18/2020
I'm probably going to be asleep when you see this, but I have a question for you: what is karma? One of my friends talks about accumulation of being a good person resulting in good things, and yet I've always seen it as an objective cause/effect thing.
Like, if you knock a glass off a table, it's going to smash
Is that objectively a good or bad thing?
chameleon05/18/2020
Three pounds of flax
But seriously, I wouldn't overthink it and certainly don't attach karma to random occurences
Some things aren't good or bad, they just are.
Ravenslofty05/18/2020
It's mostly one of those points where I've been reconsidering what I thought I understood
Three pounds of flax is exactly how much flax it takes to spin a summer-weight Buddhist robe in ancient China.
Huh.
chameleon05/18/2020
my advice to you, and I don't mean this in an insulting or condescending way, is to let go of questions of objectivity
I can't really explain this without prattling on about the skandhas or whatever, lol
maybe the heart sutra would help you here
```
Myokyo-ni said "dharma is the [[immutable law|The Good]], and karma is its function."
[[The Abyssal]] says:
* 3-4 lands (preferably mana to cast the others or tutor)
* At least 1 ramp
* At least 1 card advantage
and joked: "with free mulligans, it's basically 'mulligan until sol ring'".
Bought a tape on ebay some time last year. As far as I know, I have the only extant copy.
Tape says "WHEN DARKNESS FALLS - DEMO" and "© When Darkness Falls 8/4/00". I bought the tape in the UK so I assume this is 2000-04-08.
Quality is decent enough to hear what's going on; probably a garage recording on good equipment. It's better than say, a Pennikurvers recording, but worse than an actual studio recording.
The only artist I can find of this name is a (late 10s) heavy metal band which seems unlikely to be the same band: https://www.last.fm/music/When+Darkness+Falls
It's... dark, gothy music with guitar solos. I don't have the vocabulary to put it in full context.
Milltown is a small village in Derbyshire: https://en.wikipedia.org/wiki/Milltown,_Derbyshire
* Side 1
** When Darkness Falls
** Picture
** Life in Death
* Side 2
** Milltown Blues
** Exile
I made a rip 2020-05-19, lmk if you want a copy.
//This article is for [[me|chameleon]]. It may help you too, but most likely not.//
* [[Japanese]]
** Lifelong obsession; already have a starting vocab.
** Pronunciation is easy. Grammar is odd, but quite regular.
** The one hard thing about Japanese: it has the world's hardest writing system. Kanji are bad enough, but they have multiple pronunciations AND live alongside two phonetic systems.
*** However, I have an aesthetic admiration of kanji, a decent basis in reading them, and already know hiragana well and katakana OK. A few minutes of revision a day could get me back up to speed.
** Purpose
*** Read/watch raws
*** Help with scanlating/fansubbing
*** Communicate with Japanese-speaking internet
*** Use in Japan when you visit (real soon now)
*** Better understand [[Konata]]
*** Flex on other weebs
*** Banter with [[score_under]]
* Chinese
** Know a little already
** When I studied it last, I got compliments (from cute girls, uwu) on my pronunciation, the second-hardest part of Chinese
** I have a reasonably strong background in reading due to weebery and what remains of my Heisig study.
** Purpose
*** Study classical texts (including contemporary commentary)
*** ~~hit on cute girls~~ speak to a large proportion of the world
* German
** Similar to English, probably the easiest on this list
** Purpose
*** Read philosophy
*** Speak to German speakers (including Kirby and Nausi)
* Sanskrit
** I know a little Hindi; could help me.
** Writing system is both elegant and easy
** Purpose
*** Read sutras and other sacred texts
* Spanish
** Already know it quite well; just need that extra push into fluency/expertise.
*** I suspect the only way I can do this is total immersion. My Spanish LEAPS in quality when I'm around other Spanish speakers.
** Purpose
*** Engage with Spanish-speaking internet (large section)
*** Solidarity with Latin America
*** Read classic literature
* Others
** [[Toki Pona]]
*** Literally just for fun. Probably a waste of time.
** Indonesian (and Malay)
*** It's not a hard language, and I already know enough that I can read articles if I have a dictionary.
*** Don't see much of a use for it ATM.
!! Ingredients
* Cream:1 (single, half-and-half)
* Kahlua:1 (sub other coffee liqueur)
* Vodka:2 (any will do, pref Smirnoff or Absolut)
* Ice
!! Tools
* Jig or other measuring tools (liquor bottle caps will do in a pinch; amount isn't important, but proportion is)
* Rocks glass
* Something to stir with
!! Prep
# Mix ice, vodka, kahlua in glass. stir.
# Add cream. Stir again.
# Serve as is. Should be creamy, light brown/beige.
!! Variants
* Make in a tall glass and top with cola for a Colorado Bulldog, which tastes somewhere between a boozy milkshake and a boozy coke float. Bulldogs work slightly better with a 1:1:1 cream:kahlua:vodka mix.
* Sub milk/skinny milk for a Skinny Russian. Don't recommend much unless you don't have any cream but want to satisfy a craving, because the milk somewhat curdles. You also can't make a Bulldog with a Skinny; the cola and milk react unpleasantly.
Hey! Cyberpunk is awesome, right?
Yeah. But it's not supposed to be an instruction manual.
One of the great tragedies of cyberpunk is shared by many similar art/cultural movements - it was so subtle in its satire that its fans thought the thing it was satirising was Good Actually.
Now, of course I don't think transhumanists are //exclusively// motivated by cyberpunk fandom, but I think they do borrow heavily from it, without understanding the core message, that technology is mostly used to //enslave// and not to //free// us. We're seeing that in action today with the corporate panopticon, capitalist energies being directed to further the relentless march of capital rather than to protect our natural world, and social media being used to undermine the democratic process. We are already in the dystopia cyberpunk warned us of - but the transhumanists want to take us in //even further.//
The answer to "technology is imprisoning us" is not more technology. I'd like to see a world where we move beyond technology, transcend the machinations of Capital, and move to a truly free, truly //human// future, with all the messiness being real life humans entails.
I am a leftist, but I don't keep a political social media account; I don't talk ideology with strangers I'm not already closely ideologically aligned with online; I don't use the net for organizing or planning. Simply put, I am not a part of the left online. Why is that?
There are 3 major reasons:
# [[Cancel/Callout Culture]] and issues surrounding it.
#* "Why do you support Sanders rather than Warren, she's a //woman//!"
#* "More👏Women👏of👏Color👏CEOs👏and👏stoßtruppen"
#* Being on [[birdsite.hell]] as a political type was exhausting; you constantly have to watch yourself so that you don't get clapped for some dumb shit you said in jest.
# Tankies and their moronic bullshit. Sharing a space with these idiots is completely unpalatable.
#* "Authoritarian police states are good if they have red flags and spout some vaguely feelgood marxy shit every now and again"
#* "US does something, bad, imperialism. China does a neocolonialism, good, anti-imperialist foreign policy"
#* "North Korea good"
#* [[basically everything in this video|https://www.youtube.com/watch?v=42syJxO2_es]]
#* [["oh and if you don't agree with my bs you're a lib uwu"|2019.11.07 - *shakes fist* liberals]]
# Uninformed, ignorant bullshit in general
#* "Under anarchism..."
#* "Read Lenin"
#* Having to answer the same basic 3 or 4 questions again and again to chuds that will never get it
#*# "mY tOoTHbRuSh"
#*# "hOw wIll yOu fEeD eVEryOnE"
#*# "bUt wHaT aBoUt cHiNa/vEnEzueLa/tHe uSsR/pOl pOT"
#*# lgbt bonus round! "mUh bIolOGy??"
<<list-links "[days:created[-30]!days:created[0]!prefix[Hidden:]!tag[Hidden]!tag[no-recent]!is[system]!is[shadow]sort[created]reverse[]] +[tag[Wiki Review]]">>
This is stuff I find fascinating that I can go on an endless WikiWalk on.
* Geology
** https://en.wikipedia.org/wiki/Geologic_time_scale
** https://en.wikipedia.org/wiki/Geology_of_the_Moon
** It's far more interesting than "just rocks". Geology deals with deep time - millions, billions of years, going back to the Earth's formation 4,570 to 4,567.17 million years ago. The dinosaurs are just [[one of many geological eras|https://en.wikipedia.org/wiki/Mesozoic]].
* Theatre
** https://en.wikipedia.org/wiki/Theatre
** [[https://en.wikipedia.org/wiki/Theater_(structure)]]
** Theatre is one of the oldest human activities, along with music. As such, it has a long and storied history.
* Indexes of Wikipedia ([[thanks kicks|https://www.kickscondor.com/foundations-of-a-tiny-directory/]])
** https://en.wikipedia.org/wiki/Category:Main_topic_classifications
*** A root for all the various topic categories
** https://en.wikipedia.org/wiki/Portal:Contents/Categories
*** A human-edited & human-readable index similar to the above.
** https://en.wikipedia.org/wiki/Wikipedia:Vital_articles
*** The articles considered most important to Wikipedia's mission. If you read and retained all these, you'd be on the cusp of being well-informed in absolutely everything.
When you find an interesting wiki, and are lead down a rabbithole of links in interesting pages to other interesting pages. Maybe this very wiki will lead you in that direction?
Hoary old table from [[Wikipedia|https://en.wikipedia.org/wiki/Word_count#In_fiction]]:
|!Classification|!Word count|
|Novel |40,000 words or over (50k for ~NanoWriMo)|
|Novella |17,500 to 39,999 words|
|Novelette |7,500 to 17,499 words|
|Short story |under 7,500 words|
Some ciggy packet calculations:
|!Calculation|!Description|
|50000 / 16 = 3125|Minimum average chapter length for 16 chapter novel|
|50000 / 30 = 1667|"Nano Pace"; min. avg. words per day to win ~NanoWriMo|
Discussed with [[The Abyssal]] today: If I don't have something to work for, I'm not going to be able to work. So I'm making a shopping list here.
!! Big stuff
[ ] House (20k-ish mortgage; very-long-term)
[ ] Car (4k?) (20k+ new, but you might be able to finance it)
[ ] [[Avalokiteshvara]] (1-2k)
[ ] New gun (500-1000)
!! Small stuff
* RPG stuff
** Books
** Dice
** PDFs
* Patreon
* Nice food
* MTG
* Waifu commisions
<<chame-list-links "[tag[Worldbuilding]]">>
!! Wuxia/Xianxia
AKA Chinese fantasy.
> Even without any magical techniques, I don't need more than one finger to put you in your place. See the fruits of someone who has been practising cultivation for ten million years!
https://boards.4channel.org/tg/thread/74696024 ([[4plebs|https://archive.4plebs.org/tg/thread/74696024]], [[suptg, maybe|http://suptg.thisisnotatrueending.com/archive/74696024]], [[singlefile html dump, as of tiddler creation time|http://files.seekrit.club/wuxia.html]])
!! Kobolds
* http://farlandworld.com/comnames.html#kobold
** "Because of the very high mortality rate and the general lack of desire, parents of kobolds do not name their children. Instead, those that survive to the age of four name themselves. These names are usually mono-syllabic, short, easy to pronounce names, although intelligent kobolds sometimes put two of the names together to make one longer name. These names show little diversity even among the different sexes: in large groups of kobolds, it is common to encounter several of the creatures with the same name."
** Bat, Bap, Bit, Bip, Bot
** Car, Cor, Cak
** Dat, Dit, Dot
** Fax, Fat, Fot
** Gat, Git, Gip, Got
** Jat, Jit, Jot, Jop
** Lat, Lik, Lot
** Nat, Niz, Nip, Not, Nop
** Pat, Paz, Pot
** Rat, Rap, Rit, Rot, Rop
** Taz, Teb, Tean
** Vab, Vaz, Vit, Vor
** Wat, Wit, Wot
** Yat, Yap, Yik, Yip, Yot, Yop
** Zat, Zit, Zol
!! Goblins
* http://farlandworld.com/comnames.html#goblin
** "Goblin names are given by the tribe leader soon after the child is born. Slave children are either given names by their masters or are not given a name at all. Those that have no name give themselves a name once they are old enough to do so. Goblins typically only have one name, although the more creative and powerful among them (a very limited group indeed!) do invent appelations which they apply to their given name. These names are often simple. Female names often end with soft sounds, such as -sh, -al, -en, -st while male names are more gutteral, ending with -ter, -tz, -eck, -ax and -uck. These names are only a small sampling of the names used; names vary widely by tribe, culture, and geographical location."
** Female Goblin Names
*** Balst, Blanest, Bresh
*** Fralen
*** Glersh
*** Haalesh
*** Labbal
*** Molal, Morish, Mroal
*** Nalden
*** Pash
*** Quarsh
*** Ramenal
*** Takesh
*** Zast
** Male Goblin Names
*** Bruck, Belig, Bilik
*** Daxtor
*** Garuk, Giznat, Glarek
*** Hsorn
*** Kutx
*** Lorax
*** Mogat, Mroxk
*** Nathak
*** Rekuck
*** Sorzek
*** Tazuk
*** Vedex
*** Zedax
!! Orcs
* http://farlandworld.com/comnames.html#orcs
** Azock, Adorg
** Bolck, Blorg, Buchak
** Coruck, Curz, Curznack, Cro
** Dozz, Dorg
** Fishnag, Forg, Fugrat
** Girch, Grishnag, Gorbuck, Gorzun
** Horat, Hugruck, Hirt
** Kourk, Kalbaz, Kirat
** Lizkaz, Lurz
** Morbaag, Murz
** Nagrat, Nirk, Nool
** Olg, Orz
** Pruk, Pulo, Podish
** Rirag, Rurduk, Rong
** Shagrax, Shurz
** Tolak, Tick, Tokash
** Uglug, Urduz, Urdish, Urk
** Vurk, Vrilg, Vrolg
** Xaort
** Yurt, Yurz
** Zulbash, Zulbag, Zulrat
!! The Future of...
[[The video|https://www.youtube.com/watch?v=Vr6pA15xuFc]] and the links in the description:
"""
[[ICO Plot/Story Guide by PeterEliot|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fgamefaqs.gamespot.com%2Fps2%2F367472-ico%2Ffaqs%2F29015&redir_token=QUFFLUhqbTNKYWxmZ1ZPWkNqOG54cERqbU1kUTZYcm9Ed3xBQ3Jtc0trNlRYTHM0VFNPWlF1TEpNWGJhdVRVTmFfRmF6ZVRzdjBPbGlSdTU4bEpGMEJNNU5lY0pLamctWm9URlhVTDhuWDcyTWNlVlZXWnRKek04YXMtVWJaeDBtZ1V4eHhSV3pyajFIb3J1elVtenV3cURjTQ%3D%3D]]
[[ MVC2 Crowd Pleaser’s Guide by Joseph Christopher|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fgamefaqs.gamespot.com%2Fps2%2F561477-marvel-vs-capcom-2%2Ffaqs%2F8306&redir_token=QUFFLUhqbnBTMTRRazhHVzdWeno0emlBNlUtZ1puQl9Sd3xBQ3Jtc0tsWGZkWl9Yb25rVWxScHhUbGhyeHhwdUk5YjNmdnNwZDRWanhYWmtCeFhEQjZyMlNKTGVlMll5T3VERUVkblBpYVBSeks0OV80dEhXZ2NHSVE1dzB3bEZkdXFwcU1CcjkyY0I4YWI0TEZCcVhWaHktSQ%3D%3D]]
[[ How We Talk About Games by HeavyEyed|https://www.youtube.com/watch?v=JVN9h-5UHMk]]
[[ The Last of Us Part II review by Julie Muncy|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fwww.wired.com%2Fstory%2Flast-of-us-part-ii-review%2F&redir_token=QUFFLUhqbU1NSWc1b1pNYUhVWXRLb1VQdkhqemNTcFRnZ3xBQ3Jtc0trdTA0UXRxekphbW9ReTM4S3JmaU5sRTVVTXE2UzlzUzdvbnN5RklkRE9aNUhHeDdETHNlZHFFTE5uUDkydTM1OTY3dG9MdFlrb3NvVG16LXpJUWhGX0RJcHhTaUVLMW1WbHFHeFZrMjNjRlRMcW5uYw%3D%3D]]
[[ Infinity Blade review by J. Nicolas Geist|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fgeekabouttown.com%2Foddities%2Finfinity-blade%2F&redir_token=QUFFLUhqa1JickxaNldWVk9OWUVhbWdyNjB1NGlmZTNKd3xBQ3Jtc0tuV2h1Zkg4bHFNVTRNUzMzQm5OY1FxclUwYkRhVV9CdWJ2d2RfamgyY0x1dGhUM2VmRnc4REpoaDlwU2dLTWs5LUVmdi14Y2U1Uml2RjA4bE1HaDcxd3BVRkZSTnVjeVpBYk4zR2tUTnh5cEFNME5lMA%3D%3D]]
[[ Games Criticism is a Kindness by Heather Alexandra|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fkotaku.com%2Fgames-criticism-is-a-kindness-1843320046&redir_token=QUFFLUhqbDRLcTlRLUg1NjJNOUo4d3UzZldHWjQ2dV9OUXxBQ3Jtc0ttZXZTNVRaODZhekw0NExxMXJaenNXc2NlVUpvRlNDZUN4UlZybGt1TUV6STRxRHQ4ajNCckI1VkwtWGlUQndEU0swSE1MWk9Fd0pLbjhfZDhRM2tDMlgtMjQ5NnB6UU5mYnJfRllCTkFRSy1FMjZ3dw%3D%3D]]
[[ Broken People, Broken Worlds by Carolyn Petit|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fmedium.com%2F%40carolynpetit%2Fbroken-people-broken-worlds-thoughts-on-the-last-of-us-part-ii-a012de5d2acf&redir_token=QUFFLUhqbGxVVGR3QlV3blh3ZUQxeFhVQkFKYkJQSTc4d3xBQ3Jtc0tsUXB2UVg1Z28wbkJFRHJjN1p4blliQ09JOVozdnpwelZsbmdablU5ME1PRVQxVFhlUkJ4VHNJSVAwUUdmNnJnUlZYbGhPakhOWHh0QlRna2hWcmVucGJvcWVUdExXbDZuR3EwNjduejVYdHRTaVdlWQ%3D%3D]]
[[ White Supremacy, Black Liberation, and the Power Dynamics of Gun Violence by Yussef Cole|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fwww.vice.com%2Fen_us%2Farticle%2Fkzxevx%2Fwhite-supremacy-black-liberation-and-the-power-dynamics-of-gun-violence&redir_token=QUFFLUhqbGVYXzJDNEdsdC1adDRuaTRjaC05MXZwUEtpd3xBQ3Jtc0ttWEZ6RGxlT2RCV0lTQXBWM1JQRjJHWk93UHh4dnVwdk5XYWZEWmdJNHFBSVZIc1F5S0E1WF9fMTBKV2RoM0RwOXQyT0UtVGN1aVdjZzkwcGhOZ2R1dE4tYThJVEk1T28zMHBLcVpuMWJfdG9RbXl0bw%3D%3D]]
[[ Playing Metal Gear Solid V: The Phantom Pain by Jamil Jan Kochai|https://www.youtube.com/redirect?event=video_description&v=Vr6pA15xuFc&q=https%3A%2F%2Fwww.newyorker.com%2Fmagazine%2F2020%2F01%2F06%2Fplaying-metal-gear-solid-v-the-phantom-pain&redir_token=QUFFLUhqbkprYTNuT19zTXNhYU5XbFczMzNJWC1YYVkxZ3xBQ3Jtc0tseW5odnFDSzhlMFg5NmdxT2pKTWRiV09uN1BOWE9GMUV6UG9IcHZsTl9xdldGQUYyYmlEU1VOT09xb2g0R0xnRjc4TUVraGdVaG54UnpXZi1CYXVqZm02UHl5dWRGVDZLb1N6TV9pVXJ3dC10TjdqZw%3D%3D]]
"""
"""
DED LED: https://dedled.itch.io/dedled
Heterotopias: http://www.heterotopiaszine.com/
Unwinnable: https://unwinnable.com/
Critical Distance: https://critical-distance.com/
"""
"flashlight method"
* https://susanleighnoble.wordpress.com/tag/flashlight-outline/
* https://litreactor.com/columns/8-ways-to-outline-a-novel
* https://sachablack.co.uk/2016/09/12/master-the-outline-12-methods-for-plotters-and-pantsers-part-ii/
* [[Punctuation guide (US English)|https://www.thepunctuationguide.com/index.html]]
* [[Nifty Word - word finder|https://www.niftyword.com/]]
* [[Rhymebrain - rhyming dictionary|https://rhymebrain.com/en]]
* [[How to write dialogue|https://self-publishingschool.com/how-to-write-dialogue/]]
* [[Chill Synthwave mix|https://www.youtube.com/watch?v=ZXfBHCbG2o8]]
* City Pop mixes
*# https://www.youtube.com/watch?v=kGcsJ_8KYw8
*# https://www.youtube.com/watch?v=JQZqZK0wNc0
*# https://www.youtube.com/watch?v=EAUYbqKtPIo
* [[Instrumental Math Rock|https://www.youtube.com/watch?v=3egXqihisFQ]]
[[The Grateful Dead]] jams.
<<list-links "[tag[Yearly Review]sort[title]]">>
My good friend from Discord.
* he/him
* waifu: Komachi
* Polish speaker
//I promise I'm not going to start a [[Daoism]] page.//
----
* Traditional: 陰陽
* Simplified: 阴阳
* Gloss translation: Dark-Light.
* Opposites contain one another and give each other meaning. There is no light without darkness, and no darkness without light. Alone and separate they are meaningless.
* This concept is non-dualism 101 (it is both dualish and monish, and demonstrates that both contain the truth but neither is entirely true alone).
<<<
"""
Being and non-being produce each other.
Difficult and easy complement each other.
Long and short define each other.
High and low oppose each other.
Fore and aft follow each other.
"""
<<< Tao Te Ching chapter 2 (tr. John H ~McDonald)
<<<
"""
In the yogic culture, here in India, we call this as [[Shiva|Lord Shiva]] and Shakti. And it is mostly the same concept.
Amazed at how all the philosophies of the world converge on a lot of points.
[[Ardhanarishwar|https://en.wikipedia.org/wiki/Ardhanarishvara]], which is the form of shiva - half man and half woman, depicts this concept of yin and yang.
"""
<<< ~YouTube user Deepika Vijakumar
The famous symbol of Yin-Yang is the [[Taijitu|https://en.wikipedia.org/wiki/Taijitu]]. In its most famous form it is two interlocking teardrop shapes - one black and the other white, the black one containing a smaller white dot and the white a black - which together form a circle. The black teardrop symbolizes Yin, the dark/passive/moon, and the white symbolizes Yang, the light/active/sun. The dots/droplets inside the larger shapes show that each carries the seed of the other.
-----
Sources:
* https://en.wikipedia.org/wiki/Yin_and_yang
* [[The Deep Meaning Of Yin & Yang- Einzelgänger|https://www.youtube.com/watch?v=6gIMVxFen_A]] (and comments)
Protagonist of the novel Catch-22. The only sane man in an insane world.
* pronouns: he/him
* [[2D]]
<<<
''Maj. Major Major Major:''
Is something wrong?
''Tappman:''
No, no. I... just thought I saw something.
''Maj. Major Major Major:''
A naked man in a tree?
''Tappman:''
Yes, that's it.
''Danby:''
[looking through binoculars] That's just Yossarian.
<<<
<<<
''Dobbs:''
Look Yossarian, suppose, I mean just suppose everyone thought the same way you do.
''Yossarian:''
Then I'd be a damn fool to think any different.
<<<
<<<
Idk, you have to vote bernie cause if you don't you're an ultra, but without actually supporting him cause if you do you're a radlib. You have to do direct action cause if you don't you're an armchair leftist, but your direct action has to be rooted in marxist theory cause if it's not you're just perpetuating the bourgeois charity industry which is to the benefit of capital. You can't expect anything to change materially if it's not through the operations of class dialectics because that's infantile liberalism which fails to recognize the material realities of capital, but you also can't act like you don't expect anything to change materially because that's just infantile nihilism
<<< Disney#6380 on the unofficial r/sneerclub discord
Zodai is a fun, cute, slightly lewd friend from 2dl. I love talking to Zodai; I bother her every day, sometimes.
* Pronouns are variable! he/him in public, she/her in private (sometimes reversed) (bigender)
* [[2d s/o|Waifu]]! Miyano "Sheri" Shiho (alias Haibara Ai) pronouns she/her, from Detective Conan
* Writing, VNs, waifu philosophy.
** Rec'd: https://store.steampowered.com/app/1144400/SenrenBanka/
* Admin of 2dl and other waifu servers - fingers in many pies.
* That rare, and treasured, two-way relationship where we both learn from each other.
* Writing muse (has the key to my [[Stories]] but hasn't read them yet due to time constraints)
** Always busy working on new VNs and stuff!
** But she's doing great work. What a busy bee.
----
* We're already friends, but we should talk/hang out more. I like you, my dude, you're funny and interesting.
* Zo and I have been chatting over discord recently, and we've been really getting along. He (or, occasionally, she) is fun and a little [[lewd]] [[=w=.]]
----
<<list-links "[tag[Zodai]]">>