The fat lady is belting out her song at the top of her lungs.

Barring a 2018-19 St. Louis Blues-like revival, the Montreal Canadiens’ Stanley Cup Playoff hopes all but died in Detroit on Tuesday, with Filip Zadina delivering the potential kill shot in the 57th minute of what turned out to be a 4-3 Montreal loss to the last-place-in-the-NHL Detroit Red Wings.

You know, Zadina, the kid who promised he’d haunt the Canadiens and Ottawa Senators after they passed up opportunities to take him at the 2018 Draft.

Zadina, the Czech sniper who was projected to go third overall but ended up going sixth to Detroit after Montreal chose Jesperi Kotkaniemi third, Ottawa chose Brady Tkachuk fourth and the Arizona Coyotes chose Barrett Hayton fifth, said, “I was telling my agent, if they pass on me, I’m going to fill their nets with pucks.”

How fitting it is that he’d be the one to record the winning goal for the Red Wings on this night, extending Montreal’s current winless streak to seven games.

Seven. That’s also the amount of points by which the Canadiens trail the Philadelphia Flyers for the second wild-card position in the Eastern Conference.

They’re also now 10 points back of the Toronto Maple Leafs for third place in the Atlantic Division.

But with 38 games remaining, the Canadiens have plenty of time to cement their claim to a lottery pick in the 2020 Draft, which is being held in Montreal.

Talk about demoralizing.

Demoralizing was the Canadiens taking 2-0 and 3-2 leads in Tuesday’s game and surrendering them.

Demoralizing was watching Franz Nielson — who came into the game with one goal in his 38 games played this season—score two goals in less than 17 minutes of ice – time against the Canadiens.

Unbelievably demoralizing: Montreal’s 0-3 record against this Red Wings team, which came into the game with just three wins recorded in their last 23 contests. This Red Wings team that came into the season having lost eight consecutive games to the Canadiens.

And how about the boys in bleu, blanc et rouge now owning a 1-4-2 record against the Red Wings, Senators and hapless New Jersey Devils? That’s just a killer. A season-killer.

And then there’s this: With the loss to Detroit, the Canadiens dropped to 4-9-2 against Atlantic Division opponents.

They have fought valiantly — never letting down at any point despite losing key players Jonathan Drouin, Joel Armia, Paul Byron and Brendan Gallagher — but they are dying in this race.

And this is no slow death. It’s all come apart in just a matter of days.

How much more does Canadiens general manager Marc Bergevin need to see before he concludes what seems painfully obvious to the entire hockey universe at this point?

With so much ground to make up and four non-playoff teams ahead of them in the race, it’s time for the GM to start thinking about who he’ll be selling off his roster between now and the Feb. 24 trade deadline.

Former Red Wing Tomas Tatar, who leads the Canadiens with 16 goals and 37 points in 44 games, is likely at the top of the list.

If the Slovakian sniper was worth a first-, a second-, and a third-round pick to the Vegas Golden Knights at the 2018 deadline, with worse numbers and three years remaining on his four-year $21.2-million contract, what’s he worth now that he’s produced 95 points in 124 games with Montreal and with only one year left on his deal? Don’t forget, Tatar is still on the right side of 30 after having celebrated his 29th birthday on Dec. 1.

What about 32-year-old Jeff Petry, who’s on pace to set a career high in points for a third-straight season and is one year away from his six-year, $33-million contract expiring? The six-foot-three, 201-pound, right-handed defenceman’s got a list of 15 teams he can’t be traded to, but you have to think Bergevin might gauge his market anyway.

We don’t think the GM would actively shop Petry without a sure-fire replacement waiting in the wings, but we know some teams will come calling.

Ilya Kovalchuk, who had two assists on Tuesday after notching one in his first game with the Canadiens on Monday, might be able to fetch the team something decent given he’s got a two-way, prorated $700,000 contract which expires at season’s end.

31 Thoughts: The Podcast Jeff Marek and Elliotte Friedman talk to a lot of people around the hockey world, and then they tell listeners all about what they’ve heard and what they think about it.

Nate Thompson has been a serviceable Canadien since last year’s deadline. A steady veteran who wins faceoffs and kills penalties, he’d be a depth player on the ice who plays much higher up the lineup in the room. On an expiring $1-million deal, he’d net a future asset.

And perhaps veterans Dale Weise and Marco Scandella might be able to get the Canadiens late picks, too. The team, which is still $5.83 million under the salary cap, could even retain some of their salaries in exchange for higher returns than they’d generally fetch.

But maybe Bergevin isn’t quite ready to throw in the towel — especially since the Canadiens aren’t willing to.

“We believe in each other in this locker room,” centre Max Domi told reporters in Detroit after Tuesday’s game. “We’re going to push each other to get through this, but it’s going to take every guy. So starting with next game, we can do it. We know we can. We just gotta go out and execute now.”

It’s going to take more than their best shot to shut that lady up, though.