« first day (1765 days earlier)      last day (1514 days later) » 

4:19 AM
@DavidCarlisle … if you dare …
4 hours later…
8:13 AM
I hate bugs!
8:24 AM
Alan Munn update: -27
@egreg is he rep capped already? :)
@yo' He's -7, now!
@yo' And no, not rep capped.
We're going to have another party soon, when @percusse gains some other point.
@egreg oh!
Btw, undetermined problem with siunitx and L3 :-(
@yo' I wouldn't know.
Package: l3str 2015/07/14 v5662 L3 Experimental strings

! LaTeX error: "kernel/command-already-defined"
! Control sequence \c_backslash_str already defined.
! See the LaTeX3 documentation for further information.
! For immediate help type H <return>.

l.83 ...st:Nx \c_backslash_str { \cs_to_str:N \\ }

! Emergency stop.
8:33 AM
@yo' Example?
@egreg that's ... difficult. I'm looking into it
@yo' Loading xpatch?
but actually, I wouldn't notice at all, the indicator of the problem I got is very complicate
@egreg well, to me it happens in two articles in the issue that use siunitx
@JosephWright Any first-sight idea where the above error could come from? Before I investigate further?
user image
@AlanMunn Congratulations!
@AlanMunn Even if you're a blue square and like self appointed musicians. ;-)
@AlanMunn congratulations:-)
8:41 AM
@egreg I tell you, you are never mean :D
@AlanMunn Well done! Congrats!
@egreg you could downvote his musical taste and make his rep palindromic
@GonzaloMedina has caught me up, we have equal rep:(
@Joseph ah sorry, it's mhchem that seems to cause it, not siunitx, but still, it looks to me like some L3 incompatibility -- I surely don't define \c_backslash_str myself... Ok, putting \RequirePackage{mhchem} before \documentclass seems to have solved it.
@DavidCarlisle I thought it's not you who is ageing ...
@yo' busy not old age:-)
@DavidCarlisle excuses excuses :D
@yo' That's come up before and should have been addressed (I reordered some code). A longer-term fix is for the team to reach agreement on some aspects of string handling, but that's a bit more complex!
8:51 AM
@JosephWright ok. But wouldn't \cs_set instead of \cs_new solve the problem? (eehhh doesn't sound like a good idea to me acutally)
anyway, thanks for assuring me that I'm not doing something extremely wrong
@yo' \listfiles output?
@JosephWright gimme a minute. I have to remove the \RequirePackage and see
damn now I can't get it not to work!
 *File List*
actapoly.cls    2015/04/03 v0.5c LaTeX class for Acta Polytechnica journal
kvoptions.sty    2011/06/30 v3.11 Key value format for package options (HO)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
 ltxcmds.sty    2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
kvsetkeys.sty    2012/04/25 v1.16 Key value parser (HO)
infwarerr.sty    2010/04/08 v1.3 Providing info/warning/error messages (HO)
etexcmds.sty    2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
^ @Joseph but it seems to depend on a lot of things; for instance [draft]{hyperref}. I had to make a big effort in my setup in order to make the error show :)
9:17 AM
@yo' As I said, it's xpatch that's loaded before mhchem or whatever package triggers loading of l3regex and so of l3str.
@JosephWright ^^^ In my opinion, the basic strings should be available in the l3 kernel.
@JosephWright I'd hate defining my own version of \c_backslash_str
9:29 AM
@egreg Comes down to a policy question: should be have \c_backslash_str with str as a new data type, and thus with \str_new:N, etc., or are these just 'special case' token lists (and if so do we allow the name \c_backslash_str or does it have to be \c_backslash_str_tl). @DavidCarlisle might have an opinion.
@egreg I feel that str doesn't need to be a 'full' data type (as there's no internal structure), but it's not resolved yet
@JosephWright If somebody felt that it should be a new data type, then it probably ought to be.
@egreg or it is a time to re-think the premises and possibly re-factor.
9:46 AM
@AlanMunn Congrats! Yay!
Now, yet another shaky bus moment for me. :) You guys have a great time! See ya all!
@PauloCereda have a good journey!
@JosephWright or presumably c_backslash_tl? but anyway isn't the main issue using _new rather than, like variant forms, promoting a declaration form that silently accepts multiple definitions?
@DavidCarlisle The point of \c_backslash_str is though that it is catcode 12, whereas \c_backslash_tl might be expected to be a catcode 1 token
@DavidCarlisle @JosephWright \c_space_str would be different from \c_space_tl, like \c_a_str would be different from \c_a_tl (both representing an “a”, but with different category code).
@JosephWright Good example, though I'd like to ask you how you'd store a category code 0 backslash in a token list. ;-)
@egreg Oops, typo
@egreg Point is general, though
9:53 AM
Ok, so the difference between str and tl is that str is strictly catcode 12 (or possibly 11?) whereas tl can contain really annything?
@JosephWright oh yes I remember str are catcode 12 strings, OK but still like function variants probably (especially for the single character ones) it probably should be possible to declare them multiple times, without error
@JosephWright Yes, that's my point with the hypothetical \c_a_tl and \c_a_str.
@DavidCarlisle @JosephWright I agree with David here that the problem is that \c_backslash_str, by its name, does not belong into any package, so either it should be in l3kernel or everybody who declares it should do so consistently by set rather than new
@JosephWright in that case shouldn't \str_new:N use \meaning or some such to construct a catcode 12 string rather than just being \def ?
seen new user question just posted? but I want to fix the bug with longtable clearly he's confused!
@DavidCarlisle just a very little bit :) He probably thinks that LT is the dirty one here. Who knows why
10:08 AM
@yo' but I didn't understand your comment on the question at all?
@DavidCarlisle He says that it works on one computer and doesn't work on another one.
@DavidCarlisle, @egreg, @yo' I've no problem with \c_backslash_str (although I favour just \edef{\detokenize{...}} over anything more complex), the question is whether we allow the kernel to do \tl_const:Nx \c_backslash_str { ... } or insist on creating \str_const:Nn and so on
@yo' yes but that example doesn't work differently on page breaks on different computers, it has no page breaks
I tried the MWE, just added loads of lines of the table. It works well to me. If it doesn't work to the OP, then something is wrong with their LaTeX
But Iagree with your point that they should add the lines to the question text
@yo' but the real example almost certainly is not multiple identical rows, he's almost certainly removed the part generating the error
@yo' not any lines. Lines relevant to the problem!
10:11 AM
@DavidCarlisle yeah, that's possible
I should probably remove my comments, as I see it now, they're pretty confusing :-(
@DavidCarlisle I get no strange thing when I fill in some rows that make the table split across four pages.
@egreg my guess would be either he has some bigfoot footnote usage that he's deleted from the example or it's just the usual longtable thing of not running it enough times for the column widths to stabilize, but without an example not really prepared to guess:-)
@DavidCarlisle The problem is in using an older version of bigfoot.sty.
@DavidCarlisle Advantages of having several TL versions on one machine.
@egreg :-)
@egreg you can answer then, you probably need some rep
10:28 AM
@DavidCarlisle By the way, bigfoot has just been updated:
254     % \item We allocate quite a few registers, and the danger of running
255	%   out of them is smaller when the extra registers of \eTeX\ are
256	%   taken into account.  Now unfortunately the LaTeX team has decided
257	%   in 2015 to do its own extended allocation scheme incompatible with
258	%   the |etex| package, so we need to guard against this load in case
259	%   the new LaTeX allocation scheme is detected.
@egreg ask @JosephWright about that:-)
@DavidCarlisle I like the “unfortunately”. :P
@egreg also it's completely wrong (as I told DK while asking him to update) the bug (not leaving space for inserts) was always there it relieved on some other package doing \reserveinserts, but now expl3 and memoir don't do that on new formats ...
10:45 AM
@JosephWright @StefanKottwitz This seems to be a possible spam user: latex-community.org/forum/viewtopic.php?p=91386#p91386
@egreg You beat me by 2 minutes :) You shall add \cs_new:Npn \neuwirth_myFunction_build:nn #1 #2 to your list in the end, IMHO, and mention that \cs_new:Nn is more suitable here
@yo' No problem with Npn vs. Nn, but protected is necessary. I added the full code.
11:54 AM
@egreg @DavidCarlisle @yo' @PauloCereda Thanks!
12:10 PM
@AlanMunn What's in the next concert you'll go?
@egreg Magnus Lindberg Vivo, Beethoven Piano Concerto 1 and Symphony 7 (NY Philharmonic)
12:27 PM
@AlanMunn I'm scared by any Scandinavian composer.
@egreg :) Even worse he's still alive.
Why are there like and twee and share buttons on everything those days? Annoying
@Johannes_B because facebook has them and earned billions of dollars
@Johannes_B Should I star this?
@AlanMunn That's not relevant as far as my fears are concerned. ;-)
12:31 PM
@DavidCarlisle Freaking template site loads 4 per template, gives 40 per category loading time of about a minute. And who is doibng support for this crap? I am.
@Johannes_B I think you should stop looking at any page with the word "template" in it, it's bad for your health.
Playing a bit with expl3 after a longer break. Which part of the manual should I look up on if I want to check for a char in a string and if I want to split a string into smaller pieces. I'm guessing the later ought to use quarks once it has been determined that a splitting char exists.
@DavidCarlisle LaTeX-community is officially the support page of the template site since march.
@daleif I think that l3str has some macros for this. See interface3.pdf. Ah sorry, nothing like that in l3str. Maybe l3tl?
@Johannes_B open a gnats database, enter all support questions into it, leave them there for 20 years to mature. Works well for longtable.
12:35 PM
@DavidCarlisle :-D
@daleif \tl_if_in:NnTF is what you're looking for?
@daleif this?
%   \begin{syntax}
%     \cs{seq_set_split:Nnn} \meta{sequence} \Arg{delimiter} \Arg{token list}
%   \end{syntax}
%   Splits the \meta{token list} into \meta{items} separated
%   by \meta{delimiter}, and assigns the result to the \meta{sequence}.
@yo', I'll see
@DavidCarlisle The problem with that one (reading the quoted text) is that it splits on all occurrences of delimiter. I need it to split only on the first, as I need to work further on pre and post on pre delim post. I also need to give an error if the delim does not exists. So I'll need yo's as well.
@yo' why not read manuals in Emacs?
12:40 PM
@daleif it's only a joke :) and I think that since the PDF file exists, why would I read the source code? It isn't meant for being read, but for being compiled
@yo' never joke with Emacs users. They'll just write revenge-mode ....
@daleif well you didn't give the full spec. The one splitting on every occurrence must be a recusive loop splitting on each one in turn. Haven't looked at the implementation but the functionality must be there;-)
@yo' Emacs reads PDF files as well
@yo' I hardly ever look at the typeset version of package documentation.
@daleif :-D
12:42 PM
@daleif as long as you do C-C-c to get rid of that annoying preview thing, and show you the raw bytes...
@DavidCarlisle me neither. I've added a macro to my Emacs that just opens the the source code of a given package or class.
@daleif well, I did alias td='texdoc' and I also aliased i3 to interface3 in texdoc. So now I just run td i3 to get interface3.pdf open...
Is that an old version of xparse lying around?




% Used inside \yo_split_first:NNn
\tl_new:N \l_yo_temp_tl
\quark_new:N \q_yo_seqsplit

% The main function
\cs_new_protected:Nn \yo_split_first:NNn {
% #1 - output SEQ
% #2 - input TL
% #3 - separator
	\tl_set_eq:NN \l_yo_temp_tl #2
	\tl_replace_once:Nnn \l_yo_temp_tl { #3 } { \q_yo_seqsplit }
	\seq_set_split:NnV #1 { \q_yo_seqsplit } \l_yo_temp_tl

% A test
\seq_new:N \l_yo_a_seq
\tl_new:N \l_yo_a_tl
\tl_set:Nn \l_yo_a_tl {123q456q789}
@daleif You can use a quark here :)
1:07 PM
@yo' that seems to work, thanks. Now I just need to know how to test if the delim actually exist. But I'm guessing, one can use the splitting, and look at the length of the resulting sequence.
@daleif Better check what tl_replace_once does in that case, the manual does not specify this. I suppose it does nothing, but as someone said: "unspecified can mean that your computer explodes"
@JosephWright Can we safely expect that \tl_replace_once:Nnn does not modify <token list> if <old tokens> is not found? The manual seems not to specify
@daleif Anyway, \seq_count:N seems like a good way to test whether the splitting has happened.
Now I gotta go. Bye!
@Johannes_B possibly although @JosephWright is the one who knows about such things
1:46 PM
@DavidCarlisle And the tick goes to… :P
@egreg ... the undeserving. It's an unfair world.
2:14 PM
@egreg see the comments under my answer
@DavidCarlisle See mine too.
@egreg so we can blame barbara for not doing the copy edits in a timely fashion
@DavidCarlisle She should charge you a fee.
@yo' No explosion in this case, just nothing done.
3:00 PM
@Johannes_B some of my ideas work, sometimes
@DavidCarlisle :-)
2 hours later…
4:42 PM
@AlanMunn Congratulations !! You priviledged you-ser
@egreg With this speed I think it's gonna be next year! :D
@AlanMunn Even if you couldn't care less about reputation, Congratulations!
@percusse Target locked. Voting squad in motion.
5:03 PM
@GonzaloMedina speaking of rep, you've been catching up fast last week or so:-) I only noticed when checking if Alan had passed 100k this morning:-)
@DavidCarlisle I also saw that I'm not even doing anything which I saw also this morning :)
5:25 PM
@percusse Come on! 607 points is a mere three day's work. :P
@egreg or 2 if you work hard
5:36 PM
@DavidCarlisle Sometimes it happens even with no work at all. Yesterday I was touring almost all day long, then looked at the match (well, I shouldn't have), but was rep capped anyway.
5:47 PM
@AlanMunn Speaking of Scandinavian composers: the radio has the awfully boring “The Swan of Tuonela” by Sibelius.
6:01 PM
@egreg You wouldn't have liked the Sibelius cycle at the Proms, then :-)
@DavidCarlisle I see the team list continues to entertain
@yo' Yes
@JosephWright Carefully avoid it.
@JosephWright I was planning to let it drop, but thought the comment ought to be noted:-) Good part is that it's not as entertaining as the discussions before the last release. seems like all changes discussed are now more or less in. Still worried how we are going to get any of this tested though.
@JosephWright thanks for the followup re latex-l, I thought there was a public archive somewhere, do we link to that?
6:16 PM
@JosephWright ah, so we do:-)
@DavidCarlisle I added that link :-)
@JosephWright figures
@egreg The bigfoot update is keeping me entertained :-)
@JosephWright it was all your fault anyway, for taking \reserveinserts out of expl3:-)
6:32 PM
@DavidCarlisle I guess so
@JosephWright or memoir or any of the other packages I mailed suggesting they not load etex.sty:-)
@DavidCarlisle Yes
@DavidCarlisle The whole message seems to have been slightly lost on DK
@JosephWright which reminds me one last remaining problem case is floatrow, I have a new version from Olga Lapko I need to test.
@egreg Yes, I'm not much of a Sibelius fan either.
@percusse Yes, very privileged. In answering this meta question I discovered that I don't have enough reputation to even propose a synonym for the custom-bib tag. :)
@GonzaloMedina Thanks, Gonzalo.
7:16 PM
@DavidCarlisle some called it "bugs", some call it "features" :)
@yo' he he, that example is just about 75% of the core feature of an ltx3 implementation of fancyref. The testing for the seperator and the splitting seems to be the hard part. Had to learn about variants to get it to work as I wanted. Now I need a chat with Heiko about how not make \vrefnot get a link under hypreref, or being able to insert stuff into \vreflinks.
@daleif cool! Well, variants are tricky, you especially need to grasp V argument specifier
@yo' V is very cool :-)
@yo' That was the one I needed, because the separator is stored in a variable. It seems a bit costly to have such big machinery going just to split some stuff. Need some field testing on real projects.
@daleif Well for a one-off split it's always going to be most efficient to define it yourself
7:29 PM
@JosephWright ah so "Very cool" is what it stands for!
@JosephWright this is true of course
@JosephWright that is the part that I'm missing. Because I need to know the separator is in the string before running the splitter on it. yo's code made that easy, with some overhead cost.
@daleif Give me two mins
@daleif Do we know that the separator can only occur once?
Version for the general case:
@JosephWright no, I have some ideas for nested fancyref to be used on list items, so it need to grap the first occurrence of say \mysep
\cs_new_protected:Npn \jaw_split_first:NNn #1#2#3
    \cs_set_protected:Npn \__jaw_split_first:w ##1 #3 ##2 #3 ##3 \q_stop
        \seq_push:Nn #1 {##1}
        \tl_if_blank:nTF {##3}
            \seq_push:Nn #1 { }
            \cs_set_protected:Npn \__jaw_split_first:w ####1 #3 ####2 \q_stop
              { \seq_push:Nn #1 {####2} }
            \exp_after:wN \__jaw_split_first:w #2 \q_stop
     \seq_clear:N #1
     \exp_after:wN \__jaw_split_first:w #2 #3 #3 \q_stop
Version for max of one delimiter
\cs_new_protected:Npn \jaw_split_first:NNn #1#2#3
    \cs_set_protected:Npn \__jaw_split_first:w ##1 #3 ##2 #3 ##3 \q_stop
        \seq_push:Nn #1 {##1}
        \tl_if_blank:nTF {##3}
            \seq_push:Nn #1 { }
            \seq_push:Nn #1 {##2}
     \seq_clear:N #1
     \exp_after:wN \__jaw_split_first:w #2 #3 #3 \q_stop
@daleif Just means a second auxiliary step
@daleif Usual trick here, same as in primitives: define your test auxiliary using the marker token twice such that you don't have to do two steps (test for token, split on token). If you have a max of one split token then this is very convenient: obviously slightly less so for one or more tokens
Slightly clearer version for the general case (the two-token trick doesn't help us)
\cs_new_protected:Npn \jaw_split_first:NNn #1#2#3
    \cs_set_protected:Npn \__jaw_split_first:w ##1 #3 ##2 \q_stop
        \seq_push:Nn #1 {##1}
        \tl_if_blank:nTF {##2}
            \seq_push:Nn #1 { }
            \cs_set_protected:Npn \__jaw_split_first:w ####1 #3 ####2 \q_stop
              { \seq_push:Nn #1 {####2} }
            \exp_after:wN \__jaw_split_first:w #2 \q_stop
     \seq_clear:N #1
     \exp_after:wN \__jaw_split_first:w #2 #3 \q_stop
@JosephWright I can see it is more or less the same as in standard TeX (a method I've used in a few projects). Will add these to my project tomorrow, thanks.
7:42 PM
@daleif Yes, it is: just taking advantage of the \tl_if_blank:nTF test really
@daleif Ultimately expl3 can't offer anything that can't be done by hand in TeX primitives/macros
@daleif The sequence-based approach has the advantage you don't have to be a TeX programmer to understand it :-)
@JosephWright yes. In the version of fancyref I want to make I want it to die in a better way. The current version fails as soon as it is being used on a non prefixed label. Something I've obviously patch in my own uses. And yes I know cleveref exists, I kind of like the simplicity plus it does not need to hook into all sorts of things. Plus being an Emacs users, renaming labels is not a big deal.
@JosephWright I can see that a lot of the solutions on the site that uses expl3, make frequent use of sequences.
@daleif Sequences are very handy as they can contain anything :-) (cf. comma lists)
@daleif Bruno did some very clear code to make them work well
@DavidCarlisle, @FrankMittelbach I guess that sequences were ideas from one of you originally
The comma separated stuff makes a good example for new users. Makes typesetting a list of authors very easy (3-4 lines of code including wrapping). I'm guessing there is a similar formatter available for sequences.
@daleif Yes: anything that can be done in a clist can be done in a seq, but not necessarily the other way around (as clist data can't contain commas, empty values, ...)
@daleif I guess you mean \seq_use:Nn(nn)
@StefanKottwitz I am quite happy with how modifizieren eines biblatex Stils is expanding. It is linked multiple times by now, referenced in answers and the code got some improvements by SX user moewe.
7:56 PM
@JosephWright exactly, at a browse through interface3 I came across \clist_use:Nnnn and saw that it was handy. But limited as not all types of data could be used.
@daleif I am at something of an advantage as I've read (over time) most of interface3
@JosephWright it is a lot to take in, especially when one is joggling several languages each day.
@daleif Certainly
@daleif @FrankMittelbach tries to keep everything logical (hence the periodic need to rename functions: we are not 100% stable yet)
@JosephWright I know. But the solutions provided by those who can, shows the power of it. Even if the code is sometimes slower. Anyone ever figured out why mhchem as so slow all of a sudden?
@daleif and why it breaks people's code at low expl3 level? :D
8:05 PM
@JosephWright yes I think they go back to before me, can't remember exactly when the current seq/clist distinctions were firmed up
@daleif Yes
@daleif I'm pretty sure it's because it's switched to using regex matching for everything: it's clever, but we've never claimed its fast!
@DavidCarlisle Before the SVN I suspect
@JosephWright urgh. That will be a bad one. That is one of the curses of trying to implement algorithms in TeX while thinking like a "normal" programmer.
@JosephWright that can't be the right thing to do;-)
I like to tell students this tale from the world of complexity theory: A lecturer came to my colleague. The lecturer had proved an algorithm. Had implemented it, and now wondered why this real world example took so long to finish. My colleague took a look at the algorithm. You are adware that the algorithm is exponential in the dimension of the space you are looking at? Sure. So how many dimensions are you looking at? 83
@daleif caught me couple times too, a cubic algorithm ... for a fixed dimension.
8:14 PM
@yo' Even though I'm mostly self taught in the world of CS, I did follow a course in data structures and complexity theory, that I have had good use of.
@daleif The regex code is good for certain uses (Bruno and I were talking about performance late last week), but for places where you can write a token-based system readily it's never going to compete
@JosephWright but can you do that in the case of mhchem (I haven't looked at what regexp was used for in the update.
@daleif mhchem has always been a bit scary internally!
@JosephWright lol
we should vote for the scariest code. I vote for l3fp :)
@yo' indentfirst?
8:18 PM
@DavidCarlisle xii? :)
@yo' Hmm, one of l3regex, l3galley or xor
@yo' Oh, that's beautifully clear
@JosephWright hehe. At least my code is usually down to earth (simple uses). Switching to etoolboxdid save a lot of code in our corporate letter class. But it can still be done better. Then again, it is worth making the internals better if the class works ok.
A: Holiday contest! Drawing a picture of Krampus for Yule

David CarlisleYou did ask for a Christmas tree? (I updated the tree to straighten it out) \font \t=cmtt10 at 1.5pt \t \baselineskip 1...

wasn't there someone that implemented the brainfuck language in TeX?
@daleif bruno, again
8:21 PM
BTW the first ever Danish astronaut will soon be going ti the ISS. He will, amongst other things, bring a few Lego astronauts with him.
@DavidCarlisle is anybody surprised? :D
@DavidCarlisle figures
@daleif At TUG2015, every mad TeX programming question was met by Bruno thinking for a second and saying something like 'I could do it but it would be ...'
@daleif Cool
I tell you, this is a crazy community :-D
@JosephWright lol. I still regret that I got into lisp 10 years too late. Could have saved soo much time on LaTeX projects over they years. Been using Emacs + auctex for years, but making your own project dependent macros really helps.
8:24 PM
now, it's bedtime for me. See you tomorrow!
I'm also leaving, laters
@daleif bye!
9:25 PM
@AlanMunn Be careful with that axe Eugene
@AlanMunn I know it's not your style but since egreg is asleep, here is something for some prog rock youtube.com/watch?v=oIY4X8yi5Oo
I have been listening to this all week during driving.
@percusse Not asleep: I'm watching over you. ;-)
@egreg Dang. The wizards get pinged even without an @
@percusse Of course. :)
This might give an idea of how intimately we are involved with reps with Alan :)
To be perfectly honest I didn't see this new design until this morning heh
I got a tumbleweed badge from SO :)
@percusse Oh really? I tweet my rep hourly so my followers can ooh and aah.
9:38 PM
@AlanMunn I'm pretty sure they are throwing latex too
9:49 PM
@percusse :)
I am using endnotes package
and I am trying to add a note with no reference in the text with \endnotestext syntax
is there anyway to change the sign/reference number of this only endnote locally?
for instance, instead of a number, I have a * sign besides to it, in the notes at the end of the text
Ah, found it... thanks:
Q: Changing the mark of endnotes

Pieter ThyssenI am using both footnotes and endnotes in a chapter with the help of the endnotes package. However, both footnotes and endnotes are numbered by Arabic number. I would like to keep the Arabic numbers for the footnotes, but I would like to change the mark of the endnotes to Roman numbers, or some...

2 hours later…
11:55 PM
user image

« first day (1765 days earlier)      last day (1514 days later) »