The Final Heist

★★
“Interesting premise, incredibly bland execution.”

I liked the idea of this. A gang of five thieves, four women and Liev, give up the game after a robbery goes wrong and Liev gets arrested. He doesn’t give up his accomplices, who include his pregnant girlfriend Willa (Banus), and goes to jail. Six years later their daughter falls ill, and desperately needs matching tissue to repair her heart valve. The bad news: it has to be her father, who’s still in prison. Worse news: he’s in a coma, having been beaten up on the orders of the governor. Willa decides to put the band back together, along with an unlicensed surgeon, to break into prison, and extract the necessary tissue to save her daughter. 

That’s not something I’ve seen in a film before. It’s certainly a twist on the usual “women in prison” subgenre, and the scope for a tense thriller, as the reverse heist unfolds, is obvious. Unfortunately, it’s the best part of an hour before we get to the execution, and there’s not enough to retain interest. It doesn’t help that the plot has so many holes through which you could drive an oil tanker. For example, Flynn (Ma) gets a job in the prison library, becoming the gang’s inside woman. She’s gaily snapping cellphone photos inside the jail, when two minutes of Googling confirms exactly what I suspected – that every prison I could find, has an almost zero tolerance policy for mobile devices.

Though in general, this correctional facility has security roughly comparable to your local electronics store, and you will be left with little confidence in just about anyone involved in the penal industry. Not that Willa and her team can really claim the moral high ground here, if you think about it. They are the “good girls” only because the film tells us they are. Given the first thing we see them do is robbing an armoured truck by threatening the driver with an explosive device, I’m not sure that’s truly the case in any court of morality. I’d rather have seen them embrace this ambiguity in some way, rather than dropping in a cliche straight from a Lifetime movie, a desperately ill child. Who can possibly root against Willa now?

Indeed, in tone, a lot of this feels like it could have straight in from a TV movie. Things do pick up somewhat down the stretch, not least with some unexpectedly graphic open-heart surgery, and when Willa is forced to make an unexpectedly difficult choice. However, it likely counts as a minimal spoiler to say that all ends well – at least, for the majority of the cast – with justice served on the bad people. [Robbery, it appears, does not count…] From a technical point of view, it’s reasonably well-assembled: “competent” would be the word, though it’s equally lacking in flair. The highest praise I can give this, is to say that I did not fall asleep. Might have been close in the first hour.

Dir: Ted Campbell
Star: Camila Banus, Jasmine Shanise, Virginia Ma, Shonte Akognon

First Target

★★★
“Mostly hit, and several misses.”

Well, after taking ten years to get from the third film to the first, the gap between first and second is considerably shorter. I think this probably works the best of the trilogy, not least because there are a few good GWG to be found here, not just Secret Service Agent Alex McGregor. This time, she’s played by Hannah – allegedly, seeing her here got Tarantino to cast her in Kill Bill – rather than Hemingway. The latter supposedly declined due to a combination of scheduling conflicts and script concerns. Frankly, I think this is a bit more solid than the original film. It begins with a nice nod back to First Daughter, opening again with an attack on President Jonathan Hayes (Harrison) – except, this time it’s just a training exercise.

McGregor is now the head of the Secret Service, and is coming down hard on new agent Kelsey Innes, for much the same reason McGregor suffered the same treatment. But more pressing matters are at hand, because the Vice President has a plot to kill his boss and take over. To that end, he has hired international assassin Nina Stahl (Grauer) and her hacker brother, who plan to assassinate Harrison during a ceremony in Seattle, with the help of a mole inside the local Secret Service office. Returning from the first picture is wilderness guide Grant Coleman (Savant), whose attempts to propose to Alex keep getting interrupted, and who is impressively unfazed by the fact his girlfriend now looks radically different from last movie.

The concept here is still a little silly, but at least the threat here is genuine, with Stahl a decent adversary who poses a real threat to McGregor, Innes, etc. She additionally brings a nice line in femme fatale to her line of work, and I was surprised to see a not-exactly subtly incestuous vibe with her brother. It feels like Stahl has wandered in from a different franchise entirely. Again, it is a little disappointing that Grant ends up doing so much, in this case going toe-to-toe with Nina, while Alex is making her way up the mountain towards the assassin. However, the heroine still gets her licks in, and puts the pieces of the puzzle together before anyone else.

Unlike First Daughter, there’s a sense that most of the people involved here are relatively smart; or, at least, behave as if they are. The absence of the annoying teenage Presidential daughter – never seen or heard, but apparently now getting tattoos – feels like a positive development too. It still remains limited by being a TV movie, and the pauses for advert breaks are often painfully obvious (not helped by them not lining up with the Tubi advert breaks). However, I was definitely entertained, and if I had seen this when it came out in TBS at the turn of the millennium, I would likely not have changed the channel. It almost makes me want to re-review First Shot, and see if I was unnecessarily harsh to it. Almost…

Dir: Armand Mastroianni
Star: Daryl Hannah, Doug Savant, Gregory Harrison, Ona Grauer 

First Daughter

★★½
“Secret Service with a smile.”

El Jardinero isn’t the only long-delayed review of a franchise opener. I saw First Shot, the third movie in this series about Secret Service Agent Alex McGregor (Hemingway), back in 2014, and at the time it was the only entry present on Netflix. A decade later, I now get the chance to catch up with the first entry and… it is pretty much what you’d expect. Competent enough for a TV movie, but the limitations of that medium are always going to knee-cap the material. This does begin well enough, with an energetic terrorist attack on a fundraiser for President Jonathan Hayes (Harrison) by members of the American Freedom Fighters – this clearly dates outside the 2001-16 window when domestic terrorism was ignored. 

His life is saved by Alex, but only after she disobeys orders from her boss, which gets her into hot water. Still, a few months later, she is selected to accompany Hayes’s teenage daughter, Jess (Keena), on a wilderness adventure trip. Unfortunately, this drops them right into the Colorado terrain (actually Australia, but who can tell the difference?) where the AFF militia are hiding out. They get the bright idea of kidnapping Jess, so they can exchange her for their leader, captured during the attack mentioned above. Jess is the only agent to survive the initial assault, and so it’s up to her and tour guide Grant Coleman (Savant) to track the terrorists through the forest, and free Jess from their clutches

This is spottily entertaining, and you can probably tell most of the story beats in advance. Jess resents Alex’s presence on the trip, while Alex and Grant get off on the wrong foot – but you just know everyone is going to grow to respect each other by the end of the film. However, it holds together well enough, with decent performances from Hemingway and Savant, who make for a likeable pair. It is front-loaded, with the original attack a nifty piece of bullet-ridden carnage, before the film then goes to sleep on that front. It’s instead busy introducing characters, establishing relationships and making Alex do rock-climbing to prove she’s not a lesbian. Or something like that. My notes are a bit unclear on the point.

It has to be said, despite the presence of WWE’s Diamond Dallas Page among them, the AFF members are very much low-grade terrorists. There’s only three of the left, and I would not say smarts are their strong suit. As threats go, they’re lightweights. It was also a little disappointing how McGregor ends up needing to be rescued in the climax. While it’s an acceptable conclusion, tying up a dangling loose end, it does weaken her as a protagonist. There is some impressive bits of white-water action, and in generally, it feels more like a low-budget theatrical feature than a made for television one: its budget of $5 million certainly feels more than the typical nineties TVM. If my review of the third entry was scathing, I suspect it won’t take another ten years before I review the second.

Dir: Armand Mastroianni
Star: Mariel Hemingway, Doug Savant, Monica Keena, Gregory Harrison

Fighter’s Life

★★½
“Knocked down by the clichés”

If you fed an AI all the sports movies ever made, and then asked it to write a script, what you’d get is likely something close to this. Here’s a challenge: write down ten clichés you find in a film like this, then watch the movie (conveniently embedded below), and see how many show up. I’m willing to bet most of those on your list would be present here. The main saving grace is that the execution is done with a complete lack of self-awareness. It feels as if the writers genuinely had no clue they were treading a path which was more of a groove. Everyone involved in this is so earnest, it just about gets away with it.

Here’s the plot. Let’s count the clichés. Xia Yun (Xia) dreams of a career in MMA (#1). However, she’s stuck working in her family restaurant (#2), run by her father after her mother left them (#3). She gets a chance to enter a prestigious tournament (#4), the prize money for which could clear her father’s debts (#5). However, her trainer comes under pressure for Xia to throw a match (#6). Despite this, she reaches the semi-finals, where she suffers a setback (#7), losing to a Brazilian fighter. It’s subsequently revealed her opponent cheated (#8), giving our heroine the chance to win it all (#9), in front of her mother (#10). Oh, yeah, add a freebie: there might be a life-threatening illness involved at some point as well (#bonus).

The other issue is, there’s a lot of stuff outside the octagon to cram in, especially when the film is only seventy-two minutes long. There’s surprisingly little actual fighting in it: certainly more drama, and possibly even more training sequences, of one form or another. This is a bit of a shame, since Xia Jiao looks more convincing than the actresses in many a Hollywood film. Not least in her quick hands, which suggest she might be a fighter trained to act, rather than an actress trained to fight. Whether that’s true or not, I don’t know: if not, then a “well done” to Xia for making it look convincing. Or at least convincing enough to fool my (admittedly, untrained) eyes.

The brief running-time may work in the film’s favour, in that it can hardly be accused of outstaying its welcome. It’s technically solid, and though clearly smaller in scale, doesn’t look cheap. The components are in pace for a decent, quick-paced action film; it’s just that the makers don’t appear particularly interested in delivering one. They seem more interested in the dramatic elements: as noted above, those aspects are absolutely nothing you have not seen, many times before, and the execution does little to elevate them. A hat-tip to Denis for pointing me in the direction of this one: I’m always looking for suggestions, and it certainly wasn’t the worst I’ve seen – even this week. There’s just little here to merit a second viewing.

Dir: Huang Binhao
Star: Xia Jiao, Yu Shan Chuan, Bai Yao, Sarah Chen

The File, by Gary Born

Literary rating: ★★★
Kick-butt quotient: ☆☆☆

Not many novels come with a ringing endorsement from a former director of the CIA, but Gina Haspel calls this “A thoroughly enjoyable, engrossing thriller.” Argue with her, and she’ll send you an exploding cigar, or something. While it certainly isn’t bad, the rating above reflects its likely moderate appeal for readers here. A general audience might be more impressed, especially with regard to the second half, where the heroine becomes more of a passenger. Things begin at the very end of World War II with a flight out of Berlin carrying documents intended to secure the future of the Reich. It doesn’t reach its destination, crashing in the depths of the African jungle.

Almost eighty years later, a botanical expedition stumbles across the downed plane and its cargo. When word seeps out, various very interested parties converge on the Congo, intent on securing the contents by any means necessary. Surviving the initial onslaught is Sara West, daughter of the expedition’s head, who bails with the documents, and the parties in hot pursuit. In the jungle at least, Sara has more experience and proves eminently capable of turning the tables on her pursuers. After escaping the wilderness, she convinces one of the hunters, CIA agent Jeb Fisher, to change sides, and his assistance becomes increasingly valuable as they head through Africa, into Italy, and eventually to Zurich. There, they make a final stand, in the unlikely location of a venerable Swiss bank.

The above should hopefully explain why this feels like a book of two halves. I really enjoyed the first half, with Sara using all her knowledge, built on years of living in the jungle, to stay one step ahead of the opposition – or sneak up from behind on them. She rarely over-powers her enemies, relying more on stealth, wits and turning their own resources against them. It is still a bit of a stretch to imagine a young woman, untrained in combat, taking out a whole slew of Russian special forces. However, Born certainly sells the illusion well enough to work. The problems arise with the arrival of Jeb, not least the ease with which he disobeys orders to take Sara’s side.

Thereafter, he also becomes the main protagonist. While it makes sense that his skills would become more important outside of the jungle, it results in Sara being somewhat (though not entirely) sidelined. There’s also the almost inevitable romantic dalliance, and I feel that having a Jebina instead of Jeb, might have addressed that, and a lot of the problems I felt hampered the second half. It’s still a decent enough read on its own terms, building nicely towards the grandstand finale – although I can’t imagine even Swiss authorities taking so long to get to a hellacious firefight in downtown Zurich! But I feel it does not do Sara the justice she deserves, especially after the impressive heights reached earlier on.

Author: Gary Born
Publisher: Addison & Highsmith Publishers, available through Amazon, both as a paperback and an e-book
Standalone novel

Furies: Season one

★★★½
“Hell hath no Furies…”

Not to be mixed up with Furie, The Furies or even Furies – the last of which also showed up on Netflix recently. Confusion seems almost inevitable (and I’m not helping, by largely recycling the tagline for Furie). However, those three are all films – two Vietnamese, one Australian – while this is an eight episode TV series from France. It begins with Lyna Guerrab (El Arabi) living a fairly idyllic, and certainly well-heeled life, with no bigger issue than whether or not to marry her cop boyfriend Elie (Nadeau). Things get upended in no uncertain fashion, when her accountant father is assassinated. Turns out, he kept the books for certain criminal organizations, and someone wanted him very dead.

Lyna vows to find whoever was responsible for her father’s demise, and make them responsible. That opens up a whole can of worms, as she has to venture into the domain of the Parisian criminal underworld, which is far more expansive and influential than expected. To a degree, it feels like the system shown in the John Wick franchise, with six crime families, working in different areas, e.g. prostitution, robbery, etc. who govern things and make sure nobody does anything that would upset their highly lucrative apple-cart. As their collective enforcer is a woman, Selma (Fois), known as the Fury, a hereditary position, passed down the matriarchal line, and she has the skills to keep everyone else in line.

Or does she? Because as Lyna enters the game, it becomes apparent that someone is out to disturb the balance of the system. Coming under the Fury’s patronage, as a possible successor, may not be enough to save her from the war which is becoming increasingly inevitable. As well as John Wick, there are quite a few elements here which feel inspired by Luc Besson in one way or another: the world-weary assassin who takes on a feisty young apprentice, for example, could be straight out of Leon. The fight scenes are well-crafted, slick and hard-hitting: I vaguely recall action director Jude Poyer as part of the Eastern Heroes crew in London, back in the nineties, so nice to see him kicking professional ass.

It does sometimes feel too over-stuffed, trying to juggle too many threads and characters. The script solution to any problem seems to be, throw in another subplot. The makers also deserve a demerit for ending on a horrendous cliffhanger. The streaming service have made no announcement regarding a second series: the show seems to have done reasonably well, but Netflix gonna Netflix. If that doesn’t happen, you should whack off a full star, since the way it ends is definitely not satisfying. But there does remain a good deal here to admire. I particularly liked the performance of Foïs, who brings a lot of nuance to a character that initially seems one-dimensional. The extended duration allows her to develop, though all told, it might have been better as a two-hour self-contained Besson flick.

Creators: Cedric Nicolas-Troyan, Jean-Yves Arnaud, Yoann Legave
Star: Lina El Arabi, Marina Foïs, Mathieu Kassovitz, Jeremy Nadeau

Fighting Karma, by Reid Bracken

Literary rating: ★★★½
Kick-butt quotient: ☆☆½

This is a sequel to Saving Karma, also by Reid Bracken, and follows on from the events there. When we last saw heroine Bree Thomas, she had taken down, in spectacular fashion, the city belonging to Chinese business mogul Aslam Meng, which was a front for large-scale organ harvesting. At the end, she and her father, Cole, both discover that the other is not dead as was previously thought. Though there’s still quite a lot of road to cover before Cole and Bree will be re-united. That journey is the main topic of this second installment, together with continuing to fight against Meng’s sinister plans.

For – surprise! – the billionaire is not as dead as he seemed at the end of part one. He’s just moved on, though is still obsessed with the idea of extending his life past its natural span. That’s a process in which Bree will be playing a very important role. He is also engaged in a plan to mine rare-earth minerals from the ocean floor in the Andaman Sea, regardless of the ecological price. Hey, if it causes an earthquake, tsunami and swamps Burma, that’s just a bonus opportunity for expansion, right? But there’s dissent in the ranks, with his niece Jade looking to supplant her uncle as the head of the Meng Foundation. 

On its own, this would likely be considered a borderline entry for this site, because it’s as much Cole’s story as Bree’s, if not more so. It’s 35 pages or more before she so much as shows up, and then there’s a significant chunk where Bree is basically out of commission entirely. For good reason, to be sure, but it still diminishes the heroine action quotient. What perhaps pushes it over the necessary quota are the supporting characters. For beyond Bree, Jade makes for a strong and capable antagonist, and Cole also has a (sort of) sidekick, Tita, who ups the content in this department. Bree gets her work in, perhaps most memorably a spectacular escape on a Ducati from a cargo ship in to Macao.

There’s some good tech stuff in here too: if you’re familiar of the concept of “hard SF”, this could be described along the same lines as “hard action,” with a significant helping of gadgetry and cutting-edge undersea stuff which I liked. I must confess to slight eye-rolling when getting to the surprise at the end, because it reminded me of the Oscar Wilde quote: “To lose one parent may be regarded as a misfortune; to lose two, looks like carelessness.” I’m trusting the author will spin the wheel differently in the third volume which the revelation sets up. There is certainly enough scope that it shouldn’t be too taxing to do, and providing there’s a little more Bree on the menu, I’m looking forward to it.

Author: Reid Bracken
Publisher: Independently published, available through Amazon, both as a paperback and an e-book
Book 2 of 2 (so far) in the Bree Thomas Karma series. I received this copy in exchange for a honest review.

Fool Me Once

★★★½
“An elegant exercise in plate-spinning.”

Maya Stern (Keegan) is having a rough patch. A former helicopter pilot in the military, she was sent home and discharged under murky circumstances. While she was away, her sister was killed in what looks like a botched burglary, and not long after her return, husband Joe is also shot and killed in front of Maya, when they are walking in the park. But is everything what it seems? Because when checking the nanny-cam monitoring her young daughter, Maya sees a shocking site: her supposedly dead husband visiting the house. This kicks Maya into an unrelenting search for the truth, which will send her down a rabbit-hole and uncover a lot of sordid secrets, dating back decades.

I have to admire the script here, which takes an entire loom-ful of plot threads, and manages adeptly to keep them functioning, instead of collapsing into a Gordian knot. As well as all of Maya’s difficulties, there’s [deep breath]: the ongoing health issues of investigating officer, DC Marty McGreggor (Fetscher), who might or might not be corrupt; her nephew and niece discovering they have a half-brother; the supposed suicide of Joe’s brother decades previously; mysterious phone-calls from a video arcade; a dead body in a freezer; and the business shenanigans of Joe’s family, who run a pharmaceutical company under the watchful gaze of matriarch Judith Burkett (Lumley). I was genuinely impressed it all tied together by the end of the eighth episode.

Admittedly, the twists might prove to be excessive for some tastes, and I did spot the big one at the end before it arrived (it’s something I’ve seen in various forms a number of times elsewhere). But I enjoy the almost melodramatic approach, even if the relocation of the story from the United States to Britain required some twistiness around the topic of firearms. Keegan delivers a committed performance as Maya, who is far from perfect, yet relentless in pursuit of “justice” – and quotes used very advisedly there. I also loved seeing Lumley, who was my first celeb crush – longer ago than I like to think, back in her New Avengers days. Now 77 and still awesome, someone needs to make her a Dame, alongside Judi and Helen.

I was uncertain about whether or not this qualified here, but I think the final episode delivered the necessary amount of bad-assery from Maya. It does suffer from an unnecessary coda, set eighteen years (!) after the plot basically finished, and therefore presumably at some point in the future. Still no flying cars, unfortunately. I’ve not read the book on which this is based, but this is certainly much more engaging than the turgid Hulu mystery, Murder at the End of the World. I’d definitely not be averse to watching other adaptations of Harlan Coben work. Turns out this is the eighth made by Netflix, though the others are presumably Maya free, because… well, let’s just say “reasons”, and leave it at that!

Creator: Danny Brocklehurst
Star:  Michelle Keegan, Dino Fetscher, Joanna Lumley. Dänya Griver

Fear The Night

★★★
“Bows before bros.”

Director LaBute is best known around these parts for his ill-conceived remake of classic horror The Wicker Man, which is generally regarded as spectacularly bad,  and is probably best-known for spawning memes involving Nicolas Cage and bees. So expectations going into this were… not high, shall we say. On that basis, the three-star rating is something of a pleasant surprise, though most of the credit for this should got to its star, rather than the director. Tess (Q) is a veteran of the war in Iraq, who is struggling to reconnect to her two sisters. Rose is getting married, and is nice enough that Tess is willing to attend her bachelorette party at the family cabin, deep in the country. But Beth (Foster) is a straight-up bitch.

So Tess isn’t exactly having a good time. All the giggly gal-pals are not her idea of fun; between that and Beth’s sniping, Tess’s new-found sobriety is on thin ice. Such familial and mental health concerns are quickly rendered irrelevant, by the unexpected arrival of an arrow, right through the middle of one of the guests. Turns out a local group of drug dealers want inside the house, which up until the unexpected arrival of the bridal party, had been being used as a safe place to store their ill-gotten gains. All of a sudden, it’s less about cheeky appetizers, getting tipsy and male strippers, more like a no-holds barred fight to try and survive the night.

This isn’t exactly subtle: LaBute seems fairly obsessed with the battle between the sexes (something certainly an element of The Wicker Man), though here it’s more of an all-out war. Fortunately for the fairer sex: Tess is far and away the most competent of anyone here. This is established in an early, nice scene at a gas station where the women are being hassled by three locals. While Tess doesn’t exactly de-escalate the situation, it does a good job of establishing her background, and zero tolerance for anyone who disrespects her or the military. Of course, being Maggie Q, it’s no surprise when she can deliver, despite being severely outweighed by her opponents, in a crisp, crunchy manner that does not mess around.

Less effective are… Well, everyone else, to be honest. The villains, in particular, are a fairly mediocre bunch, who go down surprisingly easy, even when they end up going hand-to-hand with a bridesmaid rather than an annoyed veteran. For example, Mia (Crovatin) is chosen to try to make a break for a nearby house for help, having been a track athlete as school. When cornered by one of the men, the resulting bludgeoning is delivered from her end. Outside of their bows, the limited threat they present here definitely stops this from being all it can be, and the ending is more of a damp squid [on review, I’m letting that typo stand…] than Tess deserves to get. But Q is entertaining as ever, and helps overcome what sometimes feel like unnecessary attempts at social commentary.

Dir: Neil LaBute
Star: Maggie Q, Kat Foster, Travis Hammer, Gia Crovatin 

Furies

★★★½
“If you don’t want men to push you around, be stronger than them.”

This is a prequel of sorts to Furie, partly telling the story of how its villainess, Thanh Soi (Toc) came to be (also: not to be confused with The Furies). However, it’s more the saga of Bi (Quynh), the daughter of a rural prostitute who makes her way to the city seeking her fortune.  There, she joins Thanh and Hong (Rima) under the protection of the Svengali-like Jacqueline (Ngô), who trains and indoctrinates them towards their eventual mission. This involves bringing down the leader of the city’s underworld, who has been exploiting women for years, in addition to other unsavoury activities. 

He goes by the descriptive and fairly accurate name of Mad Dog Hai, and his underlings are little more sane. When the trio of women make their presence felt by sabotaging a drug deal, Hai is not happy, and from there, it’s an escalating series of tit-for-tat attacks. We also discover that Jacqueline’s motives are not purely altruistic, being considerably more personal then she originally admits. There’s an argument, which the movie does not explicitly address, that she’s exploiting the three young women herself, albeit in a different way from Mad Dog. Rather than physical abuse (of which the film is certainly not short), hers is a psychological approach, taking their anger against men and focusing it against Hai, as well as sharpening it to a particularly fine point.

At 109 minutes, it’s arguably a little too long, and the film generally works better in action, then when pushing the more melodramatic elements. The makeover montage of Bi, for example, is superfluous and too obvious. If the editing during the fights is perhaps slightly too frenetic, it isn’t too much of a problem. This is more than made up for by the high-impact nature of the combat, with all three characters (and Jacqueline, by the end), going full force into an endless slew of faceless minions, thrown at them by Hai. There’s also a motorcycle chase/fight, apparently inspired by John Wick 3, though the execution is painfully green-screen. Would it have hurt the makers at least to get a wind machine, and create the illusion of movement?

When sticking to the purely physical stuff though, it’s mostly effective stuff. Nothing ground-breaking, admittedly, yet there are times when sticking to the basics and keeping things simple is probably for the best. It’s not exactly an advertisement for Vietnam: Chris turned to me when it finished, and firmly crossed the country off her holiday destination list. The city does seem a bit of a sewer, to put it mildly, though I must say the cinematography here is all pastel neon colours, and nicely executed. It at least helps lightly paper over the wholesale unpleasantness which is going on. I’m fairly sure this cost a fraction of bigger Netflix originals like Extraction II, yet for entertainment value, it’s not so far behind.

Dir: Ngô Thanh Vân
Star: Dong Anh Quynh, Toc Tien, Rima Thanh Vy, Ngô Thanh Vân