« first day (1160 days earlier)      last day (2020 days later) » 

14:00
Also you should avoid numbering the files yourself, and use the FreeFile function to let VBA give you an available file number to use... and you're not closing the files you're opening. Add a Close instruction before End Sub. I'd warmly recommend you take a look at Rubberduck, its static code analysis is quickly becoming pretty much flawless =) — Mat's Mug 4 mins ago
oy:
-2
Q: Discreet email send from Excel using VBA

Liam KennedyPLEASE HELP! I need a VBA script that will notify me by email once an excel workbook has been opened. I need this to be discreet and the ones I have seen already (although work perfectly) save a email in their sent items leading to loads of emails back to me asking why! Is there a way of doing t...

Great example of what not to ask on this site. Please take the tour and read How to Ask. — Mat's Mug 44 secs ago
That's @Mat'sMug 's music! (below)
No problem. VBA code is one of the slower language so it's better to use batch to do most of the stuff that deals with copying / pasting large number of files especially over a network since batch is a native language (I think..). — kpark Aug 23 '13 at 13:19
@puzzlepiece87 was going to reply, then saw the date.
If I'm not mistaken, a discreet email isnt possible innately. You would have to go into the Sent items and delete the email from their sent items. Correct?
Not going to reply, just curious lol.
14:14
yeah
which is unbelievably stupid IMO
tell your users what your code does and why, so they don't need to ask
Yeah, and it raises the concern of what else you could do. For example, forward all of your emails to my email and delete the sent emails after I do it.
Raises red flags for me.
I find it rather sad that people are quick to call FSO "slow", but no one mentions the performance penalty you could avoid by simply using early binding instead of late-bound calls against Object. — Mat's Mug 9 secs ago
@BrandonBarney exactly
@shadowofsilicon In addition to the motivations @ThunderFrame mentioned, you give too much credit to the ability of the human mind to think calmly and rationally after a MOAB is dropped.
@Mat'sMug When has that ever stopped you? :P
FWIW I would strongly advise you communicate with your users instead of trying to do things behind their backs. I would have a serious issue with running code that accesses my Outlook inbox and does things without telling me. Are you forwarding yourself my emails and then "cleaning up" my sent items? Don't do that. Just don't. — Mat's Mug 7 secs ago
I'd stay away from a bomb.
That is essentially committing to war.
14:21
@Hosch250 huh?
It should be done by special forces, like Osama; that is much less likely to escalate.
@Mat'sMug Responding to puzzle.
@shadowofsilicon Let's assume we did drop a bomb and manage to kill him with the bomb. What next? You have a nation of people who literally want the destruction of your country (and will find a way to enact revenge). You will have enraged the international community. Countless civilian lives will be lost, and many people will die. All without the support of your allies (since you would have to do it without UN approval).
@Hosch250 if promising "fire and fury" isn't an open declaration of war, I don't know what is
@Hosch250 Because special forces ops never go wrong lol
Yeah, they'll be pissed, but there will probably be a bit of infighting for the leadership.
@puzzlepiece87 They do sometimes, but it less likely to escalate than a bomb.
14:22
@shadowofsilicon Mind you, there was an article somewhat recently about how we could have done exactly that. We had the ability to strike their missiles and launchers while he was at the test site, and we would have easily destroyed them. We instead chose to release the pictures as a message of "We could have, and we can kill you, but lets find another resolution."
Especially if we never admit to it and do it in a way they can't prove we did it.
@Hosch250 I'm not so sure about that. You are talking about a special forces op to assassinate the leader of NK, right?
(I dont have the article on hand, but I am sure it is on Google somewhere).
@Hosch250 100% agreed - the best we can do is stay away and hope it resolves itself imo.
@puzzlepiece87 It will never resolve itself.
14:23
@Hosch250 That sounds very action movie.
If the past 50 years haven't convinced you of that, nothing will.
@puzzlepiece87 We've done it a lot.
And finally, we also have to consider the fallout from such an attack. Lets say there's one general hidden away who has been told to launch everything they have in the event of the leader's death. It may not hit us, but it will hit some of our allies.
Most of the time, they don't even know it was an assassination.
@Hosch250 Very much agreed.
@Hosch250 Except NK assumes everything is an assassination attempt.
Go read about how we sent a sniper in to Vietnam to take out that general. They thought it was an internal attack until well after the war was over.
14:25
@Hosch250 The best benefit is not provoking a nuclear launch. The wish of things resolving themselves is just a side hope. Also 50 years is nothing in the course of history. Anytime you start adding years to a situation, unpredictable things can happen.
Heck, we could have one of their stupid non-nuclear missiles blow up on the launch pad when he is there.
@BrandonBarney All of this, 100%
@Hosch250 Exactly, that would be nice and also possible.
@puzzlepiece87 Not provoke, lol. That's been his intent for decades.
@Hosch250 You just never know.
I think he should be taken out, but it must be done in a way that hints of us, but nobody can prove it (think Stuxnet).
14:27
@Hosch250 Call this semantics, but I'd say their intent is to have the weapons rather than use them.
If they just wanted to have them, they'd talk more like Iran.
@Hosch250 Lol if Stuxnet is the bar I'd really prefer not to try and !@#$ it up.
@Hosch250 Not necessarily, every audience and orator is different. If Kim's better at delivering belligerent nationalism and he thinks that is what will play well with his audience, he could be doing that while still pursuing have weapons.
But, obviously we'll never agree since we don't agree on what their intent is, so we might as well not fight.
@Hosch250 FYI since you're considering a Cruze, I have the second lowest model. It's not so great in the snow, just be warned there.
@puzzlepiece87 He definitely doesnt want to just have the weapons. If you really believe that, you need to learn more about the conflict. He has never (so far) just been one to make empty threats. He said he would keep developing his program, and he kept developing his program. No one makes that kind of progress just for show.
14:31
@puzzlepiece87 This is my position on the cars.
I want a Mustang, but my family is freaked out because it is RWD.
@BrandonBarney Doesn't he promise to bathe the US in fire every other day? :P
They think I should get a 4WD, but those are beyond the price range I'm acceptable with.
@puzzlepiece87 He promises retaliation, and he has made significant progress on his program.
@Hosch250 Do you live in an area that gets a lot of snow?
I'm considering a sedan for the price, but meh.
@BrandonBarney MN, so yep.
Can get anywhere from 3 feet of snow in 3 months to 3 feet in 3 weeks.
@Hosch250 A foot a week doesnt seem too bad, but the Mustang (from what I have heard. I havent had a winter in mine yet) doesnt handle it well just because it will be more likely to fishtail.
Do you have remote capability with your employer?
Like, if you're snowed in will they let you for the winter?
14:34
4WD's are the first ones in the ditch come winter. Over-confident drivers that don't realize all 4WD means is that all 4 wheels lose traction.
That's what my family says. And yes, on my discretion, plus one day/week.
@Mat'sMug Yep. My dad made that comment several years ago.
@Hosch250 Then I personally dont see an issue with it. Just dont drive it out in the snow.
@Mat'sMug Well, only if they are all on ice.
Tomorrow is my first day from home when I'm not sick :)
And I really have to get to work :)
I mean, any car can handle the snow. Just some are better than others. I remember being in my shitty Mercury Sable watching Jeeps and SUV's go off the road while I was travelling a good clip in the snow.
I have a colleague that comes to work with a Mustang, haven't heard of any winter issues
14:36
@Mat'sMug Definitely depends on the driver :).
@Mat'sMug I'm not a car expert, but I couldn't go up a medium slope with snow on it with my 2WD Cruze with a 1.4 engine even after shoveling, but my friend's 2.0 AWD Audi handled it without any prep.
@Mat'sMug They have a limited slip differential, which prevents one wheel from eating the power when it loses traction.
Get good winter tires. It's not the car, it's the tires that make the biggest difference
It basically shifts the power to the other wheel.
@puzzlepiece87 Tires.
14:37
@BrandonBarney He didn't have snow tires but I bet Audi tires are nicer.
@puzzlepiece87 Cruze is a terrible car, is all ;-)
My dad has one. I hate the interior.
@Mat'sMug I like mine quite a bit ^_^
The Sonics are worse.
@puzzlepiece87 I had a Toyota Matrix that was a beast in the snow when I first got it (2WD). I had to put cheap tires on it because it ate through the first set. After that it never drove in the snow quite the same.
@puzzlepiece87 I mean...if we were all relying on your judgement... :)
14:38
@BrandonBarney I've enjoyed the ride smoothness of my car enough that I've always gone back for OEM tires despite the cost.
Hey, no need for passive aggression.
You can disagree, but leave it at that.
@Hosch250 Joking lol.
@BrandonBarney We'd all be listening to Simple Plan and using HN hahaha
@puzzlepiece87 Exactly lol.
See? He knew I was joking.
I may be a jerk, but I am not that big of a jerk.
@Hosch250 Thank you for helping but I took it in a friendly way for sure :)
@Hosch250 I appreciate you making the room a friendly place!
14:39
OK. I've seen enough to step in when it gets to that point.
@Hosch250 Invest in a set of steel rims w/good winter tires. I've heard from many people that they get through upper tier state winters just fine with RWD & some good Blizzaks.
@Hosch250 Same for this, I took it as discussing rather than fighting, but I knew that meant you were ready to stop regardless :)
@FreeMan Yeah, a set of good studded tires can do wonders.
@Hosch250 4WD/AWD is great for getting moving, but when it comes to stopping, all 4 wheels will lose grip, just like with 2WD (at either end).
14:41
@FreeMan I would definitely get snow tires if I lived where @Hosch250 lives, I was just in Maryland previously so I saved the money. But yeah good advice all around.
My family doesn't use them, I don't think. Also, not sure where I'd store them, but...
Maybe the local garage would oblige.
they're mandatory where I live, Dec.15 to March 15
Gov again? I hate regulation.
It's public safety. You're not just dangerous to yourself with 4-season tired in winter.
@Mat'sMug Forgot to reply to this one - for the current US leader, that's just a Tuesday haha
14:43
@Hosch250 Except you use regulation far more often than you realize. Minimum wages, benefits for full-time employees, work conditions, etc.
If it makes the roads safer, I dont see a problem with it. Sure the expense, but its better than someone wrecking me because they couldnt stop in time.
@BrandonBarney @Hosch250 Clean air clean water, pharmaceuticals that usually actually have proven benefits rather than just killing you.
@puzzlepiece87 usually snort
@puzzlepiece87 History will remember that dude as the idiot that started WWIII
@Hosch250 If you agree to empower the FDA more, we can make it better :P
Tell me again about the pharm companies marketing their partially-tested drugs directly to the consumer again.
14:45
@Hosch250 Less regulation will make it worse.
Not the way they are currently going. They are bought off by the drug companies.
@Hosch250 Sure, let's tighten off the loopholes. I'd love to see nutritional supplements have to pass full testing.
@Hosch250 I'd love to fix that/
@Mat'sMug I'm trying as hard as I can to make sure he's out of office before that can happen. We'll see.
</off-topic>
@puzzlepiece87 OTOH, I grew up in Idaho. Dad had a '63 Chevy Suburban. It was 4WD, but you had to get out & lock the front hubs by hand, it was RWD otherwise. Never had traction issues even in ID winters. Only time we ever used 4WD was when the back wheels were off the ground (i.e. fording a stream and the rear bumper hooked on the bank.)
@puzzlepiece87 Me too, but that will put everyone out of business except the top three drug companies, who don't test any better than them.
@puzzlepiece87 Just be glad Clinton didn't get in. We'd have WWIII anyway because she'd be giving nukes to NK.
14:48
I'd be happy to keep talking off-topic stuff, if anyone else would like to please invite me to another room :)
Trump is unqualified, but Clinton was just as bad. At least Trump has a chance of being removed. Clinton didn't.
Enough, please
It was a lose/lose situation.
Anyway, I'm out because I can't focus when I'm getting pinged :)
@Mat'sMug @ThunderFrame Does FSO have an equivalent to Dir() where it can keep track of which files you've already called without having to do it manually?
Good morning everyone
14:51
Dir only pretends to track stuff
Hi @shadowofsilicon!
I see I missed a heck of an off-topic discussion.
@Mat'sMug sighs in agony lol
@Mat'sMug Does that mean FSO doesn't have an equivalent to what Dir pretends to do?
It works differently, and it works well. What are you trying to do?
14:54
Btw, studded tires are illegal in Minnesota. Thaw/ freeze cycles already do enough damage as it is.
Question regarding OLAP Cubes. Is it within the realm of possibility that a user would be able to create a PivotTable using a cube as a source, but wouldnt have access to the cube through a direct connection (in C#)?
@BrandonBarney either you can connect, or you can't. Not sure what you mean.
Your code isn't working?
@Mat'sMug For example, go through all the text files in a folder and move them if they meet criteria. Dir() is great for that because it pretends to track stuff, so it won't keep hitting the files that have already been checked without manually putting those into a dictionary. If FSO has something similarly easy to use, that would be wonderful.
@shadowofsilicon there are other types of winter tires that work equally as well. /Runs and hides from Mug. /Tries to get back to his own work...
@FreeMan Yes, just saying, studded is not a option
15:07
@Mat'sMug Yeah, but I can create a pivot table in Excel just fine. I have permission to do that. If I try to create an OLEDB connection to the database though I get an error.
"Error (Data mining): Either the user, SNHU\\b.barney1, does not have permission to access the referenced mining model, Academic Cube, or the object does not exist.\r\nError (Data mining): Either the user, SNHU\\b.barney1, does not have permission to access the referenced mining model, Academic Cube, or the object does not exist."
I dont know why it gets printed twice.
Hmm, I wonder if it has to do with the table name actually. Since there's no way to tell by the error code if it is a permissions issue or a non-existing table issue.
Is there a way to easily convert an entire path to Mac format? I don't want to stiff Mac users, but there's no way I'm going back and converting folder paths 10 layers deep by changing all the "\"s to Application.PathSeparator.
Ah, you can call MacScript
Okay, that's going to be a YAGNI until further notice.
I still get a warm fuzzy when I make a huge change and see "Build Succeeded" after the first attempt :)
5
15:22
@puzzlepiece87 CTRL+F?
anyone know how to deep clone object?
deserialization doesn't seem to be a good way because i have private fields
@BrandonBarney Yeah, but I'm resisting that because then you're taking an already ridiculously long (and sometimes dangerously long) corporate directory path and making it look 3 times longer in code :(
I'll make a MakePathCompatible function for any situations where it's not actually a YAGNI.
@puzzlepiece87 If your directories are that long you likely need a better solution anyways. I would also recommend a function for the base directories if you are using them in more than one spot.
@Jelly reflection?
its causing me stackoverflow
i think some recursion is taking too long
15:29
@puzzlepiece87 That works too. Does Replace$() work with Application.Pathseparator?
@BrandonBarney Good point. I'll try to balance that against user readability. It'd definitely be nicer for me to use a variable with a base directory, but I'm worried my team won't be able to follow along.
@shadowofsilicon protip: make smaller changes ;-)
(awaiting "look who's talking" reply)
@Mat'sMug hey, at this point, any change is a "huge" change lol
I'm still not sure what return true; does lol
@Mat'sMug Figured it out after asking the DT. Apparently, you cant use direct SQL on SSAS but you can use MDX.
Ha, didn't realize you were trying to run TSQL on that SSAS connection
15:34
I dont even know what the difference is so that is probably why :).
SSAS isn't the relational DB engine, it doesn't handle TSQL =)
I think I'm going crazy.
So, we are using EF.
We modify a record, and then query the client context, and it works.
After we save the context, it doesn't get saved to the DB.
15:51
@shadowofsilicon I think it usually pushes "0001" to the top of the stack, or whatever.
16:17
@shadowofsilicon Expressing gratitude to @Mat'sMug makes him put up with our duckling-01/2 questions a lot more patiently.
@Mat'sMug I look forward to that.
the world does too :)
TBH that's some pretty awesome RD counter to MZ-Tools' new indenter feature
#FairPlay
16:38
> Probably need a sanity check at this point. It would seem that the name conflict identified for this issue is wider than just enums. If the purpose of the inspection is to find name conflicts that will cause an error at runtime, then any name conflict qualifies to be found by the inspection. For example:


```
Option Explicit

Private Enum DoSomething
Eat = 1
Sleep = 2
Code = 3
End Enum

Sub DoSomething()
MsgBox "Just Do It"
End Sub

Public Function DoSomethi
@FreeMan #AntiPosterChild
@Duga @BZngr I think that's beyond the scope, yes. the idea is to warn about things the VBE can't already, i.e. warn about code that compiles (i.e. "legal"), but blows up at run-time.
if it doesn't compile, it's not worth pointing out IMO
(it's also very hard to identify, since the resolver isn't meant to work with code that doesn't compile)
@Mat'sMug I guess I'm wondering about 'code that compiles'...If the conflicts are 'silent' (can be coded/saved, etc) until executed, isn't that the same 'kind' of problem as legal code that blows up at runtime?
@BZngr You can write and save anything you want in the editor.
Then there are two stages: compilation, and execution.
@BZngr no; "code that compiles" stands for code that the VBE can parse and doesn't throw a compile error when you go Debug > Compile
16:47
Yup. The code has to match the VBA grammar.
@Mat'sMug OK! Never noticed (or knew about) the 'Debug -> Compile' before. So, any name conflicts not caught by 'Debug -> Compile' is the definition of we are after with this inspection. True?
exactly
the enum case will happily compile (per language specs), but blow up at run-time
other conflicts will fail to compile
@BZngr Alt + D + L
While in VBE and it'll do it. Shortcut keys are the ducks quack.
I do Alt+D,Enter
we need a command that runs that menu item
that way we can assign it a hotkey =)
@IvenBach Thanks - my testing/Debugging just got faster.
17:10
@Mat'sMug It's easy to call a command like that from RD.
This would be an 01 issue (copy/pasta) if it wasn't for finding the command ID from VBA.
I lose that script every single time. We should probably check it into RD as a useful helper, or something.
Question: if unqualified Range calls refer to the activesheet, then why does ?Range("SomeWorkbookScopeName").Count work and ?ActiveSheet.Range("SomeWorkbookScopeName").Count throw an error?
@ThunderFrame ^
that's kinda pulling the rug under the feet of "ImplicitActiveSheetReference" inspection & quickfix
FWIW accessing defined names should be done via the Workbook.Names collection for workbook-scoped names, and via the Worksheet.Names collection for worksheet-scoped names. Range's behavior is broken and unintuitive. — Mat's Mug 7 secs ago
@Hosch250 it's 01/duckling regardless IMO
Sure. Junior-dev copy/pasta stuff.
17:26
mmmmm.... pasta....
hmm, I'm having mixed UI cultures in the inspections toolwindow (latest prerelease)
LOL.
@Mat'sMug Quick fixes?
> Le paramètre 'index' is declared as Integer
WT*?
Before the quick fixes change, you had to refresh the inspections to see them in the new culture.
> Consider renaming le membre de l'énumération 'Reserved9'
17:28
I'm not sure if it is fixed, but it can be now.
metas are en-US
LOL.
and the refresh button / parser state text is fr-CA
#ReasonWereStillPrerelease
hmm, that's actually a false postive
With OrderFormSheet
    .OrderDate = #DATE LITERAL#
    .ShipStartDate = #DATE LITERAL#
    .ShipEndDate = #DATE LITERAL#
    .SalesRep = 0
    .CustomerName = 0
    .OurOrderNumber = 0
    '...
End With
^^ all dot members are tripping the "Object variable is assigned without the 'Set' keyword" inspection
apart from that, the only other false positives are the borked annotation inspections
IllegalAnnotationInspection is almost fixed in my fork, I'd PR the thing but I still can't handle an annotation for the first member procedure of a module
some work is needed in the annotations resolver pass, to set the AnnotatedContext for the annotation
hmm, MissingAttributeInspection says "Module or member '' has a '{annotation}' annotation, but no corresponding attribute"
..for a member procedure
the QMN should have a value here...
Got it figured out, and learned about Entity Framework's AutoDetectChanges.
It was set to false in this case for performance reasons, so only appending new columns was working.
17:44
@Mat'sMug LOL. Sure that's not just your brain on not enough caffeine? ;)
@Mat'sMug Do we allow the use to select/copy the meta? We probably should.
i think ive started to conquer xaml mvvm
Also, do we allow the user to select/copy the inspection result?
@Hosch250: what would you use obfuscate code?
@BZngr I'm all for the minor productivity gains that are used most often. Those are the ones you get the most benefit from.
17:46
@Hosch250 there's a 'copy to clipboard' command, but it exports the entire set of results
Agreed!
@Hosch250 agreed, we should
anyone feel like holding a hand:
-3
Q: Please Help Me I'm A First Timer

ToCodeVBACan someone please tell me how I can copy the target high numbers on the left hand side to the target high cells on the right hand side, from EM NEW ISSUE issue to TACTICAL. Bear in mind a new table will be added everyweek right next to the previous one. So the code needs to be able to identify t...

@puzzlepiece87 @FreeMan @BrandonBarney and others that may not be as well-versed as the other big ducks in this pond, what do you think of a cave-man definition section? Part of github.com/rubberduck-vba/Rubberduck/wiki/….
@Mat'sMug ^ Would that still be part of RD scope?
Learning what a predicate was in laymans terms made a lot of things involving LINQ open up for me.
@IvenBach What do you mean by "cave-man"?
@Jelly Hmm?
What would I use to obfuscate code?
I'd hire a junior dev.
17:56
Using small mono-syllabic words so that ducks like me can understand it.
yes
@Hosch250 :+1:
code obfuscation
@Hosch250 LOL
@Hosch250 That deserves to go on the wall somewhere.
17:56
@IvenBach Uhh... I think that is out of project scope.
@Hosch250: Aren't you one?
;)
@Jelly My boss says I'm not.
@IvenBach I think not. There's TONS of places to read about .net and C#, RD's wiki should be about RD
Although I think I am officially.
@IvenBach I would change Basics to References. Some people can read reference docs and learn, I slip into a coma from them. I need some good tutorials/examples. Maybe add a Tutorial section. This is one I was following, though the big ducks pointed out some issues with their examples. (it was a while back, I don't remember them specifically.)
17:57
in all seriousness have you tried code obfuscation.
@Hosch250 That's why I'm asking, figured it would be.
Never needed to.
But I've seen minifyers for JS that are pretty good at it.
Well, I'm writing a c# class library.
im not using any js
@FreeMan I understand entirely.
i'll google it. thanks for the help
> Using per-release version Rubberduck v2.1.2033 internal version 2.1.0.10753

I'm getting "Error: Object variable is assigned without the 'Set' keyword" on all of my properties.

Example:
```
Public Property Let example(ByVal firstArg as String)
localExample = firstArg
End Property

Public Sub doThing
example = "This line will throw the error because I am not using set here"
End Sub
```

I checked the definition of a property on MSDN and they are, for sure, object member
@Duga nice, I don't have to report it!...and phew, it's not the With block!
> You beat me to it! Yup, aside from the broken annotation inspections, this is the only false positive I'm seeing in the latest build. Should be a pretty easy fix (looks like a little oversight).
> Yeah that would be well beyond the scope of the inspection; we only need to warn about code that VBA happily compiles (Debug > Compile Project), but blows up at run-time.
18:18
@Mat'sMug Do you have that as a ready to copy&paste text file somewhere?
If not, you should.
Do you get to make your own custom comment?
yup
it's a browser plug-in
18:45
ugh, still getting too many refs in the toolbar
@IvenBach Whoa whoa now just wait a minute... You think this is some sort of socialist chat room? Earn ya' own darn brownie points! /sarcasm
realizes that I have wiped out any brownie points I have and that this is now a bad time to ask for advice
19:07
@Mat'sMug will you share your ancient Chinese secrets?
34
Q: Frequently Posted Comments

Simon ForsbergOn Code Review we often encounter questions with the same kind of problem over and over again. Some of us are using the auto comments script which allows you to maintain a list of comments to post. What are some useful tin-can comments that can be good to have in your list of comments? If you ...

> OK - so...reeling the scope back 'in'. I want to make sure I'm solving the right problem. If the goal of this inspection is to find code (specifically same-module, enumeration type/Variable name conflicts) that compile but blow up during runtime, then my 'starting point' example (repeated below) does not appear to meet the criteria. The FruitType string assignment in DoSomething() is picked up by Debug > Compile with an error that says 'Expected variable or procedure not enum type' -
@Mat'sMug Have you ever watched 'The Red Green Show'? I have always wanted a Canadians opinion of it. Disclaimer I'm a big fan of it myself.
haven't
19:22
@IvenBach If the women don't find you handsome, they should at least find you handy.
2
> hmm, might be that the inspection is moot? TBH I put it up from freaking out over how the spec defined it, without verifying how the VBE implemented it.
@Duga there could never be a difference, could there? /sarcasm
@BZngr I hope not too much time was spent on that one... .... ... sorry!
No worries!...it led me to find bugs in other code I had written :(. I'll work on getting those fixes into a PR.
19:59
@FreeMan We're all in this together & Keep your stick on the ice.

« first day (1160 days earlier)      last day (2020 days later) »