There’s a smoke shop in North Philly peddling recreational drugs across the street from a daycare. A West Philly storefront that sells loose cigarettes on a residential block. A convenience store in Spring Garden that advertises urine to people looking to pass a drug test.
These are among the so-called nuisance businesses that City Council members and neighborhood association leaders cited Monday as lawmakers advanced legislation to make it easier for the city to shut down stores that sell cannabis and tobacco products without licenses.
And legislators said their next target could be the landlords who rent space to those businesses.
“We have to work with our city departments and our state partners to clamp down on these businesses,” said City Council Majority Leader Katherine Gilmore Richardson, who represents the city at-large. “We’re just being inundated.”
Members of Council’s Committee on Licenses and Inspections passed two bills Monday that city officials say seek to close loopholes store owners exploit to avoid being cited for failing to obtain proper permits.
In introducing the legislation earlier this year, Gilmore Richardson cited an Inquirer report about Pennsylvania’s unregulated hemp stores, which sell products advertised as legal hemp that are often black market cannabis or contaminated with illicit toxins.
One bill makes it easier for the city to shut down nuisance businesses by removing language that classifies some violations as criminal matters, requiring that the police investigate them as crimes rather than civil violations that are quicker to adjudicate.
The second piece of legislation makes it illegal for businesses to essentially reorganize under a new name but conduct the same operations as a means of evading enforcement.
Both pieces of legislation could come up for a full vote in the Democratic-dominated City Council in the coming weeks. Members of Mayor Cherelle L. Parker’s administration testified in favor of them, meaning the mayor is likely to sign both.
A smoke shop in South Philadelphia.
Neighborhood association leaders also testified Monday in favor of the changes, but several said more aggressive enforcement is needed. They said smoke shops in particular have popped up throughout their commercial corridors, as have convenience stores that don’t even have licenses to operate as businesses, let alone sell recreational drugs.
“We’ve seen firsthand the selling of illegal drug paraphernalia and [loose cigarettes], many of which children walk past in order to get to the candy bars and seniors walk past to get to the milk,” said Heather Miller, of the Lawncrest Community Association. “We need to address this.”
Elaine Petrossian, a Democratic ward leader in Center City and a community activist, called for “much” higher fines and penalties for landlords. She cited progress the municipal government has made in New York City, where authorities cracked down on building owners who knowingly rented space to tenants selling cannabis or tobacco without licenses to do so.
Several lawmakers said they’d support a similar approach. Councilmember Mark Squilla, who represents a district that spans from South Philadelphia to Kensington, said landlords must be held “more accountable.”
“If they had some skin in the game, maybe they’d think twice about renting to an illegal operation,” he said.
Councilmember Jamie Gauthier, who represents parts of West Philadelphia, agreed. She said she recently attempted to meet with a building owner who rents space to a problematic smoke shop in her district, but was rebuffed.
“He was like, ‘These people pay me rent, and that’s the extent to which I basically care,’” Gauthier said. “We need something that forces property owners to be more accountable than that, because neighbors are suffering.”
Staff writers Max Marin and Ryan W. Briggs contributed to this article.
The world’s most-visited museum was closed Monday following a professional heist that resulted in the theft of priceless jewels. Within minutes, thieves entered and exited the Louvre on Sunday, taking eight treasures.
The result? One of the highest-profile museum thefts in living memory amid a climate where museum staffs — worldwide, not just at the Louvre — are complaining about crowding, thin staffing, high turnover, and strained security.
Here’s what we know so far.
How did the Louvre heist happen?
Within minutes, thieves rode up a basket lift outside the Louvre’s facade, forced open a window, smashed display cases, and fled with priceless Napoleonic jewels, officials said.
The heist took place on Sunday, only 30 minutes after opening, with visitors already inside.
The theft took four minutes inside the building and less than eight in total, according to French Culture Minister Rachida Dati, who called it a “professional” operation.
“They went straight to the display windows,” Dati said. “They knew exactly what they wanted. They were very efficient.”
Sunday’s theft focused on the gilded Apollo Gallery, where the crown jewels are displayed. Alarms brought Louvre agents to the room, forcing the intruders to bolt on motorbikes, but the robbery was already over.
It’s unclear how many people took part in the theft and whether they had inside assistance. French media reported there were four perpetrators, including two dressed as construction workers. Authorities have not commented on the specifics.
What was taken from the Louvre?
Eight pieces of “priceless” jewels were stolen from the Louvre in Paris. Here is what they were.
Eight objects were taken, according to officials:
A sapphire diadem, necklace, and single earring from a matching set linked to 19th-century French queens Marie-Amélie and Hortense.
An emerald necklace and earrings from the matching set of Empress Marie-Louise, Napoleon Bonaparte’s second wife.
A reliquary brooch.
Empress Eugénie’s diadem and her large corsage-bow brooch, a prized 19th-century imperial ensemble.
A ninth object, the emerald-set imperial crown of Napoleon III’s wife, Empress Eugénie, was also taken but apparently dropped by the thieves. The crown, with more than 1,300 diamonds, was damaged but recovered outside the museum.
All of the items are considered priceless, though officials have not disclosed an overall estimate.
What will happen to the stolen jewels?
The Louvre has been closed since the robbery on Sunday morning for the investigation.
Experts say the initial hours after a heist are critical before the scent grows colder and thieves have more time to dispose of the jewels.
The big concern is that the thieves are motivated by commodity vs. art, and will scrap the priceless works for sale on the black market, breaking the pieces for their stones and melting down the precious metals. In doing so, the thieves can make more high-ticket sales while remaining undetected.
Has this ever happened before at the Louvre?
According to National Geographic, the Louvre has a long history of bold heists — but it’s been a while until now.
In 1911, the Mona Lisa — then a lesser-known piece by Leonardo da Vinci — was taken by Vincenzo Peruggia, a former employee dressed in his old work uniform. No one noticed it was missing for over 24 hours. The painting was recovered two years later after Peruggia tried to sell it to another museum.
In 1940, a portion of the Louvre’s collection was looted by occupying Nazis, though the museum’s director had already hidden most of its collection in a safe house off-site.
There was the 1966 theft of antique jewelry, which was being transported back to France from a loan to a Virginia museum. Those jewels were recovered after being found in New York inside a grocery bag. A decade later, one group of thieves stole a Flemish painting, and months after that, another group stole French King Charles X’s jeweled sword. The sword is still missing.
The most recent string of heists occurred in the 1990s. In 1990, thieves cut a Renoir painting from its frame in broad daylight and also took ancient Roman jewelry and other paintings. In 1995, two pieces — a painting and a battle ax from a 17th-century bronze sculpture — were stolen. Finally, in 1998, a Camille Corot painting was cut from its frame and taken. It hasn’t been recovered.
What about in Philly? Any heists?
Yep. Philly-area museums have seen their fair share of art thefts over the years.
Dating back to the 1980s, several thefts or alleged thefts have occurred across the Philadelphia Art Museum, Rodin Museum, Penn Museum, and more, according to Inquirer archives.
Various thefts include a gold saw from Iraq and a 19th-century Chinese crystal ball taken from the Penn Museum in 1981 and 1988, a painting taken during a Philadelphia Art Museum after-hours party in 1984, and a bronze sculpture from the Rodin Museum in 1988 during a gunpoint robbery. The sculpture was recovered shortly afterward, and the alleged robber was arrested and charged. The crystal ball was also recovered.
There’s also Frank Waxman, the Philly-based doctor who authorities said secretly amassed the largest known private collection of stolen art: about 150 pieces worth more than $2 million. The FBI raided his Rittenhouse condo in 1982 to find Rodins, Picassos, and more. Due to the statute of limitations surrounding his thefts, he was only convicted of taking eight pieces and served eight months in prison.
In 2003, the Barnes Foundation said hundreds of items were missing from its collection, including a piece by Henri Matisse, a Jean Renoir ceramic vase, a mahogany Steinway piano, and historic recordings. It’s unclear whether the items were stolen or simply unaccounted for. No formal large-scale investigation took place.
There was also an incident in 2017 where Michael Rohana, who was attending an after-hours ugly sweater party at the Franklin Institute, broke the thumb off a life-size Chinese terracotta warrior statue.
Rohana described the incident as a “drunken mistake” and returned the thumb, which he had taken home. Still, it caused international turmoil, with Chinese officials accusing the Franklin Institute of carelessness with the artifact. The statue, which is called “The Cavalryman,” is insured for $4.5 million. Rohana went to court in 2019, eventually pleading guilty to a misdemeanor charge in 2023. He was sentenced to five years’ probation, a $5,000 fine, and community service.
Thomas Gavin admitted to targeting dozens of museums up and down the East Coast, taking valuable artifacts sometimes unnoticed for years. The Hershey Museum and Pennsylvania Farm Museum in Landis, Lancaster County, were among some of the museums impacted. Gavin’s crimeswent cold for so long that the statute of limitations expired for many, leading him to only serve a day in prison for trying to sell a historic rifle.
What does the jewel heist mean for museums’ futures?
The latest Louvre heist comes amid a tense time for museums worldwide.
Following the height of the COVID-19 pandemic, museums have been working to balance mass tourism, stretched-thin staff, and security upgrades.
Locally, the Philadelphia Art Museum and its employees reached a settlement last year after a yearlong dispute over pay raises called for in their 2022 labor contract and a nearly three-week strike.
At the Louvre, a June staff walkout over frustrations with overcrowding and chronic understaffing led to a delayed opening. Unions say mass tourism leaves too few eyes on too many rooms and creates pressure points where construction zones, freight routes, and visitor flows meet.
Officials say security updates are underway at the Louvre as part of an $800 million modernization plan. But critics say the measures are too little, too late.
MEXICO CITY – The Trump administration’s justification for blowing up suspected drug traffickers off the Venezuelan coast has been clear and consistent: These people aren’t just criminals; they’re “narco-terrorists” smuggling a “deadly weapon poisoning Americans” at the behest of terrorist organizations.
“We take them out,” Trump told the nation’s three- and four-star generals and admirals last month. “Every boat kills 25,000 on average – some people say more. You see these boats, they’re stacked up with bags of white powder that’s mostly fentanyl and other drugs, too.”
Claiming the power to summarily kill traffickers as though they’re enemy troops, Trump has authorized the U.S. military to strike at least six speedboats the administration has deemed suspicious, killing dozens of people since the beginning of September. At least half of the strikes and 21 of the killings, locals say, have transpired in the waters between Venezuela and Trinidad and Tobago – nations so close that on clear days they’re within eyesight of each other.
But records and interviews with 20 people familiar with the route or the strikes, including current and former U.S. and international officials, contradict the administration’s claims. The passage, they said,is not ordinarily used to traffic synthetic opioids such as fentanyl, present in 69 percent of drug overdose deaths last year. Nor are the drugs typically headed for the United States.
Trinidad and Tobago, a Caribbean nation more than 1,000 miles south and 1,200 miles east of Miami, is both a destination market for marijuana and a transshipment point for South American cocaine bound for West Africa and Europe, according to U.S. officials, Trinidadian police and independent analysts. The fentanyl seized in the United States, in contrast, is typically manufactured in Mexico using precursors from China and smuggled in through the land border, most often by U.S. citizens.
The military strikes are unlikely, as a result, to cut overdose deaths in the United States, officials say – but it has brought U.S. forces into striking distance of Venezuelan President Nicolás Maduro.Trump has accused the authoritarian socialist, who claimed reelection last year despite ballot audits showing he lost the vote, of leading the Venezuela gang Tren de Aragua to push lethal drugs into America.
“When I saw [an internal document on the strikes],” a senior U.S. national security official said, “I immediately thought, ‘This isn’t about terrorists. This is about Venezuela and regime change.’ But there was no information about what it was really about.”
The official, like others quoted in this report, spoke on the condition of anonymity to provide his candid assessment.
The White House declined to share evidence to support the claims that Trump has used to justify the strikes. A spokeswoman defended the killings as necessary to protect Americans.
“All of these decisive strikes have been against designated narco-terrorists bringing deadly poison to our shores,” spokeswoman Anna Kelly said. “The president will continue to use every element of American power to stop drugs from flooding into our country and to bring those responsible to justice.”
Two family members of the 11 men killed in September in the first attack acknowledged by Trump did not deny that the men aboard had been taking marijuana and cocaine from Venezuela to Trinidad. But they said Trump’s allegation in his announcement was inaccurate that they’d worked for the Venezuelan gang Tren de Aragua.
“I knew them all,” said one of the family members, who spoke on the condition of anonymity for fear of retribution. “None of them had anything to do with Tren de Aragua. They were fishermen who were looking for a better life” by smuggling contraband.
On Tuesday, Trump said, a new strike had killed“six male narco-terrorists” off the Venezuelan coast. That afternoon, one mother in the Trinidadian community of Las Cuevas received a call from her brother, a fisherman. Her son Chad Joseph, the second of her six children, had been killed in the explosion.
Speaking by phone Thursday morning, Leonore Burnley was furious. Her son had been deprived a trial. And she’d been deprived of any chance of closure.
“You can’t get the body to bury it,” she said.
Joseph had spent the last three months in Venezuela working odd jobs, Burnley said. He had written her recently to say he would be returning home.
She called Trump’s claim he had been involved in trafficking drugs a lie.
“They are judging him wrong,” she said. “He was no drug dealer. Chad was a good boy, anything you want, he would help; he was a loving child.”
“Twenty-six years he have,” she said.
Claiming the power to summarily kill traffickers as though they’re enemy troops, Trump has authorized the U.S. military to strike at least six speedboats the administration has deemed suspicious, killing dozens of people since the beginning of September.
How cocaine courses through Venezuela
In recent years, drug cartels in Colombia and other South American nations have supercharged cocaine production. The rush to bring it to market – largely the United States and Europe, but increasingly West Africa – has transformed the continent’s criminal landscape, fueling the rise of new transnational gangs and threatening weaker national governments with limited power of state.
Venezuela, too, has been swept into the boom. Economically battered by years of socialist mismanagement and punishing international sanctions, a nation that was once Latin America’s wealthiest has become increasingly involved in the trade. Along its border with Colombia, cocaine is now produced for sale and shipment abroad.
U.S. federal prosecutors in March 2020 accused senior government officials in the Maduro regime, including Maduro himself, of leading the Cártel de Los Soles – “Cartel of the Suns” – a criminal networkthat extorts drug trafficking groups and controls routes and product itself.
Venezuela, U.S. investigators say, is now a narco free-for-all filled with armed groups from throughout Latin America.
“The Mexicans are there,” one former Drug Enforcement Administration agent said. “The Colombians are there, sometimes on behalf of the Mexicans. Sometimes the Hondurans and Guatemalans have guys there, too.”
Most of the South American cocaine bound for North America flows through the Pacific, but some does depart Venezuela through the Caribbean, according to U.S. officials and analysts who track drug routes. Much of it courses overland through the western states of Zulia and Falcón before shipping northward to Puerto Rico, the U.S. Virgin Islands and the Dominican Republic. Some travels by air, departing clandestine airstrips in Maracaibo or Apure state for Central America and onward to Mexico and the United States.
It’s less common, investigators say, to ship U.S.-bound cocaine northeast into the Sucre peninsula and across the narrow Bocas del Dragón channel to Trinidad – the route the administration has targeted. Trinidad is used far more frequently as a gateway to Europe. Spanish authorities seized 1.65 tons of cocaine that had transited through the island, the State Department reported in 2024. Portuguese authorities in June recovered 1.66 tons of cocaine that traversed the same route.
“When you look at a map, countries like Trinidad and Tobago and Suriname are used as transshipment points of massive amounts of cocaine from Colombia into Venezuela [and then onward] to West Africa and Europe,” a former senior U.S. security official said. He added that routes may change based on pressure.
One recently retired senior Trinidadian police official, asked whether Sucre traffickers were bringing drugs intended for the United States, chuckled.
“Why would they use Trinidad and Tobago to transport drugs to the United States, when you have Colombia and Mexico and all of these other places that are closer?”
The waters between Sucre and Trinidad
The Sucre peninsula, known for its paradisiacal beaches and green-thatched mountains, has always been poor. But its fortunes turned decidedly for the worse in recent years, as the economy melted down and the state slipped into lawlessness.
With few opportunities to work, fishermen turned to the smuggling route that has long tethered Sucre to Trinidad, a half-hour boat ride away.
The former senior Trinidadian police official has investigated the route since 1989. It has historically carried manykinds of contraband: guns, cigarettes, alcohol, honey, exotic animals and people. But in recent years, as more drugs poured into Venezuela, it began to be used as a route to bring over marijuana and cocaine.
“It’s 80 percent marijuana,” said one Trinidad criminologist who has studied seizure data. “Cocaine is a much, much smaller amount.”
While Tren de Aragua has had a presence in Sucre, locals and drug trafficking analysts say it doesn’t control the trade. The drugs are instead moved by other local gangs.
“We have found no links between Tren de Aragua and multinational smugglers,” said Jeremy McDermott, co-founder of Insight Crime, whose team recently visited the region. “There was an attempt by them to penetrate Sucre, but they were ejected by local gangs.”
“The evidence,” he added, “does not support the claims” by the Trump administration.
One man who grew up in San Juan de Unare along the Sucre coast, but moved to Caracas after his community plunged into poverty, said his cousin Reibys Gomez was among the first fishermen to take drugs to Trinidad. He said his cousin had a young family to support.
“People are in need,” he said. “They live off fishing and hunting, and that’s it.”
Now Reibys is dead, and the man said his family has “deteriorated” in San Juan de Unare – unable to collect his body and haunted by questions over why the U.S. military killed him.
“They were going to Trinidad,” he said. “They weren’t going to the United States.”
After graduating law school in the 1950s, Joseph H. Rodriguez was told he wouldn’t go far and should consider changing his last name.
He ignored that advice and went on to becomeNew Jersey’s first Hispanic federal judge — and its longest serving. He recently retired after 40 years as a jurist.
He was among the first Hispanic lawyers in Camden, and New Jersey as a whole. He also served asthe state’s public defender and advocate.
Rodriguez mentored countless aspiring lawyers and judges, and as his stature rose nationally he never forgot his humble roots. Associates dubbed him“a gentle giant.”
“He served with humility, grace, wisdom, and humor,” said Chief U.S. District Judge Renee M. Bumb, who met Rodriguez as a federal prosecutor. “We all looked up to him.”
U.S. District Judge Joseph H. Rodriguez, 94, sits for an interview at his daughter’s law office in Cherry Hill, N.J. U.S. District Judge Joseph H. Rodriguez, 94, was the first Hispanic federal judge in New Jersey. His father, Mario Rodriguez, survived the 1918 sinking of the SS Carolina.
Rodriguez became a senior judgein 1998,which reduced his workload, but he continued to preside over trials and write opinions, filing his last decision about three weeks before he retired.
‘I just wanted to slip into the shadows’
Rodriguez decided last month to quietly retire. He left the Mitchell Cohen Courthouse in downtown Camden after an emotional send-off with fellow judges and friends.
“I just wanted to slip into the shadows.” hesaid in a recent interview. “What I’ve done some people were in favor of it, some were not. It’s there as a public record. I stand by it.”
Rodriguez was born in 1930 in Camden and grew up a few blocks from the courthouse where he would later preside.
His father, Mario, a Cuban national raised in Puerto Rico, was aboard the passenger ship SS Carolina when it was torpedoed by a German U-boat off the coast of New Jersey in June 1918.
The New York Times front page story about the sinking of the SS Carolina in 1918. U.S. District Judge Joseph H. Rodriguez has a copy of the paper because his father survived the sinking.
The Germans targeted six ships on what was known as Black Sunday. The Carolina sunk, and Mario Rodriguez spent two days on a lifeboat before swimming ashore in Atlantic City.
Rodriguez would later have a full circle moment, when scuba divers made a claim in federal court to salvage the vessel. He said hegranted sole rights after the divers presented a brass “C” from the ship’s name on the stern and a china dinner plate with its logo.
Mario raised four sons and a daughter in Camdenwith his wife, Carmen, and worked in a tobacco factory.
The couple, among the first Hispanic families to settle in Camden, was highly respected in the community, and often served as interpreters and gave advice to other Hispanic residents.
As a youngster, Rodriguez recalled hearing his father recite the U.S. Constitution to study to become a citizen, which he did in 1939 — in the same courtroom where his son later became a judge.
The memory stuck with Rodriguez and became a guiding principle in his legal career. His parents and sister were killed in a car accident in 1973.
When he landed his first job at a real estate firm, the agent urged Rodriguez to change his name to Joe Roddy.
“I was told with that name I could never go far,” he recalled. “I would never change my name.”
An undated Army photograph of Joseph H. Rodriguez, now 94, and his wedding photo.
Rodriguez was hired as an attorney at Brown & Connery, one of the oldest law firms in South Jersey. He earned a reputation as a tough trial lawyer and specialized in medical malpractice. He later became the first Hispanic president of the New Jersey Bar Association.
Rodriguez was pressed into action when unrest erupted in Camden in 1971, after a Hispanic man was killed while in police custody. The Hispanic community demanded an investigation. A protest turned into days of rioting in front of City Hall.
Then the only known Hispanic lawyer in Camden, Rodriguez met with then-Mayor Joe Nardi to negotiate a settlement. The police officers were eventually indicted by a grand jury, but acquitted.
The Courier-Post edition pictures a riot at Roosevelt Plaza at Camden City Hall Aug. 20, 1971.
“He was the calm in the eye of the storm,” said Gualberto “Gil” Medina, who organized a student protest at the time. “He made it clear that the cause was just but the means had to be tempered.”
Rodriguez eventually left Camden for the suburbs but remained connected to the city. He was one of the original organizers of Camden’s San Juan Bautista Parade.
“He became the respected patriarch of the Hispanic community,” said Medina.
`A public conscience’
Rodriguez advocated in manyprecedent-setting cases for New Jersey’s disenfranchised residents. They includea landmark product liability case that resulted in the state Supreme Court ruling in 1965 that a mass builder could be held liable for a defective hot water system that severely scalded a child.
As chairman of Camden Legal Services, he brought a lawsuit that resulted in a requirement for municipal judges to appoint a lawyer to represent defendants facing possible jail time. Another case established tenant rights.
Then-Gov. William T. Cahill named Rodriguez chairman of the State Board of Higher Education in 1972, and later chairman of the State Commission of Investigation, where he investigated organized crime.
Although Rodriguez wasa Democrat, former Republican Gov. Thomas Kean appointed him as the state’s Public Advocate in 1982.
In that role, Rodriguez filed the complaint that lead to Mount Laurel doctrine, through which the New Jersey Supreme Court outlawed local discriminatory zoning regulations and required municipalities to provide affordable housing.
“He always had a public conscience,” said Carl D. Poplar, a lawyer and longtime friend.
Judge Joseph H. Rodriguez, 94, posed for a portrait with his daughter Lisa Rodriguez at her law office in Cherry Hill this month.
Rodriguez also was involved in the landmark right-to-die case of Karen Ann Quinlan, whose parents waged a fight to have her removed from a respirator.
“We didn’t go around looking for trouble. If it had to be done and people had to be helped, you help them,” Rodriguez said.
President Ronald Reagan appointed Rodriguez to the federal bench in 1985.
Rodriguez was known as an easygoing andfair judge. U.S. Supreme Court Chief Justice William Rehnquist dispatched Rodriguez to Montgomery, Ala., in 1999 to preside over a desegregation case.
“It was like going to heaven working for him,” said Carl Nami, his court reporter for 18 years. “I don’t how I was so fortunate.”
Nicknamed “Joe Rod,” Rodriguez was a role model for other judges, said retired U.S. Magistrate Joel B. Rosen. He could always be counted on for jokes and bad puns at their weekly lunch gatherings, he said.
“He’s always been a gentleman and what in my view what a judge should be: knowledgeable and fair,” Rosen said.
Said Robert Kugler, another retired federal judge: “He kept the courthouse going.” The jury room was named in honor of Rodriguez.
“His judicial demeanor and temperament are unrivaled,” said civil rights attorney Stanley O. King. “The likes of him I don’t know if can ever be replaced or replicated.”
U.S. District Judge Joseph H. Rodriguez performed the marriage ceremony of his granddaughter Taylor Jacobs to Cole Sutliff. It was held in the same courtroom where Rodriguez presided in federal court in Camden for years.
Before stepping down, Rodriguez performed a final act as a sitting judge. He performed the wedding ceremony for a granddaughter, Taylor, in his courtroom. He also recently married a grandson, Quinn, in a beach ceremony.
Rodriguez said he plans to spend more time with his wife of 71 years, Barbara, and his four daughters, 10 grandchildren, and seven great-children. He enjoys cooking for them, especially paella, his specialty dish.
U.S. District Judge Joseph H. Rodriguez performed the marriage ceremony of his grandson Quinn Jacobs and Brittany Peters at the Jersey Shore.
Asked what he would like his legacy to be, Rodriguez choked back tears. His daughter, Lisa Rodriguez, an attorney with Dilworth Paxson, passed him a tissue.
“You can’t do it all, but you should never stop trying,” he said. “If everyone backs away you’re just giving up.”
The remainder of Cheltenham High’s football season has been canceled as officials deepen an investigation into alleged hazing by team members, which the school district said involves “inappropriate physical contact.”
Superintendent Brian Scriven told families late Sunday night in an email that officials made the call “with a deep sense of regret” as the district extends its investigation.
“We do not condone or tolerate hazing or abuse of any kind in our sports programs or in our schools,” Scriven wrote. “It is our duty and obligation to protect and prioritize student safety and well being, even when we know that our decisions may come with consequences and disappointment.”
Scriven canceled Friday’s home football game — the team was supposed to play Bristol Township’s Harry S. Truman High School at nearby Springfield High, as Cheltenham’s field was unavailable — hours before the game was to begin. At that time, he called it a temporary suspension of the season.
The decision caused shock and anger. Senior Night was scheduled, with recognition ceremonies planned for athletes and members of the cheerleading, pep band, color guard, and drum line programs.
“We are very sensitive to the emotions of those most directly impacted,” Scriven wrote.
Only one game remained on the schedule — Friday at Quakertown.
Officials learned of multiple incidents
News of the alleged hazing came three weeks ago, Scriven said, when someone reported that a student was assaulted in the football locker room.
Officials alerted ChildLine, the state’s abuse-reporting system, which they are legally mandated to notify when alleged abuse happens. They also notified Cheltenham police, which began its own investigation.
At the time, they believed the incident to be isolated, Scriven said in the letter.
But as the investigation developed, “additional information came to light indicating that hazing and/or inappropriate physical conduct may be occurring more broadly in the program. Last Friday, we received additional information, including reports indicating multiple team members engaged in hazing through physical contact.”
That’s when officials decided to temporarily suspend the season and investigate further. The district began working with an external consultant over the weekend, Scriven said, and the investigation remains ongoing.
The police investigation is alsoongoing, said Scriven, who urged anyone with information to contact Cheltenham police. He said the district is cooperating with police and has also been in touch with the Montgomery County District Attorney’s Office.
“Hazing is a very serious and significant issue in school athletic programs and can lead to criminal charges,” Scriven wrote. “We ask for continued patience and respect for our obligation to thoroughly investigate these allegations. We also ask that our school community not rush to judgment against any of our student-athletes or coaches.”
Saving Senior Night
Senior Night will be recreated in some ways, Scriven said — for those football players, cheerleaders, and members of the pep band, drum line, and color guard uninvolved in the alleged hazing.
“We will do our very best to involve students as we develop new plans to honor our seniors,” Scriven said.
“As a parent, educator, and former coach and student-athlete, I am troubled by this matter on numerous levels,” Scriven said. “This decision is not one that was made lightly. I will continue to communicate as openly as possible as we work through this in the coming days and weeks.
“We must move forward as a district and school community committed to student safety and respect, and do all we can to uphold those values.”
The Philadelphia region is once again back in the spotlight at HBO, this time courtesy of Task, from the makers of Mare of Easttown. The show was spotted last year filming everywhere from Center City to Coatesville.
And, boy, did we make the cut.
story continues after advertisement
With the show underway, it's clear that the Philadelphia region is integral to Task. Here, we'll be rounding up all the local spots — sans private homes — we can identify in Task, updating each Sunday after episodes air. Check out the map below to see what locations wound up in the show, and why the series takes us there.
Loading…
Coatesville
High Bridge
This instantly recognizable Coatesville landmark serves as the location for where County Chief Dorsey (Raphael Sbarge) appears to seal Grasso's (Fabien Frankel) fate with the Dark Hearts.
Media
Delaware County Courthouse and Government Center
Courtesy of Delaware County Government Center and Courthouse
Here, Tom (Mark Ruffalo) gives a touching family statement at a court hearing for his son, Ethan (Andrew Russel), in what is the emotional climax of the series. As The Inquirer reported last year, the production took over Courtroom 15 for filming.
West Chester
Stroud Preserve
David Swanson / Staff Photographer
The last we see of Maeve (Emilia Jones) in the series, she is driving past Stroud Preserve's Creek Road parking lot with her cousins in tow. Where they're heading is anybody's guess, but we hope it's somewhere with fewer Dark Hearts members.
story continues after advertisement
That was every location we could spot in this week’s episode. Let us know below if we missed anything.
Otherwise, explore the map of all locations featured to date. Tap onHover overa pin to learn more.
What did we miss?
Did you spot any locations in this week’s episode that we missed? Let us know.
That's it for Task. But rest assured, if HBO decides to focus on Philly again, we'll be back. Until then, see youse later.
Staff Contributors
Design and Development: Sam Morris
Reporting: Nick Vadala
Editing: Emily Babay
First seen in episode
(()=>{var gr=Object.create;var et=Object.defineProperty;var mr=Object.getOwnPropertyDescriptor;var yr=Object.getOwnPropertyNames;var wr=Object.getPrototypeOf,br=Object.prototype.hasOwnProperty;var tt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Mr=(e,t,r,n)=>{if(t&&typeof t==”object”||typeof t==”function”)for(let i of yr(t))!br.call(e,i)&&i!==r&&et(e,i,{get:()=>t[i],enumerable:!(n=mr(t,i))||n.enumerable});return e};var Sr=(e,t,r)=>(r=e!=null?gr(wr(e)):{},Mr(t||!e||!e.__esModule?et(r,”default”,{value:e,enumerable:!0}):r,e));var dt=tt(U=>{var Lr={0:”Jan.”,1:”Feb.”,2:”March”,3:”April”,4:”May”,5:”June”,6:”July”,7:”Aug.”,8:”Sept.”,9:”Oct.”,10:”Nov.”,11:”Dec.”};function lt(e){return e===void 0&&(e=new Date),Lr[e.getMonth()]}var Pr={0:”Jan”,1:”Feb”,2:”Mar”,3:”Apr”,4:”May”,5:”Jun”,6:”Jul”,7:”Aug”,8:”Sep”,9:”Oct”,10:”Nov”,11:”Dec”};function ut(e){return e===void 0&&(e=new Date),Pr[e.getMonth()]}function ne(e){return e==null}function ft(e){return typeof e==”number”&&isFinite(e)}function Se(e){return ft(e)&&Math.floor(e)===e}var kr=[“one”,”two”,”three”,”four”,”five”,”six”,”seven”,”eight”,”nine”],Dr=[“million”,”billion”,”trillion”,”quadrillion”,”quintillion”,”sextillion”,”septillion”,”octillion”,”nonillion”,”decillion”],ct=[“th”,”st”,”nd”,”rd”,”th”,”th”,”th”,”th”,”th”,”th”],Ar=[11,12,13];function ht(e){if(ne(e))return””;var t=+e;return Se(t)?Ar.indexOf(t%100)>-1?ct[0]:ct[t%10]:””}var Er=[“first”,”second”,”third”,”fourth”,”fifth”,”sixth”,”seventh”,”eighth”,”ninth”],$r=new RegExp(/s+([^s]*)s*$/);U.apdate=function(e){return e===void 0&&(e=new Date),lt(e)+” “+e.getDate()+”, “+e.getFullYear()},U.apdatetab=function(e){return e===void 0&&(e=new Date),ut(e)+” “+e.getDate()+”, “+e.getFullYear()},U.apmonth=lt,U.apmonthtab=ut,U.apnumber=function(e){if(ne(e))return””;var t=+e;return Se(t)?t=10?e.toString():kr[t-1]:e.toString()},U.aptime=function(e){e===void 0&&(e=new Date);var t,r,n=e.getHours(),i=e.getMinutes(),o=i===0;if(o){if(n===0)return”midnight”;if(n===12)return”noon”}return n0?n:12):(t=”p.m.”,r=n===12?n:n-12),o?r+” “+t:r+”:”+(i<10?"0"+i:i)+" "+t},U.capfirst=function(e){if(ne(e))return"";var t=String(e);return""+t.charAt(0).toUpperCase()+t.slice(1)},U.intcomma=function(e){if(ne(e))return"";var t,r=+e;return ft(r)?((t=r.toString().split("."))[0]=t[0].replace(/B(?=(d{3})+(?!d))/g,","),t.join(".")):e.toString()},U.intword=function(e){if(ne(e))return"";var t=+e;if(!Se(t))return e.toString();var r=Math.abs(t);if(r<1e6)return e.toString();var n=Math.ceil(Math.log(r+1)/Math.LN10)-1,i=n-n%3,o=t/Math.pow(10,i);return(o=Math.round(10*o)/10)+" "+Dr[Math.floor(i/3)-2]},U.ordinal=function(e,t){if(t===void 0&&(t=!1),ne(e))return"";var r=+e;return Se(r)?t&&r{(function(e,t){typeof je==”object”&&typeof Je<"u"?Je.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis=h?m:””+Array(h+1-p.length).join(u)+m},K={s:O,z:function(m){var h=-m.utcOffset(),u=Math.abs(h),p=Math.floor(u/60),c=u%60;return(h<=0?"+":"-")+O(p,2,"0")+":"+O(c,2,"0")},m:function m(h,u){if(h.date()<u.date())return-m(u,h);var p=12*(u.year()-h.year())+(u.month()-h.month()),c=h.clone().add(p,f),y=u-c<0,w=h.clone().add(p+(y?-1:1),f);return+(-(p+(u-c)/(y?c-w:w-c))||0)},a:function(m){return m1)return m(w[0])}else{var b=h.name;$[b]=h,c=b}return!p&&c&&(C=c),c||!p&&C},D=function(m,h){if(ie(m))return m.clone();var u=typeof h==”object”?h:{};return u.date=m,u.args=arguments,new te(u)},M=K;M.l=oe,M.i=ie,M.w=function(m,h){return D(m,{locale:h.$L,utc:h.$u,x:h.$x,$offset:h.$offset})};var te=function(){function m(u){this.$L=oe(u.locale,null,!0),this.parse(u),this.$x=this.$x||u.x||{},this[I]=!0}var h=m.prototype;return h.parse=function(u){this.$d=function(p){var c=p.date,y=p.utc;if(c===null)return new Date(NaN);if(M.u(c))return new Date;if(c instanceof Date)return new Date(c);if(typeof c==”string”&&!/Z$/i.test(c)){var w=c.match(F);if(w){var b=w[2]-1||0,k=(w[7]||”0″).substring(0,3);return y?new Date(Date.UTC(w[1],b,w[3]||1,w[4]||0,w[5]||0,w[6]||0,k)):new Date(w[1],b,w[3]||1,w[4]||0,w[5]||0,w[6]||0,k)}}return new Date(c)}(u),this.init()},h.init=function(){var u=this.$d;this.$y=u.getFullYear(),this.$M=u.getMonth(),this.$D=u.getDate(),this.$W=u.getDay(),this.$H=u.getHours(),this.$m=u.getMinutes(),this.$s=u.getSeconds(),this.$ms=u.getMilliseconds()},h.$utils=function(){return M},h.isValid=function(){return this.$d.toString()!==x},h.isSame=function(u,p){var c=D(u);return this.startOf(p)<=c&&c<=this.endOf(p)},h.isAfter=function(u,p){return D(u)<this.startOf(p)},h.isBefore=function(u,p){return this.endOf(p)<D(u)},h.$g=function(u,p,c){return M.u(u)?this[p]:this.set(c,u)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(u,p){var c=this,y=!!M.u(p)||p,w=M.p(u),b=function(j,H){var J=M.w(c.$u?Date.UTC(c.$y,H,j):new Date(c.$y,H,j),c);return y?J:J.endOf(a)},k=function(j,H){return M.w(c.toDate()[j].apply(c.toDate("s"),(y?[0,0,0,0]:[23,59,59,999]).slice(H)),c)},A=this.$W,E=this.$M,z=this.$D,X="set"+(this.$u?"UTC":"");switch(w){case l:return y?b(1,0):b(31,11);case f:return y?b(1,E):b(0,E+1);case d:var q=this.$locale().weekStart||0,Q=(A<q?A+7:A)-q;return b(y?z-Q:z+(6-Q),E);case a:case v:return k(X+"Hours",0);case s:return k(X+"Minutes",1);case o:return k(X+"Seconds",2);case i:return k(X+"Milliseconds",3);default:return this.clone()}},h.endOf=function(u){return this.startOf(u,!1)},h.$set=function(u,p){var c,y=M.p(u),w="set"+(this.$u?"UTC":""),b=(c={},c[a]=w+"Date",c[v]=w+"Date",c[f]=w+"Month",c[l]=w+"FullYear",c[s]=w+"Hours",c[o]=w+"Minutes",c[i]=w+"Seconds",c[n]=w+"Milliseconds",c)[y],k=y===a?this.$D+(p-this.$W):p;if(y===f||y===l){var A=this.clone().set(v,1);A.$d[b](k),A.init(),this.$d=A.set(v,Math.min(this.$D,A.daysInMonth())).$d}else b&&this.$d[b](k);return this.init(),this},h.set=function(u,p){return this.clone().$set(u,p)},h.get=function(u){return this[M.p(u)]()},h.add=function(u,p){var c,y=this;u=Number(u);var w=M.p(p),b=function(E){var z=D(y);return M.w(z.date(z.date()+Math.round(E*u)),y)};if(w===f)return this.set(f,this.$M+u);if(w===l)return this.set(l,this.$y+u);if(w===a)return b(1);if(w===d)return b(7);var k=(c={},c[o]=t,c[s]=r,c[i]=e,c)[w]||1,A=this.$d.getTime()+u*k;return M.w(A,this)},h.subtract=function(u,p){return this.add(-1*u,p)},h.format=function(u){var p=this,c=this.$locale();if(!this.isValid())return c.invalidDate||x;var y=u||"YYYY-MM-DDTHH:mm:ssZ",w=M.z(this),b=this.$H,k=this.$m,A=this.$M,E=c.weekdays,z=c.months,X=c.meridiem,q=function(H,J,se,ae){return H&&(H[J]||H(p,y))||se[J].slice(0,ae)},Q=function(H){return M.s(b%12||12,H,"0")},j=X||function(H,J,se){var ae=H{window.addEventListener(“resize”,()=>{nt(),$e()}),window.addEventListener(“scroll”,()=>{$e()})},nt=()=>{xr.setAttribute(“viewBox”,`0 0 ${window.innerWidth} ${window.innerHeight}`)},$e=()=>{let e=document.querySelector(“.js-steps”).dataset.current;re!==e&&(re=e,st()),!re||re==”all”?ot():it()},it=()=>{if(re){let e=document.querySelector(`.js-steps-step[data-step=”${re}”] .js-steps-pin`),t=document.querySelector(“.js-map-location.is-current .js-map-pin”);if(t){let r=e.getBoundingClientRect(),n=t.getBoundingClientRect(),o=document.querySelector(“.js-steps”).getBoundingClientRect(),s=o.top>0?o.top:0,a=r.width/2;ce.setAttribute(“y1”,r.top+a-s),ce.setAttribute(“x1”,r.left+a),ce.setAttribute(“y2”,n.top+a-s),ce.setAttribute(“x2”,n.left+a)}}},ot=()=>{ce.classList.add(“is-hidden”)},Cr=()=>{ce.classList.remove(“is-hidden”)},st=()=>{ot(),clearTimeout(rt),rt=setTimeout(()=>{re!==void 0&&re!==”all”&&(it(),Cr())},1200)},at={init:()=>{Tr(),nt(),$e()},onChange:()=>{st()}};var Wn=dt();var ze=e=>{if(e)return e.trim().toLowerCase().normalize(“NFD”).replace(/[u0300-u036f]/g,””).replace(/[^A-Z0-9 ]/gi,””).trim().replace(/ /g,”-“)};var pt=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);var pe=(e,t=null,r=null)=>{r||(r=document.querySelector(“head”));let n=document.createElement(“script”);n.type=”text/javascript”,n.src=e,t&&(n.onload=t),r.appendChild(n)},vt=()=>(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state===”Subscribed”,gt=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state;return window.location.host.includes(“zzz-systest”)||window.location.host.includes(“pmn.arcpublishing.com”)||window.location.host.includes(“stage.fusion.inquirer.com”)||typeof t>”u”},mt=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.hasAdsFreeReading;return!!(t&&t==1)},Be=()=>window.location.host.includes(“localhost”),xe=(e,t=””)=>{let r=document.querySelector(`template#${e}`);if(!r||!(r instanceof HTMLTemplateElement))return console.log(`Couldn’t find .`),null;let n=r.content.cloneNode(!0).childNodes;if(n.length==0)return console.log(`Template ${r} has no children, returning null.`),null;n.length>1&&console.log(`Template ${r} has multiple children, only returning the first.`);let i=n[0];return i.setAttribute(“data-id”,t),i},Te=(e,t)=>{let r=[…e.querySelectorAll(“[data-populate]”)];e.dataset.populate&&r.unshift(e);let n=r.filter(i=>{let o=i.closest(“[data-populate-context]”);return!o||o==e});for(let i of n){let s=i.dataset.populate.trim().split(/s*,s*/).map(a=>a.split(/s*:s*/));for(let[a,d]of s){let g=a.split(“.”).reduce((x,F)=>x?.[F],t),l=g==null||g==null,v=d?.split(/s+/)||[“innerHTML”];for(let x of v)x.startsWith(“.”)&&i.classList.toggle(x.substring(1),l?!1:g),!l&&(x==”innerHTML”?i.innerHTML=g:x.startsWith(“@”)?i.setAttribute(x.substring(1),g):x.startsWith(“–“)&&i.style.setProperty(x,g))}}};var zr=()=>{mt()&&document.querySelectorAll(“.js-adbox”).forEach(t=>{t.classList.add(“is-hidden”)})},yt={init:()=>{zr()}};var wt=async(e,t)=>(await fetch(`https://inq-junto.herokuapp.com/${e}`,{method:”POST”,headers:{“Content-Type”:”application/json”},mode:”cors”,body:JSON.stringify(t)})).json(),Fe=()=>{let t=document.querySelector(“.js-inno”).dataset.junto;if(t)return t;throw new Error(“no junto id found”)},bt={getDefaultId:()=>Fe(),vote:(e,t=Fe())=>{wt(“vote”,{poll:t,ballot:e})},results:async(e=Fe())=>await wt(“results”,{poll:e})};var Br=()=>{document.querySelectorAll(“.js-form”).forEach(e=>{e.addEventListener(“submit”,t=>{t.preventDefault(),Fr(e)})})},Fr=e=>{let t=e.dataset.id,r=new FormData(e),n=new Object;for(let i of r)n[`form-${t}-${i[0]}`]=i[1];bt.vote({…n,[`form-${t}`]:Object.values(n).join(“///”)}),e.classList.add(“has-submitted”),e.querySelector(“.js-button-label”).textContent=”Form submitted!”,setTimeout(()=>{e.querySelector(“.js-form-button”).disabled=!0},500)},Mt={init:()=>{Br()}};var le,St,Hr=()=>{le=document.getElementById(“js-inno-toast”)},Or=e=>{if(!le)return;le.innerHTML=e,le.classList.add(“inno-toast–active”);let t=()=>{le.addEventListener(“transitionend”,Ir,{once:!0}),le.classList.remove(“inno-toast–active”)};clearTimeout(St),St=setTimeout(t,5e3)},Ir=()=>{le.innerHTML=””},ue={init:()=>{Hr()},showToast:Or};var Ce,xt=!1,Rr=async()=>new Promise(e=>{setTimeout(()=>{console.log(“simulating createShareLink for localhost”),e(“https://inquirer.com/interactives”),Ur()},100)}),Ur=()=>{let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||setTimeout(()=>{let t=e?.querySelector(“span”);t&&(t.innerHTML=”Gift link copied to clipboard“)},20)},qr=()=>{let e=window.services?.createShareLink;e&&(Ce=e),Be()&&(Ce=Rr),Ce&&Nr()},Gr=async e=>{let t=”text/plain”,r=async()=>{try{return await Ce(window.location.pathname)}catch{e.dataset.state=”error”,ue.showToast(“Hmm, we couldn’t generate a gift link…”)}},n=new ClipboardItem({[t]:r()});await navigator.clipboard.write([n]).catch(i=>{console.log(i),ue.showToast(“Couldn’t copy to clipboard, try again?”),e.dataset.state=”error”}),ue.showToast(“Gift link copied to clipboard!”),e.dataset.state=”complete”},Nr=()=>{document.querySelectorAll(“.js-gift”).forEach(t=>{(vt()||Be()||gt())&&t.classList.add(“is-available”)}),document.querySelectorAll(“.js-gift-button”).forEach(t=>{t instanceof HTMLButtonElement&&t.addEventListener(“click”,()=>{t.classList.contains(“disabled”)||(t.dataset.state=”loading”,xt=!0,Gr(t),setTimeout(()=>{t.dataset.state=”ready”},2e3))})});let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||Wr(e)},Wr=e=>{new MutationObserver(r=>{for(let n of r){let i=[…n.addedNodes].at(0);if(!(i instanceof HTMLElement))return;xt&&ue.showToast(i.outerHTML)}}).observe(e,{subtree:!0,childList:!0})},Tt={init:()=>{qr()}};var Zr=()=>{window.addEventListener(“message”,e=>{if(e.data[“datawrapper-height”]){let t=e.data[“datawrapper-height”];for(let r in t)document.querySelector(`#datawrapper-chart-${r}`).setAttribute(“height”,t[r])}})},jr=()=>{document.querySelectorAll(“.js-datawrapper-graphic”).forEach(e=>{pe(`https://datawrapper.dwcdn.net/${e.dataset.id}/embed.js`,null,e)})},Jr=()=>{window.addEventListener(“message”,e=>{let t=e.data;document.querySelectorAll(`iframe[src*=”${t.id}”]`).forEach(n=>{n.style.height=`${t.height}px`})},!1)},Yr=()=>{document.querySelectorAll(“.js-pym-graphic”).forEach(e=>{if(typeof window{new window.pym.Parent(e.id,e.dataset.iframe)};typeof window.pym>”u”?pe(“https://pym.nprapps.org/pym.v1.min.js”,t):t()}})},Ct={init:()=>{Zr(),jr(),Yr(),Jr()}};var ve,Vr=()=>{document.querySelectorAll(“.js-hover”).forEach(e=>{e.addEventListener(“click”,()=>{Lt(e)}),e.addEventListener(“mouseenter”,()=>{Lt(e)}),e.addEventListener(“mouseout”,()=>{Pt(e)})}),window.addEventListener(“scroll”,()=>{ve!==null&&Kr()})},Kr=()=>{(ve>window.scrollY+100||ve{Pt(e)})},Lt=e=>{e.classList.add(“is-visible”),ve=window.scrollY},Pt=e=>{e.classList.remove(“is-visible”),ve=null},kt={init:()=>{Vr()}};var N=Uint8Array,he=Uint16Array,Xr=Int32Array,Dt=new N([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),At=new N([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Qr=new N([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Et=function(e,t){for(var r=new he(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];for(var i=new Xr(r[30]),n=1;n<30;++n)for(var o=r[n];o<r[n+1];++o)i[o]=o-r[n]<<5|n;return{b:r,r:i}},$t=Et(Dt,2),zt=$t.b,_r=$t.r;zt[28]=258,_r[258]=28;var Bt=Et(At,0),en=Bt.b,ii=Bt.r,Ie=new he(32768);for(S=0;S>1|(S&21845)<>2|(_&13107)<>4|(_&3855)<>8|(_&255)<>1;var _,S,ge=function(e,t,r){for(var n=e.length,i=0,o=new he(t);i<n;++i)e[i]&&++o[e[i]-1];var s=new he(t);for(i=1;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(r){a=new he(1<<t);var d=15-t;for(i=0;i<n;++i)if(e[i])for(var f=i<<4|e[i],g=t-e[i],l=s[e[i]-1]++<<g,v=l|(1<<g)-1;l>d]=f}else for(a=new he(n),i=0;i>15-e[i]);return a},me=new N(288);for(S=0;S<144;++S)me[S]=8;var S;for(S=144;S<256;++S)me[S]=9;var S;for(S=256;S<280;++S)me[S]=7;var S;for(S=280;S<288;++S)me[S]=8;var S,Ft=new N(32);for(S=0;S<32;++S)Ft[S]=5;var S;var tn=ge(me,9,1);var rn=ge(Ft,5,1),He=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},Y=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<>(t&7)&r},Oe=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<>(t&7)},nn=function(e){return(e+7)/8|0},on=function(e,t,r){return(t==null||te.length)&&(r=e.length),new N(e.subarray(t,r))};var sn=[“unexpected EOF”,”invalid block type”,”invalid length/literal”,”invalid distance”,”stream finished”,”no stream handler”,,”no callback”,”invalid UTF-8 data”,”extra field too long”,”date not in range 1980-2099″,”filename too long”,”stream finishing”,”invalid zip data”],G=function(e,t,r){var n=new Error(t||sn[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,G),!r)throw n;return n},Re=function(e,t,r,n){var i=e.length,o=n?n.length:0;if(!i||t.f&&!t.l)return r||new N(0);var s=!r,a=s||t.i!=2,d=t.i;s&&(r=new N(i*3));var f=function(ae){var Qe=r.length;if(ae>Qe){var _e=new N(Math.max(Qe*2,ae));_e.set(r),r=_e}},g=t.f||0,l=t.p||0,v=t.b||0,x=t.l,F=t.d,P=t.m,V=t.n,O=i*8;do{if(!x){g=Y(e,l,1);var K=Y(e,l+1,3);if(l+=3,K)if(K==1)x=tn,F=rn,P=9,V=5;else if(K==2){var ie=Y(e,l,31)+257,oe=Y(e,l+10,15)+4,D=ie+Y(e,l+5,31)+1;l+=14;for(var M=new N(D),te=new N(19),R=0;R<oe;++R)te[Qr[R]]=Y(e,l+R*3,7);l+=oe*3;for(var m=He(te),h=(1<<m)-1,u=ge(te,m,1),R=0;R>4;if(C<16)M[R++]=C;else{var c=0,y=0;for(C==16?(y=3+Y(e,l,3),l+=2,c=M[R-1]):C==17?(y=3+Y(e,l,7),l+=3):C==18&&(y=11+Y(e,l,127),l+=7);y–;)M[R++]=c}}var w=M.subarray(0,ie),b=M.subarray(ie);P=He(w),V=He(b),x=ge(w,P,1),F=ge(b,V,1)}else G(1);else{var C=nn(l)+4,$=e[C-4]|e[C-3]<i){d&&G(0);break}a&&f(v+$),r.set(e.subarray(C,I),v),t.b=v+=$,t.p=l=I*8,t.f=g;continue}if(l>O){d&&G(0);break}}a&&f(v+131072);for(var k=(1<<P)-1,A=(1<>4;if(l+=c&15,l>O){d&&G(0);break}if(c||G(2),z264){var R=z-257,q=Dt[R];X=Y(e,l,(1<>4;Q||G(3),l+=Q&15;var b=en[j];if(j>3){var q=At[j];b+=Oe(e,l)&(1<O){d&&G(0);break}a&&f(v+131072);var H=v+X;if(v<b){var J=o-b,se=Math.min(b,H);for(J+v<0&&G(3);v<se;++v)r[v]=n[J+v]}for(;v<H;++v)r[v]=r[v-b]}}t.l=x,t.p=E,t.b=v,t.f=g,x&&(g=1,t.m=P,t.d=F,t.n=V)}while(!g);return v!=r.length&&s?on(r,0,v):r.subarray(0,v)};var an=new N(0);var ln=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&G(6,"invalid gzip data");var t=e[3],r=10;t&4&&(r+=(e[10]|e[11]<>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(t&2)},un=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<>>0};var cn=function(e,t){return((e[0]&15)!=8||e[0]>>4>7||(e[0]<>5&1)==+!t&&G(6,”invalid zlib data: “+(e[1]&32?”need”:”unexpected”)+” dictionary”),(e[1]>>3&4)+2};function hn(e,t){return Re(e,{i:2},t&&t.out,t&&t.dictionary)}function fn(e,t){var r=ln(e);return r+8>e.length&&G(6,”invalid gzip data”),Re(e.subarray(r,-8),{i:2},t&&t.out||new N(un(e)),t&&t.dictionary)}function dn(e,t){return Re(e.subarray(cn(e,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}function Ht(e,t){return e[0]==31&&e[1]==139&&e[2]==8?fn(e,t):(e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31?hn(e,t):dn(e,t)}var pn=typeof TextDecodergn(e,”name”,{value:t,configurable:!0}),B=(e,t,r)=>new Promise((n,i)=>{var o=d=>{try{a(r.next(d))}catch(f){i(f)}},s=d=>{try{a(r.throw(d))}catch(f){i(f)}},a=d=>d.done?n(d.value):Promise.resolve(d.value).then(o,s);a((r=r.apply(e,t)).next())}),ai=T((e,t)=>{let r=!1,n=””,i=L.GridLayer.extend({createTile:T((o,s)=>{let a=document.createElement(“img”),d=new AbortController,f=d.signal;return a.cancel=()=>{d.abort()},r||(e.getHeader().then(g=>{g.tileType===1?console.error(“Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details.”):g.tileType===2?n=”image/png”:g.tileType===3?n=”image/jpeg”:g.tileType===4?n=”image/webp”:g.tileType===5&&(n=”image/avif”)}),r=!0),e.getZxy(o.z,o.x,o.y,f).then(g=>{if(g){let l=new Blob([g.data],{type:n}),v=window.URL.createObjectURL(l);a.src=v,a.cancel=void 0,s(void 0,a)}}).catch(g=>{if(g.name!==”AbortError”)throw g}),a},”createTile”),_removeTile:T(function(o){let s=this._tiles[o];s&&(s.el.cancel&&s.el.cancel(),s.el.width=0,s.el.height=0,s.el.deleted=!0,L.DomUtil.remove(s.el),delete this._tiles[o],this.fire(“tileunload”,{tile:s.el,coords:this._keyToTileCoords(o)}))},”_removeTile”)});return new i(t)},”leafletRasterLayer”),mn=T(e=>(t,r)=>{if(r instanceof AbortController)return e(t,r);let n=new AbortController;return e(t,n).then(i=>r(void 0,i.data,i.cacheControl||””,i.expires||””),i=>r(i)).catch(i=>r(i)),{cancel:T(()=>n.abort(),”cancel”)}},”v3compat”),Ot=class{constructor(t){this.tilev4=T((r,n)=>B(this,null,function*(){if(r.type===”json”){let x=r.url.substr(10),F=this.tiles.get(x);if(F||(F=new Le(x),this.tiles.set(x,F)),this.metadata)return{data:yield F.getTileJson(r.url)};let P=yield F.getHeader();return(P.minLon>=P.maxLon||P.minLat>=P.maxLat)&&console.error(`Bounds of PMTiles archive ${P.minLon},${P.minLat},${P.maxLon},${P.maxLat} are not valid.`),{data:{tiles:[`${r.url}/{z}/{x}/{y}`],minzoom:P.minZoom,maxzoom:P.maxZoom,bounds:[P.minLon,P.minLat,P.maxLon,P.maxLat]}}}let i=new RegExp(/pmtiles://(.+)/(d+)/(d+)/(d+)/),o=r.url.match(i);if(!o)throw new Error(“Invalid PMTiles protocol URL”);let s=o[1],a=this.tiles.get(s);a||(a=new Le(s),this.tiles.set(s,a));let d=o[2],f=o[3],g=o[4],l=yield a.getHeader(),v=yield a?.getZxy(+d,+f,+g,n.signal);if(v)return{data:new Uint8Array(v.data),cacheControl:v.cacheControl,expires:v.expires};if(l.tileType===1){if(this.errorOnMissingTile)throw new Error(“Tile not found.”);return{data:new Uint8Array}}return{data:null}}),”tilev4″),this.tile=mn(this.tilev4),this.tiles=new Map,this.metadata=t?.metadata||!1,this.errorOnMissingTile=t?.errorOnMissingTile||!1}add(t){this.tiles.set(t.source.getKey(),t)}get(t){return this.tiles.get(t)}};T(Ot,”Protocol”);var It=Ot;function Rt(e,t){return(t>>>0)*4294967296+(e>>>0)}T(Rt,”toNum”);function Ut(e,t){let r=t.buf,n=r[t.pos++],i=(n&112)>>4;if(n<128||(n=r[t.pos++],i|=(n&127)<<3,n<128)||(n=r[t.pos++],i|=(n&127)<<10,n<128)||(n=r[t.pos++],i|=(n&127)<<17,n<128)||(n=r[t.pos++],i|=(n&127)<<24,n<128)||(n=r[t.pos++],i|=(n&1)<<31,n<128))return Rt(e,i);throw new Error("Expected varint not more than 10 bytes")}T(Ut,"readVarintRemainder");function fe(e){let t=e.buf,r=t[e.pos++],n=r&127;return r<128||(r=t[e.pos++],n|=(r&127)<<7,r<128)||(r=t[e.pos++],n|=(r&127)<<14,r<128)||(r=t[e.pos++],n|=(r&127)<<21,r<128)?n:(r=t[e.pos],n|=(r&15)<<28,Ut(n,e))}T(fe,"readVarint");function qe(e,t,r,n){if(n===0){r===1&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);let i=t[0];t[0]=t[1],t[1]=i}}T(qe,"rotate");function qt(e,t){let r=ye(2,e),n=t,i=t,o=t,s=[0,0],a=1;for(;a26)throw new Error(“Tile zoom level exceeds max safe number limit (26)”);if(t>ye(2,e)-1||r>ye(2,e)-1)throw new Error(“tile x/y outside zoom level bounds”);let n=yn[e],i=ye(2,e),o=0,s=0,a=0,d=[t,r],f=i/2;for(;f>0;)o=(d[0]&f)>0?1:0,s=(d[1]&f)>0?1:0,a+=f*f*(3*o^s),qe(f,d,o,s),f=f/2;return n+a}T(Gt,”zxyToTileId”);function wn(e){let t=0,r=0;for(let n=0;n<27;n++){let i=(1<<n)*(1<e)return qt(n,e-t);t+=i}throw new Error(“Tile zoom level exceeds max safe number limit (26)”)}T(wn,”tileIdToZxy”);var bn=(e=>(e[e.Unknown=0]=”Unknown”,e[e.None=1]=”None”,e[e.Gzip=2]=”Gzip”,e[e.Brotli=3]=”Brotli”,e[e.Zstd=4]=”Zstd”,e))(bn||{});function Pe(e,t){return B(this,null,function*(){if(t===1||t===0)return e;if(t===2){if(typeof globalThis.DecompressionStream>”u”)return Ht(new Uint8Array(e));let r=new Response(e).body;if(!r)throw new Error(“Failed to read response stream”);let n=r.pipeThrough(new globalThis.DecompressionStream(“gzip”));return new Response(n).arrayBuffer()}throw new Error(“Compression method not supported”)})}T(Pe,”defaultDecompress”);var Mn=(e=>(e[e.Unknown=0]=”Unknown”,e[e.Mvt=1]=”Mvt”,e[e.Png=2]=”Png”,e[e.Jpeg=3]=”Jpeg”,e[e.Webp=4]=”Webp”,e[e.Avif=5]=”Avif”,e))(Mn||{});function Nt(e){return e===1?”.mvt”:e===2?”.png”:e===3?”.jpg”:e===4?”.webp”:e===5?”.avif”:””}T(Nt,”tileTypeExt”);var Sn=127;function Wt(e,t){let r=0,n=e.length-1;for(;r>1,o=t-e[i].tileId;if(o>0)r=i+1;else if(o=0&&(e[n].runLength===0||t-e[n].tileId-1,o=/Chrome|Chromium|Edg|OPR|Brave/.test(n);this.chromeWindowsNoCache=!1,i&&o&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(t){this.customHeaders=t}getBytes(t,r,n,i){return B(this,null,function*(){let o,s;n?s=n:(o=new AbortController,s=o.signal);let a=new Headers(this.customHeaders);a.set(“range”,`bytes=${t}-${t+r-1}`);let d;this.mustReload?d=”reload”:this.chromeWindowsNoCache&&(d=”no-store”);let f=yield fetch(this.url,{signal:s,cache:d,headers:a});if(t===0&&f.status===416){let v=f.headers.get(“Content-Range”);if(!v||!v.startsWith(“bytes */”))throw new Error(“Missing content-length on 416 response”);let x=+v.substr(8);f=yield fetch(this.url,{signal:s,cache:”reload”,headers:{range:`bytes=0-${x-1}`}})}let g=f.headers.get(“Etag”);if(g!=null&&g.startsWith(“W/”)&&(g=null),f.status===416||i&&g&&g!==i)throw this.mustReload=!0,new Ue(`Server returned non-matching ETag ${i} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(f.status>=300)throw new Error(`Bad response code: ${f.status}`);let l=f.headers.get(“Content-Length”);if(f.status===200&&(!l||+l>r))throw o&&o.abort(),new Error(“Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.”);return{data:yield f.arrayBuffer(),etag:g||void 0,cacheControl:f.headers.get(“Cache-Control”)||void 0,expires:f.headers.get(“Expires”)||void 0}})}};T(Zt,”FetchSource”);var Tn=Zt;function Z(e,t){let r=e.getUint32(t+4,!0),n=e.getUint32(t+0,!0);return r*ye(2,32)+n}T(Z,”getUint64″);function jt(e,t){let r=new DataView(e),n=r.getUint8(7);if(n>3)throw new Error(`Archive is spec version ${n} but this library supports up to spec version 3`);return{specVersion:n,rootDirectoryOffset:Z(r,8),rootDirectoryLength:Z(r,16),jsonMetadataOffset:Z(r,24),jsonMetadataLength:Z(r,32),leafDirectoryOffset:Z(r,40),leafDirectoryLength:Z(r,48),tileDataOffset:Z(r,56),tileDataLength:Z(r,64),numAddressedTiles:Z(r,72),numTileEntries:Z(r,80),numTileContents:Z(r,88),clustered:r.getUint8(96)===1,internalCompression:r.getUint8(97),tileCompression:r.getUint8(98),tileType:r.getUint8(99),minZoom:r.getUint8(100),maxZoom:r.getUint8(101),minLon:r.getInt32(102,!0)/1e7,minLat:r.getInt32(106,!0)/1e7,maxLon:r.getInt32(110,!0)/1e7,maxLat:r.getInt32(114,!0)/1e7,centerZoom:r.getUint8(118),centerLon:r.getInt32(119,!0)/1e7,centerLat:r.getInt32(123,!0)/1e7,etag:t}}T(jt,”bytesToHeader”);function Ge(e){let t={buf:new Uint8Array(e),pos:0},r=fe(t),n=[],i=0;for(let o=0;o<r;o++){let s=fe(t);n.push({tileId:i+s,offset:0,length:0,runLength:1}),i+=s}for(let o=0;o<r;o++)n[o].runLength=fe(t);for(let o=0;o<r;o++)n[o].length=fe(t);for(let o=0;o0?n[o].offset=n[o-1].offset+n[o-1].length:n[o].offset=s-1}return n}T(Ge,”deserializeIndex”);var Jt=class extends Error{};T(Jt,”EtagMismatch”);var Ue=Jt;function Ne(e,t){return B(this,null,function*(){let r=yield e.getBytes(0,16384);if(new DataView(r.data).getUint16(0,!0)!==19792)throw new Error(“Wrong magic number for PMTiles archive”);let n=r.data.slice(0,Sn),i=jt(n,r.etag),o=r.data.slice(i.rootDirectoryOffset,i.rootDirectoryOffset+i.rootDirectoryLength),s=`${e.getKey()}|${i.etag||””}|${i.rootDirectoryOffset}|${i.rootDirectoryLength}`,a=Ge(yield t(o,i.internalCompression));return[i,[s,a.length,a]]})}T(Ne,”getHeaderAndRoot”);function We(e,t,r,n,i){return B(this,null,function*(){let o=yield e.getBytes(r,n,void 0,i.etag),s=yield t(o.data,i.internalCompression),a=Ge(s);if(a.length===0)throw new Error(“Empty directory is invalid”);return a})}T(We,”getDirectory”);var Cn=class{constructor(t=100,r=!0,n=Pe){this.cache=new Map,this.maxCacheEntries=t,this.counter=1,this.decompress=n}getHeader(t){return B(this,null,function*(){let r=t.getKey(),n=this.cache.get(r);if(n)return n.lastUsed=this.counter++,n.data;let i=yield Ne(t,this.decompress);return i[1]&&this.cache.set(i[1][0],{lastUsed:this.counter++,data:i[1][2]}),this.cache.set(r,{lastUsed:this.counter++,data:i[0]}),this.prune(),i[0]})}getDirectory(t,r,n,i){return B(this,null,function*(){let o=`${t.getKey()}|${i.etag||””}|${r}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,s.data;let a=yield We(t,this.decompress,r,n,i);return this.cache.set(o,{lastUsed:this.counter++,data:a}),this.prune(),a})}prune(){if(this.cache.size>this.maxCacheEntries){let t=1/0,r;this.cache.forEach((n,i)=>{n.lastUsed{Ne(t,this.decompress).then(a=>{a[1]&&this.cache.set(a[1][0],{lastUsed:this.counter++,data:Promise.resolve(a[1][2])}),o(a[0]),this.prune()}).catch(a=>{s(a)})});return this.cache.set(r,{lastUsed:this.counter++,data:i}),i})}getDirectory(t,r,n,i){return B(this,null,function*(){let o=`${t.getKey()}|${i.etag||””}|${r}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,yield s.data;let a=new Promise((d,f)=>{We(t,this.decompress,r,n,i).then(g=>{d(g),this.prune()}).catch(g=>{f(g)})});return this.cache.set(o,{lastUsed:this.counter++,data:a}),a})}prune(){if(this.cache.size>=this.maxCacheEntries){let t=1/0,r;this.cache.forEach((n,i)=>{n.lastUsed{this.getHeader(t).then(s=>{i(),this.invalidations.delete(r)}).catch(s=>{o(s)})});this.invalidations.set(r,n)})}};T(Yt,”SharedPromiseCache”);var Ln=Yt,Vt=class{constructor(t,r,n){typeof t==”string”?this.source=new Tn(t):this.source=t,n?this.decompress=n:this.decompress=Pe,r?this.cache=r:this.cache=new Ln}getHeader(){return B(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(t,r,n,i){return B(this,null,function*(){let o=Gt(t,r,n),s=yield this.cache.getHeader(this.source);if(ts.maxZoom)return;let a=s.rootDirectoryOffset,d=s.rootDirectoryLength;for(let f=0;f0){let v=yield this.source.getBytes(s.tileDataOffset+l.offset,l.length,i,s.etag);return{data:yield this.decompress(v.data,s.tileCompression),cacheControl:v.cacheControl,expires:v.expires}}a=s.leafDirectoryOffset+l.offset,d=l.length}else return}throw new Error(“Maximum directory depth exceeded”)})}getZxy(t,r,n,i){return B(this,null,function*(){try{return yield this.getZxyAttempt(t,r,n,i)}catch(o){if(o instanceof Ue)return this.cache.invalidate(this.source),yield this.getZxyAttempt(t,r,n,i);throw o}})}getMetadataAttempt(){return B(this,null,function*(){let t=yield this.cache.getHeader(this.source),r=yield this.source.getBytes(t.jsonMetadataOffset,t.jsonMetadataLength,void 0,t.etag),n=yield this.decompress(r.data,t.internalCompression),i=new TextDecoder(“utf-8″);return JSON.parse(i.decode(n))})}getMetadata(){return B(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(t){if(t instanceof Ue)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw t}})}getTileJson(t){return B(this,null,function*(){let r=yield this.getHeader(),n=yield this.getMetadata(),i=Nt(r.tileType);return{tilejson:”3.0.0″,scheme:”xyz”,tiles:[`${t}/{z}/{x}/{y}${i}`],vector_layers:n.vector_layers,attribution:n.attribution,description:n.description,name:n.name,version:n.version,bounds:[r.minLon,r.minLat,r.maxLon,r.maxLat],center:[r.centerLon,r.centerLat,r.centerZoom],minzoom:r.minZoom,maxzoom:r.maxZoom}})}};T(Vt,”PMTiles”);var Le=Vt;var we=[{name:”Mirenda Center at Neumann University”,town:”Aston Township”,coordinates:”39.87518295957942, -75.44287264018742″,photo:”CUFT75EQJFCNXF6TBJWB47IZBE”,description:”Tom (Mark Ruffalo) mans a table at a job fair here while temporarily working as a recruiter for the FBI. Next to his station, the distinctive pillars of the centeru2019s atrium are visible.”,episode:”1″},{name:”Rita’s Italian Ice & Frozen Custard”,town:”Collingdale”,coordinates:”39.91438144966683, -75.27198755476991″,photo:”PVN6FY7AZVH57NJJ5QZMPSORVQ”,description:”Emily (Silvia Dionicio), Tomu2019s daughter, works her part-time job here. In the scene where it is shown, Tom orders a black cherry water ice, a flavor choice of which we approve.”,episode:”1″},{name:”Former Philadelphia Police Department Headquarters”,town:”Philadelphia”,coordinates:”39.95454212611587, -75.15196309318775″,photo:”L7RTCVGETVB6BGP3OI6FGI75II”,description:”We get a brief glimpse of the exterior of the former Philadelphia police headquarters, colloquially known as the Roundhouse. Whether the interior is the same building is unclear, but in the show, this appears to be where the FBIu2019s Philly field office is located.”,episode:”1″},{name:”Bangor Quarry”,town:”Bangor”,coordinates:”40.870304770450126, -75.20395382209078″,photo:””,description:”Robbie (Tom Pelphrey), Cliff (RaxFAl Castillo), and Peaches (Owen Teague) head here for a post-robbery swim. On a real-life note, you should not do the same u2014 not only is it dangerous, but itu2019s also trespassing, according to the Bangor Borough Police Department.”,episode:”1″},{name:”Lincoln Highway and 2nd Avenue”,town:”Coatesville”,coordinates:”39.98367030794463, -75.82206085300957″,photo:”DKXFYZ5EGBEHJJKLSUGLQQDAR4″,description:”The Dark Hearts motorcycle gang rides through this intersection in formation, the giveaway being Presence Bank in the background in one shot.”,episode:”2″},{name:”Polish American Citizens Club”,town:”Coatesville”,coordinates:”39.98079295642107, -75.83090353169075″,photo:”WICMTOVTBFE3HANVTH2PSHED5M”,description:”Done up as the so-called Leftyu2019s Taproom in the show, this location serves as the Dark Heartsu2019 clubhouse and watering hole. In real life, itu2019s just off Lincoln Highway, lending a bit of realism to the gangu2019s ride through downtown Coatesville.”,episode:”2″},{name:”Martin’s Taphouse”,town:”Aston Township”,coordinates:”39.89042265129427, -75.43449503510138″,photo:””,description:”Martin’s stands in as the exterior of the Tip Top Lounge in the series, which we see in this episode stacked with motorcycles parked outside the front door.”,episode:”2″},{name:”Dixon’s Lounge”,town:”Sharon Hill”,coordinates:”39.897139107273794, -75.27191565278125″,photo:”BHMNCU4FFJGOBPUKYCZBB2XEOA”,description:”While the exterior of the Tip Top Lounge is in Aston, the interior bears a striking resemblance to Delcou2019s own Dixonu2019s Lounge. Here, Robbie and Cliff are stood up by an, ahem, u201Cbusiness partneru201D before walking out on an order of crabfries.”,episode:”2″},{name:”Willowbrook Shopping Center”,town:”Boothwyn”,coordinates:”39.83646391291799, -75.44319408140227″,photo:”ZU5QXUIDONETHIPPADUJYMAKCY”,description:”Maeve (Emilia Jones) takes Sam (Ben Lewis Doherty) to a fictional u201CVal-U Corneru201D store here with the intent of dropping him off for police to find before the plan goes awry. The store is located near the real Blue Cherry Ice Cream and Bakery, which is visible in the background.”,episode:”2″},{name:”Phoenixville Area High School”,town:”Phoenixville”,coordinates:”40.11868357112564, -75.51793551723154″,photo:””,description:”During his search for his daughter, Emily (Silvia Dionicio), Tom (Mark Ruffalo) finds her in the dugout of a baseball field that, in real life, is at Phoenixville Area High School. Its distinctive backstop is visible from a bird’s-eye view in the series.”,episode:”2″},{name:”Ralph’s Italian Restaurant”,town:”Philadelphia”,coordinates:”39.94006065749021, -75.15774535245488″,photo:”GMDZYMAHRNFGPBTYLRABBDJYHM”,description:”Dark Hearts leaders Jayson (Sam Keeley) and Perry (Jamie McShane) walk through the kitchen here to meet with local drug kingpin Freddy Frias (Elvis Nolasco), but in the show, it doesnu2019t appear to be serving the Italian food weu2019re used to in real life.”,episode:”3″},{name:”Mount Hope Cemetery”,town:”Aston Township”,coordinates:”39.871593701306836, -75.4390865914003″,photo:”4PCNSW4SPBAW7L2WFSJ2STJ3IM”,description:”Itu2019s a very quick shot, but itu2019s there just under four minutes into the episode. In the background, you can see the Commodore Barry Bridge, and graves on a hill in the cemetery in the foreground.”,episode:”3″},{name:”Sixpenny Creek Quarry”,town:”Union Township”,coordinates:”40.23700358370588, -75.78650582204335″,photo:”PLM34YOMIRCPPDVCGTFXM5FGME”,description:”Robbie (Tom Pelphrey) and Cliff (RaxFAl Castillo) finally get their meeting with Eryn (Margarita Levieva), their Dark Hearts insider, but it doesnu2019t go according to plan.”,episode:”3″},{name:”Llanerch Diner”,town:”Upper Darby”,coordinates:”39.96894828437008, -75.29301814827437″,photo:”6QXQDIMGKVDR5J64W4PVS3WP3E”,description:”Taskforce members Aleah (Thuso Mbedu) and Lizzie (Alison Oliver) head to Upper Darby’s famed Llanerch Diner for a tip on the drug house robberies they’re investigating, and get a break in the case.”,episode:”3″},{name:”Rosedon Plaza”,town:”Lansdowne”,coordinates:”39.94225704587108, -75.26528827286353″,photo:”SCB2N67GLFACZO33OOA7CLXQMM”,description:”In the background of one shot during the chase for Ray (Peter Patrikios), you can see the old Doc’s Deli (Deli Green). That puts Ray in the corner of the Rosedon Plaza parking lot as Lizzie (Alison Oliver) makes the arrest.”,episode:”3″},{name:”Coatesville Police Department”,town:”Coatesville”,coordinates:”39.982144078230384, -75.82033869646108″,photo:”XTADWTS6UNEDHOJGNIMWPBBOLE”,description:”Whether the interior is the same station isnu2019t clear, but an exterior shot sets this spot up as the place where the Task team interrogates Ray (Peter Patrikios) and Shelley (Mickey Sumner). Out front, a police cruiser reads u201CDelaware County Sheriff,u201D which is a little far from home.”,episode:”3″},{name:”The Ridley House”,town:”Holmes”,coordinates:”39.89753600427107, -75.31137880453917″,photo:”F2JJYIIZWFA3FFTHDPSXFI5M5A”,description:”Following the chase and interrogation, Lizzie (Alison Oliver) and Grasso (Fabien Frankel) head to this local bar to unwind. Grasso indicates it is a Barnabyu2019s, which, in real life, was true at one point u2013 until the location became the Ridley House in 2019.”,episode:”3″},{name:”Pennsylvania Turnpike on-ramp”,town:”King of Prussia”,coordinates:”40.08960425823238, -75.39689126886788″,photo:”BURLUGM6TRDX3CE46XSFYGJK7M”,description:”Itu2019s a quick shot as Tom (Mark Ruffalo) drives around at the beginning of the episode, but you can just make out the LasikPlus building on Mall Boulevard in the background. That puts this Pennsylvania Turnpike entrance in King of Prussia.”,episode:”4″},{name:”I-76 Exit 320″,town:”Malvern”,coordinates:”40.073716457225665, -75.52365668680957″,photo:””,description:”Tom (Mark Ruffalo) appears to take this exit as he is driving to meet his fellow taskforce members.”,episode:”4″},{name:”Marcus Hook Community Center”,town:”Marcus Hook”,coordinates:”39.81198192114949, -75.41200706776057″,photo:”B76EM6PKTFEB7KFWEUWGOWYDL4″,description:”As County Chief Dorsey (Raphael Sbarge) exits the building, you can see a door tagged with u201CDelaware County Sheriffu2019s Office.u201D But the green awning above him is a dead giveaway u2014 thatu2019s the Marcus Hook Community Center.”,episode:”4″},{name:”Rockdale Industrial Center”,town:”Aston Township “,coordinates:”39.885281970146785, -75.44479191780039″,photo:””,description:”It’s disguised as a trucking depot in the series, but this is where Robbie (Tom Pelphrey) and Cliff (RaxFAl Castillo) travel with Sam (Ben Lewis Doherty) to arrange transportation for their escape into Canada before being confronted by a Good Samaritan. “,episode:”4″},{name:”Upland Diner”,town:”Chester”,coordinates:”39.85816357241053, -75.37189095611281″,photo:”PVJMMBSI2ZBGJNQO46VYY5P6GQ”,description:”Upland Dineru2019s parking lot serves as Robbieu2019s (Tom Pelphrey) holding area during this episodeu2019s drug deal. Unfortunately, we only get an exterior shot of the building, but the restaurantu2019s vintage-style sign is proudly on display. Great pancakes, for the record.”,episode:”4″},{name:”Ridley Creek State Park entrance”,town:”Newtown Square”,coordinates:”39.95853496065017, -75.43948479664033″,photo:”KOSWCMRRHRAB7MLGNLQIF535UM”,description:”Cliff (RaxFAl Castillo) can be seen turning onto North Sandy Flash Drive from Gradyville Road as he heads to the drug deal meeting spot. If you look closely, you can just barely make out a sign for Ridley Creek State Park.”,episode:”4″},{name:”Beaver Creek”,town:”Wilmington, Del.”,coordinates:”39.839261612846315, -75.57139152554225″,photo:””,description:”It’s tough to spot, but the dam that Cliff (RaxFAl Castillo) parks his car next to during this episode’s failed drug deal u2014 or, more accurately, the Dark Hearts’ setup u2014 appears to be in Beaver Creek on the Delaware-Pennsylvania border.”,episode:”4″},{name:”City Clock Apartments”,town:”Coatesville”,coordinates:”39.98382540387415, -75.8211284189516″,photo:”3BYXFXCYUFFRZBUSN5UAPYVYOA”,description:”Another brief shot, but the clock face on the tower of the City Clock Apartments is prominently featured. The building formerly was the National Bank of Coatesville, and has been on the National Register of Historic Places since 1977.”,episode:”4″},{name:”Coatesville-Downingtown Bypass”,town:”Downingtown”,coordinates:”40.01895444780408, -75.70181027552258″,photo:””,description:”FBI Boss Kathleen McGinty (Martha Plimpton) and the rest of the task force swerve across traffic here while looking for Tom (Mark Ruffalo). In the background, you can just make out the sign for Pacer Pool Services & Supplies.”,episode:”5″},{name:”Marsh Creek State Park”,town:”Downingtown”,coordinates:”40.06782560219195, -75.72000193749815″,photo:”NT5JGVMLZFDJTGHC6M7BZFI7Y4″,description:”After surviving his encounter with Robbie (Tom Pelphrey), Tom (Mark Ruffalo) emerges from the woods to see a beautiful summer scene of families enjoying the lake at Marsh Creek State Park.”,episode:”5″},{name:”I-95 Pennsylvania Welcome Center”,town:”Boothwyn”,coordinates:”39.82418322018552, -75.43745107822149″,photo:”5HPTTXFG3ZA2HGAW54OXM4D5ZY”,description:”FBI boss Kathleen McGinty (Martha Plimpton) stuffs her face with fast food at the center’s picnic tables as the task crew looks for their leader. As McGinty explains, she is u201Can emotional eater.u201D”,episode:”5″},{name:”Woy Bridge”,town:”Everett”,coordinates:”40.0150517796881, -78.304498566625″,photo:””,description:”In what is likely the farthest-flung filming location u2013 at least in relation to the rest of the local spots u2013 we get some shots of Everettu2019s Woy Bridge in Bedford County as the taskforce closes in on Robbie (Tom Pelphrey).”,episode:”5″},{name:”Wissahickon Valley Park”,town:”Philadelphia”,coordinates:”40.05627328492142, -75.21733258122025″,photo:”GIK3XIGHEBGOFNM4S2PBSJFG3M”,description:”Many of the series’ woodsy scenes appear to have been filmed in the Wissahickon, though few u2014 if any u2014 notable landmarks make an appearance. Crews were spotted filming around the park last year, and many Inquirer readers have written in to say the recognize certain parts of the creek and landscape in this episode.”,episode:”6″},{name:”Our Lady of Peace Parish”,town:”Milmont Park”,coordinates:”39.88193514095659, -75.33589782814482″,photo:”HGPPGXLRFZFUFE5WBNNXP3DXFM”,description:”Though disguised well as a juvenile detention facility in the show, this little Delco parish provides at least the exterior shots for where Tom (Mark Ruffalo) meets Sam (Ben Lewis Doherty) for the first time.”,episode:”6″},{name:”High Bridge”,town:”Coatesville”,coordinates:”39.98390784773821, -75.82749681114403″,photo:””,description:”This instantly recognizable Coatesville landmark serves as the location for where County Chief Dorsey (Raphael Sbarge) appears to seal Grasso’s (Fabien Frankel) fate with the Dark Hearts.”,episode:”7″},{name:”Delaware County Courthouse and Government Center”,town:”Media”,coordinates:”39.92029464476607, -75.39155431097433″,photo:”NWW6JA6A4FBAJHW7ZIXSIPZ2YA”,description:”Here, Tom (Mark Ruffalo) gives a touching family statement at a court hearing for his son, Ethan (Andrew Russel), in what is the emotional climax of the series. As The Inquirer reported last year, the production took over Courtroom 15 for filming.”,episode:”7″},{name:”Stroud Preserve”,town:”West Chester”,coordinates:”39.95296099101273, -75.64754780607977″,photo:”6ZJWJVNYQFAZJJPFWLZE4ZWXVY”,description:”The last we see of Maeve (Emilia Jones) in the series, she is driving past Stroud Preserve’s Creek Road parking lot with her cousins in tow. Where they’re heading is anybody’s guess, but we hope it’s somewhere with fewer Dark Hearts members.”,episode:”7″}];var W=63710088e-1,gi={centimeters:W*100,centimetres:W*100,degrees:360/(2*Math.PI),feet:W*3.28084,inches:W*39.37,kilometers:W/1e3,kilometres:W/1e3,meters:W,metres:W,miles:W/1609.344,millimeters:W*1e3,millimetres:W*1e3,nauticalmiles:W/1852,radians:1,yards:W*1.0936};function Dn(e,t,r={}){let n={type:”Feature”};return(r.id===0||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function Kt(e,t,r={}){return Dn({type:”MultiPoint”,coordinates:e},t,r)}function Ze(e,t,r){if(e!==null)for(var n,i,o,s,a,d,f,g=0,l=0,v,x=e.type,F=x===”FeatureCollection”,P=x===”Feature”,V=F?e.features.length:1,O=0;O<V;O++){f=F?e.features[O].geometry:P?e.geometry:e,v=f?f.type==="GeometryCollection":!1,a=v?f.geometries.length:1;for(var K=0;K<a;K++){var C=0,$=0;if(s=v?f.geometries[K]:f,s!==null){d=s.coordinates;var I=s.type;switch(g=r&&(I==="Polygon"||I==="MultiPolygon")?1:0,I){case null:break;case"Point":if(t(d,l,O,C,$)===!1)return!1;l++,C++;break;case"LineString":case"MultiPoint":for(n=0;n<d.length;n++){if(t(d[n],l,O,C,$)===!1)return!1;l++,I==="MultiPoint"&&C++}I==="LineString"&&C++;break;case"Polygon":case"MultiLineString":for(n=0;n<d.length;n++){for(i=0;i<d[n].length-g;i++){if(t(d[n][i],l,O,C,$)===!1)return!1;l++}I==="MultiLineString"&&C++,I==="Polygon"&&$++}I==="Polygon"&&C++;break;case"MultiPolygon":for(n=0;n<d.length;n++){for($=0,i=0;i<d[n].length;i++){for(o=0;o<d[n][i].length-g;o++){if(t(d[n][i][o],l,O,C,$)===!1)return!1;l++}$++}C++}break;case"GeometryCollection":for(n=0;n{r[0]>n[0]&&(r[0]=n[0]),r[1]>n[1]&&(r[1]=n[1]),r[2]<n[0]&&(r[2]=n[0]),r[3]{pe(“https://interactives.inquirer.com/storage/dependencies/maplibre/5.3.0/maplibre-gl.js”,()=>{let e=new It;be=window.maplibregl,be.addProtocol(“pmtiles”,e.tile);let t=”https://interactives.inquirer.com/melish/1.2″,r=`${t}/us-latest.pmtiles`,n=new Le(r);e.add(n),n.getHeader().then(async()=>{let o=await(await fetch(`${t}/styles/neutral.json`)).json();ee=new be.Map({container:”map”,zoom:13,center:[-75.165222,39.952583],cooperativeGestures:!0,attributionControl:!1,padding,style:{…o,sources:{openmaptiles:{type:”vector”,url:`pmtiles://${r}`}}}}),ee.scrollZoom.disable(),ee.touchPitch.disable(),ee.addControl(new be.NavigationControl({showCompass:!1,showZoom:!0,visualizePitch:!1}),”bottom-right”),ee.on(“load”,()=>{En(),De!==”all”?ke=we.filter(s=>parseInt(s.episode)parseFloat(d)).reverse(),s.id=ze(s.name),s.photo&&(s.imageSrc=`https://interactives.inquirer.com/secondbank/arc/${s.photo}/650.webp`);let a=xe(“js-map-stub”);Te(a,s),a.addEventListener(“click”,()=>{Qt(a)}),a.addEventListener(“mouseover”,()=>{Qt(a)}),a.addEventListener(“mouseout”,()=>{tr()}),new be.Marker({element:a}).setLngLat(s.coordinates).addTo(ee)}document.querySelector(“.js-map”).classList.add(“is-loaded”),er=!0,Me!=””&&(ir(Me),nr(Me))})})})},Qt=e=>{tr(),e.classList.add(“is-highlight”)},tr=()=>{document.querySelectorAll(“.js-map-location”).forEach(e=>{e.classList.remove(“is-highlight”)})},En=()=>{De=document.querySelector(“.js-steps”).dataset.episodeForPage},rr=()=>{let e=window.innerWidth>960;padding={top:50,bottom:e?50:window.innerHeight/2,left:e?window.innerWidth/2+50:50,right:50}},$n=()=>{window.addEventListener(“resize”,()=>{rr()})},nr=e=>{if(Me=null,e==null){let t=we.filter(r=>r.episode==De);ee.fitBounds(_t(t),{animate:!0})}else if(e.step==”all”)ee.fitBounds(_t(ke),{animate:!0});else{let t=we.filter(r=>ze(r.name)==e.step);t.length>0&&ee.flyTo({center:t[0].coordinates,padding,zoom:13,animate:!0,duration:1e3})}},ir=e=>{document.querySelectorAll(“.js-map-location”).forEach(t=>{t.classList.remove(“is-current”)}),e&&e.step!==”all”&&document.querySelector(`.js-map-location[data-id=”${e.step}”]`).classList.add(“is-current”)},_t=e=>{let t=Kt(e.map(n=>n.coordinates));return Xt(t)},Ae={init:()=>{An(),rr(),$n()},update:e=>{er?(nr(e),ir(e)):Me=e}};var Ye=Sr(or());var zn=async()=>{let t=await(await fetch(“https://interactives.inquirer.com/pepper/2025-task-locations/data.json”)).json();t=t.nav,console.log(t);let r=(0,Ye.default)();t=t.filter(i=>r.isAfter((0,Ye.default)(`${i.date} 22:00`))),t=t.filter(i=>i.link);let n=document.querySelector(“.js-nav-links”);for(let i of t){i.text=`Episode ${i.episode}`;let o=xe(“js-nav-link-stub”);Te(o,i),n.appendChild(o)}},sr={init:()=>{zn()}};var Ee,Bn=(e,t)=>{Ee=Ee||window.PMNdataLayer,Ee?Ee.push({event:”misc_event”,eventAction:e,eventLabel:t}):window.location.hostname.includes(“localhost”)?console.log(“Analytics event:”,e,t,”(not actually being sent due to localhost)”):console.log(“Failed to push analytics event”,e,t)},ar={event:(e,t)=>{Bn(e,t)}};var lr=1,Ve=class{constructor(t){this.el=t,this.contentPosition=”default”,this.possibleSteps=new Array,this.currentStep=null,this.offset=window.innerHeight*.5,this.instanceOfSteps=lr,this.hasMap=!!t.dataset.map,lr++,this.setOffset(),this.setPossibleSteps(),this.updateContent(),this.bindings()}setPossibleSteps(){this.el.querySelectorAll(“.js-steps-step”).forEach(t=>{t.dataset.step&&this.possibleSteps.push(t.dataset.step)})}bindings(){window.addEventListener(“scroll”,()=>{this.updateContent()}),window.addEventListener(“resize”,()=>{this.updateContent(),this.setOffset()})}setOffset(){window.innerWidth>960?this.offset=window.innerHeight*.5:this.offset=window.innerHeight*.8}updateContent(){this.updateCurrentStep()}updateCurrentStep(){let t,r;if(this.el.querySelectorAll(“.js-steps-step”).forEach((i,o)=>{i.getBoundingClientRect().top{let a=”is-“+o,d=”is-“+s;this.possibleSteps.indexOf(o){document.querySelectorAll(“.js-steps”).forEach(e=>{new Ve(e)})}};var Fn=()=>{},cr={init:()=>{Fn()}};var de,Ke,Xe=!0,Hn=()=>{de=document.querySelectorAll(“.js-video-autoplay”)},On=()=>{window.addEventListener(“resize”,()=>{hr()}),window.addEventListener(“scroll”,()=>{hr()}),de.forEach(e=>{e.addEventListener(“volumechange”,t=>{e.muted!==Xe&&!pt()&&(Xe=e.muted,In())})})},hr=()=>{let e;de.forEach((t,r)=>{let n=t.getBoundingClientRect(),i=n.height/2;n.y-i&&(e=t)}),e!==Ke&&(Ke=e,de.forEach(t=>{t.pause()}),e?e.play():Ke=null)},In=()=>{de.forEach(e=>{e.muted=Xe})},fr={init:()=>{Hn(),de&&On()}};var dr={init:()=>{at.init?.(),yt.init?.(),Mt.init?.(),Tt.init?.(),Ct.init?.(),kt.init?.(),Ae.init?.(),sr.init?.(),ur.init?.(),cr.init?.(),fr.init?.(),ue.init?.()}};var Rn=()=>{},pr={init:()=>{Rn()}};var Un=document.querySelector(“.js-inno”),vr=()=>{dr.init(),pr.init()};Un?vr():new MutationObserver((t,r)=>{if(document.querySelector(“.js-inno”)){r.disconnect(),vr();return}}).observe(document,{attributes:!0,childList:!0,subtree:!0});})();
Bucks County Republicans are stoking fears about crime in Philadelphia even as violent crime in the city steadily drops from its high during the pandemic.
Republicans in the purple collar county hope the message will boost the GOP incumbents, District Attorney Jen Schorn and Sheriff Fred Harran, as they face off this fall against their respective Democratic challengers, Joe Khan and Danny Ceisler.
“We’re letting anarchy take over our country in certain places, and that’s not something we want in Bucks,” said Pat Poprik, the chair of the Bucks County Republican Party.
“Democrats are far more enthusiastic about voting precisely because they see what’s happening on the national level. They are really infuriated by what Donald Trump is doing,” State Sen. Steve Santarsiero, who chairs the Bucks County Democratic Party, said. “They’re going to make their displeasure heard by coming to the polls.”
The local races in the key county, which Trump narrowly won last year,will be a temperature check on how swing voters are responding to Trump’s second term and will gauge their enthusiasm ahead of the 2026 midterms, when Shapiro stands for reelection.
As the Nov. 4 election approaches, early signs indicate Democrats’ message might be working — polling conducted by a Democratic firm in September found their candidates ahead, and three weeks before Election Day, Democrats had requested more than twice as many mail ballots as Republicans.
“I think the Republican Party has the same problem it always does. … They turn out when Trump’s on the ticket, but when he’s not, there’s less enthusiasm,” said Jim Worthington, who has run pro-Trump organizations in Bucks County. “Truth be told, the Democrats do a hell of a job just turning out their voters.”
State Treasurer Stacy Garrity, a Republican running for Pa. governor, poses with Bucks County elected officers following her campaign rally Sat the Newtown Sports & Events Center. From left: Bucks County Sheriff Fred Harran; Bucks County District Attorney Jennifer Schorn; Garrity; and Pamela Van Blunk, Bucks County Controller.
GOP warns of ‘dangerous’ policies
Republican messaging in the two races focuses on the idea that Bucks County is safe, but its neighbors are not.
GOP ads, which have run over the course of four months, suggest that Khan and Ceisler would enact “dangerous” policies in Bucks County such as “releasing criminals without bail” and “giving sanctuary to violent gang members.”
They frame Harran and Schorn in stark contrast to their opponents as lifelong Bucks County law enforcement officers with histories of holding criminals accountable.
“I think it resonates beyond the Republican base,” said Guy Ciarrocchi, a Republican analyst, who contended frequent news coverage of Krasner makes the message more viable.
Khan, a former assistant Philly district attorney who unsuccessfully ran against Krasner in the 2017 primary, has noted that he campaigned “very, very vigorously” against Krasner and challenged his ideas on how to serve the city.
“I accept the reality that I didn’t win that election,” said Khan, whose platform in 2017 included a proposal to stop prosecuting most low-level drug offenses. “Unlike my opponent, who seems to basically enjoy the sport of scoring political points by sparring with the DA of Philadelphia.”
Schorn, however, is adamant that politics has never played a role in her prosecutorial decisions. Her mission, she said, is “simply to get justice.”
A lifelong Bucks County resident who has been a prosecutor in the county since 1999, Schorn handled some of the county’s most high-profile cases and spearheaded the formation of a task force for internet crimes against children.
Bucks County District Attorney Jennifer Schorn speaks at a Republican rally at the Newtown Sports & Events Center in September.
“This has been my life’s mission, prosecuting cases here in Bucks County, the county where I was raised,” she said. “I didn’t do it for any notoriety. I didn’t do it for self-promotion. I did it because it’s what I went to law school to do.”
Harran spent decades as Bensalem’s public safety director before first running for sheriff in 2021. He is seeking reelection amid controversy caused by his decision to partner his agency with ICE, a move that a Bucks County judge upheld last week after a legal challenge.
“Being Bucks County Sheriff isn’t a position you can learn on the job. For 39 years, I’ve woken up every day focused on keeping our communities safe,” Harran said in an email to The Inquirer in which he criticized Ceisler as lacking experience.
Although Ceisler has never worked directly in law enforcement, he argues the sheriff’s job is one of leadership in public safety. That’s something he says he’s well versed in as a senior public safety official in Shapiro’s administration who previously served on the Pentagon’s COVID-19 crisis management team.
Harran, who described his opponent as a “political strategist,” criticized “politicians” for bringing “half-baked ideas like ‘no-cash bail’” into law enforcement. The concept, which is repeatedly derided in the GOP ads, sets up a system by which defendants are either released free of charge or held without the opportunity for bail based on their risk to the community and likelihood of returning to court.
Khan and Ceisler each voiced support for the concept in prior runs for Philadelphia district attorney and Bucks County district attorney, respectively.
Both say they still support cashless bail. Neither, however, would have the authority to implement the policy if elected, though Khan as district attorney could establish policies preventing county prosecutors from seeking cash bail in certain cases.
Joe Khan, a Democratic candidate running for Bucks County DA, walks from his polling place in Doylestown, Pa. in April 2024 when he was running for attorney general.
“When a defendant is arrested and they come into court, every prosecutor answers this question: Should this person be detained or not?” Khan said. “If the answer is yes, then your position in court is that this person shouldn’t be let out, and it doesn’t matter how much money they have. And if the answer is no, then you need to figure out what conditions you need to make sure they come to court.”
Democrats claim to ‘keep politics out’
Even as Democrats view voter anger at Trump as a key piece of their path to victory, they are working to present themselves as apolitical.
Democraticads attack Schorn for not investigating a pipeline leak in Upper Makefield and Harran as caring about nothing but himself. Positive ads highlight Ceisler’s military background and Khan’s career as a federal prosecutor.
Khan and Ceisler, the Democratic Party’s ads argue, will “stop child predators, stand up to corruption, and they’ll keep politics out of public safety.”
The jet fuelcase was turned over to the environmental crimes unit in Pennsylvania Attorney General Dave Sunday’s office. And prosecutorial rules bar Schorn from discussing the alleged abuse.
“During the last, I don’t know, 13 years when [Khan] has been pursuing politics, I’ve been a public servant,” Schorn said.“For someone accusing me of putting politics first, he seems to be using politics to further his own agenda.”
At a September rally in Newtown for Treasurer Stacy Garrity, a Republican running for governor, Harran cracked jokes about former President Joe Biden’s age as he climbed onto the stage and falsely told voters that they will “lose [their] right to vote” if they don’t vote out three Pennsylvania Supreme Court justices standing for retention.
“I’m a cop who ran to keep being a cop. This isn’t about politics for me — it’s about doing everything I can to keep my community safe,” Harran said.
Harran’s opponent, Ceisler, paints a different picture as he draws a direct line between the sheriff and the president.
Danny Ceisler, a Democrat, is running for Bucks County sheriff.
Trump, Ceisler said, has inserted politics into public safety in his second term, and he contended that Harran has done the same.
“[Harran] used his bully pulpit to help get the president elected, so to that extent he is linked to the president for better or worse,” Ceisler said in an interview.
Ceisler has pledged to take politics out of the office and end the department’s partnership with ICE if elected.
At an event in Warminster last month, voters were quick to ask Ceisler which party he was running with. Ceisler asked them to hear his pitch about how he would run the office first.
“Don’t hold it against me,” he quipped as he ultimately admitted to one voter he’s a Democrat.
Staff writer Fallon Roth contributed to this article.
This suburban content is produced with support from the Leslie Miller and Richard Worley Foundation and The Lenfest Institute for Journalism. Editorial content is created independently of the project donors. Gifts to support The Inquirer’s high-impact journalism can be made at inquirer.com/donate. A list of Lenfest Institute donors can be found at lenfestinstitute.org/supporters.
DNA analysis confirmed that the body recovered in the woods behind Ada H.H. Lewis Middle School in East Germantown is that of Kada Scott, the young woman who officials say was kidnapped two weeks ago, law enforcement sources said Sunday, and new details emerged about what led investigators to find her corpse.
An anonymous tipster contacted police Friday night, adamant that Scott’s body was on the grounds of the school.
Police had missed it in their earlier searches, the tipster said, and they should look along the old wooden fence that divides the school from the recreation center next door, said the sources, who spoke on the condition of anonymity to discuss an ongoing investigation.
“GO BACK YOU MISSED HER,” the tipster wrote, according to the sources.
And so, investigators returned to the school on Saturday morning, freshly scouring an area police had focused much of their search efforts on throughout the week after cell phone location data placed Keon King — the man suspected of kidnapping Scott, 23, from her workplace on Oct. 4 — nearby on the night she disappeared.
Days earlier, they had found Scott’s debit card and pink phone case behind the school, but nothing else.
Sources say DNA evidence has confirmed that police discovered the body of Kada Scott in a wooded area near Awbury Recreation Center on Saturday.
Officers were walking through the densely wooded area again on Saturday afternoon, the sources said, when one stepped on a patch of earth that felt softer than the rest — leaves, sticks, and debris scattered loosely on top.
Police excavated the area, and, a few feet down, they found Scott’s body.
It’s not yet clear how she died. It could take days or weeks for the Medical Examiner’s Office to determine the cause of death.
But new video evidence suggests that Scott was likely killed within just 30 minutes of her leaving her workplace the night she went missing, the sources said.
The discovery of the shallow grave, two weeks after Scott disappeared, came after anonymous tips that grew more detailed with each passing day, the sources said, coupled with location data from Scott’s Apple Watch, and finally, new surveillance footage recovered near the school.
Scott, a vibrant young woman from the Ivy Hill section of Mount Airy, disappeared from her workplace, a nursing home in Chestnut Hill, on the night of Oct. 4.
Investigators believe she and King, 21, had been texting, and that night, she walked out of work to meet him shortly after 10 p.m. but never returned.
Police are still investigating the nature and extent of Scott’s relationship with King.
After detectives identified King as a suspect, they pored over the location data from his and Scott’s phones. It showed that King was the last person in touch with Scott on Oct. 4, that his phone traveled with hers briefly before her phone was turned off, and that he was in the area of Awbury Arboretum later that night, a law enforcement source said.
Late last week, police learned that Scott had been wearing an Apple Watch on the night she disappeared. Location data showed that, around 1 a.m., the watch was in the parking lot of the Awbury Recreation Center, said the source.
Police discovered a grave containing female human remains in the area of Ada H. H. Lewis Middle School, a closed school facility near the Awbury Arboretum in Germantown on Saturday.
Investigators went to the recreation center on Friday and recovered new surveillance footage that showed King pull into the parking lot around 10:30 p.m. on Oct. 4 in a Hyundai Accent that had been reported stolen, two sources said. He left the car there that night — most likely with Scott’s body inside, the sources said.
The footage appeared to show King return to the car two days later and retrieve and move what they believe to be Scott’s body, the sources said. It’s not clear whether he acted alone.
The next day, the sources said, the car was set on fire behind homes on the 7400 block of Ogontz Avenue. King’s cell phone data placed him there at the time of the blaze, the source said. (Police had initially been searching for a gold Toyota Camry that King was seen driving but no longer believe that car was used in the crime, the sources said.)
The district attorney’s office said prosecutors would wait for additional information from police and the medical examiner before determining whether to charge King in connection with Scott’s death.
King is expected to be charged with arson in the coming days for allegedly setting the car on fire in West Oak Lane, according to the sources.
Police don’t know the identity of the tipster who steered them to the location of Scott’s body. But if King had help moving it, the sources said, the accomplice may have confided in others, and one of those people may have contacted police.
The investigation is continuing.
Staff writer Maggie Prosser contributed to this article.
Michael Days, a pillar of Philadelphia journalism who championed young Black journalists and was beloved among reporters who worked for him at the Daily News and Philadelphia Inquirer, died suddenly on Saturday at 72 in Trenton.
A devout Catholic who grew up in North Philadelphia, Mr. Days was instrumental in developing talent among Philadelphia’s journalism community, leading with a kind but direct approach that nurtured journalists and caused reporters to break out in spontaneous applause when he returned to the Daily News in 2011 after an interim stint at the then-rival Inquirer.
Mr. Days was also respected beyond Philadelphia, receiving Hall of Fame honors from the National Association of Black Journalists and the Pennsylvania News Media Association. He was a past president of the Philadelphia Association of Black Journalists (PABJ) and at the time of his death was president of NABJ-Philadelphia, which formed as an alternative to PABJ.
Mr. Days’ wife, Angela Dodson, said Sunday afternoon she was comforted by the outpouring of support and love from journalists who knew him.
“He was the kind of person who wanted to serve,” Dodson said. “People could talk to him, and he had something wise to say.”
Michael Days (right), Editor, Philadelphia Daily News and Trailblazer Award winner with his wife, Angela Dodson (left)
Dodson, a journalist and author, said she and her husband had a long-running disagreement over where they had first met. She believes it was in Rochester, N.Y., when they were working for rival newspapers. But Mr. Days believed he’d met her a year earlier, at an NABJ convention.
“People loved him,” Dodson said. “He commanded such respect that I used to say, people would elect him president of anything.”
In recent years, Dodson enjoyed listening as her husband took long phone calls from journalists seeking advice. “What we all need is somebody who listens to us, and he was a master at that,” Dodson said.
Former Daily News reporter and current Inquirer journalist Stephanie Farr recounted Mr. Days’ infectious laugh and his habit of adding Post-it notes to clips of reporters’ articles to tell them they had done a good job, sometimes with simple messages like “amazing quote!” that gave reporters a little extra pride in their work.
“You didn’t get one every day, but when you got one, you were on top of the world,” Farr said.
She still has a box full of these “Mike-O-Grams,” as they became known, and many others do, as well. “The small gestures, in the end, are really the big ones,” Farr said.
Tributes and condolences poured in Sunday from journalists who were shaped by Mr. Days’ leadership.
“It is with a very heavy heart that NABJ Philadelphia mourns the sudden passing of our President Michael I. Days, a respected journalist, mentor and cherished friend whose legendary career and commitment to excellence inspired us all,” wrote Inquirer education reporter and NABJ-Philadelphia Vice President Melanie Burney.
NABJ President Errin Haines said she first met Mr. Days when she moved to Philadelphia in 2015 to work for the Associated Press. Haines said she was struck by his seemingly boundless energy for helping younger reporters. She remembered him as a universally respected leader, and someone who had shown other Black journalists a path to success.
“It was seismic in the industry, and a huge point of pride for NABJ,” said Haines.
Philadelphia Daily News reporters Barbara Laker (left) and Wendy Ruderman, and editor Michael Days react as they hear the news that the two reporters won the 2010 Pulitzer Prize for investigative reporting.
As editor of the Daily News, Mr. Days played an essential role in the decisions that would lead to its 2010 Pulitzer Prize win for investigative reporting, said Inquirer senior health reporter Wendy Ruderman. She and her colleague Barbara Laker won the prize.
“You could walk into his office anytime and talk to him,” Ruderman said. “He just was very approachable — but also, you respected him.”
Ruderman recounted sitting in Mr. Days’ office late one evening, alongside Laker and a company lawyer, as they discussed whether to move forward with a story about a Philadelphia Police Department narcotics officer. The story, the lawyer said, stood a good chance of getting them sued.
With a “directness and sincerity” that were his hallmark, Mr. Days turned to the reporters.
“He said, ‘I trust my reporters, I believe in my reporters, and we’re running with it,’” Ruderman said. That story revealed a deep dysfunction within the police department, Ruderman said, and led to the newspaper’s 2010 Pulitzer Prize win.
Retired Daily News managing editor Pat McLoone remembered Mr. Days as a quietly authoritative presence, and a leader who brought elegance and class to everything he did — even as he had to preside over the early days of the news industry’s difficult shift from print to digital media.
“He was the best possible boss to work for,” McLoone said. “He was in the 100th percentile as a human being.”
Michael Days (far right) with other former presidents of the Philadelphia Association of Black Journalists in 2021. He served as president in the 1980s.
After graduating from Roman Catholic High School in Philadelphia, Mr. Days earned degrees from College of the Holy Cross and the University of Missouri. He worked at the Wall Street Journal and other newspapers before joining the Daily News as a reporter in 1986.
In 2011, Mr. Days was named managing editor of the Philadelphia Inquirer, where he held several management roles until he retired in October 2020. Inquirer Editor and Senior Vice President Gabriel Escobar said Sunday that Mr. Days was a “leading light in Philadelphia journalism.”
“Mike was a son of Philadelphia, a believer in the power of journalism to do right, and a mentor to scores of young journalists who benefited over many decades from his attentive guidance,” Escobar wrote in an email to Inquirer staff. “He spent his life fighting for better journalism because he understood its limitations and, when it came to diversity, its flaws.”
After his own retirement, Mr. Days’ work mentoring Black journalists didn’t stop, said retired journalist Linda Wright Moore.
“He had all the things you need,” Wright Moore said. “He was steady. Principled. He could do tough. He balanced what the craft demands of all of us with the fact that we’re humans, and not perfect.”
Wright Moore had known Mr. Days when she was a columnist at the Daily News from 1985 to 2000. But they stayed in touch over the years and saw one another every year at the annual NABJ convention.
In August, the NABJ celebrated its 50th anniversary — a historic moment for the organization and for Wright Moore, whose late husband, Acel Moore, was one of the group’s founding members.
For her and Mr. Days, it demonstrated the significance of the group’s survival, a half century later, despite the ongoing dismantling of DEI programs at many organizations.
“I could just feel how proud he was to be there, to have made it to this point,” Wright Moore said.
Mr. Days is survived by Dodson, three adopted sons, Edward, Andrew, and Umi, and three grandchildren. Mr. Days is predeceased by his adopted son Adrian.
Services for Mr. Days will be held Oct. 25, at Sacred Heart Church, 343 S. Broad Street, Trenton, N.J. The Viewing will be held from 10 a.m. to 12 p.m. followed by Mass at noon.
Former Talking Heads front man David Byrne, in Philadelphia for a three-night stop on his latest tour, joined the “No Kings” protest in Philadelphia on Saturday to show support for the anti-Trump movement and snap a few photos with fans along the way.
Several marchers posted photos of themselves on social media with Byrne, who rode a bike during the march, which went from City Hall to Independence Mall.
Ryan Godfrey, a 54-year-old software solutions engineer, was among those who chatted with Byrne, shortly after surreptitiously taking a photo of Byrne behind him.
Godfrey attended one of Byrne’s concerts on Thursday and recognized the singer when he saw him on his bicycle alongside marchers on Market Street.
“I knew he was a big bike guy — and we had just seen him on Thursday,” Godfrey said. He decided to introduce himself.
“I said, ‘Hi, I really appreciated your concert the other night. It was amazing; thank you so much for that.’ He said, ‘Of course, thanks for enjoying it,’ and then I said, ‘And also thank you very much for being here today — this is very important, that you’re doing this,’” Godfrey recalled.
“And he said, ‘Of course. I wanted to be here for this.’”
West Philadelphia residents Ryan Godfrey and Jessica Lowenthal pose for a selfie, surreptitiously photographing singer David Byrne in the background on the left, during the “No Kings” march on Oct. 18, 2025, on Market Street in Philadelphia.
Godfrey regretted not asking Byrne one question: How were the videos at his concert projected around the stage and on the floor without the performers casting shadows on them?
“It was a kind of magic trick that I don’t really understand,” Godfrey said. Godfrey has been a fan of Byrne’s since the ‘80s, but his interest was renewed when he saw the 1984 Talking Heads concert film Stop Making Sense in a theater last year.
“I was sorry that I had waited that long because it was almost certainly the greatest concert film I’ve ever seen,” he said.
He said Byrne was anything but aloof with marchers.
“He was very genial, very kind and very friendly and open to interactions from everyone around him,” he said
Another fan quoted Byrne in the sign they carried in the march, then got to hold the sign next to a laughing Byrne. The message? “Love & acceptance are now ‘punk ideologies.’”
Byrne has been critical of Trump both in his music and in interviews and writings. During Saturday’s show, he mentioned the “No Kings” rally, drawing applause from the crowd, according to social media posts.
One Bluesky poster said Byrne — who can be seen carrying a camera during the protest — showed photos of himself and his band at the march on the stage backdrop during Saturday night’s concert.