The saga of the world’s most famous stalled ship, the Ever Given, is nearing its second week after sustained attempts to displace the massive ones The Empire State Building-length container ship that blocked the Suez Canal in Egypt when it was released on Sept. March ran aground The following is the latest information on the ordeal, the economic impact of shutting down one of the world’s busiest shipping lanes, and the possible next steps

At around 5:45 a.m. local time, the tugs somehow managed to get the Ever Given floating again after almost a week in the ground. Osama Rabie, chairman of the Suez Canal Authority, said the tugs had pulled the bow of the 1,300 foot ship He also said the tugs would stop for about an hour more so that the ship could move back through the rest of the Suez Canal at its own request

According to Agence France-Presse, experts estimate that value at $ 3 to $ 9, $ 6 billion worth of goods got bogged down or delayed in transit due to Ever Green’s mishap that includes cattle on at least 20 ships, the Guardian reported on on Friday:

Georgios Hatzimanolis, a spokesman for tracking website Marine Traffic, said while some cattle ships waited to enter the canal, three – the Omega Star, the Unimar, and the Sea Star – appear to be stuck in various places on the canal, “The Maritime traffic data showed 11 cattle ships late while an NGO identified others, bringing the total identified so far to 20

Five of the identified ships had loaded animals in Spain and nine in Romania earlier this month, according to the NGO Animals International … There were no immediate welfare concerns for the animals, but if the Ever Given has to be made easier to make removal easier , it could take weeks to use cranes to remove enough containers and the surrounding ships would have to depart and find longer alternative routes

Gerit Weidinger, EU coordinator for Animals International, told the Guardian that she was concerned about:

My biggest fear is that the animals will run out of food and water and get stuck on the ships because they can’t be dumped elsewhere for paperwork … If you get stuck on board, there is a risk of starvation [for the animals] , Dehydration, injuries and litter build-up so they can’t lie down, and the crew can’t get rid of dead carcasses in the [Suez] Canal, either. It’s basically a ticking biohazard time bomb for animals, the crew and everyone involved

The Sunday Times reports that the Egyptian authorities arranged an emergency food drop for tens of thousands of animals aboard ships stranded in the canal

According to Lloyd’s List, up to 90 percent of the cargo concerned is not insured against delays

Workers planned to make two attempts on Sunday to free the ship, which coincides with high tide, aided by a full moon on Sunday night, a top canal authority pilot said the full moon provides a spring or king tide with the tide higher and the ebb is lower due to the effects of gravity during rectilinear alignment of the earth, moon and sun

Two more tugs arrived on site on Sunday The highest tide will occur just before midnight local time this evening

With the giant eyesore hovering over their homes and fields, some residents of Manshiyet Rugola and the surrounding villages are angry at the disruption of their lives Others fear the continued blockage of the Canal will harm their nation and bring more economic hardship to most are simply stunned that high winds and a dust storm, the kind of weather they are used to, could ground a ship and upset the world, including her little corner …

Manshiyet Rugola, which means “little village of manhood” in Arabic, is a small community of farmers, drivers, laborers and blacksmiths about four miles from the southern entrance of the canal, near the town of Suez Village, past half-built red-brick houses On the dust-covered main street, peppered with military checkpoints, three-wheeled motorcycle taxis drive past shops and cafés

Egyptian government has also strained local life, The Post and other publications have noted that government security officials have advised residents not to approach, take pictures of, or speak to foreigners, “You cannot.” go up to the roof of a house to look at it, “a local told the Post

There was also some amazement from local residents at the idea that a storm could be causing the ship to deviate off course, with some commenting that worse storms hit and did not affect ships sailing the canal / p>

As reported by the New York Times, some residents quipped that they would like to see some of the shipload arrive at them:

“Why don’t you pull out one of these containers?” joked Umm Gaafar, 65 “There could be something good in there, maybe it could feed the city” …

“The whole village was watching out there,” said Youssef Ghareeb, 19, a factory worker. “We got so used to having them with us because we lived on our roofs and only watched the ship for four days have ”

It was generally accepted that the view was even better at night when the ship was glowing with light: a skyscraper straight out of a big city skyline lying on its side

“When it lights up at night, it’s like the Titanic,” said Nadia, who, like her neighbor Umm Gaafar, refused to give her full name because of the security forces in the area. “The only thing missing is the necklace from the film ”

As Bloomberg’s supply lines pointed out on Sunday, residents would have a hard time approaching the ship even if they weren’t concerned about running into Egyptian security agents:

A fence erected in 2014 kept the villagers away from the canal, otherwise they say they may have befriended their temporary neighbors Years ago, when ships ran aground, villagers remember crew members throwing sodas ashore for children / p>

This time around, the locals are mostly much more concerned about what the blockade will cost their country, the Post notes:

The Suez Canal Authority and the government have invested part of the income from the Canal, an important source of Egyptian foreign exchange reserves, in hospitals and schools in the region. The longer the crisis lasts, the greater the chance that less money will be spent on roads and others Ahmed, the owner of the coffee shop, fears that the infrastructure is available. “For six days, not a single dollar has flowed from the canal into Egypt’s coffers”

Kamil, who transports fish in his boats, said some of his friends’ livelihoods were already affected by the blockade. “They provide the ships with food and laundry, but no ships are coming or going at the moment,” he said …

Most residents can’t wait to see the Ever Given disappear, and it has become a constant reminder of the potential economic calamity of their country, already hit by lost income from the coronavirus pandemic and dwindling tourists

Egyptian President Abdel Fattah el-Sisi has reportedly ordered the Suez Canal Authority to work out a plan to end some of the more than 18000 containers from Ever Given should the ship continue to float – as with Sunday’s high tide maneuvers – this would serve to ease cargo apart from other efforts such as draining the ship’s ballasts and fuel tank – which may make it easier to unload the ship. However, removing the cargo would not be easy

Since there aren’t any cranes nearby high enough to reach the top of the container stacks, the authorities would most likely have to use large helicopters to pick up the containers one at a time, neither would that work for all containers, just those that are light enough to be safely taken along by the helicopters that can be made available for this effort, The Wall Street Journal suggests using Chinook CH-47 tandem rotors, but as Aerotime Hub noted last week, the CH -47, although he is a world famous workhorse for heavy loads, only loads less than 10Picking 886 kilograms it probably wouldn’t cut much of Ever Given’s cargo:

Although the exact number of packages Ever Given carries is not disclosed, their capacity is over 20000 20 feet (6) 1 m) intermodal containers, although in its current configuration, as photos of the ship show, the ship is mostly loaded with 12.2 m long containers of double size and 40 feet in length

An empty 40 foot container weighs 2400 kilograms and offers space for a maximum of 28.8 kilograms (61910 pounds) of freight with a maximum total gross weight of a whopping 30480 kilograms (67200 pounds) Although there is a good chance that not all of the Ever Given’s containers are filled to the brim, logistics companies usually try to maximize the cargo of their containers because shipping empty spaces is not exactly efficient in the photos also it looks like the ship is sitting very close to its waterline, which means it is carrying almost as much as it can

The heaviest load a helicopter currently in service in the world can lift is 20000 kilograms (with a Russian Mil Mi-26) Most every US. Military helicopter May 16Lift 329 kilograms (with a Sikorsky CH-53K King Stallion)

The other option, explains Aerotime Hub, would be to use mobile crane ships However, it is not clear when these could be made available or how safely they could be used in this particular situation

Unloading the Ever Given’s cargo in any way could also destabilize the ship – or even cut it in half, according to BBC News, experts could cause a catastrophic imbalance if the weight is not evenly removed from the ship

The Wall Street Journal notes that Jan.300-foot-long Ever Given 2019 struck a moored 75-foot pleasure ferry in Germany – although a subsequent criminal investigation did not reveal any wrongdoing:

The investigation found no wrongdoing and found that the container ship’s captain had been caught by winds. Its slow speed had limited its ability to maneuver the ship away from the banks of the river, the probe found it could not be detected whether the current captain of the ship is the same who was examined in Germany

As is customary with ships crossing the Suez Canal, the Egyptian crew took control of the Ever Given through the Canal last week

By Sunday morning, more than 360 ships were stuck at both ends of the Suez Canal, waiting for the situation to be resolved so that they could pass. In the meantime, the shipping giant Maersk has already diverted 15 ships around the Cape of Good Hope on the southern tip of Africa to avoid the blockade, and warned its customers that it could take up to six days to clear its backlog of 32 ships and counting on the canal (including three anchored inside) the world’s number 1 shipping giant, Mediterranean Shipping Cohas diverted 11 ships around the Cape, and Hapag-Lloyd AG has diverted six of its ships

The Suez Canal is the shortest sea route between Asia and Europe.After it was blocked by a container ship on Tuesday, the ships either have to wait for the canal to reopen or travel a longer distance to Europe and circumnavigate the entire African continent https: // tco / Tn8wrwAyID ImageTwittercom / 3cxBDAfptO

Shipping executives said even if the ship were removed immediately, a backlog of ships waiting to pass through the canal would last for days, and diversion of cargo could destroy port traffic around the world for weeks and weeks normally carefully orchestrated ships anger management of the world’s containers The canal connects the Mediterranean and the Red Sea and accounts for up to 13% of maritime trade and around 10% of maritime oil transports …

The diversion from the Suez Canal was intensified over the weekend as more shippers lost hope of a quick solution. The first diversions around the waterway included container ships and tankers that were still far away – usually in the Atlantic on their way to Gibraltar, to get to the Mediterranean But now container ships approaching the Red Sea are also abruptly changing their course to go south around Africa

This will delay their arrival in Europe by up to two weeks and incur additional costs of up to half a million dollars each. The diversions also threaten major port congestion in major ports in Europe and Asia as all of these diverted ships arrive late. p>

The good news about the Cape of Good Hope is at least that it is no longer the treacherous, shipwreck-prone route that was once the nickname “Ship’s Cemetery”. “But the alternate route will take more time – a week or two longer – and cost a lot more fuel There is also an increased risk of piracy on this route, especially off the coast of West Africa

As of Sunday, the Egyptian authorities will report that they are already 27Moved 000 cubic meters of sand to a depth of 18 meters in order to remove the ship by dredging. A team from US. Navy dredging experts were expected to join the effort over the weekend

After the Ever Given’s rudder was successfully excavated on Friday, tugs working to free the Ever Given managed to move the ship two degrees by late Saturday, despite the New York Times reporting that the bug “firmly planted” remains in the ground and that the operation was still confronted with considerable hurdles. Nevertheless, it was cause for celebration to move the giant at all:

The Syrian Arab news agency reported on Saturday that the Syrian government had begun rationing its oil supplies to keep a safe end to the canal blockade in sight “to ensure its vital availability for as long as possible.”

It wasn’t a threat From the start it wasn’t a threat Look, they went in – they shouldn’t have – some of them went in and they hug and kiss the police and the guards, you know? They had great relationships. Lots of people were waved in, and then they went in and went out

Dominion is already suing Rudy Giuliani, Mike Lindell and Sidney Powell for false voting claims, but this is the first libel suit against a media company

Dominion Voting Systems filed a $ 6 billion libel suit against Fox News on Friday alleging the cable news giant falsely claimed to improve the volatile ratings that the voting company rigged for the 2020 election

… Dominion argues that Fox News, which reinforced inaccurate claims that Dominion changed votes, “sold a false story of electoral fraud for its own commercial purposes and seriously injured Dominion in the process,” according to one Copy of lawsuit obtained from The Associated Press

“The Truth Matters Lies Have Consequences,” the lawsuit states. “Fox sold a false story of electoral fraud for its own commercial purposes, seriously injuring Dominion in the process, if this case didn’t result in defamation by one Sender leads, this does nothing ”

The Boulder shooting suspect’s attorney immediately requested a mental health assessment during his first court appearance

Ahmad Al Aliwi Alissa, the suspected shooter in this week’s mass shootings in Boulder, Colorado, is being held without bail, Judge Thomas F Mulvahill ruled on Thursday

Alissa’s attorneys asked that the next status hearing on this case be postponed for two to three months They said: “We cannot do anything until we are able to contact Dr Alissa’s Mental Illness ”

“We can’t begin to understand the nature and depth of Mr. Alissa’s insanity until we get the government discovery, ”Kathryn Herold, one of his attorneys, told Mulvahill Herold, an attorney with the Colorado Public Defender’s Office, did not provide any further details

The judge granted the motion and asked for a break after about six minutes. Alissa has not made a plea, but will do so later in the trial

Already a subscriber?
Sign up or link your magazine subscription

Already a subscriber?
Sign up or link your magazine subscription

Already a subscriber?
Sign up or link your magazine subscription

-1} module exported = arrayIncludes;
}, {“805”: 805}];
Window modules [“805”] = [function (required, module, export) {var baseFindIndex = required (860), baseIsNaN = required (877), strictIndexOf = required (878); Function baseIndexOf (e, s, n) {return s == s? strictIndexOf (e, s, n): baseFindIndex (e, baseIsNaN, n)} Module exported = baseIndexOf;
}, {860: 860, 877: 877, 878: 878}];
Window modules [“806”] = [function (required, module, export) {function arrayIncludesWith (r, n, e) {for (var t = -1, u = null == r? 0: rLength; t-1&&e% 1 == 0&&e = o? E: o)), e} Module exported = baseClamp;
}, {}];
Window modules [“836”] = [Function (required, module, export) {var Stack = required (791), arrayEach = required (801), assignValue = required (828), baseAssign = required (830), baseAssignIn = required ( 832), cloneBuffer = require (840), copyArray = require (818), copySymbols = require (843), copySymbolsIn = require (841), getAllKeys = require (842), getAllKeysIn = require (837), getTag = require (838 )), initCloneArray = require (839), initCloneByTag = require (847), initCloneObject = require (844), isArray = require (150), isBuffer = require (810), isMap = require (845), isObject = require (88 ), isSet = require (846), keys = require (149), CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4, argsTag = “[object arguments]”, arrayTag = “[object array]”, boolTag = “[object Boolean ] “, dateTag =” [object date] “, errorTag =” [object error] “, funcTag =” [object function] “, genTag =” [object generator function] “, mapTag =” [ob project assignment] “, numberTag =” [object number] “, objectTag =” [object object] “, regexpTag =” [object RegExp] “, setTag =” [object set] “, stringTag =” [object string] “, symbolTag = “[Object Symbol]”, WeakMapTag = “[obj ect WeakMap]”, arrayBufferTag = “[Object ArrayBuffer]”, dataViewTag = “[Object DataView]”, float32Tag = “[Object Float32Array]”, float64Tag = “[Object Float64Array ] “, int8Tag =” [Object Int8Array] “, int16Tag =” [Object Int16Array] “, int32Tag =” [Object Int32Array] “, uint8Tag =” [Object Uint8Array] “, uint8ClampedTag =” [Object Uint8ClampedArray] =. uint16Tag] ” “[Object Uint16Array]”, uint32Tag = “[Object Uint32Array]”, cloneableTags = {}; Function baseClone (e, a, r, n, g, o) e, n, g, o): r (e)), void 0! == t) return t; if (! isObject (e)) return e; var c = isArray (e); if (c) {if (t = initCloneArray (e),! l) return copyArray (e, t)} else {var T = getTag (e), b = T == funcTag || T == genTag; if (isBuffer (e)) return cloneBuffer (e, l); if (T == objectTag || T == argsTag || b&&! g) {if (t = i || b? {}: initCloneObject (e),! l) returns i? copySymbolsIn returns (e, baseAssignIn (t, e)): copySymbols (e, baseAssign (t, e))} else {if (! cloneableTags [T]) returns g? e: {}; t = initClone returns ByTag (e, T, l)}} o || (o = new batch); var u = oget (e); if (u) return u; oset (e, t), isSet (e)? eforEach (function (n) {tadd (baseClone (n, a, r, n, e, o))}): isMap (e) &&eforEach (function (n, g) {tset (g, baseClone (n, a, r, g, e, o))}); var y = s? i? getAllKeysIn: getAllKeys: i? keysIn: keys, A = c? void 0: y (e); return arrayEach (A || e, function (n, g) {A&& (n = e [g = n]), assignValue (t, g, baseClone (n, a, r, g, e, o))}) , t} cloneableTags [argsTag] = cloneableTags [arrayTag] = cloneableTags [arrayBufferTag] = cloneableTags [dataViewTag] = cloneableTags [boolTag] = cloneableTags [dateTag] = cloneableTags [float32Tag] = cloneableTags [float32Tag] = cloneableTags [float32Tag] = cloneableTags [floatTags] =. int3216 floatTags cloneableTags [mapTag] = cloneableTags [numberTag] = cloneableTags [objectTag] = cloneableTags [regexpTag] = cloneableTags [setTag] = cloneableTags [stringTag] = cloneableTags [uint8ClampedTag] = cloneableTags [u! 0, cloneableTags [errorTag] = cloneableTags [funcTag] = cloneableTags [weakMapTag] =! 1, ModulExporte = BaseClone;
}, {88: 88, 149: 149, 150: 150, 791: 791, 801: 801, 810: 810, 818: 818, 828: 828 830: 830, 832: 832, 837: 837, 838: 838, 839: 839, 840: 840, 841: 841, 842: 842, 843: 843, 844: 844, 845: 845, 846: 846, 847: 847}];
Window modules [“837”] = [function (required, module, export) {var baseGetAllKeys = required (870), getSymbolsIn = required (966), keysIn = required (833); Function getAllKeysIn (e) {return baseGetAllKeys (e, KeyIn, getSymbolsIn)} Module exported = getAllKeysIn;
}, {833: 833, 870: 870, 966: 966}];
Window modules [“838”] = [Function (required, module, export) {var DataView = required (760), Map = required (779), Promise = required (786), Set = required (787), WeakMap = required ( 799), baseGetTag = require (871), toSource = require (894), mapTag = “[Object Map]”, objectTag = “[Object Object]”, PromiseTag = “[Object Promise]”, setTag = “[Object set ] “, WeakMapTag =” [Object WeakMap] “, dataViewTag =” [Object DataView] “, dataViewCtorString = toSource (DataView), mapCtorString = toSource (Map), promiseCtorString = toSource (Promise), setCtorString = toSource (Prom) = toSource (WeakMap), getTag = baseGetTag; (DataView&&getTag (new DataView (new ArrayBuffer (1)))! = DataViewTag || Map&&getTag (new map)! = MapTag || PromiseCSSEANDCH resolution ())! = PromiseDay || Set&&getTag (new set)! = SetTag || WeakMap&&getTag (new WeakMap)! = weakMapTag) && (getTag = function (s) {var a = baseGT objectTag? eConstructor: void 0, r = t? toSource (t): “”; if (r) switch (r) {case dataViewCtorString: return dataViewTag; case mapCtorString: return mapTag; case PromiseCtorString: return PromiseTag; case setCtorString: return setTag; case weakMapCtorString: return from weakMapTag} return a}), ModulExporte = getTag;
}, {760: 760, 779: 779, 786: 786, 787: 787, 799: 799, 871: 871, 894: 894}];
Window modules [“839”] = [Function (required, module, export) {var objectProto = ObjectPrototype, hasOwnProperty = objectProtohasOwnProperty; Function initCloneArray (t) {var r = tLength, n = new tConstructor (r); Return of r&& “string” == Type of t [0] &&hasOwnPropertycall (t, “index”) && (nIndex = tIndex, n IndexEingabe = tEingabe), n} Module exported = initCloneArray;
}, {}];
Window modules [“840”] = [Function (required, module, export) {var root = required (761), freeExports = “Object” == Type of exports&&exports&&! ExportenodeType&&exports, freeModule = freeExports&& “object” == module type&&module&&! -ModulnodeType&&module, moduleExports = freeModule&&freeModuleexportiert === freeExports, Buffer = moduleExports? rootPuffer: void 0, allocUnsafe = buffer? BufferallocUnsafe: void 0; Function cloneBuffer (e, o) {if (o) return eSlice (); var r = eLength, f = allocUnsafe? allocUnsafe (r): new eConstructor (r); Returns eCopy (f), f} Module exported = cloneBuffer;
}, {“761”: 761}];
Window modules [“841”] = [function (required, module, export) {var copyObject = required (831), getSymbolsIn = required (966); Function copySymbolsIn (e, o) {return copyObject (e, getSymbolsIn (e), o)} module exported = copySymbolsIn;
}, {831: 831, 966: 966}];
Window modules [“842”] = [function (required, module, export) {var baseGetAllKeys = required (870), getSymbols = required (965), keys = required (149); Function getAllKeys (e) {return baseGetAllKeys (e, key, getSymbols)} module exported = getAllKeys;
}, {149: 149, 870: 870, 965: 965}];
Window modules [“843”] = [function (required, module, export) {var copyObject = required (831), getSymbols = required (965); Function copySymbols (e, o) {return copyObject (e, getSymbols (e), o)} module exported = copySymbols;
}, {831: 831, 965: 965}];
Window modules [“844”] = [function (required, module, export) {var baseCreate = required (770), getPrototype = required (998), isPrototype = required (906); Function initCloneObject (e) {return “function”! = Type of eConstructor || isPrototype (e)? {}: baseCreate (getPrototype (e))} Module exported = initCloneObject;
}, {770: 770, 906: 906, 998: 998}];
Window modules [“845”] = [Function (required, module, export) {var baseIsMap = required (890), baseUnary = required (849), nodeUtil = required (1008), nodeIsMap = nodeUtil&&nodeUtilisMap, isMap = nodeIsMap? baseUnary (nodeIsMap): baseIsMap; ModulExporte = isMap;
}, {849: 849, 890: 890, 1008: 1008}];
Window modules [“846”] = [Function (required, module, export) {var baseIsSet = required (897), baseUnary = required (849), nodeUtil = required (1008), nodeIsSet = nodeUtil&&nodeUtilisSet, isSet = nodeIsSet? baseUnary (nodeIsSet): baseIsSet; ModulExporte = isSet;
}, {849: 849, 897: 897, 1008: 1008}];
Window modules [“847”] = [Function (required, module, export) {var cloneArrayBuffer = required (960), cloneDataView = required (961), cloneRegExp = required (962), cloneSymbol = required (963), cloneTypedArray = required ( 921), boolTag = “[Object Boolean]”, dateTag = “[Object Date]”, mapTag = “[Object Map]”, numberTag = “[Object Number]”, regexpTag = “[Object RegExp]”, setTag = ” [Object set] “, stringTag =” [Object string] “, symbolTag =” [Object symbol] “, arrayBufferTag =” [Object ArrayBuffer] “, dataViewTag =” [Object DataView] “, float32Tag =” [Object Float32Array] “, float64Tag = “[Object Float64Array]”, int8Tag = “[Object Int8Array]”, int16Tag = “[Object Int16Array]”, int32Tag = “[Object Int32Array]”, uint8Tag = “[Object Uint8Array]”, uint8ClampedTag = “[Object Uint8Clamped ] “, uint16Tag =” [Object Uint16Array] “, uint32Tag =” [Object Uint32Array] “; Function initCloneByTag (e, a, r) ​​{var t = eConstructor; switch (a) {case arrayBufferTag: return cloneArrayBuffer (e); case boolTag: case dateTag: return new t (e); case dataViewTag: return cloneDataView (e, r); case float32Tag: case float64Tag: case int8Tag: case int16Tag: case int32Tag: case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: return cloneTypedArray (e, r); case mapTag: return new t; case numberTag: case stringTag: return new t (e); case regexpTag: return cloneRegExp (e); case setTag: return new t; case symbolTag: cloneSymbol (e)}} return moduleexported = initCloneByTag;
}, {921: 921, 960: 960, 961: 961, 962: 962, 963: 963}];
Window modules [“849”] = [function (required, module, export) {function baseUnary (n) {return function (r) {return n (r)}} ModulExporte = baseUnary;
}, {}];
Window modules [“850”] = [function (required, module, export) {function cacheHas (a, c) {return ahat (c)} module exported = cacheHas;
}, {}];
Window modules [“851”] = [function (required, module, export) {var baseForOwn = required (852), createBaseEach = required (853), baseEach = createBaseEach (baseForOwn); ModulExporte = baseEach;
}, {852: 852, 853: 853}];
Window modules [“852”] = [function (required, module, export) {var baseFor = required (864), key = required (149); Function baseForOwn (e, r) {return e&&baseFor (e, r, key)} module exported = baseForOwn;
}, {149: 149, 864: 864}];
Window modules [“853”] = [function (required, module, export) {var isArrayLike = required (912); Function createBaseEach (r, e) {return function (a, i) {if (null == a) return a; if (! isArrayLike (a)) returns r (a, i); for (var t = aLength, n = e? t: -1, u = object (a); (e? n–: n0&&r (u)? e> 1? baseFlatten (u, e-1, r, t , l): arrayPush (l, u): t || (l [llength] = u)} return l} module exported = baseFlatten;
}, {814: 814, 863: 863}];
Window modules [“863”] = [Function (required, module, export) {var symbol = required (797), isArguments = required (809), isArray = required (150), distributableSymbol = symbol? SymbolisConcatSpreadable: void 0; Function isFlattenable (e) {return isArray (e) || isArguments (e) || !! exports = isFlattenable;
}, {150: 150, 797: 797, 809: 809}];
Window modules [“864”] = [function (required, module, export) {var createBaseFor = required (865), baseFor = createBaseFor (); ModulExporte = baseFor;
}, {“865”: 865}];
Window modules [“865”] = [function (required, module, export) {function createBaseFor (e) {return function (r, t, a) {for (var n = -1, o = object (r), c = a (r), u = cLength; u -;) {var f = c [e? u: n]; if (! 1 === t (o [f], f, o)) break} return r}} Module exported = createBaseFor;
}, {}];
Window modules [“867”] = [function (required, module, export) {var castPath = required (868), toKey = required (869); Function baseGet (e, t) {for (var a = 0, r = (t = castPath (t, e)) length; null! = E&&at} ModulExporte = baseGt;
}, {}];
Window modules [“876”] = [function (required, module, export) {function baseHasIn (n, e) {return null! = n&&e in the object (s)} Module exported = baseHasIn;
}, {}];
Window modules [“877”] = [Function (required, module, export) {Function basisIsNaN (e) {Return e! = e} ModulExporte = baseIsNaN;
}, {}];
Window modules [“878”] = [function (required, module, export) {function strictIndexOf (r, t, e) {for (var n = e-1, f = rLength; n = 120&&yLength> = 120)? new SetCache (i&&y): void 0} y = a [0]; var l = -1, o = s [0]; a: for (; ln)) return! 1; var f = uget (e); if (f&&uget (r)) return f == r; var o = -1, _ =! 0, s = a&COMPARE_UNORDERED_FLAG? new SetCache: void 0; for (usetze (e, r), usetze (r, e); o-1&&e% 1 == 0&&e = o? p: p * (“desc” == i [n]? – 1: 1)} return index -rIndex} ModulExporte = compareMultiple;
}, {“964”: 964}];
Window modules [“929”] = [function (required, module, export) {var baseGet = required (867), baseSet = required (930), castPath = required (868); Function basePickBy (e, a, t) {for (var r = -1, s = aLength, b = {}; rn? 0: nr), (a = a> n? N: a) a? 0: ar >>> 0, r >>> = 0; for (var o = array (n); l = LARGE_ARRAY_SIZE) {var h = r? null: createSet (e); if (h) returns setToArray (h); c =! 1, t = cacheHas, n = new SetCache} else n = r? []: i; e: for (; sr || l&&u&&s&& m&& c || || || n&&u&&s e&&s o) 1 if (n&& l&& c&&i1 r [i-1] !!!!! Empty 0, n = i> 2 r [2]: void 0; for (s = eLength> 3&& “function” == type of s? (I -, s): void 0, n&&isIterateeCall (r [0], r [1], n) && (s = i-1? a [n? r [s]: s]: void 0}} Module exported = createFind;
}, {149: 149, 900: 900, 912: 912}];
Window modules [“977”] = [function (required, module, export) {var flatten = required (89), overRest = required (940), setToString = required (941); Function flatRest (e) {return setToString (overRest (e, void 0, flatten), e “”)} ModulExporte = flatRest;
}, {89: 89, 940: 940, 941: 941}];
Window modules [“984”] = [Function (required, module, export) {var toNumber = required (987), INFINITY = 1/0, MAX_INTEGER = 17976931348623157e308; Function toFinite (e) {return e? (E = toNumber (e)) === INFINITY || e === – INFINITY? (E0) {if (r> = HOT_COUNT) returns arguments [0]} else r = 0; return tApply (void 0, arguments)}} ModulExporte = ShortOut;
}, {}];
Window modules [“1012”] = [Function (required, module, export) {var rsAstralRange = “\ ud800 – \ udfff”, rsComboMarksRange = “\ u0300 – \ u036f”, reComboHalfMarksRange = “\ ufe20- ufe2f “, rsComboSymbolsRange =” u20d0 – u20ff “, rsComboRange = rsComboMarksRange reComboHalfMarksRange xff”, rsMathOpRange = “\ xac \ xb1 \ xd7 \ xf7”, rsNonCharange “, rsNonCharange x3a – \ x40 \ x5b – \ x60 \ x7b- xbf “, rsPunctuationRange =” \ u2000 – \ u206f “, rsSpaceRange =” \ t \ x0b \ f \ xa0 ufeff \ n \ r \ u2028 \ u2029 \ u1680 u180e u2000 u2001 u2002 u2003 u2004 u2005 u2006 u2007 u2008 u2009 u200a u202f u205f u3000 “, rsUpperRange = “AZ \ xc0 – \ xd6 \ xd8 – \ xde”, rsVarRange = “\ ufe0e \ ufe0f”, rsBreakRange = rsMathOpRange rsNonCharRange rsPunctuationRange rsSpace “=”, rsAposboRange rsSpace] = ” “[” rsComboRange “]”, rsDigits = “\ d”, rsDingbat = “[” rsDingbatRange “]”, rsLower = “[” rsLowerRange “]” , rsMisc = “[^” rsAstralRange rsBreakRange rs DingbatRange rsLowerRange rsUpperRange “]”, rsFitz = “\ ud83c [\ udffb – \ udfff]”, rsModifier = “(?:” RsCombo “|” rsFitz “, rsNonAstral = “[^” rsAstral “, rsRegional =” (?: \ ud83c [\ udde6 – \ uddff]) {2} “, rsSurrPair =” [\ ud800 – \ udbff] [\ udc00 – \ udfff] “, rsUpper =” [“rsUpperRange”] “, rsZWJ =” \ u200d “, rsMiscLower =” (?: “rsLower” | “rsMisc”) “, rsMiscUpper =” (?: “rsUpper” | “rsMisc”) “, rsOptContrLower =” (?: “rsApos” (?: d | ll | m | re | s | t | ve))? “, rsOptContrUpper =” (?: “rsApos” (?: D | LL | M | RE | S | T | VE))? “, ReOptMod = rsModifier”? “, RsOptVar =” [“rsVarRange”]? “, RsOptJoin =” (?: “RsZWJ” (?: “[RsNonAstral, rsRegional, rsSurrPair] join (” | “)”) “rsOptVar reOptMod”) * “, rsOrdLower =” \ d * (?: 1 | 2 | 3 | (?! [123]) \ dth) (? = \ b | [AZ _]) “, rsOrdUpper =” \ d * (?: 1ST | 2ND | 3RD | (?! [123]) \ dTH) (? = \ b | [a-z_]) “, rsSeq = rsOptVar reOptMod rsOptJoin, rsEmoji =” (?: “[rsDingbat, rsRegional, rsSurrPair] join (” | “)”) “rsSeq, reUnicodeWord = RegExp ([rsUpper “?” RsLower “” rsOptContrLower “(? =” [RsBreak, rsUpper, “$”] join (“|”) “)”, rsMiscUpper “” rsOptContrUpper “(? =” [RsBreak, rsUpper, rsMiscLower “$”] join (“|”) “)”, rsUpper “?” rsMiscLower “” rsOptContrLower, rsUpper “” rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji] join (“|”), “g”); function unicodeWords) (r) {return rmatch (reUnicodeWord) || []} module exported = unicodeWords;
}, {}];
Window modules [“1016”] = [function (required, module, export) {var root = required (761), now = function () {return rootDatumnow ()}; ModulExporte = now;
}, {“761”: 761}];
Window modules [“1017”] = [Function (required, module, export) {var baseRest = required (939), eq = required (827), isIterateeCall = required (969), keysIn = required (833), objectProto = ObjectPrototype, hasOwnProperty = objectProtohasOwnProperty, defaults = baseRest (function (e, r) {e = object (s); var t = -1, o = rlength, a = o> 2? r [2]: void 0; for (a&&isIterateeCall ( r [0], r [1], a) && (o = 1); t = f) break; if (l = f) break; if (l “, l = y = 2; break} c = i ( r [o]), l = y = 2; break; case 115: if (o> = f) break; lencodeURIComponent (e) Replace (/ [! ‘() *] / g, e => `% $ {echarCodeAt (0) toString (16) toUpperCase ()} `));
}, {}];
Window modules [“1206”] = [Function (required, module, export) {“use strict”; Module exported = ((e, t) => {if (“string”! = Typeof e || “string”! = Typeof t) throws a new TypeError (“Expects the arguments to be of type` string` “); if (“” === t) return [e]; const r = eingexOf (t); return-1 === r? [e]: [eDisk (0, r), eDisk (r tLength)]}) ;
}, {}];
Window modules [“1207”] = [Function (required, module, export) {“use strict”; Function hasOwnProperty (r, e) {return ObjectPrototype hasOwnPropertyCall the module (r, e)} exported to = function (r, e, t, n) {e = e || “&”, t = t || “=”; var o = {}; if (“string”! = typeof r || 0 = == rLength) return o; var a = / / g; r = rsplit (e); var s = 1e3; n&& “number” == typeof nmaxKeys&& (s = nmaxKeys); var p = rlength; s> 0&&p> s&& (p = s); for (var y = 0; y = 0? (u = fsubstr (0, v), c = fsubstr (v 1)) 🙁 u = f, c = “”), i = decodeURIComponent (u), l = decodeURIComponent (c), hasOwnProperty (o, i)? isArray (o [i])? o [i]] push (l): o [i] = [o [i], l]: o [i] = l } return o}; var isArray = ArrayisArray || function (r) {return “[Object array]” === ObjectPrototyptoStringcall (r)};
}, {}];
Window modules [“1208”] = [Function (required, module, export) {“use strict”; var stringifyPrimitive = function (r) {switch (typeof r) {case “string”: return r; case “boolean”: return r? “true”: “false”; case “number”: return isFinite (r)? r: “”; default: return “”}}; module exported = function (r, e, t, n) {return e = e || “&”, t = t || “=”, null === r&& (r = void 0), “object” == typeof r? map (objectKeys (r), function (n) {var i = encodeURIComponent (stringifyPrimitive (n)) t; return isArray (r [n])? map (r [n], function (r) {return i encodeURIComponent (stringifyPrimitive (r))}) join (e): i encodeURIComponent (stringifyPrimitive (r [n]))}) join (e): n? encodeURIComponent (stringifyPrimitive (n)) t encodeURIComponent (stringifyPrimitive (r)): “”}; var isArray = ArrayisArray || function (r) {return “[Object array]” === ObjectPrototyptoStringcall (r)}; Function map (r, e) {if (rmap) return rmap (e); for (var t = [], n = 0; n0&&a [aLength-1]) && (6 === i [0] || 2 === i [0])) {o = 0; continue} if (3 === i [0] && (! a || i [1]> a [0] &&i [1] “:” akbar-men “,” ∑ “:” majmou “,” ¤ ” : “omla”}, az: {}, ca: {“∆”: “Delta”, “∞”: “infinite”, “♥”: “amor”, “&”: “i”, “|”: “o”, “”: “mes que”, “∑”: “suma” dels “,” ¤ “:” moneda “}, cz: {” ∆ “:” delta “,” ∞ “:” nekonecno “, “♥”: “laska”, “&”: “a”, “|”: “nebo”, “”: “vice jako”, “∑”: “soucet”, “¤”: “mena”}, de : {“∆”: “delta”, “∞”: “infinite”, “♥”: “love”, “&”: “and”, “|”: “or”, “”: “greater than”, “∑”: “Sum of”, “¤”: “Currency”}, dv: {“∆”: “delta”, “∞”: “kolunulaa”, “♥”: “loabi”, “&”: ” aai “,” | “:” noonee “,” “:” ah vure bodu “,” ∑ “:” jumula “,” ¤ “:” faisaa “}, en: {” ∆ “:” delta “,” ∞ “:” infinite “,” ♥ “:” love “,” & “:” and “,” | “:” or “,” “:” greater than “,” ∑ “:” sum “,” ¤ “: “Currency”}, es: {“∆”: “Delta”, “∞”: “infinito”, “♥”: “amor”, “&”: “y”, “|”: “u”, “” : “mas que”, “∑”: “suma de los”, “¤”: “moned a “}, fr: {” ∆ “:” delta “,” ∞ “:” infiniment “,” ♥ “:” Amour “,” & “:” et “,” | “:” ou “,” “: “superieure a”, “∑”: “somme des”, “¤”: “monna dh”}, gr: {}, hu: {“∆”: “delta”, “∞”: “vegtelen”, “♥ “:” szerelem “,” & “:” es “,” | “:” vagy “,” “:” nagyobb mint “,” ∑ “:” szumma “,” ¤ “:” penznem “}, it: {” ∆ “:” delta “,” ∞ “:” infinito “, “♥”: “amore”, “&”: “e”, “|”: “o”, “”: “maggiore di”, “∑”: “somma”, “¤”: “moneta”}, lt : {}, lv: {“∆”: “delta”, “∞”: “bezgaliba”, “♥”: “milestiba”, “&”: “un”, “|”: “vai”, “”: “lielaks neka”, “∑”: “summa”, “¤”: “valuta”}, my: {“∆”: “kwahkhyaet”, “∞”: “asaonasme”, “♥”: “akhyait”, ” & “:” nhin “,” | “:” tho “,” “:” kyithaw “,” ∑ “:” paungld “,” ¤ “:” ngwekye “}, mk: {}, nl: {” ∆ “:” delta “,” ∞ “: “oneindig”, “♥”: “leads”, “&”: “en”, “|”: “of”, “”: “groter dan”, “∑”: “som”, “¤”: “valuta “}, pl: {” ∆ “:” delta “,” ∞ “:” nieskonczonosc “,” ♥ “:” milosc “,” & “:” i “,” | “:” lub “,” “:” wieksze niz “,” ∑ “:” suma “,” ¤ “:” waluta “}, pt: {” ∆ “:” delta “,” ∞ “:” infinito “, “♥”: “amor”, “&”: “e”, “| “:” ou “,” “:” maior que “,” ∑ “:” soma “,” ¤ “:” moeda “}, ro: {” ∆ “:” delta “,” ∞ “:” infinit “, “♥”: “dragoste”, “&”: “si”, “|”: “sau”, “”: “mai mare ca”, “∑”: “suma”, “¤”: “valuta”}, ru: {“∆”: “delta”, “∞”: “beskonechno”, “♥”: “lub ov”, “&”: “i”, “| “:” ili “,” “:” bolshe “,” ∑ “:” summa “,” ¤ “:” valjuta “}, sk: {” ∆ “:” Delta “,” ∞ “:” nekonecno “,” ♥ “:” laska “,” & “:” a “,” | “:” alebo “,” “:” viac ako “,” ∑ “:” sucet “,” ¤ “:” mena “}, sr: {}, tr: {“∆”: “delta”, “∞”: “Sonsuzluk”, “♥”: “ask”, “&”: “ve”, “|”: “veya”, “”: ” buyuktur “,” ∑ “:” toplam “,” ¤ “:” para birimi “}, uk: {” ∆ “:” delta “,” ∞ “:” bezkinechnist “,” ♥ “:” lubov “,” & “:” i “,” | “:” abo “,” “:” bilshe “,” ∑ “:” suma “,” ¤ “:” valjuta “}, vn: {” ∆ “:” delta “,” ∞ “:” vo cuc “, “♥”: “yeu”, “&”: “va”, “|”: “hoac”, “”: “lon hon”, “∑”: “tong”, “¤”: “tien te”}} ; if (“string”! = typeof e) return “”; if (“string” == typeof a&& (A = a), m = Ien, c = Cen, “object” == type of a) for (g in n = akeepCase ||! 1, O = acustom&& “object” == typeof aBrauch? aBrauch: O, u = cut off> 1&&a cut off ||! 1, l = auric ||! 1, s = auricNoSlash ||! 1, r = amarkize ||! 1, S =! 1! == asymbole&&! 1! == alang, A = a separator || A, l&& (p = bjoin ( “”)), s&& (p = zjoin (“”)), r&& (p = [“”, “!”, “~”, “*”, “‘”, “(“, “)”] join ( “”)), m = alang&&I [alang] &&S? I [alang]: S? Ien: {}, c = alang&&C [alang]? C [alang] :! 1 === alang ||! 0 === alang? {}: Cen, atitleCase&& “number” == typeof atitleCaselength&&ArrayPrototyptoStringAnruf (atitleCase)? (atitleCaseforEach (function (e) {O [e “”] = e “”}), t =! 0): t = !! atitleCase, acustom&& “number” == typeof aUser-definedlength&&ArrayPrototyptoStringAnruf (acustom) &&aUser-definedforEach (function (e) a (e) “a” key n); > 1? New RegExp (“\ b” o (a) “\ b”, “gi”): new RegExp (o (a), “gi”), e = e replace (n, O [a] )}), O) p = g; for (p = o (p = A), f =! 1, y =! 1, d = 0, k = (e = replace (/ (^ s | s $) / g, “”)) length ; d = 0? (j = g, g = “”) :! 0 === y? (g = U [j] v [g], j = “”): g = f&&v [g] match (/ [A-Za-z0-9] /)? V [g]: v [g], f =! 1, y =! 1): g in U? (j = g, g = “, d === k-1&& (g = U [j]), y =! 0) :! m [g] || l&&-1! == join (” “) indexOf (g) || s&&-1! == zjoin (“”) indexOf (g)? (! 0 === y? (g = U [j] g, j = “”, y =! 1): f&& (/ [A-Za-z0-9] / Test (g) || Esubstr (-1) match (/ A-Za-z0-9] /)) && (g = “” g), f =! 1) 🙁 g = f || Esubstr (-1) match (/ [A-Za-z0-9] /)? A m [g]: m [g], g = void 0! == e [d 1] &&e [d 1] match (/ [A-Za-z0-9] /)? A: “”, f =! 0), E = replace (new RegExp (“[^ \ w \ s” p “_-]”, “g”), A); Return t&& (E = EReplace (/ ( w) ( S *) / g, function (e, a, n) {var t = atoUpperCase () (null! == n? N: “”); return objectkey (O) indexOf (ttoLowerCase ()) u&& (h = EcharAt (u) === A, E = EDisk (0, u), h || (E = EDisc (0, ElastIndexOf (A)))), n || t || (E = EtoLowerCase ()), E}, t = function (s) {return function (a) {return n (a, e)}}, o = function (s) {return ereplace (/ [- \ ^ $ *? ( ) | [] {} /] / g, “\ $ &”)}, i = function (e, a) {for (var n in a) if (a [n] === e) return ! 0}; if (“undefined”! = type of module &&moduleExport) ModulExporte = n, ModulExportecreateSlug = t; else if (“undefined”! = typeof define&&defineamd) define ([], function () {return n}); otherwise try {if (egetSlug || ecreateSlug) throw “Speakingurl: Globals exists / (getSlug | createSlug) /”; egetSlug = n, ecreateSlug = t} catch (e) {}} (this);
}, {}];
Window modules [“1235”] = [function (required, module, export) {var namespace = “expire_mixin”; Function expirePlugin () {var e = thiscreateStore (diesStore, null, dies_namespacePrefix-namespace); return {set: function (t, n, a, r) ​​{thishasNamespace (Namespace) || eset (n, r); return t ()}, get: function (e, n) {thishasNamespace (Namespace) || tcall (this, n); return e ()}, remove: function (t, n) {thishasNamespace (Namespace) || eremove (n); return t ()}, getExpiration: function (t, n) {return eget (n)}, removeExpiredKeys: function (e) {var n = []; this each (function (e, t) {npush (t)}); for (var a = 0; a = 0; r -) {var l = localStorage () key (r); e (read (l), l)}} function remove (e) {return localStorage () removeItem (e)} function clearAll () {return localStorage () clear ()} module exported = {name: “localStorage”, read: read, write: write, each: each, remove: remove, clearAll: clearAll};
}, {“1237”: 1237}];
Window modules [“1239”] = [Function (required, module, export) {Module exported = {name: “memoryStorage”, read: read, write: write, each: each, remove: remove, clearAll: clearAll}; var memoryStorage = {}; function read (e) {return memoryStorage [e]} function write (e, r) {memoryStorage [e] = r} Function of each (e) {for (var r in memoryStorage) memoryStoragehasOwnProperty (r) &&e (memoryStorage [r] , r)} function remove (e) {delete memoryStorage [e]} function clearAll (e) {memoryStorage = {}}
}, {}];
Window modules [“1276”] = [Function (required, module, export) {! Function (s) {var t = function (s) {return new y (e)}; tversion = “068”, “undefined”! = Module type&&modules exported? Module exported = t: “function” == typeof define&&defineamd? define (function () {return t}): etypogr = t; var n = function (e, t) {return new RegExp (e, t)}, s = /] *> / i, r = tamp = function (e) {var t = / ( s |) (& | & | & # 38;) ( s |) / g; if (e || “string” == typeof e) returns e replace (/ ()? ([^)? / g, function (e, n, r, a) {return a = a || “”, ( n = n || “”) match (s)? nra: n (r = rReplace (t, ‘$ 1& $ 3’)) a})}, a = tord = function (e) {if (e | | “string” == typeof e) {var t, n = f (e), r = [], a =! 1, p = / ( d) (st | nd | rd | th) / g; return nforEach (function (s) {“tag” === eType? (rpress (etxt), t = sexec (etxt), a =! (! t || void 0! == t [1])): a ? rpress (etxt): rpress (eTXTersetzen (p, ‘$ 1 $ 2’))}), rjoin (“”)}}, p = tinitQuotes = function (s) {var t = n (“(?: ( ?:] *> | ^) \ s * (?:] *> \ s *) *) (?: ( “|” | “) | (‘|’ | ‘))”, “I” ); if (e || “string” == typeof e) returns e reset (t, function (e, t, n) {var s = t? “dquo”: “quo”, r = t || n; return [ eSheibe (0, elastIndexOf (r)), ”, r, “”] join (“”)})}, c = twidont = function (e) {var t = “(?:] *?>) *? [^ \ s] (? 🙁 ?: a | em | span | strong | i | b) [^>] *?>) *? “, s = n (” (\ s “t” \ s “t”) (?: \ s) ([^ \ s] (?: \ s * (?: a | em | span | strong | i | b) [^>] *?> \ s * \ *) *? (?: \ s *? (?: p | h [1-6] | li | dt | dd)> | $)) “,” gi “); return eReplace (s, ‘$ 1 $ 2’)}, i = tcaps = function (e) {var t, r = f (e), a = [], p =! 1, c = n (“((\ b [AZ \ d] * [AZ] \ d * [AZ] [AZ \ d ‘] * \ b) | (\ b [AZ] \ s? (?: [AZ] \\ s?)) (?: \ s | \ b | $)) “,” g “); return rforEach (function (s) {“tag” === eType AdPress (etxt), t = sexec (etxt), p =! (! t || void 0! == t [1])): p? adpress (etxt): adpress (eTXTersetzen (c, function (e, t, n, s) {var r, a; return n? ‘% s’ersetzen (“% s”, n) 🙁 “” === sScheibe (-1) & le; (r = sScheibe (0, -1), a = “”) 🙁 r = s, a = “”), replace ‘% s1% s2’ (“% s1”, r ) replace (“% s2”, a))}))}), aJointtypogrify = function (s) {var t = e; return ejquery&&ehtml&& (t = ehtml ()), t = r (t), t = c (t), t = u (t), t = i (t), t = p (t), t = a (t )}; var l, o, u = tsmartypants = function (e) {var t, n, r = f (e), a = [], p = [], c = “”, i = “”, l =! 1, o = “”; return rforEach (function (e) {if (“tag” === eType adress (etxt), null! == (i = sexec (etxt)) && (c = i [2] toLowerCase (), i [1] ? (pLength> 0&&c === p [pLength-1] &&ppop (), 0 === plength&& (l =! 1)) 🙁 ppush (c), l =! 0)); else {if (n = (n = eTXT) Replace (/ (rock) ‘n’ (roll) / gi, “$ 1’n ‘$ 2”), t = nDisk (-1),! l) switch (n = g (n), n = h (n), n = d (n), n = x (n)) {case “‘”: n = / S /test (o)? “”: “”; break; case “”: n = / S / test (o)? “” “:” “”; break; default: n = m (n)} o = t, apush (n)}}), ajoin (“”)}, f = ttokenize = function (s) {for (var t, n = [], s = 0 , r = / ([^] *>) / gi; null! == (t = rexec (e));) {var a = t [1], p = t [2]; a&&npush ({type: “Text”, txt: a}), npush ({type: “Tag”, txt: p}), s = rlastIndex} return rlastIndex) / g, “$ 1 -“)}, d = tsmartEllipses = function (s) {return ereplace (/ \/ G, “…”) replace (/ / g, “”)}, x = tsmartBackticks = function (s) {return ereplace (/` `/ g,” “”) replace (/ ” / g, “” “)}, m = tsmartQuotes = function (s) {var t = “(? =% s \ B)” replace (“% s”, “[! ” # \ $ \% \ ‘() *, – \ /:;? \ @ [\\] \ ^ _ `{|} ~]”), s = “[^ \ \ t \ r \ n \ [ {\ (\ -]” , r = n (“(\ s | | – | & [mn] dash; | – | – | ȁ [34];) ‘(? = \ w)”, “g”), a = n ( “(” s “) ‘(?! \ s | s \ b | \ d)”, “g”), p = n (“(” s “))’ (?! \ s | s \ b) “,” g “), c = n (‘(\ s | | – | & [mn] dash; | – | – | ȁ [34];)” (? = \ w)’ , “g”), i = n (‘”(? = \ s)’,” g “), l = n (” (“s ‘)”‘, “g”); return eersetzen (n (” ^ ‘% s “) replace (“% s “, t),” g “),”‘ “) replace (n (‘^”% s’) replace (“% s”, t), “g”) , “” “) replace (/” ‘(? = w) / g, “”‘ “) replace (/ ‘” (? = w) / g, “‘” “) replace (/ b ‘( ? = d {2} s) / g, “‘”) replace (r, “$ 1”) replace (a, “$ 1”) replace (p, “$ 1’ $ 2”) replace (“‘ “,” ‘”) replace (c,” $ 1 “”) replace (i, “” “) replace (l,” $ 1 “”) replace Si e (‘”‘,” “”)}, y = function (e) {this_wrapped = e}, v = function (e, n) {yPrototype [e] = function () {return e = calls to (t, that wrapped), dies_chain? t (e) chain (): e; var e}}; for (l in t) thasOwnProperty (l) && ((o = t [l]) &&o constructor&&ocall&&o apply) && [lv] l); yPrototypechain = function () {return this_chain =! 0, this}, yPrototypevalue = function () {return this_wrapped}} (this);
}, {}];
Window modules [“1358”] = [Function (required, module, export) {“use strict”; const universalAgora = required (1360), universalRest = required (10), universalQuery = required (1359), _ get = required (23); Function searchByQueryWithRawResults (e, r) {const t = `// $ {rPage? ˅Host} $ {80! == rpage? port? `: $ {rpage? ˅port} `:” “} $ {rPage? ˅path} / _ agora / _search`; return universalRestpost (t, e,! 0)} function getProducts (e, r, t) {return searchByQueryWithRawResults (universalAgorabuildProductsQuery (e), r) then (e => {const r = universalQueryformatSearchResult (e); return {total: eTrefferTotal Products: t? UniversalAgorafilterByLocale (r): r}})} Function getMerchantsList (e) {return searchByQueryWithRawResults (universalAgorabuildMerchantsAggregation (1e6, _get (e, “siteagoraLocale”)) “, e) then (dealer QueryesformatAggregation: Field: “Key”, sub-field: “Name”}))} ModulExportegetProduct = universalAgoragetProduct, ModulExportegetProducts = getProducts, ModulExportegetMerchantsList = getMerchantsList, ModulExportesearchByQueryWithRawResults = searchByQueryWithResultsults = searchByQueryWithRawerBesults = searchByQueryWithMerchantsByQueryUport = searchByQueryWithRawerExchants;
}, {10:10, 23: 23, 1359: 1359, 1360: 1360}];
Window modules [“1359”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ get = require (23), _ isArray = require (150), _ set = require (107), _isObject = require (88), _ cloneDeep = require (61), _ uniq = require (90); function formatSearchResult (e) {return _map (eTrefferTreffer, “_ source”)} Function newQuery (e) {if (! e) raises a new error (“An index is required to create a query”); return {index: e, type: “_ doc”, body: {query: {}}}} function addShould (e, o) {var t = _get (e, “bodyAbfrageBoolsollte”, void 0), r = _isArray ( O); return t? r? _set (e, “bodyAbfrageBoolsollte”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolsollte”, t)): _ set (e, “bodyAbfrageBoolsollte”, r? o: [o]) , e} function addMust (e, o) {var t = _get (e, “bodyAbfrageBoolmust”, void 0), r = _isArray (o); return t? r? _set (e, “bodyAbfrageBoolmuss”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolmuss”, t)): _ set (e, “bodyAbfrageBoolmust”, r? o: [o]) , e} function addMustNot (e, o) {var t = _get (e, “bodyAbfrageBoolmust_not”, void 0), r = _isArray (o); return t? r? _set (e, “bodyAbfrageBoolmust_not”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolmust_not”, t)): _ set (e, “bodyAbfrageBoolmust_not”, r? o: [o]) , e} function addFilter (e, o) {var t = _get (e, “bodyAbfrageBoolfilter”, void 0); if (! _ isObject (o)) throws a new error (“filter query must be an object”); return t? _isArray (t)? (tpresses (o), _ set (e, “KörperAbfrageBoolfilter”, t)): _ set (e, “bodyAbfrageBoolfilter”, [_ cloneDeep (t), o]): _ set (e, “bodyAbfrageBoolfilter”, o) , e} Function addMinimumShould (e, o) {if (“number”! = typeof o) triggers a new error (“A number is required as a second argument”); return _set (e, “bodyAbfrageBoolMinimum_should_match”, o), e} function addSort (e, o) {var t = _get (e, “bodysort”); return _isArray (t) || _set (e, “bodysort”, t = []), tpush (o), e} function addSize (e, o) {if (! o&&0! == o) return e; if (o = parseInt (o), isNaN (o)) trigger a new error (`Second argument must be a number: $ {o}`); return _set (e, “bodysize”, o)} function addFrom (e, o) {if (! o&&0! == o) return e; if (o = parseInt (o), isNaN (o)) throw new Error (`The second argument must be a number: $ {o}`); return _set (e, “bodyfrom”, o)} function onlyWithTheseFields (e, o) {if (! _ isArray (o)) throws a new error (“The second argument must be an array”); return _set (e, “body_Sourceinclude”, _ uniq (o)), e} function onlyWithinThisSite (e, o) {return osubsiteSlug? addFilter (e, {term: {subsite: osubsiteSlug}}) 🙁 addFilter (e, {term: {site: oslug}}), addMustNot (e, {exists: {field: “subsite”}})), e } function onlyWithinThisDomain (e, o) {return addFilter (e, {Prefix: {canonicalUrl: `http: // $ {Öhost}`}}), e} Function within this SiteAndCrossposts (e, o) {var t = { term: {}}, r = {bool: {should: [], minimal_should_match: 1}}; return t term [“Crosspost” (ÖsubsiteSlug || oSchnecke)] =! 0, rBoolsolltedrücke (t), osubsiteSlug? rBoolsolltepush ({term: {subsite: osubsiteSlug}}) 🙁 rBoolsolltepush ({term: {site: oslug}}), addMustNot (e, {exists: {field: “subsite”}})), addFilter (e, r ), e} Function within thisDomainOrCrossposts (e, o) {return addShould (e, {term: {[`Crosspost $ {osubsiteSlug || oslug}`]:! 0}}), addShould (e, {Prefix: {canonicalUrl : `http: // $ {oHost}`}}), addMinimumShould (e, 1), e} Function moreLikeThis (e, o, t) {let r = {fields: [“Tags”], like: {_ Index: eingex, _type: “_ doc”, _ id: o}, include:! 1, min_term_freq: 1, max_query_terms: 12, min_doc_freq: 1}; return {more_like_this: assign object (r, t)}} function addAggregation (e = {}, o) {const {body: t = {}} = e; return o? (taggs? _set (e, “bodyaggs”, assign objects (taggs, o)): _ set (e, “bodyaggs”, o), e): e} function formatAggregationResults ({aggregationName: e = “”, field: o = “”, subfield: t = “”, skipEmpty: r =! 0}) {return function (s = {}) {let i = _get (s, `Aggregations $ {e} $ {t?” “t” “:” “} Buckets`, []); Return r&& (i = iFilter (e => 0! == _ get (e, “doc_count”, 0))), imap (e => e [o] || “”)}} function addGeo (e, o ) {if (! _ isArray (o)) throws a new error (“The second argument must be an array”); if (2! == oLength) trigger a new error (“Array must be length 2”); if (oEinige (isNaN)) throw a new error (“Array may only contain numbers”); return _set (e, “body zurückAbfragegeo_shapeStandortgestaltenTyp”, “Punkt”), _ set (e, “KörperAbfragegeo_shapeStandortgestaltenKoordinaten”, o), e} function combinFunctionScoreQueries (e, o) {let t = _cloneDeep (_get (e, “bodyAbfrage”, “bodyAbfrage” {})), r = _cloneDeep (_get (o, “bodyAbfrage”, {})), s = _get (e, “bodysort”); return _set (e, “bodyAbfrage”, {}), _ set (e, “bodyAbfragefunction_scoreFätze”, []), eBodyAbfragefunction_scoreFunctionspush ({filter: t, weight: 20}), eBodyAbfragefunction_scoreFunctionspush ({filter: r, weight: 10} ), eBodyAbfragefunction_scorescore_mode = “max”, eBodyAbfragefunction_scoremin_score = 10, _isArray (s) || _set (e, “bodysort”, s = []), sDo not move ({_ score: “desc”}), e} function addNestedObjQuery (e, o, t) {if (! e) triggers a new error ( “There is no base query to perform the addNestedObjQuery operation”); if (! o) throw new error (“There is no nested object path on which the nested query can be executed”); if (! t) throw new error (“There is no nested query path on which the nested query can be executed”); return _set (e, “nested”, {path: o, query: t}), e} function addMatchAll (e) {return _set (e, “bodyAbfrage”, {match_all: {}}), e} module exported = newQuery , ModulExporteaddGeo = addGeo, ModulExporteaddAggregation = addAggregation, ModulExporteaddShould = addShould, ModulExporteaddFilter = addFilter, ModulExporteaddMust = addMust, ModulExporteaddMustNot = addMustNot, ModulExporteaddMinimumShould = addMinimumShould, ModulExporteaddSort = addSort, ModulExporteaddSize = addSize, ModulExporteaddFrom = addFrom, module exports only with These Fields = only with synthesis fields, module exports only within this Site = only within this site, module exports only within this domain = onlyWithinThisDomain, ModulExportwithin ThisSiteAndCrossposts = within ThisSiteAndCrossposts, ModulExportwithin ThisDomainOrCrossposts = within ThisDomainOrCrossposts, ModulExporteformatAggregationResults = formatformatAggregationResults, ModulExporte eThis = moreLikeThis, ModulExportecombinFunctionScoreQueries = combinFunctionScoreQueries, ModulExporteaddNestedObjQuery = addNestedObjQuery, ModulExporteaddMatchAll = addMatchAll;
}, {23: 23, 50: 50, 61: 61, 88: 88, 90: 90, 107: 107, 150: 150}];
Window modules [“1360”] = [function (required, module, export) {(function (process, __ file name) {(function () {
“use strict”; const _forEach = require (41), _ get = require (23), _ filter = require (134), _ map = require (50), _ isEmpty = require (87), urlParse = require (51), log = require (22) setup ({file: __ filename}), queryService = require (1359), universalRest = require (10), AGORA_HOST = windowProzessenvAGORA_HOST, AGORA_ELASTIC_PREFIX = WindowProzessenvAGORA_ELASTIC_PREFIX, AGORA_ENDPOINT =? AGORA_HOSTOINT =? `$ {AGORA_HOST} / api / v1`: null, requestHeader = {” Content Type “:” application / json “}, PRODUCTS_INDEX =” agora-products “, AFFILIATES_INDEX = =” Retailer “, FILTER_KEY = {Dealer:” Name ” , Partner: “Partner”}, URL_RE = / ^ https?: / / * $ /; Function getProducts (e, t) {const {limit: r = 100, start: a = 0, search: s = “”, sortDate: c = “desc”} = e, n = `$ {AGORA_ENDPOINT} / products? limit = $ {r} &start = $ {a} &search = $ {encodeURIComponent (s)} &sortDate = $ {c} `; return fetch (n) then (handleResponse) then (e => t? filterByLocale (e, t): e) then (e => ({total: eLength, products: e})) catch (handleError (n))} Function getProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`; if (! AGORA_ENDPOINT) triggers a new error (“No Agora endpoint was set”)); if (“string”! = typeof e) throw new Error (“Request must provide a product ID”); return fetch (r) then (handleResponse) then (e => t? filterByLocale (e, t): e) catch (handleError (r))} function postProduct (e) {const t = `$ {AGORA_ENDPOINT} / products` , r = {method: “POST”, header: requestHeader, body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function putProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`, a = {method: ” PUT “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function patchProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`, a = {method: ” PATCH “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function deleteProduct (e) {const t = `$ {AGORA_ENDPOINT} / products / $ {e}`; return fetch (t, {method: “DELETE”, header: requestHeader}) then (handleResponse) catch (handleError (t))} function getMerchantList (e) {const {limit: t = 100, fields: r = “”} = e; Return promise resolve ([{name: “Amazon”}]) catch (handleError (“”))} function getMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`; if (“string”! = typeof e) triggers a new error (“Request must provide a product ID”); return fetch (t) then (handleResponse) catch (handleError (t))} function patchMerchant (e, t) {const r = `$ {AGORA_ENDPOINT} / dealer / $ {e}`, a = {method: “PATCH” , Header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function postMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants`, r = {method:” POST “, header: requestHeader, Body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function putMerchant (e, t) {const r = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`, a = {method: ” PUT “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function deleteMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`; return fetch (t, {method: “DELETE”, header: requestHeader}) then (handleResponse) catch (handleError (t))} function postLocale (e) {const t = `$ {AGORA_ENDPOINT} / locales /`, r = {Method: “POST”, header: requestHeader, body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function patchLocale (e, t) {const r = `$ {AGORA_ENDPOINT} / locales / $ {e}`, a = {method: ” PATCH “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function handleResponse (e) {try {return ejson () then (t => {if (estatus> = 400) {const e = _get ( t, “messageDetails [0] message”); throw a new error (e)} return t})} catch (e) {throw a new error (emessage)}} function handleError (e) {return t => {throw log (“warn”, `Failed request to $ {e}`, t), new error (`Request to $ {e} failed`)}} Function buildProductsQuery ({search: e =” “, limit: t = 100 , start: r = 0, sortDate: a = “”, filter: s, locale: c}) {const n = queryService (PRODUCTS_INDEX), o = s&&Object key length? ObjectKeyFilter (e => ArrayisArray (s [e]) &&s [e] length): [], i = {}, u = {}; if (prependElasticPrefix (n), e || oLength || c || queryServiceaddMatchAll (n), c&& (queryServiceaddMust (i, {match: {“localesCountry”: c}}), queryServiceaddMustema (.dealerGranch: {“DealerCountry: {” DealerCountry) “: c}})), e) if (isURL (e)) queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({},” Händler “, {match: {” HändlerbuyUrl “: e}})]); else {const t = {}; queryServiceaddShould (t, [{match: {“localesproductId”: e}}, {match: {“locale name”: {query: e, boost: 2}}}]), queryServiceaddMinimumShould (t, 1), queryServiceaddMust (i, _get (t, “body) query”))} if (oLength) {const e = {}; oforEach (t => {const r = s [t], a = FILTER_KEY [t], c = {}; a&& (c [`dealer) $ {a}`] = r, queryServiceaddShould (e, {terms: c }))}), queryServiceaddMinimumShould (e, 1), queryServiceaddMust (u, _get (e, “body) query”))} return _isEmpty (i) || queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({}, “locales”, _ get (i, “bodyAbfrage”))]), _ isEmpty (u) || queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({}, “Dealer”, _ get (u, “bodyAbfrage”))]), queryServiceaddSize (n, t), r> = 0&&queryServiceadd=From (n, r), “desc” a || “asc” === a? queryServiceaddSort (n, {updatedAt: {order: a}}): e&&queryServiceaddSort (n, {_ score: {order: “desc”}}), n} function prependElasticPrefix (e) {return eingex = AGORA_ELASTIC_PREFIX? `$ {AGORA_ELASTIC_PREFIX} _ $ {eingex}`: eingex, e} Function buildMerchantsAggregation (e = 1e6, t) {const r = queryService (PRODUCTS_INDEX); return prependElasticPrefix (r), queryServiceaddMust (r, {match: {active:! 0}}), t&&queryServiceaddMust (r, queryServiceaddNestedObjQuery ({}, “Dealer”, _ get ({matchServiceaddMust ({} “, : t}}), “bodyAbfrage”))), queryServiceaddAggregation (r, {dealer: {nested: {path: “dealer”}, aggs: {name: {terms: {field: “dealer name”, size: e} }}}}), queryServiceaddSize (r, 0), r} function isURL (e) {URL_RE returned test (e)} function filterByLocale (e, t, r = {locales: “US”}) {const a = ArrayisArray ( e); if (_isEmpty (e)) returns a? []: {}; const s = [“locales”, “dealers”], c = a? e: [e], n = ObjectKey (r), o = _map (c, e => {const a = assign object ({}, e); _forEach (s, s => {if (ObjectKey (a) contains ( s)) {const c = t? _filter (e [s], [“Locale”, t]): e [s]; a [s] = c,! clength&&ncontains (s) && (a [s] = ( _ Filter (e [s], [“Locale”, r [s]]) || []) map (e => (eid = null, eLocalschema = t, e)))}}), aname = _get ( a, “locales [0] name”, “”), a}); return a&&oLength? o: _get (o, “[0]”, {})} function searchByQueryWithRawResults (e, t) {const r = `// $ {tpage? ˅Host} $ {80! == tpage? port? `: $ {tpage? ˅port} `:” “} $ {tpage? ˅path} / _ agora / _search`; return universalRestpost (r, e,! 0)} function buildMerchantsByUrlQuery (e) {const t = queryService (PRODUCTS_INDEX); return prependElasticPrefix (t), queryServiceaddNestedObjQuery (tBodyAbfrage, “Händler”, {match: {“HändlerbuyUrl”: e}}), t} function getAffiliatesByLocale (e, t) {const r = queryService (AFFILIATES_INDEX); return prependElasticPrefix (r), queryServiceaddMust (r, {match: {locale: e}}), queryServiceaddSize (r, 1e3), queryServiceaddSort (r, {name: “asc”}), searchByQueryWithRawResults (r, t) then (e => _ get (e, “TreffenTreffer”, []) map (e => _ get (e, “_ source”, {}))}} function getRetailersByAffiliateId (e, t) {const r = queryService (RETAILERS_INDEX) ; return e? (prependElasticPrefix (r), queryServiceaddMust (r, [queryServiceaddNestedObjQuery ({}, “AffiliateRetailers”, {match: {“AffiliateRetailers” Affiliate-ID “: e}})]), queryServiceaddSize (r, 1e3), queryServiceaddSort (r, {name: “asc”}), searchByQueryWithRawResults (r, t) then (e => _ get (e, “HitTreffer”, []) map (e => _ get (e, “_ source” , {})))): PromiseReject ()} function getMerchantsList (e) {return searchByQueryWithRawResults (buildMerchantsAggregation (1e6, _get (e, “site) agoraLocale”)), e) then (queryServiceformatAggregationResults ({“dealer , Field: “Key”, Subfield: “Name”}))} Function queryRetai lersByUrl (e, t) {const r = urlParse (e) host split (“www”) join (“”), a = queryService (RETAILERS_INDEX); return queryServiceaddMust (a, {match: {Domains: r}}), prependElasticPrefix (a), queryServiceaddSize (a, 10), searchByQueryWithRawResults (a, t) then (e => _ get (e, “HitTreffer”, [] ) map (e => _ get (e, “_ source”, {}))}} require (208), moduleExporte = {buildProductsQuery: buildProductsQuery, buildMerchantsAggregation: buildMerchantsAggregation, getProducts: getProducts, getProduct: getProduct, postProduct,: postProduct: putProduct: putProduct, patchProduct: patchProduct, deleteProduct: deleteProduct, getMerchantList: getMerchantList, getMerchant: getMerchant, postMerchant: postMerchant, patchMerchant: patchMerchant, putMerchant: putMerchant, putMerchant: putMerchant, deleteMerchant, putMerchant: patchLyLocale, filterLocale: patchLyLocale: filterLocale: patchLocale filter, delete: isLocale: patchLocale: postLocale, buildMerchantsByUrlQuery: buildMerchantsByUrlQuery, getAffiliatesByLocale: getAffiliatesByLocale, searchByQueryWithRawResults: searchByQueryWithRawResults, getRetailersByAffiliateId: getRetailersBdy hantsList: getMerchantsList, queryRetailersByUrl: queryRetailersByUrl};

}) call (this)}) call (this requires (11), “/ services / universal / agorajs)}, {10: 10, 11: 11, 22: 22, 23: 23, 41: 41, 50: 50 , 51: 51, 87: 87, 134: 134, 208: 208, 1359: 1359}];
Window modules [“1361”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ mapValues ​​= require (203), _ reduce = require (91), _ assign = require (138), _get = require (23), _ pickBy = require (139), _ find = require (42), AffiliateFields = [“siteShortKey”, “pageUri”, “productId”, “utmMedium”, “utmSource”, “format”, “utmCampaign”, “referrer”, “deviceAbbreviation”, “zone”] , AffiliateSettings = {amazon: {Domains: [“amazoncom”, “amazoncouk”], subtagKey: “ascsubtag”, maxLength: 99, separator: “standard”, encode:! 1}, narrative: {Domains: [“shop-linksco /”], subtagKey: “u1”, maxLength: 99, separator: “standard”, encode:! 0}, rakuten: {Domains: [“clickLinksynergiecom / deeplink”, “linksynergyWalmartcom / deeplink”], subtagKey: “u1”, maxLength: 72, separator: “standard”, encode:! 1}, shareasale: {Domains: [“shareasalecom”], subtagKey: “afftrack”, maxLength: 99, separator: “standard”, encode:! 1}, Skimlinks: {Domains: [“goUmleitungcom”], subtagKey: “xcust”, maxLength: 50, separator: “old”, encode:! 1}, effect: {Domains: [], subtagKey: “subId2”, maxLength: 99, separator: “standard”, encode:! 1}, Avantlink: {Domains: [“Avantlinkcom”], subtagKey: “ctc”, maxLength: 64, separator: “old”, code:! 1}, cj: {Domains: [“tkqlhcecom”, “jdoqocycom”, “dpbolvwnet”, “anrdoezrsnet”, “kqzyfjcom”], subtagKey: “sid”, maxLength: 64, separator: “old”, code:! 1, joinBy: “/”, assignBy: “/”, positioned:! 0, position: “after”, positionKey: “type / dlg /”}, in partnership: {Domains: [“prfhn”], subtagKey: “pubref”, maxLength: 100, separator: “old”, encode:! 1, joinBy: “/”, assignBy: “:”, positioned:! 0, position: “before”, positionKey: “target”}, Pepperjam: {Domains: [“gopjncom”, “pntraccom”, “pjtracom”, “pjatrcom”, “pntrscom”, “pntracom”], subtagKey: “sid “, maxLength: 100, separator:” old “, encode:! 1}, awin: {Domains: [“awin1com”], subtagKey: “pref1”, maxLength: 100, separator: “old”, encode:! 1, positioned:! 0, position: “before”, positionKey: “ued”}}, subtagDictionary = {siteShortKey: “”, pageUri: “p”, productId: “i”, zone: “z”, deviceAbbreviation: “d”, utmSource: “s”, utmMedium: “m”, utmCampaign: “c”, referrer: “r”, format: “t”}, separator = {standard: [“[“, “]”], old: [“__” , “_”]}; Function parseValueFromSubtag (e, t, i) {const a = t [0] et [1], s = isplit (a) [1] || “”; return s? ssplit (t [0]) [0]: null} Function parseSubtag (e, t = LimiterStandard) {return _pickBy (_mapValues ​​(subtagDictionary, i => parseValueFromSubtag (i, t, e)))} Function generateSubtag (e , t, i = LimiterStandard, a =! 1) {const s = (e => t => `$ {e [0]} $ {t} $ {e [1]}`) (i); let n = _reduce (AffiliateFields, (t, i) => {const a = s (subtagDictionary [i]), n = e [i]; return t (n? an: “”)}, “”); return a&& (n = encodeURIComponent (n)), n} function applySubtagMaxlength (e, t) {var i = t-3 * (eDivided (“,”) length-1 esplit (“|”) length-1); Returns esubstr (0, i)} function getSubtagData ({getters: e, fields: t = [], visitState: i, locals: a, productLink: s}) {let n = {}; return tforEach (t => {n [t] = e [t] &&e [t] ({visitState: i, local: a, productLink: s})}), n} function parseQuery (e = “”) {return esplit (“&”) reduce ((e, t) => {const i = tsplit (“=”) [0], a = tsplit (“=”) [1]; return void 0! == a&& (e [i] = a), e}, {})} function processSubtagPosition ({url: e, positionKey: t, subtagKey: i, position: a = “after”, subtagString: s, joinBy: n, assignBy: o} = {}) {const [r, l] = esplit (t), u = `$ {i} $ {o} $ {s}`, g = []; if (“after” === a) {if (! l) return e; const [a, s = “”] = lsplit (`$ {i} $ {o}`), d = ssplit (n) slice (1) join (n); gpush (`$ {r} $ {t}`, u), a&&gPress (a), d&&gpush (d)} if (“before” === a) {const [e, a = “”] = rsplit ( `$ {i} $ {o}`), s = asplit (n) slice (1) join (n); gPress (e), s&&g press (s), gpush (u, `$ {t} $ {l}`)} return greduce ((e, t) => {return eSlice (-1) === n&& (e = eScheibe (0, -1)), eLength? [e, t] join (n): t}, “”)} Function processSubtag ({getters: e, Affiliate: t, URL: i, visitState: a = { }, Locals: s}) {const n = AffiliateFields, o = _get (AffiliateSettings [t], “subtagKey”), r = _get (AffiliateSettings [t], “maxLength”), l = _get (AffiliateSettings [t], “encode”), u = _get (AffiliateSettings [t], “separator”), g = _get (AffiliateSettings [t], “positioned”,! 1), d = _get (AffiliateSettings [t], “position”), c = _get (AffiliateSettings [t], “PositionKey”), p = _get (AffiliateSettings [t], “assignBy”, “=”), m = _get (AffiliateSettings [t], “joinBy”, “&”), f = delimiter [u]; let b, y, S = iindexOf (“?”)> = 0? iTeils (“?”) pop (): “”, h = parseQuery (S), _ = getSubtagData ({getter: e, fields: n, visitState: a, local: s, productLink: i}); return o&& (y = h [o] || “”, y = applySubtagMaxlength (b = generateSubtag (_ = _ assign (parseSubtag (y, f), _ pickBy (_)), t, f, l), r) , h [o] = y, S = _map (h, (e, t) => `$ {t} = $ {e}`) join (“&”), i = g? processSubtagPosition ({url: i , positionKey: c, subtagKey: o, position: d, subtagString: y, joinBy: m, assignBy: p}): isplit (“?”) [0] `? $ {S}`), i} function getAffiliate ( e) {const t = ObjectKey (AffiliateSettings); Return _find (t, t => _ find (AffiliateSettings [t]) domains, t => eincludes (ttoLowerCase ()))) || “”} Function createSubtagProcessor (e) {return ({url: t, visitState: i, locals: a, affiliate: s}) => (s = getAffiliate (t) || s)? processSubtag ({getters: e, url: t, Affiliate: s, visitState: i, Locals: a}): “”} ModulExportegenerateSubtag = generateSubtag, ModulExportegetAffiliate = getAffiliate, ModulExportecreateSubtagProcessor = createSubtagProcessor, ModulExporteproubtag = processSubtag;
}, {23: 23, 42: 42, 50: 50, 91: 91, 138: 138, 139: 139, 203: 203}];
FensterModule [“Artikel-Naviclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ throttle = required (37), $ visibility = required (4), $ popup = required (53), $ gtm = require (1), {reportSocial: reportSocial} = require (52) , auth0 = require (12); module exported = (t => {let e = domfind (“page header”), i = domfind (“article content”), o = domfind (t, “deepscroll-headline”), r = domfind (t, “deepscroll-rubric” ), l = domfind (t, “deepscroll-rubric-sponsored”), s = domfind (“article article header rubric”), n = domfind (“# deepscroll_center_divider”), a = domfind (“tone paragraph”) , d = domfind (t, “Logo”), c = domfind (t, “Dyn-Cut-Logo”), p = domfind (t, “article-nav-top”), u = domfind (t, “article -nav-deepscroll “), m = domfind (‘link [rel =” canonical “]’), f = m&&mgetAttribute (” href “), g = domfind (‘meta [property =” og: image “]’)? domfind (‘meta [property = “og: image”]’) getAttribute (“content”): “”, h = domfind (‘meta [property = “og: title”]’)? domfind (‘meta [property = “og: title”] ‘) getAttribute (“content”): “”, y = domfind (t, “Share a link Facebook”), w = domfind (t, “Share a link twitter”), v = domfind (t, “Share a link pinterest”), b = tclassListenthalt (“header-simple”), x = windowgetComputedStyle (d, null) getPropertyValue (“- targetFlexBasis”), L = window getComputedStyle (d, null) getPropertyValue (“- verticalStart”) || 0, C = window getComputedStyle (d, null) getPropertyValue (“- verticalEnd”) || 0, $ =! 1, _ = 55; Function k () {_ = parseInt (window getComputedStyle (d, null) getPropertyValue (“- stickyTop”)) || _, C = $ visibility getViewportWidth ()> = 1180? -FenstergetComputedStyle (d, null) getPropertyValue (“- verticalEndDesktop”) || C: window getComputedStyle (d, null) getPropertyValue (“- verticalEnd”) || C} function S () {$ =! 1, P ()} Function P () {let {top: o} = tgetBoundingClientRect (), r = window getComputedStyle (d, null) getPropertyValue (“- baseFlexBasis”), l = rx, s = (_- egetBoundingClientRect () above) / _, n = Mathmax (0, Mathmin (1, s)), m = LC-2, f = Mathrund (L- (m * n 2)), g = MathCeil (rl * n); if (st? eclassListadd (“Header-after-Scroll”): eclassListentfernen (“Header-After-Scroll”), pStiltop = C “px”, uStiloben = C “px”, void (dStilflexBasis = x “px”)} WindowScrollY> o? TclassListadd (“after-scroll”): tclassListEntfernen (“After-Scroll”), WindowScrollY> o? EclassListadd (“Header-after-Scroll”): Remove eclassList (“Header-After-Scroll”), pStiltop = f “px”, uStiltop = f “px”, dStilflexBasis = g “px”, c&& (cStilflexBasis = g “px”), $ VisibilitygetViewportWidth ()> = 1180&&i&&i&CHAR&i& =) -70: 0, e = $ Visibility getPageOffset (i) above, o = Mathemax (e, t); return Mathmax (WindowScrollY, DocumentBodyScrollTop)> = o} ()? TclassListadd (“deep-scroll”): tclassListremove (“deep -scroll “)} Function V (t) {var e = tcurrentTarget, i = egetAttribute (” href “), o = egetAttribute (” data handle “), r = $ popupgetPopupClass (eclassList), l = $ visibilityisBelowPrimaryConten t (e)? “bottom”: “top”; $ gtmreportNow ({Event: “Social-Share-Widget”, clickLocation: l, socialNetwork: r}), reportSocial (r), $ VisibilitygetViewportWidth ()> = 768&&r&& (tverhindereDefault, o, iow) (rhindereDefault (), $ popupp) )}! function () {const e = _throttle (P, 30); if (k (), domfindAll (t, “Share a link”) forEach (t => taddEventListener (“click”, V)), y&& (yhref = “http: // wwwFacebookcom / sharer / sharerphp? u =” f “? utm_source = fb&utm_medium = s3&utm_campaign = sharebutton-t”), w&& (whref = “https: // twittercom / share? text =” encodeURIComponent (h) “encodeURIComponent (h)” &CHARVIA_CutCutCutCutCutCampECH = utM_campECHAR = “f” = “wgetAttribute (” Datenhandle “)), v&& (vhref =” http: // pinterestcom / pin / create / button /? url = “f”? utm_source = pin&utm_medium = s3&utm_campaign = sharebutton-tCampaign = sharebutton-tCSSONENTCHUR) ” &media = “g), b) return; auth0on (“init”, () => {auth0isSubscriber () &&tclassList add window (“subscribed”)}) addEventListener (“scroll”, e), window addEventListener (“resize”, S), window addEventListener (“resize”, k) s? sclassListenthalt (“Rubric-Sponsor-History”) &&l? (rclassListentenen (“visible”), lclassListadd (“visible”), ltextContent = sText || stextContent) 🙁 rtextContent = sText || stextContent, rhref = shref || “#”) 🙁 nStildisplay = “none”, rStildisplay = “none”); S (), otextContent = h} ()});
}, {“1”: 1, “3”: 3, “4”: 4, “12”: 12, “37”: 37, “52”: 52, “53”: 53}];
FensterModule [“Navi-Such-Buttonclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), $ gtm = require (1), {reportSearch: reportSearch} = require (52), openClass = “open”, closeClass = “closed”; Module exported = (e => {const s = e, t = domfind (e, “nav-search-button-trigger”), n = domfind (e, “nav-search-form”), o = domfind (e, “Sucheingabe “); Funktion i () {const e = domfind (“body”); sclassListumschalten (closeClass), sclassListumschalten (openClass), eclassListumschalten (“deaktiviert”), eclassListumschalten (“suchaktiv”)} Funktion c () {i (), sclassListenthält (openClass) &&ofocus ()} Funktion a (e) {! senthält (eZiel) &&sclassListenthält (openClass) &&i ()} Funktion r (e) {27 === ekeyCode&&sclassListenthält (openClass) &&i ()} Funktion d (e) {everhindereDefault (), $ gtmreportCustomEvent ({category: “search”, label: “on =” windowStandorthref, Aktion: oWert}), reportSearch ((oWert || “”)split (“”), () = > nsubmit ())}! function (e, s, t) {s&&saddEventListener (“click”, c); t&&taddEventListener (“submit”, d); eaddEventListener (“clic k”, a), DokumentaddEventListener (“keydown”, r), eaddEventListener (“touchend”, a), naddEventListener (“submit”, d)} (domfind (“body”), t, domfind (e, “nav-search-form submit “))});
}, {“1”: 1, “3”: 3, “52”: 52}];
FensterModule [“Navi-Dropdown-Tasteclient “] = [Funktion (erforderlich, Modul, Export) {” use strict “; const dom = erforderlich (3), Sichtbarkeit = erforderlich (4), {reportSearch: reportSearch} = erforderlich (52); Funktion getNextSchildren (e) {const t = []; sei i = e; für (; i = inextElementSibling;) tpush (i); return t} Funktion getMainChildren (e, t) {let i = [], n = efirstChild; for (; n = nnextElementSibling;) nenthält (t)? nisSameNode (t) || (i = iconcat (getMainChildren (n, t))): ipush (n); return i} Funktion isMobile () {return sichtbarkeitgetViewportWidth () {let t; const i = equerySelector (“nav-dropdown-button-trigger “), n = domfind (“body”), o = domfinden(“oben “), l = domfinden(“Konfetti-Liste “), s = domfinden(“nav-dropdown-button_nymag-homepage “), r = domfind (“headerSeitenkopf “) || o, c = domfind (‘[data-editable = “main”]’), a = domam nächsten (e, “Seitenkopf “), d = a? aquerySelectorAll (“Konfetti-Bildblau “):” “, g = a? aquerySelectorAll (“Konfetti-Bildgrün “):” “, u = a? aquerySelectorAll (“Konfetti-Bildorange “):” “, f = a? aquerySelectorAll (“Konfetti-Bildorange2 “):” “, m = a? aquerySelectorAll (“Konfetti-Bildpink “):” “, p = a? aquerySelectorAll (“Konfetti-Bildlila “):” “, h = a? aquerySelectorAll (“Konfetti-Bildgelb “):” “, y = equerySelectorAll (“dropdown-nav-search-form “); Funktion b (e) {let t = ecurrentTarget, i = tquerySelector (“nav-search-input “), n = i? iWertsplit (“”): []; everhindereDefault (), reportSearch (n, () => tsubmit ())} iaddEventListener (“click”, () => {initializeHeight (e), v ()}); for (sei e = 0, t = yLänge; e (Funktion (e) {eclassListentfernen (“c-rechts”, “c-rechts unten”, “c-links”, “c-links unten”)}) (e))}, 500)} ()) 🙁 isetAttribute (“aria-expandiert”, “true”), t = windowscrollY), eclassListumschalten (“geschlossen”), eclassListumschalten (“öffnen”), n toggle classList toggle (“deactivated”), a&&eisSameNode (s)? function () {if (ocontains (e)) {const e = getMainChildren (o, s); S (e), w (o)} if (centhalt (e)) {const e = getMainChildren (c, s); Switching oclassList (“hidden component”), w (c), S (e)} Switching eclassList (“open-mobile”)} (): a&&! y&&r&& (w (r), function () {const i = eclassListenthalt (“open”)? 0: t; Window ScrollTo ({top: i})} ())} Function w (e) {S (getNextS Siblings (e ))} Function S (e) {eforEach (e => {eclassListumschalt (“hidden component”)})} naddEventListener (“click”, t => {! Econtains (tTarget) &&eclassListcontains (“open”) &&v ()} ), Document addEventListener (“keydown”, t => {27 === tkeyCode&&eclassListener (“open”) &&v ()})});
}, {“3”: 3, “4”: 4, “52”: 52}];
FensterModule [“follow client”] = [function (required, module, export) {“use strict”; const _find = require (42), $ popup = require (53); DScontroller (“follow”, [function () {function e (e) {thisel = e, dashandle = egetAttribute (“Datenhandle”)} return eprototype = {events: {click: “openFollow”}, openFollow: function (e) {var t, n, a = $ popupPosition, o = $ PopupParameter, l = {}, r = {w: 780, h: 500}, s = new a (rw, rh), c = dieselclassList; lhandle = thisGriff , rlinks = slinks, rtop = stop, n = _find ([{className: “facebook”, url: “https: // facebookcom / {handle}”, network: “Facebook”}, {className: “pinterest”, url : “http: // wwwpinterestcom / {handle}”, network: “Pinterest”}, {className: “instagram”, URL: “https: // wwwinstagramcom / {handle}”, network: “Instagram”}, {className : “rss”, URL: “http: // feedsFeedburnercom / {handle}”, network: “RSS”}, {class name: “Twitter”, URL: “https: // Twittercom / intent / follow? screen_name = {handle } &tw_p = followbutton&variant = 20 “, network:” Twitter “}, {class name:” Snapchat “, URL:” https: // wwwSnapchatcom / remove / {handle} “, Network: “Snapchat”}], function (s) {return centcontains (eKlassenname)}), lurl = nURLersetzen (“{handle}”, lGriff), lNetzwerk = nNetzwerk, lname = “Follow” lGriff “to” lNetzwerk, t = new o (l, r), window open (tAddress, tName, tFeature), ePreventDefault ()}}, e}]);
}, {“42”: 42, “53”: 53}];
FensterModule [“Comment-Linkclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), _ get = require (23), _ isFinite = require (110), ajax = require (109); DScontroller (“comments link”, [function () {var t, e = “http: //” document documentElementgetAttribute (“data-uri”) “html”; function n (n) {var o; (thisel = n, dascoral_talk_root = ngetAttribute (“data-coral-talk”), diescommentCount = domfind (n, “comment link number”), diescommentText = domfind (n, “comments link text”), diesisNavVariation = nclassListenthalt (“comment- link_article-nav “), diescutoffCnt = ngetAttribute (” data-cutoffCnt “) || 1e3, t =` $ {thiscoral_talk_root} / api / v1 / graph / ql`, diesshouldRenderCommentStream ()) &CountEANDCHAR (o = thisonetchedCommentConnect AjaxsendReceiveJson ({method: “GET”, URL: t ‘? Query = {Asset (URL: “‘ e ‘”) {totalCommentCount}}’, data type: “json”}, function (t, e) {var n = _get (e, “DatenAnlageguttotalCommentCount”, 0); return t? o (t): _ isFinite (n)? void o (null, n): o (“Unexpected Coral Talk response”)})}} return nPrototyponCommentCountFetched = Function (t, e) {if (t) return console warning (t); e> 0CS SEANDCHAR& (thisisNavVariation&&e1? “s”: “”), thiselclassListremove (“no comments”))}, nPrototypeshouldRenderCommentStream = function () {return-1! == eingexOf (“@published”)}, n}]);
}, {3: 3, 23: 23, 109: 109, 110: 110}];
WindowModule [“head-gtmclient”] = [Function (required, module, export) {“use strict”; const {getCLS: getCLS, getFID: getFID, getLCP: getLCP} = require (142), isProduction = require (9) (); function reportWebVitals (e) {isProduction || Console log (“reportWebVitals:% O”, e); const t = “string” == typeof eName? eNametoUpperCase (): eName; Window DataLayer = Window DataLayer || [], FensterdataLayerpush ({event: “analysisEvent”, event_action: t, event_category: “Web Vitals”, event_label: eid, event_value: eDelta, eventAction: t, eventCategory: “Web Vitals”, eventLabel: eid, eventNonInt:! 0 , eventValue: edelta, nonInteraction:! 0, transport: “beacon”})} getCLS (e => {eDelta = Mathrund (1e3 * eDelta), reportWebVitals (e)}), getFID (e => {eDelta = Mathrund ( eDelta), reportWebVitals (e)}), getLCP (e => {eDelta = Mathrund (eDelta), reportWebVitals (e)});
}, {“9”: 9, “142”: 142}];
WindowModule [“Concert Advertising Client”] = [Function (required, module, export) {“use strict”; const customMappings = {“Crime-Assault”: “Power”, “Career-Money-Productivity”: “Power”, “Feminism-Politics-Identity”: “Power”, “Culture Media”: “Culture”, Celebrity: “Culture.” “, Living:” style “, fashion:” style “, shopping:” style “, weddings:” style “, beauty:” style “, animals:” self “,” learning creativity “:” self “,” relationships- Friends family “:” self “,” mental health personality social behavior “:” self “,” learning creativity “:” self “,” health-wellness “:” self “, parenting:” self “,” relationships-sex- Dating marriage “:” Self “}, striptags = require (54); Function installConcertAds () {const e = new URLSearchParams (window location search) get (“konzert_config_url”), t = e || window concertConfigUrl; Window_nymPermutive || Console warning (“ConcertAds is initialized without Permutive”), Window ConcertAds = createConcertAds (), Window ConcertAdsloadRemoteConfig (t) then (function () {windowkonzertAdsinstall ()})} Function createConcertAds () {const e = getAuthStatus (); let t = getData (“title”), n = windowStandorthref, i = getData (“section”), o = “”, a = getData (“type”), r = getData (“vertical”); t&& (t = Striptags (htmlDecode (t))) split (“”)), n = nSchibe (n Slice) lastIndexOf (“/”) 1); const l = {kw: getKeywords (), network: r, page type: a, entry group: i, keywords: t, pn: n}; Return “Homepage” === a? o = “homepage”: “Section Page” === a&& (o = (o = windowLocationPathname) Replace (/ // g, “”)), i&&-1 === iindexOf (“”) && (o = i), customMappings [i] && (o = customMappings [i]), window location hostname game (/ aws / i) && (lClay_sandbox_env = r), new windowConcertAds ({cmd: [: lf. Slots: []) , slugPath: “/” oreplace (/ – | – / g, “-“), logged in: “not authenticated”! == e, paywallActive: getPaywallStatus (e)})} function getKeywords () {try {const e = window_nymPermutiveArticleKeywords; Return of e&&eLength> 0&&e some (Boolean)? e: (DocumentquerySelector (‘meta [name = “keywords”]’) || documentquerySelector (‘meta [property = “article: tag”]’)) getAttribute (“content”) splits (“,”) map (function ( e) {return etrim ()})} catch (e) {return}} function getData (e) {if (window_nymPermutive) {if (e in window_nymPermutive) return window_nymPermutive [e]; if (window_nymPermutivearticle&&e im Fenster_nymPermutiveArtikel) return window_nymPermutiveArtikel [e]; if (window_nymPermutiveuser&&e in window_nymPermutiveUser) return window_nymPermutiveUser [e]}} Function htmlDecode (e) {var t = document createElement (“div”); return tinnerHTML = e, 0 === tchildNodesLength? “”: tchildNodes [0] nodeValue} function getAuthStatus () {const e = JSONparse (localStoragegetItem (“auth0: profile”)), t = e? e [“http: // nymagcom / app_metadata”]: null; return t? thas_subscription? “with the title”: “unentitled”: “not authenticated”} function getPaywallStatus (e) {const t = getData (“totalCount”) || 0; return Boolean (t> = 3&& “with the title”! == e)} WindowConcertAds? InstallConcertAds (): Window addEventListener (“konzertAdsReady”, installConcertAds);
}, {“54”: 54}];
FensterModule [“curated feed client”] = [function (required, module, export) {“use strict”; const dom = require (3), lazyLoad = require (96); Function lazyLoadImage (e) {const o = domfind (e, “img [data-src]”), t = domfindAll (e, “source [data-srcset]”), a = domam next (e, “feed-item “); if (o&&a) {new lazyLoadLazyLoader (a, o, t) init ()}} function handleLazyLoad (e) {(domfindAll (e, “Feed-Item”) || []) forEach (lazyLoadImage)} ModulExporte = (e => {const o = equerySelectorAll (“button show-more”); function t (e) {const {currentTarget: o} = e; if (o) {const e = oparentElementparentElement; e&&equerySelector (“content”) toggle classList (“reduced “)}} o&&oforEach (function (e) {eaddEventListener (” click “, t)}), handleLazyLoad (e)});
}, {“3”: 3, “96”: 96}];
WindowModule [“Coral-Talkclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), store = required (116), visibility = required (4), auth0 = required (12), TALK_AUTH = “talk: auth_token”; let coralEmbed, hasEmbedScriptLoaded =! 1, hasCoralTalkRendered =! 1; Function renderComments (e) {if (hasEmbedScriptLoaded&&! HasCoralTalkRendered) {const t = {talk: `$ {eCORAL_TALK_HOST}`, auth_token: getAuthToken (), asset_url: eTALK_ASSET_URL}; hasCoralTalkRendered =! 0, coralEmbed = windowKoralleSichamtichrendern (ecommentStreamContainer, t)}} Function getAuthToken (e) {var t = e&&e [“http: // nymagcom / coral_talk”] || auth0getTalkJwt (), i = save get (TALK_AUTH); return t? i&&t == i? i: (storeset (TALK_AUTH, t), t) 🙁 i&&storeremove (TALK_AUTH), null)} function coralLogin () {coralEmbedlogin (getAuthToken ())} function embeddedScript (e, t) {let i = documentcreateElement (“script” ” ); itype = “text / javascript”, iasync =! 0, isrc = e, iaddEventListener (“load”, () => {hasEmbedScriptLoaded =! 0, renderComments (t)}), documentgetElementsByTagName (“head”) [0] appendChild (i)} function initVerificationMessage () {auth0isAuthenticated ( ) &&auth0refresh (); let e = documentquerySelector (“coral-talk-container”); auth0isAuthenticated () &&! auth0isEmailVerified () && (einsertAdjacentHTML (“beforebegin”, ‘ n n Please check your account to enable commenting. You haven’t received a confirmation email? Please resend the email now n’), DocumentquerySelector (“activation link”) addEventListener (“click”, sendVerificationEmail))} function sendVerificationEmail () {let e = documentquerySelector (“coral-talk-verify-address”); return fetch (`https: // $ {windowStandorthost} / _ user / verification-email? user_id = $ {auth0getUserID ()}`, {method: “GET”, header: {“Content-Type”: “application / json “}}) then (e => e) then (t => {t&&200 == tStatus? einnerHTML =” Confirmation email was sent successfully “: einnerHTML =` $ {tstatusText} `}) catch (e => Console log (e))} Function tryScriptEmbedding (e, t) {initVerificationMessage (), hasEmbedScriptLoaded? renderComments (t): embeddedScript (tEMBED_URL, t)} function addVisibilityListener (e, t) {new VisibilitySichtbar (e, {pretoadThreshold: 750}) on (“Preload”, () => tryScriptEmbedding (e, t))} function removeSignInButton (e) {e&&eparentNode&&domremoveElement (e)} function init (e) {const t = egetAttribute (“data coral talk host”), i = `$ {t} / static / embeddedjs`, n =` http: // $ {documentdocumentElementgetAttribute (“data-uri”)} html`, a = “true” === egetAttribute (“data maintenance”), o = -1! == nindexOf (“@ published”), r = equerySelector (“Korallen-Talk-Container”), s = equerySelector (“coral-talk-btn-signin”), c = {CORAL_TALK_HOST: t, EMBED_URL: i, commentStreamContainer : r, signInButton: s, TALK_ASSET_URL: n} ;! on (“init”, () => {addVisibilityListener (e, c), saddEventListener (“click”, () => auth0showLogin ()), auth0isAuthenticated () &CSSEANDInCHARremove (s)}), auth0on (“login”, t => {removeSignInButton (s), getAuthToken (t), VisibilityisElementInViewport (e) &&attemptScriptEmbedding (c), hasCoralTalkRendered&&on (), logout (), > {storeRemove the module (TALK_AUTH)}))} Exports = Init;
}, {3: 3, 4: 4, 12: 12, 116: 116}];
WindowModule [“Choreographer Client”] = [function (require, module, export) {“use strict”; const cookie = require (40), _ get = require (23), _ omit = require (80), {insertSpeedBumpComponents: insertSpeedBumpComponents} = require (77)), {insertNewsletterSpeedBumpComponents: insertNewsletterSpeedBumpComponents} = require (78), {generateGrowl: generateGrowl} = require (76), gtm = require (1), {getLocalStorage: getLocalStorage, setLocalStorage: setLocalStorage} = require (13), {reportPaywall:} = require (52), moment = require (24), {getClientHistory: getClientHistory, updateClientHistoryWithPageData: updateClientHistoryWithPageData} = require (79), auth0 = require (12), {scenario: scenario} = require (73), cidReadyEvent = “nymcid-set”, cidKey = “nymcid”, isProduction = require (9) (), logger = require (74) Logger (() => getLocalStorage (“show_choreographer_logs”)), {Verdon: Verdon} = require (75), TEST_COHORT_FLAG = “optimizeCohort”; Function displayDebug (e = “”) {if (“Authorization”! == eShare (“#”) pop ()) return; const t = _get (window “dataLayer [0] userDetails”, {}), o = _get (window, “dataLayer [0] pageDetailsfeatureTypes”, “”), n = o contains (“magazine”)? “Magazine”: “”, r = o contains (“Feature”)? “Featured”: “”, i = “Value of the article:” (n || r || “Article”), a = _get (JSONparse (localStoragegetItem (“auth0: profile”)), “http: // nymagcom / app_metadata “), l =” Authentication status: “(a?” authenticated “:” not authenticated “), s =” Authorization status: “(!! a&&ahas_subscription?” with the title “:” unentitled “), c = Object key (_omit (t, “newYorkMediaUserID”)) map (e => `$ {e}: $ {t [e]}`), d = documentBody, g = documentcreateElement (“div”), u = documentcreateElement (“ul”) ; [i, l, s, c] map (e => {const t = documentcreateElement (“li”); return tclassListadd (“debug-item”), tappendChild (document createTextNode (e)), t}) forEach (e = > {uappendChild (e)}), uclassListadd (“data balls”), gclassListadd (“debug choreographer”), gclassListadd (“display-debug-data”), gappendChild (u), dappendChild (g)} function initializeChoreographer (e ) {const t = egetAttribute (“data-site-slug”), o = pageShouldCountAsView (t), n = auth0isSubscriber (); return t? getClientId (cidKey, 8e3) then (e => (Logger) h1 (“Choreographer initialized”), Loggerlog (`clientId: $ {e}`), loggerlog (`Page counts as a view: $ {o}`), Window symViewsResponse || (o? updateClientHistoryWithPageData (e, t): getClientHistory (e))) then (r => {if (Logger) group (), Loggerh2 (“Client History”), LoggerTable (r), LoggergroupEnd (), isNCR ()) return; const {scenarios: i, touts: a, testCohort: l = “”} = readJSONFromScript (equerySelector (“script”)); if (! (l === (documentBodyDatet [TEST_COHORT_FLAG] || “”))) return; const s = iCard (e => Assign scenario (object) ({}, e, {History: r, siteSlug: t, isSubscriber: n}))) Filter (e => (Loggergroup (), Loggerh2 (“Evaluate scenarios “), Loggerlog (e), LoggergroupEnd (), it should show)) reduce ((e, {action: t, min: o, number: n}) => {const r = afind (({value: e}) => e === t); return r? (e [rTyp] = r, e [rArt] viewCount = no, e): e}, {}); Loggergroup (), Loggerh2 (“Active Touts”), LoggerProtokoll (e), LoggergroupEnd (), executeTouts (e, o, s, r)}) catch (console error): console error (“siteSlug not found”)} function documentIncludesComponent ( e) {return documentquerySelector (`[data-uri * =” / $ {e} / “]`)} function pageShouldCountAsView (e) {const t = “strategist” === e, o = [“product”, “product grid “]] find (e => documentIncludesComponent (e)); return t ||! o} Function executeTouts (e, t, o = {}, n) {const {global: r} = n, i = {featureArticleCount: rFeature || 0, magazineArticleCount: rMagazin || 0, standardArticleCount: rArticle || 0, totalArticleCount: rtotal || 0}, a = window concert ads, l = window concert ads; if (o [“Speed-Bump”] && (_get (a, “adsBlocked”,! 0)? InsertSpeedBumpComponents (findTemplate (e, “Speed-Bump”), o [“Speed-Bump”], i): a lifecycle listsAndPlayback (lVeranstaltenenslotsInserted, () => {insertSpeedBumpComponents (findTemplate (e, “Speed-Bump”), o [“Speed-Bump”], i)})), o [“Newsletter-Speed-Bump”] && (_get ( a, “adsBlocked”,! 0)? insertNewsletterSpeedBumpComponents (findTemplate (e, “Newsletter-Speed-Bump”), o [“Newsletter-Speed-Bump”], i): aLebenscyclelistenAndPlayback (lVeranstevenenslotsInserted, () => {insertNewsletterSpeedB ( findTemplate (e, “Newsletter-Speed-Bump”), o [“Newsletter-Speed-Bump”], i)}), o [“Branded-Growl”] &&brandedTakeoverTime (o [“Branded-Growl”]) &&t) Return loggerlog (“should show brand growl”), void growlManager (findTemplate (e, “brand growl”), {baseTrackingData: i, body: o [“brand growl”] brandedGrowlBody, contentClass: “branded-cont ent “, cta: o [” branded-Growl “] brandedGrowlCTA, imageUrl: o [” branded-Growl “] imageUrl, Link: o [” Branded-Growl “] brandedGrowlLink, Name: o [” Branded-Growl “] name , scrollDepth: o [“Brand-Growl”] brandedGrowlScrollDepth, Title: o [“branded-Growl”] brandedGrowlTitle, toutType: “branded Growl”}, “# branded-Growl”); if (t&&o [“content-cliff”]) contentCliff (findTemplate (e, “content-cliff”), o [“content-cliff”], o [“content-cliff”] viewsLeft, n); else {if (t&&o [“Cliff takeover”]) return / coronavirus news | pivot | paywall exclude / iTest (Fenster_nymGtmPageTags)? void (isProduction&&loggerlog (“Content Cliff No-Op due to excluded tag match:”, Fenster_nymGtmPageTags)): void cliffTakeover (findTemplate (e, “Paywall reader interface”), i, o [“Cliff takeover”]); if (o [“Growl-Newletter”] ||! o [“Promo- growl”]) if (o [“Baby-Growl”]) babyGrowl (findTemplate (e, “Paywall reader interface”), i, o [“baby growls”]); else {if (! o [“warning-growl-2”]) return o [“warning-growl”] &&shouldWarn ()? (setContentCliffWarningDisplayed (), Loggerlog (“should show warning”), void growlManager (findTemplate (e, “warning-growl”), {contentClass: “warning-content”, title: o [“warning-growl”] warningGrowlTitle, name : o [“Warning-growl”] name, scrollDepth: o [“warn-growl”] warningGrowlScrollDepth, cta: o [“Warning-growl”] warningGrowlCTA, body: o [“Warning-growl”] warningGrowlBody, Link: o [“Warning growl”] warningGrowlLink, baseTrackingData: i, toutType: “Warning growl”}, “# Warning-growl”): void 0; WarningGrowl (findTemplate (e, “Paywall reader interface”), i, o [“Warning-growl- 2”])} else growlManager (findTemplate (e, “Growl-Message”), {contentClass: “Promo -Content”, Title: void 0, Name: o [“Promo-Growl”] name , scrollDepth: o [“Promo-Growl”] promoGrowlScrollDepth, cta: o [“Promo-Growl”] promoGrowlCTA, Body: o [“Promo-Growl”] promoGrowlMessage, Link: o [“Promo-Growl”] promoGrowlData, baseTracking : i, toutType: “promo growl”}, “# growl-message”)}} Functi on shouldWarn () {return! contentCliffWarningDisplayed ()} function getContentCliffWarningDisplayedKey () {const e = new Date, t = egetMonth (); return`content-cliff-warning-displayed – $ {egetFullYear ()} – $ {t} `} Function contentCliffWarningDisplayed () {const e = getContentCliffWarningDisplayedKey (); return “true” === getLocalStorage (e)} function setContentCliffWarningDisplayed () {const e = getContentCliffWarningStand; e, “true”)} function growlManager (e, {contentClass: t, scrollDepth: o, name: n, title: r, body: i, cta: a, link: l, baseTrackingData: s, toutType: c, imageUrl : d = null}, g = “”) {const u = function () {const e = ” n n n n $ {r} n $ {d? ”:” “} n $ {i} n $ {d? “: “”} n $ {a} n n n n `; Return document createRange () createContextualFragment (e)} (), p = {Creative: i, ID: c, Name: n, Position: “Growl”}; uquerySelector (“a”) addEventListener (“click”, () => PromotionReport (“Click”, s, p)), generateGrowl (e.g. B. {content: u, scrollDepth: o, onShow: () => PromotionReport (“View”, s, p)})} Function contentCliff (e, t, o, n) {const {first_visit: r, global: i} = n, a = {totalArticleCount: itotal || 0, standardArticleCount: iArticle || 0, featureArticleCount: iFeature || 0, magazineArticleCount: iMagazin || 0}, {contentCliffBody: l} = t, s = DocumentimportNode (e,! 0) querySelector (“content cliff”), c = DocumentquerySelector (“Article content> sound paragraph”), d = {Creative: l, ID: ” Content Cliff “, Name:” Content Cliff “, Position:” In-Article “}; s&& (cinsertAdjacentHTML (“afterend”, sOuterHTML), require (“Content-Cliffclient”) (DocumentquerySelector (“content-cliff”), {contentCliffOptions: t, viewsLeft: o, firstVisit: Number (r), onShow: () = > PromotionReport (“View”, a, d), onClickCliff: () => PromotionReport (“Click”), a, d)}))} Function verdonFosseToutSetter (e, t, o, n, r) {const i = new Verdon ({container: “paywall-reader-interface”, url: “https: // fosseNymagcom / fosse / v152 / indexhtml”}), a = eTyp, l = {E-Mail: auth0getEmail (), isAuthenticated: auth0isAuthenticated (), isSubscriber: auth0isSubscriber ()}; add nclassList (a), icheinmal (“frame: ready”, () => {isendMessage (“tout: show”, {readerState: l, toutType: a, toutData: e}), r&&isendMessage (“frame: height”) }), ion (“tout: visible”, () => {PromotionReport (“View”, t, o)}), ion (“tout: sign-in”, () => {auth0showLogin (FensterStandorthref)}) , ion (“tout: dismissed”, () => {nclassListAdd (“dismissed”), ichsendMessage (“tout: hide”, {toutType: a, toutData: e})}), ion (“tout: subscribe”, () => {ectaLink = replaceQueryParams (ectaLink), PromotionReport (“click”, t, o), window open (ectaLink, “_ ​​blank”)}), iein (“frame: height”, e => {nStilheight = `$ {eNutzlastcurrentHeight 10} px`}), ion (” tout: view-account “, () => {windowStandorthref =” https: // subsNymagcom / account “})} Function promotion report (e, t, o) { const {creative: n, id: r, name: i, position: a} = o; tevent = `eecFörderung $ {e}`, tecommerce = {promoView: {Promotions: [{creative: ntrim (), id: r, name: i, position: a}]}}, gtmreportNow (t), reportPaywall ({ creative: ntrim (), eventType: e, id: r, name: i, position: a})} function babyGrowl (e, t, o) {const n = documentimportNode (e,! 0) querySelector (“paywall-reader -interface “), r = {creative: obabygrowlDescription, ID:” Baby growling “, Name:” Baby growling “, Position:” Growling “}; DocumentBody AppendChild (n), octaLink = obabygrowlCtaLink, octaText = obabygrowlMessage, oÜberschrift = obabygrowlDescription, verdonFosseToutSetter (o, t, r, n)} Function cliffTakeover (e, t, o) {const {cliffTakeLink: riffover, cliffTake: cliffCTA: nDover: n i, cliffTakeoverImage: a, cliffTakeoverPromo:: c} = o, d = Document ImportNode (e,! 0) querySelector (“Paywall Reader Interface”), g = DocumentquerySelectorAll (“Sound Paragraph”), u = {Creative: l, ID: “Content Cliff”, Name: “Content Cliff”, Position: “Growl”}, p = {cta: n, ctaLink: r, Description: i, Image: a, Promo: l, Status: s, Type: c}; DocumentKkörperappendChild (d), gforEach ((e, t) => {0! == t&&eremove ()}), verdonFosseToutSetter (p, t, u, d,! 0), documentquerySelector (“html”) StiloverflowY = “hidden” , DocumentBodyStyle position = “fixed”} Function warningGrowl (e, t, o) {const {Type: n, warningGrowl2CTA: r, warningGrowl2CtaLink: i, warningGrowl2Description: a, warningGrowl2Image: l, warningGrowl2Promo: s, warningGrowl2Status: c} = o, d = DokumentimportNode (e,! 0) querySelector (“paywall-reader-interface”), g = {creative: s, id: “warning growl”, name: “warning growl”, position: “growl”}, u = { cta: r, ctaLink: i, description: a, picture: l, promo: s, status: c, type: n}; DocumentBody AppendChild (d), verdonFosseToutSetter (u, t, g, d,! 0)} Function getClientId (e = “”, t = 8e3) {let o = cookieget (e); return o? Promise resolution (o): new promise ((o, n) => {const r = setTimeout (() => {n (`Key could not be found: $ {e} on cookie after $ {t} ms`)} , t); Window addEventListener (cidReadyEvent, () => {clearTimeout (r), o (Cookie) get (e))})})} Function readJSONFromScript (e) {try {return JSONAnalyse (einnerHTML)} catch (e) {return {touts: [], scenarios: []}}} function findTemplate (e, t = “”) {const o = e&&equerySelector (`[data-template-id =” $ {t} “]`); returns o&&oContents} Function isNCR () {return / [? &] source = ncr / Test (location search)} Function brandedTakeoverTime (e) {const {startTime: t, endTime: o, startDate: n, endDate: r} = e, i = nconcat (“”, t), a = rconcat (“”, o), l = moment (i), s = moment (a); Return moment () isBetween (l, s)} function optimizeDebugger () {return new promise (e => {const t = windowLocation search || “”; if (t) {const o = new URLSearchParams (t), n = oget ( “Optimize-Attribute-Name”) || “”, r = oget (“Optimize-Attribute-Value”) || “”, i = oget (“Optimization delay”) || 0, a = oget (“Optimize-Cookie “) ||! 1; setTimeout (() => {a&& (document cookie = randomNymcid ()), document body set attributes (` data – $ {n} `, r), e ()}, i)} else e ()} )} function randomNymcid () {return`nymcid = $ {(() => ([1e7] – 1e3 -4e3 -8e3 -1e11) Replace (/ / g, e => (e ^ 16 * crypto) getRandomValues (New Uint8Array (1)) [0] >> e / 4) toString (16) [0])) ()} `} function replaceQueryParams (e) {const t = windowLocation search || “”; if (t) {const o = new URLSearchParams (t); if (econtains (“?”)) {const t = esplit (“?”), n = new URLSearchParams (t [1]); for (let e of oEntries ()) nset (e [0], e [1]); e = `$ {t [0]}? $ {ntoString ()} `} else e =` $ {e}? $ {otoString ()} `} return e} Module exported = (e => new promise (e => {auth0on (” init “, () => {e ()})}) then (() => optimizeDebugger ( )) then (() => {displayDebug (FensterStandorthref), initializeChoreographer (e)}));
}, {1: 1, 9: 9, 12: 12, 13: 13, 23: 23, 24: 24, 40: 40, 52: 52, 73: 73, 74: 74, 75: 75, 76: 76, 77: 77, 78: 78, 79: 79, 80: 80 Content-Cliffclient “:” content-cliffKlient “}];
FensterModule [“growl client”] = [function (required, module, export) {“use strict”; require (140); const _some = require (60), dom = require (3), localStorageKeyRoot = “slideout -“, {getLocalStorage: getLocalStorage, setLocalStorage: setLocalStorage} = require (13); module exported = ((e, t) => {const {content: o, onShow: s, scrollDepth: r = 50, dismissable: i =! 1} = t, n = Number (r || egetAttribute (“data display at -Page scroll percentage “)), a = domfind (e,” modal “), l =” slideout- “(tid || egetAttribute (” id “)), c = getLocalStorage (l); function d () {aclassListadd (“hidden”)} Function g () {setLocalStorage (l,! 0), d ()} i&&c? eremove () 🙁 o&&equerySelector (“[data content]”) appendChild (o), nCSSEAND 50 ) {const t = new IntersectionObserver (e => {_ some (e, “isIntersecting”) && (aStiltop = “inherit”, aclassListremove (“hidden”, “initial”), “function” == typeof s&&s (), dobeobachten (a))}); aStiltop = `$ {documentquerySelector (” body “) scrollHeight / (100 / e)} px`, tbeobachte (a)} (n), equerySelector (” dismissed-modal “) addEventListener (” click “, () => i? g (): d ()), eaddEventListener (” growl: hide “, d), eaddEventListen he (“growl: dismissed”, g))});
}, {3: 3, 13: 13, 60: 60, 140: 140}];
FensterModule [“Speed-Bumpclient”] = [Function (required, module, export) {“use strict”; const gtm = required (1), visibility = required (4); Module exported = ((e, i) => {if (! I ||! E) return; const {name: o, speedbumpDescription: r, speedbumpMessage: t, speedbumpLink: n, baseTrackingData: s} = i, c = new VisibilitySvisible (e, {shownThreshold: 5}); equerySelector (“Description”) innerHTML = r, equerySelector (“Promo-Link”) innerHTML = t, equerySelector (“Promo-Link”) href = n, eclassListentfernen (“collapsed” ), con (“shown”, function () {if (VisibilityisElementNotHidden (e)) {let e = s; eevent = “eecPromotionView”, eecommerce = {promoView: {Promotions: [{Name: o, Creative: r, ID : “Speed ​​Bump”, Position: “In-Artikel”}]}}, gtmreportNow (e), cdestroy ()}}), equerySelector (“Promo-Link”) addEventListener (“click”, function () { let e = s; eevent = “eecPromotionClick”, eecommerce = {promoClick: {Promotions: [{Name: o, Creative: r, ID: “Speed ​​Bump”, Position: “In-Article”}]}}, gtmreportNow (e)})});
}, {“1”: 1, “4”: 4}];
FensterModule [“Newsletter-Speed-Bumpclient”] = [Function (required, module, export) {“use strict”; const {loadRecaptcha: loadRecaptcha} = require (108), _ isEmpty = require (87), _ set = require (107), _ kebabCase = require (81)), gtm = require (1), auth0 = require (12) , Visibility = require (4), COMPONENT_NAME = “Newsletter-Speed-Bump”, EMAIL_VALID_REGEX = / ^ (?: (?: [^ () [] \,;: s @ “] (?: [^ () [] \,;: s @ “]) *) | (” “)) @ (?: (?: [[0-9] {1,3} [1, 3] {1,3} [1,3] {1,3} [0-9] {1,3}]) | (?: (?: [A-zA-Z -0-9] ) [a-zA-Z] {2,})) $ /, LOCAL_STORAGE_KEY_NAME = “newsletterSpeedBumpSignUpStatus _”, MAX_EMAIL_LENGTH = 50; Function setClass (e, t) {eclassListadd (t)} Function getRequestUrl (e) {return egetAttribute (“action”)} Function getPageType (e) {const t = e? egetAttribute (“content”): “”; return _kebabCase (t)} function getPayloadObject (e, t, r, s) {const n = {}; return _set (n, `varsQuelle _ $ {t}`, `$ {COMPONENT_NAME} _ $ {s}`), nE-Mail = r, nListen = {}, nlistet [t] =! 0, nrecaptcha = e, nsignuppage = `$ {documentStandorthref} _ $ {t}`, n [`source _ $ {t}`] = “newsleter_speedbump”, n} Module exported = ((e, t) => {if (! t ||! e) return; if (“success” === window local storage getItem (`$ {LOCAL_STORAGE_KEY_NAME} $ {tnewsletterSpeedBumpNewsletterId}`)) return void eremove (); const {baseTrackingData: r, name: s, newsletterSpeedBumpCopy : n, newsletterSpeedBumpDescription: i, newsletterSpeedBumpHeadline: a, newsletterSpeedBumpNewsletterId: o, newsletterSpeedBumpThankYouMessage: c, RECUT__getEmail (), d = equerySelector (“Description”), p = equerySelector (“Incoming email”), error message ), h = equerySelector (“Form”), E = equerySelector (“Form-Container”), y = equerySelector (“form-recaptcha-container”), g = equerySelector (“Heading”), v = equerySelector (“Container “), S = equerySelector (” Incoming newsletterId “), _ = equerySelector (” recaptcha-wrapper “), L = equerySelector (” Incoming submit “), w = equerySelector (“TextContainer”), q = new VisibilityVisible (e, {shownThreshold: 5}); u&& (premoveAttribute (“required”), eclassListadd (“logged in”)), dinnerHTML = i, ginnerHTML = a, SValue = o, LValue = n, qon (“shown”, function () {if (VisibilityisElementNotHidden (e)) {const e = r; eevent = “eecPromotionView”, eecommerce = {promoView: {Promotions: [{creative: `$ {a} | $ {i} `, id:” Newsletter Speed ​​Bump “, Name: s, Position:” In-Article “}]}}, gtmreportNow (e), qdestroy ()}}), paddEventListener (” focus ” , () => {_classListentfernen (“hidden”)}), haddEventListener (“submit”, t => {tPreventDefault (); const s = new XMLHttpRequest, n = u || equerySelector (“input email”) value, i = getPageType (DocumentquerySelector (‘meta [name = “type”]’)); u ||! (nLength> = 50) &&EMAIL_VALID_REGEXtest (n)? loadRecaptcha (l, “newsletterSubmit”,! 0) then (a => {sopen (“POST”, getRequestUrl (h),! 0), ssetRequestHeader (“content type”, “application / json; character set = UTF-8”), saddEventListener (“load”, s => {const a = scurrentTarget || sZiel , if (astatus> = 200&&astatussetClass (e, “Success”)), [d, E, m, _] forEach (e => setClass (e, “hidden”)), gi nnerHTML = cersetzen (“{{email}}”, n), minnerHTML = “”; const s = Parsing JSON (aAnswer), l = _isEmpty (ssailthruIds)? “”: ObjectValues ​​(ssailthruIds) [0], u = r; uevent = “eecKauf”, uecommerce = {Purchase: {actionField: {id: l, Sales: “000”}, Products: [{Category: “Newsletter Registration”, Name: SValue, amount: 1, variant: `$ {COMPONENT_NAME} – $ {i}`}]}}, gtmreportNow (u), setTimeout (() => {eclassListadd (“hidden”)}, 5e3), tPreventDefault () } else minnerHTML = “* An error has occurred please try again”}), saddEventListener (“error”, () => {remove mclassListent (“hidden”), minnerHTML = “* An error has occurred please try again”} ), ssenden (JSONstringify (getPayloadObject (a, o, n, i))), tPreventDefault ()}): minnerHTML = “* Please enter a valid email address”})});
}, {“1”: 1, “4”: 4, “12”: 12, “81”: 81, “87”: 87, “107”: 107, “108”: 108}];
WindowModule [“Content-Cliffclient”] = [Function (required, module, export) {“use strict”; const auth0 = required (12), isProduction = required (9) (), logger = required (74) Logger (() =>! IsProduction); Module exported = ((t, e) => {if (! E) return; loggergroup (), Loggerh2 (“Content Cliff”); const {contentCliffOptions: o, firstVisit: n, onShow: r, onClickCliff: i} = e , c = 300, l = Number (DocumentquerySelector (“[Number of data components]”) getAttribute (“Number of data components”)), u = 3, s = [“taboola”], a = “# content-cliff”, f = t, d = function () {let t = 0; return documentquerySelectorAll (“[number of data words]”) forEach (function (s) {t = number (egetAttribute (“number of data words”) || 0,10) || 0 }), t} (), g = function (t, e) {function o (t) {return mathund (tgetTime () / 1e3 / 60)} const n = o (t), r = o (e); return nr} (new date, new date (s)) {}, show: () => {r (), function () {(p = function (t = “”) {return documentquerySelectorAll (`$ {t} ~ * `)} (a)) forEach (t => tremove ()), function () {const {contentCliffStatus: e, contentCliffPromo: n, contentCliffCTA: r, contentCliffURL: c} = o, l = tquerySelector (” [ Data content cliff status] “), u = tquerySelector (” [data-content-cliff-promo] “), s = tquerySelector (” [data-content-cliff-cta] “); s&&ssetAttribute ( “href”, c), s&&sinsertAdjacentHTML ( “after begin”, r), l&&linsertAdjacentHTML ( “after begin”, e), u&&uinsertAdjacentHTML ( “after begin”, n), s&&saddEventListener ( “click”, i)} () fclassListentfernen ( “collapsed”), e = s, eforEach (t => {const e = documentquerySelector (`[data-uri * =” / $ {t} / “]`); e&&eremove ()}), maddEventListener (“click” , () => auth0showLogin ()); var e} ()}} [function () {if (dl) return loggerlog (`Number of article words $ {d} was too short for the cliff`), Loggerlog (` Number of article components is less than $ {u} and not for the cliff suitable`), “noop”; if (g&&isProduction) returns “noop”; g&&loggerlog (`The first session check was $ {g}! Show the cliff anyway: isProduction => $ {isProduction}`); if (/ coronavirus news | pivot | paywall exclude / iTest (Fenster_nymGtmPageTags)) return isProduction&&loggerlog (“Content Cliff No-Op due to excluded tag match:”, Fenster_nymGtmPageTags), “noop”; return “show”} ()], m = tquerySelector (“content-cliff-login”); let p = []; return loggerlog (`should not work due to the 30 minute window of the first session in production: $ {g}`), loggergroupEnd (), auth0on (“login”, () => {fclassListadd (“reduced”), ( p = ArrayPrototypeScheibeAnruf (p, 0) reverse ()) forEach (t => finsertAdjacentElement (“afterend”, t)), p = []}), “function” == typeof h? h (): void 0});
}, {“9”: 9, “12”: 12, “74”: 74}];
WindowModule [“most popularclient”] = [function (required, module, export) {“use strict”; const dom = require (3), lazyLoad = require (96); Function lazyLoadImage (a) {const o = domfind (a, “img [data-src]”), d = a&&domfindAll (a, “source [data-srcset]”), e = o&&dom at the next (o, “feed-image -wrap “); if (o&&e) {new lazyLoadLazyLoader (e, o, d) init ()}} function handleLazyLoad (a) {(domfindAll (a, “most popular article”) || []) forEach (lazyLoadImage)} module exported = (a = > {handleLazyLoad (a)});
}, {“3”: 3, “96”: 96}];
WindowModules [“Collection Package Client”] = [Function (required, module, export) {“use strict”; const dom = required (3), hammer = required (99), lazyLoad = required (96), _ debounce = required (100), BREAKPOINT = 768, ANIMATION_DURATION = 250; Module exported = (e => {const t = domfind (“collection-simple_text-top”), n = equerySelector (“list wrapper”), i = equerySelector (“package content”), o = domfindAll (e, “article” ), r = eclassListenthalt (“carousel layout”); var a, s = 0, c =! 1; if (r) {if (! n) return; function d () {aaus (“swipeleft”) from ( “swiperight”), s = 0, nStiltransform = “translate (0px)”, FensterinnerWidth1? (FenstercancelAnimationFrame (s), i&&i ()) 🙁 t = r (c = d) * (2-c) * a, eStiltransform = “translate (” t “px)”, window requestAnimationFrame (s))}; n || (n = 0); window requestAnimationFrame (s)} (n, i, ANIMATION_DURATION, function () {s = e, c =! 1})} function f () {c || s> 0&&l (s-1)} function u () {c || s {! Function (e) {const t = domfindAll (e, “source [data-srcset ] “), n = domfind (e,” img [data-src] “), i = domfind (e,” article-img-wrapper “); if (t&&n&&i) {const e = new lazyLoadLazyLoader (i, n, t); iclassListadd ( “contains-image”), einit ()}} (e)})});
}, {3: 3, 96: 96, 99: 99, 100: 100}];
WindowModule [“Sticky-Listeclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), $ gtm = require (1), _ get = require (23), stickyContainer = require (“sticky-container” Client “); DSController (” Sticky-List “, [” $ window ” , Function (t) {var e = require (218), i = 40; function s (s) {let n, r = function (t) {let s = t [0], n = 0, r = eHeight ( diescontentArea), h = thisContentAreaoffsetHeight; if (thiscontainer&&thisBehältLänge) {if (sZieloffsetHeight) {let t = thisAusbrüchefindIndex (t => (function body (t, e)) {return t! == document}} ARtCSSEAND sZielCSSEAND s ; if (t> -1&&thisAusbrüche [t]) {let e = diesAusbrüche [t] offsetHeight i; thisBehält [t] StilmarginBottom = `$ {e} px`}} if (h! == thiscurrentHeigh) {const t = eRect (diesrightRail, das hiercontentArea); diescurrentHeight = h, diesrightRailStilHöhe = r-ttop-a (diesrightRail) “px”, diesAusbrbruchforEach ((s, r) => {let a = erect (s, thiscontentArea), h = eSchnittpunkt (a , t); if (h) {let e, s = htop- ttop-n; n = s hHöhe ich, dasBehält [r] Stilheight = `$ {s} px`, diesBehält [r] StilminHeight =` $ {s} px`, e = thisBehausbruch [r] offsetHeight i, thisBehält [r] StilmarginBottom = ` $ {e} px`}})}}} bind (this); tinnerWidth {let n = _get (e, “RecordName”, “”), r = nSlice (-1) || “1”, a = [“Image_Gallery”, “Standard_Article”, “Feature”, “One_Column_Article”] find (t => ncontains (t)) || “”; diesrightRailparentElementclassListentcontains (“tertiary”) &&a&& (eDatsatzname = parseInt (i, 10) se === t) || 0; return iSheight (n 1) reduce ((t, e) => t (eoffsetHeight || 0), 0) || 0} return sprototype = {setPins: function () {const t = eRect (diesrightRail, the hiercontentArea), i = eHöhe (diescontentArea), s = i-ttop-a (diesrightRail); let n, h, o, l; if (thispopulatePinsList (), s1&&tclassListadd (“Multi-Children”), l = 0; l {const t = Arrayof (eKinder); let o, a, i = 0; for (; iabelow || incorrectly)? abottom-ntop : 0} function getElementsOverlapAmount (e, t) {var n, a = []; return _forEach (t, function (t) {n = getElementsVerticalOverlap (e, t), apush (n)}), _ max (a) } Function getNYMagAdChannel (e) {var t = “”; switch (e) {case “company information”: t = “company”; break; case “new york does & things to do”: t = “to do”; break; case “other”: t = e; break; case “sponsored leader”: t = “s-leader”; break; case “urbanist”: t = “urbanist” “; break; default: t =” “} return t} Function appendSectionToDfpAds () {var e, t, n, a = DocumentquerySelector (“meta [property = ‘og: site_name’]”), o = documentquerySelector (“Article [data content channel]”), i = DocumentquerySelectorAll (AD_NAME_SELECTOR ); a&& (e = aContents), o&& (t = ogetAttribute (“Date ninhaltskanal “) toLowerCase ()), t&&” New York Magazine “=== e&& (n = getNYMagAdChannel (t)), n&&appendToAdd (i, n)} body {}, t = documentquerySelector (“body”) || {}, n = e&&eclassList, a = n&&nLength? [n]: [], o = _find (a, e => econtains (“Feature”)), i = DocumentquerySelectorAll (AD_NAME_SELECTOR); n&& (o? appendPageNumberPositionToDfpAds (i, “Feature”): ncontains (“lede-gallery-content”)? appendPageNumberPositionToDfpAds (i, “Image_Gallery”): tclassListentTohalts (“One-column layout”)? ncontains (“article content”) &&appendPageNumberPositionToDfpAds (i, “Standard_Article”))} Function appendPageNumberPositionToDfpAds (e, t) {const n = [“528×379”, “1100×200”, “find 1×1” = [let a =] o, ad-splash “), i = domfind (” section wrapper “), r = domfind (” secondary “), d = domfind (” bottom “), s = domfind (” primary “), c = {IA: {xsMobile: {normal: 1, grid: 1}, mobile: {normal: 1, grid: 1}, tablet: {normal: 1, grid: 1}, desktop: {normal: 1, grid: 1}}, BA: { xsMobile: {normal: 1, grid: 1}, mobile: {normal: 1, grid: 1}, tablet: {normal: 1, grid: 1}, desktop: {normal: 1, grid: 1}}}; aforEach (e => {let a, l = “”, u = eDatsatzSchsize, m = eclassListVert, p = _find (n, e => ubeinclusive (e)), g = eparentElementclassListenthalts (“image-gallery-mobile-grid- ad “); if (u&&! p || esetAttribute (” Datenname “, egetAttribute (” data-name “)” / “t), i&&u&&! p) {let n, u; if (oCSSE “LB”: i&&contains (e)? L = “IA” 🙁 r&&contains (e) || d&&dcontains (e) || s&&scontains (e), c (l = “BAEANDCHARCSSE”), c (l = “BAEANDCHARCSSE”)) ! (u = checkForAdViewport (m))) return; g? (n = c [l] [u] grid, c [l] [u] grid) 🙁 n = c [l] [u] normal, c [ l] [u] normal), a = n {esetAttribute (“data name”, egetAttribute (“data name”) “/” t)})} inject functionGoogleScripts () {var e = document createElement (“script”), t = documentcreateElement (“script”), n = documentcreateDocumentFragment (); esrc = “// wwwgoogletagservicescom / tag / js / gptjs”, easync = “async”, tsrc = “// pagead2googlesyndicationcom / pagead / js / adsbygooglejs”, tasync = “async”, n asyncappendChild (e), nappendChild (t), document getElementsByTagName (“body”) [0] appendChild (n)} appendSectionToDfpAds (), appendPageTypeToDfpAds (), injectGoogleScripts (), DSController (ad. “, [” ) {Return function (t) {var n, a, o, i = tgetAttribute (“data offload”), r = new $ VisibilitySvisible (t, {pretoadThreshold: i? WindowinnerHeight / 4: 200}), d =! 1 ; Function s () {FensterinnerWidth> = 1180&&tparentElementclassListenthalts (“ad-repeat”) &&flaggedComponentsOnPagelength&& (a = getElementsOverlapEANDCHAR, a = getElementsOverlapAmount (a = getElementsOverlapAmount), a = getElementsOverlapAmountA (a )} Function c () {s (), eUpdate (n)} Function l () {eremove (n), d || (d =! 0, ron (“shown”, c))} DocumentquerySelector (‘script [ data-name = “concert displays”] ‘) || (n = eerstellen (t), rPreload&& $ VisibilityisElementNotHidden (t)? (eaddTo PageLoadQueue (n), i&&ron (“hidden”, l)) 🙁 ron (“preload”, function () {! nslot&& $ VisibilityisElementNotHidden (t) && (s (), eload (n))}), i&&rauf (“hidden”, l)), diesadData = n)}}]);
}, {3: 3, 4: 4, 41: 41, 42: 42, 43: 43, 44: 44}];
WindowModule [“Article Client”] = [Function (required, module, export) {“use strict”; const $ visibility = required (4), $ gtm = required (1), ImageZoom = required (56), $ sentry = required (57); DScontroller (“article”, [function () {var e = 40; function t (t) {const i = documentquerySelector (“Wrapper> tertiary”), n = tquerySelector (“lede-image-wrapperVollblutung”), r = tquerySelector (“Attribution full bleeding”), o = tquerySelector (“article header”), l = o? OquerySelector (“img”): null, c = function () {let t = ogetBoundingClientRect () height; n&& (t = ngetBoundingClientRect ( ) Height 25, r&& (t = rgetBoundingClientRect () height)), ichStilpaddingTop = te “px”}; i&&o&& (window innerWidtht (e)), $}}]););
}, {“1”: 1, “4”: 4, “56”: 56, “57”: 57}];
WindowModule [“Tagsclient”] = [Function (required, module, export) {“use strict”; const _forEach = require (41); DScontroller (“tags”, [function () {function e (e) {thisel = e} return ePrototype = {Events: {“amore click on”: “showAll”}, showAll: function (e) {var t = eZiel, o = dieselquerySelectorAll (“liversteckt”); _ forEach (o, function (e) {eclassListernernen (“hidden”)}), tparent noderemoveChild (t), ePreventDefault ()}}, e}]);
}, {“41”: 41}];
FensterModule [“image client”] = [function (required, module, export) {“use strict”; const dom = require (3), lazyLoad = require (96); Module exported = (e => {const a = domfindAll (e, “source [data-srcset]”), d = domfind (e, “img [data-src]”), o = domfind (e, “image-wrapper “); new lazyLoadLazyLoader (o, d, a) in there ()});
}, {“3”: 3, “96”: 96}];
FensterModule [“Newsletter-Flex-Textclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ kebabCase = required (81), _ isEmpty = required (87), _ set = required (107), permutiv = require (52), cmptName = “newsletter-flex-text”, { loadRecaptcha: loadRecaptcha} = require (108), gtm = require (1), EMAIL_VALID_REGEX = / ^ (?: (?: [^ () [] \,;: s @ “] (?: [ ^ () [] \,;: s @ “]) *) | (” “)) @ (?: (?: [[0-9] {1,3} [1,3 ] {1,3} [1,3] {1,3} [0-9] {1,3}]) | (?: (?: [A-zA-Z -0-9] ) [a-zA-Z] {2,})) $ /, MAX_EMAIL_LENGTH = 50; DScontroller (cmptName, [“$ window”, function (s) {function t (t) {thisel = t, dasemail = domfind (t, “email”), diestitle = domfind (t, “title”), this description = domfind (t, “description”), diesQuelle = domfind (t, “source”), diesform = domfind (t, “form”), diesreturnMsg = domfind (t, “feedback”), diesnewsletterId = domfind (t, ” newsletterId “) value, diesexpandTerms = domfind (t,” extended terms “), diesrecaptchaKey = this formData recordrecaptchaPublicKey, daslocal = elocalStorage, dasSitzung = esessionStorage, dasdisplayComponent ()} return tprototype = {getRequestUrl: function (” form actionA “return this) )}, getPageType: function () {var e = domfind (‘meta [name = “type”]’), t = e? egetAttribute (“content”): “”; return _kebabCase (t)}, getPayloadObject: function (e) {var t = {}; return temail = thisEmailWert, trecaptcha = e, _set (t, `varsQuelle _ $ {thisnewsletterId}`, `$ {cmptName} _ $ {thisgetPageType ()}`), tListen = { }, tlistet [this newslet terId] =! 0, t}, displayComponent: function () {var t = this, s = “success” === thislocal [“signUpColumnStatus” thisNewsletterIdtoString ()], i = “true” === thisbildengetAttribute (“data display after login”) ; if (! s || i) {if (remove thiselclassListent (“initially hidden”), this formclassListremove (“initially hidden”), setTimeout (function () {telclassListenferne (“opacity-zero”)}, 100), try this session) {diesSessionsetItem (“signUpColumn”, “displayed”)} catch (e) {}} else telparentElementclassListadd (“newsletter-collapsed”); eaddEventListener (“unload”, function () {tSessionremoveItem (“signUpColumn”)})}, events: {“Send form”: “submitForm”, “E-mail keystroke”: “clearMsg”, “Terms button click “:” showTerms “}, clearMsg: function () {thisreturnMsginnerHTML =” “}, showTerms: function () {thisexpandTermsclassListadd (” active “), thisexpandTermssetAttribute (” aria-hidden “,” false “)}, submitForm: function ( e) {var t = new XMLHttpRequest, s = thisbildengetAttribute (“data-error-msg”); thisEmailValueLength> = 50 ||! EMAIL_VALID_REGEXTest (this email value)? (s&& “”! == s || (s = “* Please enter a valid email address”), diesreturnMsginnerHTML = s, dasreturnMsgfocus (), ePreventDefault ()): loadRecaptcha (thisrecaptchaKey, “newsletterSubmit”, ! 0) then (s => {domverhommunikDefault (e), topen (“POST”, diesgetRequestUrl (),! 0), tsetRequestHeader (“content type”, “application / json; character set = UTF-8″), taddEventListener (” load “, this to bind request (dies)), taddEventListener (” error “, dieonErrorbind (dies)), tsenden (JSONstringify (diesgetPayloadObject (s))), ePreventDefault ()})}, onRequest: function (e) {const t = ecurrentTarget || eZiel; tstatus> = 200&&tStatus {var e = document createElement (“script”); easync =! 0, etype = “text / javascript”, esrc = DokumentStandortProtokoll “// d16xpr36wrmcmkCloudfrontnet / js / memojs”, (Document getElementsByTagName (“head”) [0] || Document getElementsByTagName (“body”) [0]) appendChild (e)} ) (), ModulExporte = (() => {});
}, {}];
FensterModule [“Affiliate-Linksclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ contains = required (44), _ StartsWith = required (48), globalClick = required (46), visit = require (47), productSubtags = require (49); var excluded hostnames, skimlinksBaseUrl, skimlinksId, visitState, productUrl, ignoreDataAttribute = “Ignore Data Affiliate Links”, Article = WindowDocumentquerySelector (“Article”), isSponsored = article&& “Sponsor Story” === (Article “GetAtAtype”) Function setExcludedHostnames (t) {excludedHostnames = (tgetAttribute (“Data excluded hostnames”) || “”) toLowerCase () split (“,”)} Function isSkimLink (t) {return !! (skimlinksId = tgetAttribute (“data-skimlinks”))} Function isExcluded (t) {return _includes (excluded hostnames, t) || _startsWith (t, “www”) &&_includes (excluding host names, tSlice (4)) || isSponsored} function isUrlProtocol (t) {return 0! == tindexOf (“mailto:”) &&0! == tindexOf (“javascript:”)} function getTargetHostname (t) {return (tHostname || tHost || thref || “”) toLowerCase ()} function convertSkimlinkUrl (t) {return (skimlinksBaseUrl = skimlinksBaseUrl || skimlinksId? ” // goUmleitungcom /? xs = 1&id = “skimlinksId” &sref = “encodeURIComponent (FensterStandorthref)” &url = “: void 0) &&skimlinksBaseUrluteIgnodeURIComponent (t)} function” return “encodeURIComponent (t) } Function convertSkimlink (t) {var e, i, r, s = domam next (tZiel, “a”), n = s&&shref; n&&nlength&&! tdefaultPrevented&& (i = getTargetHostname (s),! isUrlProtocol (n) || isExcluded (i) || hasIgnoreAttribute (s) || productSubtagsgetAffiliate (n) || (e = convertSkimlinkUrl = CSSUrl (n))) s&&sgetAttribute (“data-track-id”), shref = productSubtagssureSubtag ({url: e, productId: r, visitState: visitState, anchorEl: s}))}} function revertSkimLink (t) {var e = domam next (tZiel, “a”), i = e&&ehref || “”; icontains (skimlinksBaseUrl) &&i&&ilength&&productUrl&href || “”; ), e&& (setExcludedHostnames (t), globalClickaddHandler (convertSkimlink, revertSkimLink))});
}, {3: 3, 44: 44, 46: 46, 47: 47, 48: 48, 49: 49}];
WindowModule [“gtmclient”] = [Function (required, module, export) {“use strict”; const $ gtm = require (1); DScontroller (“gtm”, [function () {return function (t) {$ gtminit (tgetAttribute (“data container ID”), tgetAttribute (“data-site-slug”))}}]);
}, {“1”: 1}];
FensterModule [“global-navclient”] = [function (required, module, export) {“use strict”; const dom = required (3), auth0 = required (12), signInButton = find dom (“user login”), signOutButton = find dom (“user logout”), globalNav = domfind (‘[class ^ = “global-nav”]’) , body = domfind (“body”), dropdownItems = domfinde all (“dropdown wrap”), gtm = require (1), pageUri = require (136) getPageUri (); Function closeDropdowns (e) {let n = globalNavquerySelectorAll (“Dropdown-Listopen”); dropdownItemsforEach (function (t) {let o = tquerySelector (“Dropdown”) ;! n || tcontains (eZiel) &&27! == ekeyCode || oclassListremove (“open”)})} function gtmSendReport (e, n, t) {let o = {eventCategory: “ecommerce”, eventAction: “componentClick”, brand: e, dimension23: “global-nav”, list: pageUri, pageZone: “header”, variant: “nav-link”}; “global-nav-link” === t&& (oeventLabel = nhref), gtmreportNow (o)} function init (e) {auth0on (“init”, () => {signInButtonaddEventListener (“click”, function (e) { everhindereDefault (), auth0showLogin ()}), signOutButtonaddEventListener (“click”, function (e) {everhindereDefault (), auth0logout (), gtmSendReport (“Logout”, eZiel, “User-Info-Link”)}), auth0isAuthenticated () ) &&eclassListadd (“registered”), auth0isSubscriber () &&eclassListadd (“subscribed”), equerySelectorAll (“user link”) forEach (e => {eclassListadd (“active”)})}), auth0 ) => {eclassListadd (“registered”), auth0isSubscriber () &&eclassListadd (“subscribed”)}), auth0on (“logout”, () => {remove eclassList (“registered”), eclassListentferne (“subscribed”)})} dropdownItemsforEach (function (s) {eaddEventListener (“click”, function () {equerySelector (“dropdown list”) toggle classList (“open”)})}), body addEventList ner (“click”, closeDropdowns), document addEventListener (“keydown”, closeDropdowns), globalNavaddEventListener (“click”, function (s) {let n = eZiel; n ZielclassListenthalts (“global-nav-track”) &&gtmSendReport (nText, n, “global-nav-link”)}), ModulExporte = Init;
}, {“1”: 1, “3”: 3, “12”: 12, “136”: 136}];
FensterModule [“aaa-Modul-MontageLegacy”] = [Function (required, module, export) {“use strict”; const eventify = required (164), _ pickBy = required (139), _ each = required (301), fingerprintjs2 = required (300), DS = require (299); function registerGlobals () {windowDS = DS, WindowEventify = eventify, WindowFingerprint2 = Fingerprintjs2, DSValue (“Eventify”, eventify), DSValue (“Fingerprint2”, fingerprintjs2), DSValue (“$ document”, WindowDocument), DSvalue (“$ window “, window)} Function mountDollarSliceComponents () {DSservice (” Components “, [” $ document “,” $ module “, Function (e, n) {var r = _pickBy (nDefinitions, e => eproviderStrategy === nVendorController) , o = object keys (r); function t (e) {return r => {try {nget (e, r)} catch (e) {logMountError (r, e)}}} _ each (o, n => {var r = equerySelectorAll (‘[data-uri * = “/ _ components /’ n ‘/”]’), o = equerySelectorAll (‘[data-uri $ = “/ _ components /’ n ‘”]’) ; _ each (r, t (n)), _ each (o, t (n))}), diesComponents = o}]), DSget (“Components”)} Function logMountError (e, n) {const r = eOuterHTMLSlice (0, eOuterHTMLindexOf (oneHTML)); ConsoleError (“Error attaching the controller to” r, n)} registerGlobals (), DokumentaddEventListener (“DOMContentLoaded”, () => {mountDollarSliceComponents ()});
}, {139: 139, 164: 164, 299: 299, 300: 300, 301: 301}];
WindowModule [“ShowLegacy”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ forEach = require (41), _ isString = require (184), _ intersectionWith = require (302), _ isEqual = require (190), _ each = require (301), _ debounce = require (100), _ sortBy = require (123), page = require (136), visit = require (47); DSservice (“adService”, [“Eventify”, “$ cid”, “$ document”, “$ window”, function (e, t, a, i) {var o, n, s, r, d, c, l, u, g, p, m = {}, h = dies, f = [], b = visit getQueryParamsObject ([“utm_campaign”]), w = documentquerySelector (‘script [data-type = “ad-a9”] ‘); DocumentquerySelector (‘ script [data-name = “Konzertangebote”] ‘) || (iNYM = {}, iNYMAnalytics = {}, iNYMAnalytikadStartTime = iPerformance now ichgoogletag = igoogletag || {}, igoogletagcmd = igoogletagcmd || [] c = igoogletag, w&& (igoogletagcmd = igoogletagcmd || [], igoogletagcmdpush (function () {igoogletagPubads () disableInitialLoad ()}), l = isetInterval (function 0ChAssErStagCANDWindow (function 0CHSSEstag) (l), window day deleted =! 0, l = null)}, 10), setTimeout (function () {l&& (iclearInterval (l), ichgoogletagPubads () refresh (), window window || console log (“MESSAGE: Timeout for A9- L. ast exceeded, abort “))}, 500)), u = documentcreateElement (” script “), g = documentcreateDocumentFragment (), p = documentgetElementsByTagName (” head “) [0], usrc =” https: // zWassergräbencom / voxprebidheader841653991752 / moatheaderjs “, gappendChild (u), pinsertBefore (g, pfirstChild), o = function (e) {var t, a, o = eData, n = []; Return loaded? e: (loaded =! 0, t = null, (t = oSizes? cdefineSlot (oName oSizes, oI would) addService (cPubads ()): cdefineOutOfPageSlot (oName oI would) addService (cpubads ())) setTargeting (“adid” , oid), bhasOwnProperty (“utm_campaign”) &&tsetTargeting (“utmcamp”, butm_campaign), a = hgetAdCount (oEtikett), tsetTargeting (“label”, oBeschriftung “_” oSeite “-” a) ) addEventListener ( “slotOnload”, function () {iNYMAnalytikfirstAdLoadTime || (iNYMAnalytikfirstAdLoadTime = iPerformancejetzt ichNYMAnalytikfirstAdLoadLabel = eDatenlabel)}) (n = v (o)) Fensterapstag&&windowapstagclear&&windowapstagfetchBids ({slots: [n], timeout: windowapstagZeitüberschreitung}, function ( ) {ccmdpush (function () {windowapagsetDisplayBids (), cPubads () refresh ([t], {changeCorrelator:! 1})})}): cPubads () refresh ([t], {changeCorrelator:! 1}), eslot = t, e)}, n = function (e) {var a, i, o, n = t (), s = egetAttribute (“Datenna me “), r = egetAttribute (” data sizes “), d = egetAttribute (” data label “), c = egetAttribute (” data-site “); n = eid, r&&rLength? (r = rsplit (“,”), a = [], _ map (r, function (e) {e = esplit (“x”), i = parseInt (e [0]), o = parseInt (e [ 1]), apush ([i, o])})) 🙁 eclassListaddere (“oop”), a =! 1), diesData = {ID: n, name: s, sizes: a, loaded:! 1, designation: d, site: c}, m [n] = this}, r = function (e) {ccmdpush (function () {var t = o (e); m [eDatenid] = t})}, s = function (s) {var t = []; eSlot? (t = v (e)) &&windowapstag&&windowapstagclear&&windowapstagfetchBids ({slots: [t], timeout: windowapstagTime exceeded}, function (1) {ccmdpushBids (function) {update ccmdpushBids (function) (), function (1) {ccmdpushBids (function) () })})}): e&&r (e)}, ccmdpush (function () {var e, t, o, n = SeitegetMeta (“Article: Tag”), s = SeitegetMeta (“Author”), r = iStandorthref, d = (e = aKopfquerySelector (“head-gtm”), t = aBodyquerySelector (“gtm”), e&& “top” === egetAttribute (“data-gtm”)? “gtmtop”: t&& ” tgetAttribute (“data-gtm”)? “gtmbottom”: “”); o = [], _ forEach ([n, s, d], function (s) {_ forEach (esplit (“,”), function ( e) {(e = etrimmen () toLowerCase () replace (/ s / g, “-“) replace (/ ‘| ‘ / g, “”)) length&&opush (e)})}), cPubads ( ) setTargeting (“kw”, o), cPubads () setTargeting (“entry_group”, o), r = rScheibe (rl astIndexOf (“/”) 1), cPubads () setTargeting (“pn”, r), cCompanionAds () setRefreshUnfilledSlots (! 0), cPubads () enableAsyncRendering (), cenableServices ()}), diesload = r, thiscreate = function (e) {return new n (e)}, diesrefresh = function (s) {var t; _isString (e)? (t = thisgetById (e), s (t)): s (e)}, diesremove = function (e) {var t = eDatenid; agetElementById (t) innerHTML = “”}, diesgetAdCount = function (s) {var t, a = 0, i = object keys (m); return _each (i, function (i) {(t = m [i]) data load&&tDatalabel === e&&a}), a}, thisgetById = function (e) {return m [e]}, d = _debounce (function () {var e = {TopLeaderboard: 1, RightColTopMPU: 2, outOfPage: 99, “homepageTakeover / TopLeaderboard”: 1}, t = _sortBy (f, function (t) {return e [tDatenlabel] || 10}); _ forEach (t, function (e) {return eDataSize? r (e): isetTimeout (function () {r (e)}, 2e3)}), f = []}, 10), thisaddToPageLoadQueue = function (e) {fpush (e), d ()}); Function v (e) {var t, a = e sizes; Returns a = _IntersectionWith (a, [[970.250], [970.90], [728.90], [300.600], [300.250], [320.100], [320.50]], _ isEqual), eSize&&eSize length&&SSEANDCHAR = {slotID: eID, sizes: a, slot name: elabel}), t}}]);
}, {41: 41, 47: 47, 50: 50, 100: 100, 123: 123, 136: 136, 184: 184, 190: 190 301: 301, 302: 302}];
WindowModule [“cidLegacy”] = [Function (required, module, export) {“use strict”; DSservice (“$ cid”, function () {var r = MathBoden (100 * Mathrandom ()); return function () {return “cid-” r}});
}, {}];
WindowModule [“FacebookLegacy”] = [Function (required, module, export) {“use strict”; DSservice (“facebook”, [function () {thisfb = function (i) {windowFB&&windowFB [i] apply (this, ArrayPrototypeSlice call (arguments, 1))}}]);
}, {}];
require = (function e (t, n, r) {function s (o, u) {if (! n [o]) {if (! t [o]) {var a = type of require == “function” &&require; if (! U&&a) returns a (o,! 0); if (i) returns i (o,! 0); var f = new error (“module ‘” o “‘” cannot be found) ; f throw code = “MODULE_NOT_FOUND”, f} var l = n [o] = {exported: {}}; t [o] [0] call (lExporte, function (s) {var n = t [o] [1 ] [e]; return s (n? n: e)}, l, lExporte, e, t, n, r)} return n [o] exported} var i = typeof require == “function” &&require; for ( var o = 0; o typeof key === ‘string’ &&-SchlüsselSpiel (/ legacy $ /)) forEach (key => windowower (key));
}}

Function tryToMount (fn, el, name) {
To attempt {
fn (el); // start the controller
} catch (e) {
const elementTag = elOuterHTMLSchibe (0, elOuterHTMLindexOf (elinnerHTML));
ConsoleError (`Error initializing controller for” $ {name} “on” $ {elementTag} “`, e);
}}
}}
/ **
* Client embed js component controls
* /

Function mountComponentModules () {
ObjectKey (WindowModule) filter (key => typeof key === ‘string’ &&-SchlüsselSpiel (/ client $ /)) forEach (key => {
let controllerFn = windower require (key);

if (typeof controllerFn === ‘function’) {
const name = replace key (‘client’, ”),
instanceSelector = `[data-uri * =” _ components / $ {name} / “]`,
defaultSelector = `[data-uri $ =” _ components $ {name} “]`,
Instances = Document querySelectorAll (instanceSelector),
Standard = Document querySelectorAll (defaultSelector);

for (let el of instances) {
tryToMount (controllerFn, el, name);
}}

for (leave el by default) {
tryToMount (controllerFn, el, name);
}}
}}
});
} // Make sure that a `WindowProzessenvNODE_ENV` is available in the client for all dependencies
// Services or components that might require it
// Note: The value “ is exchanged for the actual environment variable in / lib / cmd / compile / scripts

WindowProcess = WindowProcess || {};
WindowProcessesv = WindowProcessesv || {};

if (! FensterProzessenvNODE_ENV) {
FensterProzessenvNODE_ENV = ”;
} // Note: Legacy controllers that need legacy services (eg dollar disk) must be
// Wait for DOMContentLoaded to initialize itself, as the files themselves have to be mounted first

mountLegacyServices ();
mountComponentModules ();
//]]

= 0? (u = fsubstr (0, v), c = fsubstr (v 1)) 🙁 u = f, c = “”), i = decodeURIComponent (u), l = decodeURIComponent (c), hasOwnProperty (o, i) ? isArray (o [i])? o [i]] push (l): o [i] = [o [i], l]: o [i] = l} return o}; var isArray = ArrayisArray || function (r) {return “[Object array]” === ObjectPrototyptoStringcall (r)};
}, {}];
Window modules [“1208”] = [Function (required, module, export) {“use strict”; var stringifyPrimitive = function (r) {switch (typeof r) {case “string”: return r; case “boolean”: return r? “true”: “false”; case “number”: return isFinite (r)? r: “”; default: return “”}}; module exported = function (r, e, t, n) {return e = e || “&”, t = t || “=”, null === r&& (r = void 0), “object” == typeof r? map (objectKeys (r), function (n) {var i = encodeURIComponent (stringifyPrimitive (n)) t; return isArray (r [n])? map (r [n], function (r) {return i encodeURIComponent (stringifyPrimitive (r))}) join (e): i encodeURIComponent (stringifyPrimitive (r [n]))}) join (e): n? encodeURIComponent (stringifyPrimitive (n)) t encodeURIComponent (stringifyPrimitive (r)): “”}; var isArray = ArrayisArray || function (r) {return “[Object array]” === ObjectPrototyptoStringcall (r)}; Function map (r, e) {if (rmap) return rmap (e); for (var t = [], n = 0; n0&&a [aLength-1]) && (6 === i [0] || 2 === i [0])) {o = 0; continue} if (3 === i [0] && (! a || i [1]> a [0] &&i [1] “:” akbar-men “,” ∑ “:” majmou “,” ¤ ” : “omla”}, az: {}, ca: {“∆”: “Delta”, “∞”: “infinite”, “♥”: “amor”, “&”: “i”, “|”: “o”, “”: “mes que”, “∑”: “suma” dels “,” ¤ “:” moneda “}, cz: {” ∆ “:” delta “,” ∞ “:” nekonecno “, “♥”: “laska”, “&”: “a”, “|”: “nebo”, “”: “vice jako”, “∑”: “soucet”, “¤”: “mena”}, de : {“∆”: “delta”, “∞”: “infinite”, “♥”: “love”, “&”: “and”, “|”: “or”, “”: “greater than”, “∑”: “Sum of”, “¤”: “Currency”}, dv: {“∆”: “delta”, “∞”: “kolunulaa”, “♥”: “loabi”, “&”: ” aai “,” | “:” noonee “,” “:” ah vure bodu “,” ∑ “:” jumula “,” ¤ “:” faisaa “}, en: {” ∆ “:” delta “,” ∞ “:” infinite “,” ♥ “:” love “,” & “:” and “,” | “:” or “,” “:” greater than “,” ∑ “:” sum “,” ¤ “: “Currency”}, es: {“∆”: “Delta”, “∞”: “infinito”, “♥”: “amor”, “&”: “y”, “|”: “u”, “” : “mas que”, “∑”: “suma de los”, “¤”: “moned a “}, fr: {” ∆ “:” delta “,” ∞ “:” infiniment “,” ♥ “:” Amour “,” & “:” et “,” | “:” ou “,” “: “superieure a”, “∑”: “somme des”, “¤”: “monna dh”}, gr: {}, hu: {“∆”: “delta”, “∞”: “vegtelen”, “♥ “:” szerelem “,” & “:” es “,” | “:” vagy “,” “:” nagyobb mint “,” ∑ “:” szumma “,” ¤ “:” penznem “}, it: {” ∆ “:” delta “,” ∞ “:” infinito “, “♥”: “amore”, “&”: “e”, “|”: “o”, “”: “maggiore di”, “∑”: “somma”, “¤”: “moneta”}, lt : {}, lv: {“∆”: “delta”, “∞”: “bezgaliba”, “♥”: “milestiba”, “&”: “un”, “|”: “vai”, “”: “lielaks neka”, “∑”: “summa”, “¤”: “valuta”}, my: {“∆”: “kwahkhyaet”, “∞”: “asaonasme”, “♥”: “akhyait”, ” & “:” nhin “,” | “:” tho “,” “:” kyithaw “,” ∑ “:” paungld “,” ¤ “:” ngwekye “}, mk: {}, nl: {” ∆ “:” delta “,” ∞ “: “oneindig”, “♥”: “leads”, “&”: “en”, “|”: “of”, “”: “groter dan”, “∑”: “som”, “¤”: “valuta “}, pl: {” ∆ “:” delta “,” ∞ “:” nieskonczonosc “,” ♥ “:” milosc “,” & “:” i “,” | “:” lub “,” “:” wieksze niz “,” ∑ “:” suma “,” ¤ “:” waluta “}, pt: {” ∆ “:” delta “,” ∞ “:” infinito “, “♥”: “amor”, “&”: “e”, “| “:” ou “,” “:” maior que “,” ∑ “:” soma “,” ¤ “:” moeda “}, ro: {” ∆ “:” delta “,” ∞ “:” infinit “, “♥”: “dragoste”, “&”: “si”, “|”: “sau”, “”: “mai mare ca”, “∑”: “suma”, “¤”: “valuta”}, ru: {“∆”: “delta”, “∞”: “beskonechno”, “♥”: “lub ov”, “&”: “i”, “| “:” ili “,” “:” bolshe “,” ∑ “:” summa “,” ¤ “:” valjuta “}, sk: {” ∆ “:” Delta “,” ∞ “:” nekonecno “,” ♥ “:” laska “,” & “:” a “,” | “:” alebo “,” “:” viac ako “,” ∑ “:” sucet “,” ¤ “:” mena “}, sr: {}, tr: {“∆”: “delta”, “∞”: “Sonsuzluk”, “♥”: “ask”, “&”: “ve”, “|”: “veya”, “”: ” buyuktur “,” ∑ “:” toplam “,” ¤ “:” para birimi “}, uk: {” ∆ “:” delta “,” ∞ “:” bezkinechnist “,” ♥ “:” lubov “,” & “:” i “,” | “:” abo “,” “:” bilshe “,” ∑ “:” suma “,” ¤ “:” valjuta “}, vn: {” ∆ “:” delta “,” ∞ “:” vo cuc “, “♥”: “yeu”, “&”: “va”, “|”: “hoac”, “”: “lon hon”, “∑”: “tong”, “¤”: “tien te”}} ; if (“string”! = typeof e) return “”; if (“string” == typeof a&& (A = a), m = Ien, c = Cen, “object” == type of a) for (g in n = akeepCase ||! 1, O = acustom&& “object” == typeof aBrauch? aBrauch: O, u = cut off> 1&&a cut off ||! 1, l = auric ||! 1, s = auricNoSlash ||! 1, r = amarkize ||! 1, S =! 1! == asymbole&&! 1! == alang, A = a separator || A, l&& (p = bjoin ( “”)), s&& (p = zjoin (“”)), r&& (p = [“”, “!”, “~”, “*”, “‘”, “(“, “)”] join ( “”)), m = alang&&I [alang] &&S? I [alang]: S? Ien: {}, c = alang&&C [alang]? C [alang] :! 1 === alang ||! 0 === alang? {}: Cen, atitleCase&& “number” == typeof atitleCaselength&&ArrayPrototyptoStringAnruf (atitleCase)? (atitleCaseforEach (function (e) {O [e “”] = e “”}), t =! 0): t = !! atitleCase, acustom&& “number” == typeof aUser-definedlength&&ArrayPrototyptoStringAnruf (acustom) &&aUser-definedforEach (function (e) a (e) “a” key n); > 1? New RegExp (“\ b” o (a) “\ b”, “gi”): new RegExp (o (a), “gi”), e = e replace (n, O [a] )}), O) p = g; for (p = o (p = A), f =! 1, y =! 1, d = 0, k = (e = replace (/ (^ s | s $) / g, “”)) length ; d = 0? (j = g, g = “”) :! 0 === y? (g = U [j] v [g], j = “”): g = f&&v [g] match (/ [A-Za-z0-9] /)? V [g]: v [g], f =! 1, y =! 1): g in U? (j = g, g = “, d === k-1&& (g = U [j]), y =! 0) :! m [g] || l&&-1! == join (” “) indexOf (g) || s&&-1! == zjoin (“”) indexOf (g)? (! 0 === y? (g = U [j] g, j = “”, y =! 1): f&& (/ [A-Za-z0-9] / Test (g) || Esubstr (-1) match (/ A-Za-z0-9] /)) && (g = “” g), f =! 1) 🙁 g = f || Esubstr (-1) match (/ [A-Za-z0-9] /)? A m [g]: m [g], g = void 0! == e [d 1] &&e [d 1] match (/ [A-Za-z0-9] /)? A: “”, f =! 0), E = replace (new RegExp (“[^ \ w \ s” p “_-]”, “g”), A); Return t&& (E = EReplace (/ ( w) ( S *) / g, function (e, a, n) {var t = atoUpperCase () (null! == n? N: “”); return objectkey (O) indexOf (ttoLowerCase ()) u&& (h = EcharAt (u) === A, E = EDisk (0, u), h || (E = EDisc (0, ElastIndexOf (A)))), n || t || (E = EtoLowerCase ()), E}, t = function (s) {return function (a) {return n (a, e)}}, o = function (s) {return ereplace (/ [- \ ^ $ *? ( ) | [] {} /] / g, “\ $ &”)}, i = function (e, a) {for (var n in a) if (a [n] === e) return ! 0}; if (“undefined”! = type of module &&moduleExport) ModulExporte = n, ModulExportecreateSlug = t; else if (“undefined”! = typeof define&&defineamd) define ([], function () {return n}); otherwise try {if (egetSlug || ecreateSlug) throw “Speakingurl: Globals exists / (getSlug | createSlug) /”; egetSlug = n, ecreateSlug = t} catch (e) {}} (this);
}, {}];
Window modules [“1235”] = [function (required, module, export) {var namespace = “expire_mixin”; Function expirePlugin () {var e = thiscreateStore (diesStore, null, dies_namespacePrefix-namespace); return {set: function (t, n, a, r) ​​{thishasNamespace (Namespace) || eset (n, r); return t ()}, get: function (e, n) {thishasNamespace (Namespace) || tcall (this, n); return e ()}, remove: function (t, n) {thishasNamespace (Namespace) || eremove (n); return t ()}, getExpiration: function (t, n) {return eget (n)}, removeExpiredKeys: function (e) {var n = []; this each (function (e, t) {npush (t)}); for (var a = 0; a = 0; r -) {var l = localStorage () key (r); e (read (l), l)}} function remove (e) {return localStorage () removeItem (e)} function clearAll () {return localStorage () clear ()} module exported = {name: “localStorage”, read: read, write: write, each: each, remove: remove, clearAll: clearAll};
}, {“1237”: 1237}];
Window modules [“1239”] = [Function (required, module, export) {Module exported = {name: “memoryStorage”, read: read, write: write, each: each, remove: remove, clearAll: clearAll}; var memoryStorage = {}; function read (e) {return memoryStorage [e]} function write (e, r) {memoryStorage [e] = r} Function of each (e) {for (var r in memoryStorage) memoryStoragehasOwnProperty (r) &&e (memoryStorage [r] , r)} function remove (e) {delete memoryStorage [e]} function clearAll (e) {memoryStorage = {}}
}, {}];
Window modules [“1276”] = [Function (required, module, export) {! Function (s) {var t = function (s) {return new y (e)}; tversion = “068”, “undefined”! = Module type&&modules exported? Module exported = t: “function” == typeof define&&defineamd? define (function () {return t}): etypogr = t; var n = function (e, t) {return new RegExp (e, t)}, s = /] *> / i, r = tamp = function (e) {var t = / ( s |) (& | & | & # 38;) ( s |) / g; if (e || “string” == typeof e) returns e replace (/ ()? ([^)? / g, function (e, n, r, a) {return a = a || “”, ( n = n || “”) match (s)? nra: n (r = rReplace (t, ‘$ 1& $ 3’)) a})}, a = tord = function (e) {if (e | | “string” == typeof e) {var t, n = f (e), r = [], a =! 1, p = / ( d) (st | nd | rd | th) / g; return nforEach (function (s) {“tag” === eType? (rpress (etxt), t = sexec (etxt), a =! (! t || void 0! == t [1])): a ? rpress (etxt): rpress (eTXTersetzen (p, ‘$ 1 $ 2’))}), rjoin (“”)}}, p = tinitQuotes = function (s) {var t = n (“(?: ( ?:] *> | ^) \ s * (?:] *> \ s *) *) (?: ( “|” | “) | (‘|’ | ‘))”, “I” ); if (e || “string” == typeof e) returns e reset (t, function (e, t, n) {var s = t? “dquo”: “quo”, r = t || n; return [ eSheibe (0, elastIndexOf (r)), ”, r, “”] join (“”)})}, c = twidont = function (e) {var t = “(?:] *?>) *? [^ \ s] (? 🙁 ?: a | em | span | strong | i | b) [^>] *?>) *? “, s = n (” (\ s “t” \ s “t”) (?: \ s) ([^ \ s] (?: \ s * (?: a | em | span | strong | i | b) [^>] *?> \ s * \ *) *? (?: \ s *? (?: p | h [1-6] | li | dt | dd)> | $)) “,” gi “); return eReplace (s, ‘$ 1 $ 2’)}, i = tcaps = function (e) {var t, r = f (e), a = [], p =! 1, c = n (“((\ b [AZ \ d] * [AZ] \ d * [AZ] [AZ \ d ‘] * \ b) | (\ b [AZ] \ s? (?: [AZ] \\ s?)) (?: \ s | \ b | $)) “,” g “); return rforEach (function (s) {“tag” === eType AdPress (etxt), t = sexec (etxt), p =! (! t || void 0! == t [1])): p? adpress (etxt): adpress (eTXTersetzen (c, function (e, t, n, s) {var r, a; return n? ‘% s’ersetzen (“% s”, n) 🙁 “” === sScheibe (-1) & le; (r = sScheibe (0, -1), a = “”) 🙁 r = s, a = “”), replace ‘% s1% s2’ (“% s1”, r ) replace (“% s2”, a))}))}), aJointtypogrify = function (s) {var t = e; return ejquery&&ehtml&& (t = ehtml ()), t = r (t), t = c (t), t = u (t), t = i (t), t = p (t), t = a (t )}; var l, o, u = tsmartypants = function (e) {var t, n, r = f (e), a = [], p = [], c = “”, i = “”, l =! 1, o = “”; return rforEach (function (e) {if (“tag” === eType adress (etxt), null! == (i = sexec (etxt)) && (c = i [2] toLowerCase (), i [1] ? (pLength> 0&&c === p [pLength-1] &&ppop (), 0 === plength&& (l =! 1)) 🙁 ppush (c), l =! 0)); else {if (n = (n = eTXT) Replace (/ (rock) ‘n’ (roll) / gi, “$ 1’n ‘$ 2”), t = nDisk (-1),! l) switch (n = g (n), n = h (n), n = d (n), n = x (n)) {case “‘”: n = / S /test (o)? “”: “”; break; case “”: n = / S / test (o)? “” “:” “”; break; default: n = m (n)} o = t, apush (n)}}), ajoin (“”)}, f = ttokenize = function (s) {for (var t, n = [], s = 0 , r = / ([^] *>) / gi; null! == (t = rexec (e));) {var a = t [1], p = t [2]; a&&npush ({type: “Text”, txt: a}), npush ({type: “Tag”, txt: p}), s = rlastIndex} return rlastIndex) / g, “$ 1 -“)}, d = tsmartEllipses = function (s) {return ereplace (/ \/ G, “…”) replace (/ / g, “”)}, x = tsmartBackticks = function (s) {return ereplace (/` `/ g,” “”) replace (/ ” / g, “” “)}, m = tsmartQuotes = function (s) {var t = “(? =% s \ B)” replace (“% s”, “[! ” # \ $ \% \ ‘() *, – \ /:;? \ @ [\\] \ ^ _ `{|} ~]”), s = “[^ \ \ t \ r \ n \ [ {\ (\ -]” , r = n (“(\ s | | – | & [mn] dash; | – | – | ȁ [34];) ‘(? = \ w)”, “g”), a = n ( “(” s “) ‘(?! \ s | s \ b | \ d)”, “g”), p = n (“(” s “))’ (?! \ s | s \ b) “,” g “), c = n (‘(\ s | | – | & [mn] dash; | – | – | ȁ [34];)” (? = \ w)’ , “g”), i = n (‘”(? = \ s)’,” g “), l = n (” (“s ‘)”‘, “g”); return eersetzen (n (” ^ ‘% s “) replace (“% s “, t),” g “),”‘ “) replace (n (‘^”% s’) replace (“% s”, t), “g”) , “” “) replace (/” ‘(? = w) / g, “”‘ “) replace (/ ‘” (? = w) / g, “‘” “) replace (/ b ‘( ? = d {2} s) / g, “‘”) replace (r, “$ 1”) replace (a, “$ 1”) replace (p, “$ 1’ $ 2”) replace (“‘ “,” ‘”) replace (c,” $ 1 “”) replace (i, “” “) replace (l,” $ 1 “”) replace Si e (‘”‘,” “”)}, y = function (e) {this_wrapped = e}, v = function (e, n) {yPrototype [e] = function () {return e = calls to (t, that wrapped), dies_chain? t (e) chain (): e; var e}}; for (l in t) thasOwnProperty (l) && ((o = t [l]) &&o constructor&&ocall&&o apply) && [lv] l); yPrototypechain = function () {return this_chain =! 0, this}, yPrototypevalue = function () {return this_wrapped}} (this);
}, {}];
Window modules [“1358”] = [Function (required, module, export) {“use strict”; const universalAgora = required (1360), universalRest = required (10), universalQuery = required (1359), _ get = required (23); Function searchByQueryWithRawResults (e, r) {const t = `// $ {rPage? ˅Host} $ {80! == rpage? port? `: $ {rpage? ˅port} `:” “} $ {rPage? ˅path} / _ agora / _search`; return universalRestpost (t, e,! 0)} function getProducts (e, r, t) {return searchByQueryWithRawResults (universalAgorabuildProductsQuery (e), r) then (e => {const r = universalQueryformatSearchResult (e); return {total: eTrefferTotal Products: t? UniversalAgorafilterByLocale (r): r}})} Function getMerchantsList (e) {return searchByQueryWithRawResults (universalAgorabuildMerchantsAggregation (1e6, _get (e, “siteagoraLocale”)) “, e) then (dealer QueryesformatAggregation: Field: “Key”, sub-field: “Name”}))} ModulExportegetProduct = universalAgoragetProduct, ModulExportegetProducts = getProducts, ModulExportegetMerchantsList = getMerchantsList, ModulExportesearchByQueryWithRawResults = searchByQueryWithResultsults = searchByQueryWithRawerBesults = searchByQueryWithMerchantsByQueryUport = searchByQueryWithRawerExchants;
}, {10:10, 23: 23, 1359: 1359, 1360: 1360}];
Window modules [“1359”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ get = require (23), _ isArray = require (150), _ set = require (107), _isObject = require (88), _ cloneDeep = require (61), _ uniq = require (90); function formatSearchResult (e) {return _map (eTrefferTreffer, “_ source”)} Function newQuery (e) {if (! e) raises a new error (“An index is required to create a query”); return {index: e, type: “_ doc”, body: {query: {}}}} function addShould (e, o) {var t = _get (e, “bodyAbfrageBoolsollte”, void 0), r = _isArray ( O); return t? r? _set (e, “bodyAbfrageBoolsollte”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolsollte”, t)): _ set (e, “bodyAbfrageBoolsollte”, r? o: [o]) , e} function addMust (e, o) {var t = _get (e, “bodyAbfrageBoolmust”, void 0), r = _isArray (o); return t? r? _set (e, “bodyAbfrageBoolmuss”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolmuss”, t)): _ set (e, “bodyAbfrageBoolmust”, r? o: [o]) , e} function addMustNot (e, o) {var t = _get (e, “bodyAbfrageBoolmust_not”, void 0), r = _isArray (o); return t? r? _set (e, “bodyAbfrageBoolmust_not”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolmust_not”, t)): _ set (e, “bodyAbfrageBoolmust_not”, r? o: [o]) , e} function addFilter (e, o) {var t = _get (e, “bodyAbfrageBoolfilter”, void 0); if (! _ isObject (o)) throws a new error (“filter query must be an object”); return t? _isArray (t)? (tpresses (o), _ set (e, “KörperAbfrageBoolfilter”, t)): _ set (e, “bodyAbfrageBoolfilter”, [_ cloneDeep (t), o]): _ set (e, “bodyAbfrageBoolfilter”, o) , e} Function addMinimumShould (e, o) {if (“number”! = typeof o) triggers a new error (“A number is required as a second argument”); return _set (e, “bodyAbfrageBoolMinimum_should_match”, o), e} function addSort (e, o) {var t = _get (e, “bodysort”); return _isArray (t) || _set (e, “bodysort”, t = []), tpush (o), e} function addSize (e, o) {if (! o&&0! == o) return e; if (o = parseInt (o), isNaN (o)) trigger a new error (`Second argument must be a number: $ {o}`); return _set (e, “bodysize”, o)} function addFrom (e, o) {if (! o&&0! == o) return e; if (o = parseInt (o), isNaN (o)) throw new Error (`Second argument must be a number: $ {o}`); return _set (e, “bodyfrom”, o)} function onlyWithTheseFields (e, o) {if (! _ isArray (o)) throws a new error (“The second argument must be an array”); return _set (e, “body_Sourceinclude”, _ uniq (o)), e} function onlyWithinThisSite (e, o) {return osubsiteSlug? addFilter (e, {term: {subsite: osubsiteSlug}}) 🙁 addFilter (e, {term: {site: oslug}}), addMustNot (e, {exists: {field: “subsite”}})), e } function onlyWithinThisDomain (e, o) {return addFilter (e, {Prefix: {canonicalUrl: `http: // $ {Öhost}`}}), e} Function within this SiteAndCrossposts (e, o) {var t = { term: {}}, r = {bool: {should: [], minimal_should_match: 1}}; return t term [“Crosspost” (ÖsubsiteSlug || oSchnecke)] =! 0, rBoolsolltedrücke (t), osubsiteSlug? rBoolsolltepush ({term: {subsite: osubsiteSlug}}) 🙁 rBoolsolltepush ({term: {site: oslug}}), addMustNot (e, {exists: {field: “subsite”}})), addFilter (e, r ), e} Function within thisDomainOrCrossposts (e, o) {return addShould (e, {term: {[`Crosspost $ {osubsiteSlug || oslug}`]:! 0}}), addShould (e, {Prefix: {canonicalUrl : `http: // $ {oHost}`}}), addMinimumShould (e, 1), e} Function moreLikeThis (e, o, t) {let r = {fields: [“Tags”], like: {_ Index: eingex, _type: “_ doc”, _ id: o}, include:! 1, min_term_freq: 1, max_query_terms: 12, min_doc_freq: 1}; return {more_like_this: assign object (r, t)}} function addAggregation (e = {}, o) {const {body: t = {}} = e; return o? (taggs? _set (e, “bodyaggs”, assign objects (taggs, o)): _ set (e, “bodyaggs”, o), e): e} function formatAggregationResults ({aggregationName: e = “”, field: o = “”, subfield: t = “”, skipEmpty: r =! 0}) {return function (s = {}) {let i = _get (s, `Aggregations $ {e} $ {t?” “t” “:” “} Buckets`, []); Return r&& (i = iFilter (e => 0! == _ get (e, “doc_count”, 0))), imap (e => e [o] || “”)}} function addGeo (e, o ) {if (! _ isArray (o)) throws a new error (“The second argument must be an array”); if (2! == oLength) trigger a new error (“Array must be length 2”); if (oEinige (isNaN)) throw a new error (“Array may only contain numbers”); return _set (e, “body zurückAbfragegeo_shapeStandortgestaltenTyp”, “Punkt”), _ set (e, “KörperAbfragegeo_shapeStandortgestaltenKoordinaten”, o), e} function combinFunctionScoreQueries (e, o) {let t = _cloneDeep (_get (e, “bodyAbfrage”, “bodyAbfrage” {})), r = _cloneDeep (_get (o, “bodyAbfrage”, {})), s = _get (e, “bodysort”); return _set (e, “bodyAbfrage”, {}), _ set (e, “bodyAbfragefunction_scoreFätze”, []), eBodyAbfragefunction_scoreFunctionspush ({filter: t, weight: 20}), eBodyAbfragefunction_scoreFunctionspush ({filter: r, weight: 10} ), eBodyAbfragefunction_scorescore_mode = “max”, eBodyAbfragefunction_scoremin_score = 10, _isArray (s) || _set (e, “bodysort”, s = []), sDo not move ({_ score: “desc”}), e} function addNestedObjQuery (e, o, t) {if (! e) triggers a new error ( “There is no base query to perform the addNestedObjQuery operation”); if (! o) throw new error (“There is no nested object path on which the nested query can be executed”); if (! t) throw new error (“There is no nested query path on which the nested query can be executed”); return _set (e, “nested”, {path: o, query: t}), e} function addMatchAll (e) {return _set (e, “bodyAbfrage”, {match_all: {}}), e} module exported = newQuery , ModulExporteaddGeo = addGeo, ModulExporteaddAggregation = addAggregation, ModulExporteaddShould = addShould, ModulExporteaddFilter = addFilter, ModulExporteaddMust = addMust, ModulExporteaddMustNot = addMustNot, ModulExporteaddMinimumShould = addMinimumShould, ModulExporteaddSort = addSort, ModulExporteaddSize = addSize, ModulExporteaddFrom = addFrom, module exports only with These Fields = only with synthesis fields, module exports only within this Site = only within this site, module exports only within this domain = onlyWithinThisDomain, ModulExportwithin ThisSiteAndCrossposts = within ThisSiteAndCrossposts, ModulExportwithin ThisDomainOrCrossposts = within ThisDomainOrCrossposts, ModulExporteformatAggregationResults = formatformatAggregationResults, ModulExporte eThis = moreLikeThis, ModulExportecombinFunctionScoreQueries = combinFunctionScoreQueries, ModulExporteaddNestedObjQuery = addNestedObjQuery, ModulExporteaddMatchAll = addMatchAll;
}, {23: 23, 50: 50, 61: 61, 88: 88, 90: 90, 107: 107, 150: 150}];
Window modules [“1360”] = [function (required, module, export) {(function (process, __ file name) {(function () {
“use strict”; const _forEach = require (41), _ get = require (23), _ filter = require (134), _ map = require (50), _ isEmpty = require (87), urlParse = require (51), log = require (22) setup ({file: __ filename}), queryService = require (1359), universalRest = require (10), AGORA_HOST = windowProzessenvAGORA_HOST, AGORA_ELASTIC_PREFIX = WindowProzessenvAGORA_ELASTIC_PREFIX, AGORA_ENDPOINT =? AGORA_HOSTOINT =? `$ {AGORA_HOST} / api / v1`: null, requestHeader = {” Content Type “:” application / json “}, PRODUCTS_INDEX =” agora-products “, AFFILIATES_INDEX =” = “Retailer”, FILTER_KEY = {Dealer: “Name “, Partner:” Partner “}, URL_RE = / ^ https?: / / * $ /; Function getProducts (e, t) {const {limit: r = 100, start: a = 0, search: s = “”, sortDate: c = “desc”} = e, n = `$ {AGORA_ENDPOINT} / products? limit = $ {r} &start = $ {a} &search = $ {encodeURIComponent (s)} &sortDate = $ {c } `; return fetch (n) then (handleResponse) then (e => t? filterByLocale (e, t): e) then (e => ({total: eLength, products: e})) catch (handleError (n ))} Function getProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`; if (! AGORA_ENDPOINT) triggers a new error (“No Agora endpoint was set”)) ; if (“string”! = typeof e) throw new Error (“Request must specify a product ID”); return fetch (r) then (handleResponse) then (e => t? filterByLocale (e, t): e ) catch (handleError (r))} function postProduct (e) {const t = `$ {AGORA_ENDPOINT} / products`, r = {method:” POST “, header: requestHeader, body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function putProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`, a = {method: ” PUT “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function patchProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`, a = {method: ” PATCH “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function deleteProduct (e) {const t = `$ {AGORA_ENDPOINT} / products / $ {e}`; return fetch (t, {method: “DELETE”, header: requestHeader}) then (handleResponse) catch (handleError (t))} function getMerchantList (e) {const {limit: t = 100, fields: r = “”} = e; Return promise resolve ([{name: “Amazon”}]) catch (handleError (“”))} function getMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`; if (“string”! = typeof e) triggers a new error (“Request must provide a product ID”); return fetch (t) then (handleResponse) catch (handleError (t))} function patchMerchant (e, t) {const r = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`, a = {method: “PATCH” , Header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function postMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants`, r = {method:” POST “, header: requestHeader, Body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function putMerchant (e, t) {const r = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`, a = {method: ” PUT “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function deleteMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`; return fetch (t, {method: “DELETE”, header: requestHeader}) then (handleResponse) catch (handleError (t))} function postLocale (e) {const t = `$ {AGORA_ENDPOINT} / locales /`, r = {Method: “POST”, header: requestHeader, body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function patchLocale (e, t) {const r = `$ {AGORA_ENDPOINT} / locales / $ {e}`, a = {method: ” PATCH “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function handleResponse (e) {try {return ejson () then (t => {if (estatus> = 400) {const e = _get ( t, “messageDetails [0] message”); throw a new error (e)} return t})} catch (e) {throw a new error (emessage)}} function handleError (e) {return t => {throw log (“warn”, `Failed request to $ {e}`, t), new error (`Request to $ {e} failed`)}} Function buildProductsQuery ({search: e =” “, limit: t = 100 , start: r = 0, sortDate: a = “”, filter: s, locale: c}) {const n = queryService (PRODUCTS_INDEX), o = s&&Object key length? ObjectKeyFilter (e => ArrayisArray (s [e]) &&s [e] length): [], i = {}, u = {}; if (prependElasticPrefix (n), e || oLength || c || queryServiceaddMatchAll (n), c&& (queryServiceaddMust (i, {match: {“localesCountry”: c}}), queryServiceaddMustema (.dealerGranch: {“DealerCountry: {” DealerCountry) “: c}})), e) if (isURL (e)) queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({},” Händler “, {match: {” HändlerbuyUrl “: e}})]); else {const t = {}; queryServiceaddShould (t, [{match: {“localesproductId”: e}}, {match: {“locale name”: {query: e, boost: 2}}}]), queryServiceaddMinimumShould (t, 1), queryServiceaddMust (i, _get (t, “body) query”))} if (oLength) {const e = {}; oforEach (t => {const r = s [t], a = FILTER_KEY [t], c = {}; a&& (c [`dealer) $ {a}`] = r, queryServiceaddShould (e, {terms: c }))}), queryServiceaddMinimumShould (e, 1), queryServiceaddMust (u, _get (e, “body) query”))} return _isEmpty (i) || queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({}, “locales”, _ get (i, “bodyAbfrage”))]), _ isEmpty (u) || queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({}, “Dealer”, _ get (u, “bodyAbfrage”))]), queryServiceaddSize (n, t), r> = 0&&queryServiceadd=From (n, r), “desc” a || “asc” === a? queryServiceaddSort (n, {updatedAt: {order: a}}): e&&queryServiceaddSort (n, {_ score: {order: “desc”}}), n} function prependElasticPrefix (e) {return eingex = AGORA_ELASTIC_PREFIX? `$ {AGORA_ELASTIC_PREFIX} _ $ {eingex}`: eingex, e} Function buildMerchantsAggregation (e = 1e6, t) {const r = queryService (PRODUCTS_INDEX); return prependElasticPrefix (r), queryServiceaddMust (r, {match: {active:! 0}}), t&&queryServiceaddMust (r, queryServiceaddNestedObjQuery ({}, “Dealer”, _ get ({matchServiceaddMust ({} “, : t}}), “bodyAbfrage”))), queryServiceaddAggregation (r, {dealer: {nested: {path: “dealer”}, aggs: {name: {terms: {field: “dealer name”, size: e} }}}}), queryServiceaddSize (r, 0), r} function isURL (e) {URL_RE returned test (e)} function filterByLocale (e, t, r = {locales: “US”}) {const a = ArrayisArray ( e); if (_isEmpty (e)) returns a? []: {}; const s = [“locales”, “dealers”], c = a? e: [e], n = ObjectKey (r), o = _map (c, e => {const a = assign object ({}, e); _forEach (s, s => {if (ObjectKey (a) contains ( s)) {const c = t? _filter (e [s], [“Locale”, t]): e [s]; a [s] = c,! clength&&ncontains (s) && (a [s] = ( _ Filter (e [s], [“Locale”, r [s]]) || []) map (e => (eid = null, eLocalschema = t, e)))}}), aname = _get ( a, “locales [0] name”, “”), a}); return a&&oLength? o: _get (o, “[0]”, {})} function searchByQueryWithRawResults (e, t) {const r = `// $ {tpage? ˅Host} $ {80! == tpage? port? `: $ {tpage? ˅port} `:” “} $ {tpage? ˅path} / _ agora / _search`; return universalRestpost (r, e,! 0)} function buildMerchantsByUrlQuery (e) {const t = queryService (PRODUCTS_INDEX); return prependElasticPrefix (t), queryServiceaddNestedObjQuery (tBodyAbfrage, “Händler”, {match: {“HändlerbuyUrl”: e}}), t} function getAffiliatesByLocale (e, t) {const r = queryService (AFFILIATES_INDEX); return prependElasticPrefix (r), queryServiceaddMust (r, {match: {locale: e}}), queryServiceaddSize (r, 1e3), queryServiceaddSort (r, {name: “asc”}), searchByQueryWithRawResults (r, t) then (e => _ get (e, “TreffenTreffer”, []) map (e => _ get (e, “_ source”, {})))} function getRetailersByAffiliateId (e, t) {const r = queryService (RETAILERS_INDEX) ; return e? (prependElasticPrefix (r), queryServiceaddMust (r, [queryServiceaddNestedObjQuery ({}, “AffiliateRetailers”, {match: {“AffiliateRetailers” Affiliate-ID “: e}})]), queryServiceaddSize (r, 1e3), querySortdServic {name: “asc”}), searchByQueryWithRawResults (r, t) then (e => _ get (e, “HitTreffer”, []) map (e => _ get (e, “_ source”, {}) ))): PromiseReject ()} function getMerchantsList (e) {return searchByQueryWithRawResults (buildMerchantsAggregation (1e6, _get (e, “site) agoraLocale”)), e) then (queryServiceformatAggregationResults ({aggregation name: “trader”, field Key “, subfield:” name “}))} function queryRetailersByUrl (e, t) {const r = urlParse (e) host split (” www “) join (” “), a = queryService (RETAILERS_INDEX); return queryServiceaddMust (a , {match: {Domains: r}}), prependElasticPrefix (a), queryServiceaddSize (a, 10), searchByQueryWithRawResults (a, t) then (e => _ get (e, “HitTreffer”, []) map (e => _ get (e, “_ source”, {}))}} require (208), moduleExpor te = {buildProductsQuery: buildProductsQuery, buildMerchantsAggregation: buildMerchantsAggregation, getProducts: getProducts, getProduct: getProduct, postProduct: postProduct, putProduct: putProduct, patchProduct: putProduct, getProduct, patchProductist, getMerProduct, getMerProduct, getMerProduct, getMerProduct, getMerProduct: getMerProduct, getMerProduct: , putMerchant: putMerchant, deleteMerchant: deleteMerchant, isURL: isURL, filterByLocale: filterByLocale, patch locale: patch locale, post locale: post locale, buildMerchantsByUrlQuery: buildMerchantsByUrlQuery, getAffiliatesByLocale: getAffiliatesByLocale, searchByQueryWithRawResults: searchByQueryWithRawResults, getRetailersByAffiliateId: getRetailersByAffiliateId, getMerchantsList: getMerchantsList, queryRetailersByUrl: queryRetailersByUrl};

}) call (this)}) call (this requires (11), “/ services / universal / agorajs)}, {10: 10, 11: 11, 22: 22, 23: 23, 41: 41, 50: 50 , 51: 51, 87: 87, 134: 134, 208: 208, 1359: 1359}];
Window modules [“1361”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ mapValues ​​= require (203), _ reduce = require (91), _ assign = require (138), _get = require (23), _ pickBy = require (139), _ find = require (42), AffiliateFields = [“siteShortKey”, “pageUri”, “productId”, “utmMedium”, “utmSource”, “format”, “utmCampaign”, “referrer”, “deviceAbbreviation”, “zone”] , AffiliateSettings = {amazon: {Domains: [“amazoncom”, “amazoncouk”], subtagKey: “ascsubtag”, maxLength: 99, separator: “standard”, encode:! 1}, narrative: {Domains: [“shop-linksco /”], subtagKey: “u1”, maxLength: 99, separator: “standard”, encode:! 0}, rakuten: {Domains: [“clickLinksynergiecom / deeplink”, “linksynergyWalmartcom / deeplink”], subtagKey: “u1”, maxLength: 72, separator: “standard”, encode:! 1}, shareasale: {Domains: [“shareasalecom”], subtagKey: “afftrack”, maxLength: 99, separator: “standard”, encode:! 1}, Skimlinks: {Domains: [“goUmleitungcom”], subtagKey: “xcust”, maxLength: 50, separator: “old”, encode:! 1}, effect: {Domains: [], subtagKey: “subId2”, maxLength: 99, separator: “standard”, encode:! 1}, Avantlink: {Domains: [“Avantlinkcom”], subtagKey: “ctc”, maxLength: 64, separator: “old”, code:! 1}, cj: {Domains: [“tkqlhcecom”, “jdoqocycom”, “dpbolvwnet”, “anrdoezrsnet”, “kqzyfjcom”], subtagKey: “sid”, maxLength: 64, separator: “old”, code:! 1, joinBy: “/”, assignBy: “/”, positioned:! 0, position: “after”, positionKey: “type / dlg /”}, in partnership: {Domains: [“prfhn”], subtagKey: “pubref”, maxLength: 100, separator: “old”, encode:! 1, joinBy: “/”, assignBy: “:”, positioned:! 0, position: “before”, positionKey: “target”}, Pepperjam: {Domains: [“gopjncom”, “pntraccom”, “pjtracom”, “pjatrcom”, “pntrscom”, “pntracom”], subtagKey: “sid “, maxLength: 100, separator:” old “, encode:! 1}, awin: {Domains: [“awin1com”], subtagKey: “pref1”, maxLength: 100, separator: “old”, encode:! 1, positioned:! 0, position: “before”, positionKey: “ued”}}, subtagDictionary = {siteShortKey: “”, pageUri: “p”, productId: “i”, zone: “z”, deviceAbbreviation: “d”, utmSource: “s”, utmMedium: “m”, utmCampaign: “c”, referrer: “r”, format: “t”}, separator = {standard: [“[“, “]”], old: [“__” , “_”]}; Function parseValueFromSubtag (e, t, i) {const a = t [0] et [1], s = isplit (a) [1] || “”; return s? ssplit (t [0]) [0]: null} Function parseSubtag (e, t = LimiterStandard) {return _pickBy (_mapValues ​​(subtagDictionary, i => parseValueFromSubtag (i, t, e)))} Function generateSubtag (e , t, i = LimiterStandard, a =! 1) {const s = (e => t => `$ {e [0]} $ {t} $ {e [1]}`) (i); let n = _reduce (AffiliateFields, (t, i) => {const a = s (subtagDictionary [i]), n = e [i]; return t (n? an: “”)}, “”); return a&& (n = encodeURIComponent (n)), n} function applySubtagMaxlength (e, t) {var i = t-3 * (eDivided (“,”) length-1 esplit (“|”) length-1); Returns esubstr (0, i)} function getSubtagData ({getters: e, fields: t = [], visitState: i, locals: a, productLink: s}) {let n = {}; return tforEach (t => {n [t] = e [t] &&e [t] ({visitState: i, local: a, productLink: s})}), n} function parseQuery (e = “”) {return esplit (“&”) reduce ((e, t) => {const i = tsplit (“=”) [0], a = tsplit (“=”) [1]; return void 0! == a&& (e [i] = a), e}, {})} function processSubtagPosition ({url: e, positionKey: t, subtagKey: i, position: a = “after”, subtagString: s, joinBy: n, assignBy: o} = {}) {const [r, l] = esplit (t), u = `$ {i} $ {o} $ {s}`, g = []; if (“after” === a) {if (! l) return e; const [a, s = “”] = lsplit (`$ {i} $ {o}`), d = ssplit (n) slice (1) join (n); gpush (`$ {r} $ {t}`, u), a&&gPress (a), d&&gpush (d)} if (“before” === a) {const [e, a = “”] = rsplit ( `$ {i} $ {o}`), s = asplit (n) slice (1) join (n); gPress (e), s&&g press (s), gpush (u, `$ {t} $ {l}`)} return greduce ((e, t) => {return eSlice (-1) === n&& (e = eScheibe (0, -1)), eLength? [e, t] join (n): t}, “”)} Function processSubtag ({getters: e, Affiliate: t, URL: i, visitState: a = { }, Locals: s}) {const n = AffiliateFields, o = _get (AffiliateSettings [t], “subtagKey”), r = _get (AffiliateSettings [t], “maxLength”), l = _get (AffiliateSettings [t], “encode”), u = _get (AffiliateSettings [t], “separator”), g = _get (AffiliateSettings [t], “positioned”,! 1), d = _get (AffiliateSettings [t], “position”), c = _get (AffiliateSettings [t], “PositionKey”), p = _get (AffiliateSettings [t], “assignBy”, “=”), m = _get (AffiliateSettings [t], “joinBy”, “&”), f = delimiter [u]; let b, y, S = iindexOf (“?”)> = 0? iTeils (“?”) pop (): “”, h = parseQuery (S), _ = getSubtagData ({getter: e, fields: n, visitState: a, local: s, productLink: i}); return o&& (y = h [o] || “”, y = applySubtagMaxlength (b = generateSubtag (_ = _ assign (parseSubtag (y, f), _ pickBy (_)), t, f, l), r) , h [o] = y, S = _map (h, (e, t) => `$ {t} = $ {e}`) join (“&”), i = g? processSubtagPosition ({url: i , positionKey: c, subtagKey: o, position: d, subtagString: y, joinBy: m, assignBy: p}): isplit (“?”) [0] `? $ {S}`), i} function getAffiliate ( e) {const t = ObjectKey (AffiliateSettings); Return _find (t, t => _ find (AffiliateSettings [t]) domains, t => eincludes (ttoLowerCase ()))) || “”} Function createSubtagProcessor (e) {return ({url: t, visitState: i, locals: a, affiliate: s}) => (s = getAffiliate (t) || s)? processSubtag ({getters: e, url: t, Affiliate: s, visitState: i, Locals: a}): “”} ModulExportegenerateSubtag = generateSubtag, ModulExportegetAffiliate = getAffiliate, ModulExportecreateSubtagProcessor = createSubtagProcessor, ModulExporteproubtag = processSubtag;
}, {23: 23, 42: 42, 50: 50, 91: 91, 138: 138, 139: 139, 203: 203}];
FensterModule [“Artikel-Naviclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ throttle = required (37), $ visibility = required (4), $ popup = required (53), $ gtm = require (1), {reportSocial: reportSocial} = require (52) , auth0 = require (12); module exported = (t => {let e = domfind (“page header”), i = domfind (“article content”), o = domfind (t, “deepscroll-headline”), r = domfind (t, “deepscroll-rubric” ), l = domfind (t, “deepscroll-rubric-sponsored”), s = domfind (“article article header rubric”), n = domfind (“# deepscroll_center_divider”), a = domfind (“tone paragraph”) , d = domfind (t, “Logo”), c = domfind (t, “Dyn-Cut-Logo”), p = domfind (t, “article-nav-top”), u = domfind (t, “article -nav-deepscroll “), m = domfind (‘link [rel =” canonical “]’), f = m&&mgetAttribute (” href “), g = domfind (‘meta [property =” og: image “]’)? domfind (‘meta [property = “og: image”]’) getAttribute (“content”): “”, h = domfind (‘meta [property = “og: title”]’)? domfind (‘meta [property = “og: title”] ‘) getAttribute (“content”): “”, y = domfind (t, “Share a link Facebook”), w = domfind (t, “Share a link twitter”), v = domfind (t, “Share a link pinterest”), b = tclassListenthalt (“header-simple”), x = windowgetComputedStyle (d, null) getPropertyValue (“- targetFlexBasis”), L = window getComputedStyle (d, null) getPropertyValue (“- verticalStart”) || 0, C = window getComputedStyle (d, null) getPropertyValue (“- verticalEnd”) || 0, $ =! 1, _ = 55; Function k () {_ = parseInt (window getComputedStyle (d, null) getPropertyValue (“- stickyTop”)) || _, C = $ visibility getViewportWidth ()> = 1180? -FenstergetComputedStyle (d, null) getPropertyValue (“- verticalEndDesktop”) || C: window getComputedStyle (d, null) getPropertyValue (“- verticalEnd”) || C} function S () {$ =! 1, P ()} Function P () {let {top: o} = tgetBoundingClientRect (), r = window getComputedStyle (d, null) getPropertyValue (“- baseFlexBasis”), l = rx, s = (_- egetBoundingClientRect () above) / _, n = Mathmax (0, Mathmin (1, s)), m = LC-2, f = Mathrund (L- (m * n 2)), g = MathCeil (rl * n); if (st? eclassListadd (“Header-after-Scroll”): eclassListentfernen (“Header-After-Scroll”), pStiltop = C “px”, uStiloben = C “px”, void (dStilflexBasis = x “px”)} WindowScrollY> o? TclassListadd (“after-scroll”): tclassListEntfernen (“After-Scroll”), WindowScrollY> o? EclassListadd (“Header-after-Scroll”): Remove eclassList (“Header-After-Scroll”), pStiltop = f “px”, uStiltop = f “px”, dStilflexBasis = g “px”, c&& (cStilflexBasis = g “px”), $ VisibilitygetViewportWidth ()> = 1180&&i&&i&CHAR&i& =) -70: 0, e = $ Visibility getPageOffset (i) above, o = Mathemax (e, t); return Mathmax (WindowScrollY, DocumentBodyScrollTop)> = o} ()? TclassListadd (“deep-scroll”): tclassListremove (“deep -scroll “)} Function V (t) {var e = tcurrentTarget, i = egetAttribute (” href “), o = egetAttribute (” data handle “), r = $ popupgetPopupClass (eclassList), l = $ visibilityisBelowPrimaryConten t (e)? “bottom”: “top”; $ gtmreportNow ({Event: “Social-Share-Widget”, clickLocation: l, socialNetwork: r}), reportSocial (r), $ VisibilitygetViewportWidth ()> = 768&&r&& (tverhindereDefault, o, iow) (rhindereDefault (), $ popupp) )}! function () {const e = _throttle (P, 30); if (k (), domfindAll (t, “Share a link”) forEach (t => taddEventListener (“click”, V)), y&& (yhref = “http: // wwwFacebookcom / sharer / sharerphp? u =” f “? utm_source = fb&utm_medium = s3&utm_campaign = sharebutton-t”), w&& (whref = “https: // twittercom / share? text =” encodeURIComponent (h) “encodeURIComponent (h)” &CHARVIA_CutCutCutCutCutCampECH = utM_campECHAR = “f” = “wgetAttribute (” Datenhandle “)), v&& (vhref =” http: // pinterestcom / pin / create / button /? url = “f”? utm_source = pin&utm_medium = s3&utm_campaign = sharebutton-tCampaign = sharebutton-tCSSONENTCHUR) ” &media = “g), b) return; auth0on (“init”, () => {auth0isSubscriber () &&tclassList add window (“subscribed”)}) addEventListener (“scroll”, e), window addEventListener (“resize”, S), window addEventListener (“resize”, k) s? sclassListenthalt (“Rubric-Sponsor-History”) &&l? (rclassListentenen (“visible”), lclassListadd (“visible”), ltextContent = sText || stextContent) 🙁 rtextContent = sText || stextContent, rhref = shref || “#”) 🙁 nStildisplay = “none”, rStildisplay = “none”); S (), otextContent = h} ()});
}, {“1”: 1, “3”: 3, “4”: 4, “12”: 12, “37”: 37, “52”: 52, “53”: 53}];
FensterModule [“Navi-Such-Buttonclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), $ gtm = require (1), {reportSearch: reportSearch} = require (52), openClass = “open”, closeClass = “closed”; Module exported = (e => {const s = e, t = domfind (e, “nav-search-button-trigger”), n = domfind (e, “nav-search-form”), o = domfind (e, “Sucheingabe “); Funktion i () {const e = domfind (“body”); sclassListumschalten (closeClass), sclassListumschalten (openClass), eclassListumschalten (“deaktiviert”), eclassListumschalten (“suchaktiv”)} Funktion c () {i (), sclassListenthält (openClass) &&ofocus ()} Funktion a (e) {! senthält (eZiel) &&sclassListenthält (openClass) &&i ()} Funktion r (e) {27 === ekeyCode&&sclassListenthält (openClass) &&i ()} Funktion d (e) {everhindereDefault (), $ gtmreportCustomEvent ({category: “search”, label: “on =” windowStandorthref, Aktion: oWert}), reportSearch ((oWert || “”)split (“”), () = > nsubmit ())}! function (e, s, t) {s&&saddEventListener (“click”, c); t&&taddEventListener (“submit”, d); eaddEventListener (“clic k”, a), DokumentaddEventListener (“keydown”, r), eaddEventListener (“touchend”, a), naddEventListener (“submit”, d)} (domfind (“body”), t, domfind (e, “nav-search-form submit “))});
}, {“1”: 1, “3”: 3, “52”: 52}];
FensterModule [“Navi-Dropdown-Tasteclient “] = [Funktion (erforderlich, Modul, Export) {” use strict “; const dom = erforderlich (3), Sichtbarkeit = erforderlich (4), {reportSearch: reportSearch} = erforderlich (52); Funktion getNextSchildren (e) {const t = []; sei i = e; für (; i = inextElementSibling;) tpush (i); return t} Funktion getMainChildren (e, t) {let i = [], n = efirstChild; for (; n = nnextElementSibling;) nenthält (t)? nisSameNode (t) || (i = iconcat (getMainChildren (n, t))): ipush (n); return i} Funktion isMobile () {return sichtbarkeitgetViewportWidth () {let t; const i = equerySelector (“nav-dropdown-button-trigger “), n = domfind (“body”), o = domfinden(“oben “), l = domfinden(“Konfetti-Liste “), s = domfinden(“nav-dropdown-button_nymag-homepage “), r = domfind (“headerSeitenkopf “) || o, c = domfind (‘[data-editable = “main”]’), a = domam nächsten (e, “Seitenkopf “), d = a? aquerySelectorAll (“Konfetti-Bildblau “):” “, g = a? aquerySelectorAll (“Konfetti-Bildgrün “):” “, u = a? aquerySelectorAll (“Konfetti-Bildorange “):” “, f = a? aquerySelectorAll (“Konfetti-Bildorange2 “):” “, m = a? aquerySelectorAll (“Konfetti-Bildpink “):” “, p = a? aquerySelectorAll (“Konfetti-Bildlila “):” “, h = a? aquerySelectorAll (“Konfetti-Bildgelb “):” “, y = equerySelectorAll (“dropdown-nav-search-form “); Funktion b (e) {let t = ecurrentTarget, i = tquerySelector (“nav-search-input “), n = i? iWertsplit (“”): []; everhindereDefault (), reportSearch (n, () => tsubmit ())} iaddEventListener (“click”, () => {initializeHeight (e), v ()}); for (sei e = 0, t = yLänge; e (Funktion (e) {eclassListentfernen (“c-rechts”, “c-rechts unten”, “c-links”, “c-links unten”)}) (e))}, 500)} ()) 🙁 isetAttribute (“aria-expandiert”, “true”), t = windowscrollY), eclassListumschalten (“geschlossen”), eclassListumschalten (“öffnen”), n toggle classList toggle (“deactivated”), a&&eisSameNode (s)? function () {if (ocontains (e)) {const e = getMainChildren (o, s); S (e), w (o)} if (centhalt (e)) {const e = getMainChildren (c, s); Switching oclassList (“hidden component”), w (c), S (e)} Switching eclassList (“open-mobile”)} (): a&&! y&&r&& (w (r), function () {const i = eclassListenthalt (“open”)? 0: t; Window ScrollTo ({top: i})} ())} Function w (e) {S (getNextS Siblings (e ))} Function S (e) {eforEach (e => {eclassListumschalt (“hidden component”)})} naddEventListener (“click”, t => {! Econtains (tTarget) &&eclassListcontains (“open”) &&v ()} ), Document addEventListener (“keydown”, t => {27 === tkeyCode&&eclassListener (“open”) &&v ()})});
}, {“3”: 3, “4”: 4, “52”: 52}];
FensterModule [“follow client”] = [function (required, module, export) {“use strict”; const _find = require (42), $ popup = require (53); DScontroller (“follow”, [function () {function e (e) {thisel = e, dashandle = egetAttribute (“Datenhandle”)} return eprototype = {events: {click: “openFollow”}, openFollow: function (e) {var t, n, a = $ popupPosition, o = $ PopupParameter, l = {}, r = {w: 780, h: 500}, s = new a (rw, rh), c = dieselclassList; lhandle = thisGriff , rlinks = slinks, rtop = stop, n = _find ([{className: “facebook”, url: “https: // facebookcom / {handle}”, network: “Facebook”}, {className: “pinterest”, url : “http: // wwwpinterestcom / {handle}”, network: “Pinterest”}, {className: “instagram”, URL: “https: // wwwinstagramcom / {handle}”, network: “Instagram”}, {className : “rss”, URL: “http: // feedsFeedburnercom / {handle}”, network: “RSS”}, {class name: “Twitter”, URL: “https: // Twittercom / intent / follow? screen_name = {handle } &tw_p = followbutton&variant = 20 “, network:” Twitter “}, {class name:” Snapchat “, URL:” https: // wwwSnapchatcom / remove / {handle} “, Network: “Snapchat”}], function (s) {return centcontains (eclass name)}), lurl = nURLersetzen (“{handle}”, lGriff), lNetzwerk = nNetzwerk, lname = “Follow” lGriff “to” lNetzwerk, t = new o (l, r), window open (tAddress, tName, tFeature), ePreventDefault ()}}, e}]);
}, {“42”: 42, “53”: 53}];
FensterModule [“Comment-Linkclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), _ get = require (23), _ isFinite = require (110), ajax = require (109); DScontroller (“comments link”, [function () {var t, e = “http: //” document documentElementgetAttribute (“data-uri”) “html”; function n (n) {var o; (thisel = n, dascoral_talk_root = ngetAttribute (“data-coral-talk”), diescommentCount = domfind (n, “comment link number”), diescommentText = domfind (n, “comments link text”), diesisNavVariation = nclassListenthalt (“comment- link_article-nav “), diescutoffCnt = ngetAttribute (” data-cutoffCnt “) || 1e3, t =` $ {thiscoral_talk_root} / api / v1 / graph / ql`, diesshouldRenderCommentStream ()) && (o = thisonetchedCommentConnect AjaxsendReceiveJson ({method: “GET”, URL: t ‘? Query = {Asset (URL: “‘ e ‘”) {totalCommentCount}}’, data type: “json”}, function (t, e) {var n = _get (e, “DatenAnlageguttotalCommentCount”, 0); return t? o (t): _ isFinite (n)? void o (null, n): o (“Unexpected Coral Talk response”)})}} return nPrototyponCommentCountFetched = Function (t, e) {if (t) return console warning (t); e> 0CS SEANDCHAR& (thisisNavVariation&&e1? “s”: “”), thiselclassListremove (“no comments”))}, nPrototypeshouldRenderCommentStream = function () {return-1! == eingexOf (“@published”)}, n}]);
}, {3: 3, 23: 23, 109: 109, 110: 110}];
WindowModule [“head-gtmclient”] = [Function (required, module, export) {“use strict”; const {getCLS: getCLS, getFID: getFID, getLCP: getLCP} = require (142), isProduction = require (9) (); function reportWebVitals (e) {isProduction || Console log (“reportWebVitals:% O”, e); const t = “string” == typeof eName? eNametoUpperCase (): eName; Window DataLayer = Window DataLayer || [], FensterdataLayerpush ({event: “analysisEvent”, event_action: t, event_category: “Web Vitals”, event_label: eid, event_value: eDelta, eventAction: t, eventCategory: “Web Vitals”, eventLabel: eid, eventNonInt:! 0 , eventValue: edelta, nonInteraction:! 0, transport: “beacon”})} getCLS (e => {eDelta = Mathrund (1e3 * eDelta), reportWebVitals (e)}), getFID (e => {eDelta = Mathrund ( eDelta), reportWebVitals (e)}), getLCP (e => {eDelta = Mathrund (eDelta), reportWebVitals (e)});
}, {“9”: 9, “142”: 142}];
WindowModule [“Concert Advertising Client”] = [Function (required, module, export) {“use strict”; const customMappings = {“Crime-Assault”: “Power”, “Career-Money-Productivity”: “Power”, “Feminism-Politics-Identity”: “Power”, “Culture Media”: “Culture”, Celebrity: “Culture.” “, Living:” style “, fashion:” style “, shopping:” style “, weddings:” style “, beauty:” style “, animals:” self “,” learning creativity “:” self “,” relationships- Friends family “:” self “,” mental health personality social behavior “:” self “,” learning creativity “:” self “,” health-wellness “:” self “, parenting:” self “,” relationships-sex- Dating marriage “:” Self “}, striptags = require (54); Function installConcertAds () {const e = new URLSearchParams (window location search) get (“konzert_config_url”), t = e || window concertConfigUrl; Window_nymPermutive || Console warning (“ConcertAds is initialized without Permutive”), Window ConcertAds = createConcertAds (), Window ConcertAdsloadRemoteConfig (t) then (function () {windowkonzertAdsinstall ()})} Function createConcertAds () {const e = getAuthStatus (); let t = getData (“title”), n = windowStandorthref, i = getData (“section”), o = “”, a = getData (“type”), r = getData (“vertical”); t&& (t = Striptags (htmlDecode (t))) split (“”)), n = nSchibe (n Slice) lastIndexOf (“/”) 1); const l = {kw: getKeywords (), network: r, page type: a, entry group: i, keywords: t, pn: n}; Return “Homepage” === a? o = “homepage”: “Section Page” === a&& (o = (o = windowLocationPathname) Replace (/ // g, “”)), i&&-1 === iindexOf (“”) && (o = i), customMappings [i] && (o = customMappings [i]), window location hostname game (/ aws / i) && (lClay_sandbox_env = r), new windowConcertAds ({cmd: [: lf. Slots: []) , slugPath: “/” oreplace (/ – | – / g, “-“), logged in: “not authenticated”! == e, paywallActive: getPaywallStatus (e)})} function getKeywords () {try {const e = window_nymPermutiveArticleKeywords; Return of e&&eLength> 0&&e some (Boolean)? e: (DocumentquerySelector (‘meta [name = “keywords”]’) || documentquerySelector (‘meta [property = “article: tag”]’)) getAttribute (“content”) splits (“,”) map (function ( e) {return etrim ()})} catch (e) {return}} function getData (e) {if (window_nymPermutive) {if (e in window_nymPermutive) return window_nymPermutive [e]; if (window_nymPermutivearticle&&e im Fenster_nymPermutiveArtikel) return window_nymPermutiveArtikel [e]; if (window_nymPermutiveuser&&e in window_nymPermutiveUser) return window_nymPermutiveUser [e]}} Function htmlDecode (e) {var t = document createElement (“div”); return tinnerHTML = e, 0 === tchildNodesLength? “”: tchildNodes [0] nodeValue} function getAuthStatus () {const e = JSONparse (localStoragegetItem (“auth0: profile”)), t = e? e [“http: // nymagcom / app_metadata”]: null; return t? thas_subscription? “with the title”: “unentitled”: “not authenticated”} function getPaywallStatus (e) {const t = getData (“totalCount”) || 0; return Boolean (t> = 3&& “with the title”! == e)} WindowConcertAds? InstallConcertAds (): Window addEventListener (“konzertAdsReady”, installConcertAds);
}, {“54”: 54}];
FensterModule [“curated feed client”] = [function (required, module, export) {“use strict”; const dom = require (3), lazyLoad = require (96); Function lazyLoadImage (e) {const o = domfind (e, “img [data-src]”), t = domfindAll (e, “source [data-srcset]”), a = domam next (e, “feed-item “); if (o&&a) {new lazyLoadLazyLoader (a, o, t) init ()}} function handleLazyLoad (e) {(domfindAll (e, “Feed-Item”) || []) forEach (lazyLoadImage)} ModulExporte = (e => {const o = equerySelectorAll (“button show-more”); function t (e) {const {currentTarget: o} = e; if (o) {const e = oparentElementparentElement; e&&equerySelector (“content”) toggle classList (“reduced “)}} o&&oforEach (function (e) {eaddEventListener (” click “, t)}), handleLazyLoad (e)});
}, {“3”: 3, “96”: 96}];
WindowModule [“Coral-Talkclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), store = required (116), visibility = required (4), auth0 = required (12), TALK_AUTH = “talk: auth_token”; let coralEmbed, hasEmbedScriptLoaded =! 1, hasCoralTalkRendered =! 1; Function renderComments (e) {if (hasEmbedScriptLoaded&&! HasCoralTalkRendered) {const t = {talk: `$ {eCORAL_TALK_HOST}`, auth_token: getAuthToken (), asset_url: eTALK_ASSET_URL}; hasCoralTalkRendered =! 0, coralEmbed = windowKoralleSichamtichrendern (ecommentStreamContainer, t)}} Function getAuthToken (e) {var t = e&&e [“http: // nymagcom / coral_talk”] || auth0getTalkJwt (), i = save get (TALK_AUTH); return t? i&&t == i? i: (storeset (TALK_AUTH, t), t) 🙁 i&&storeremove (TALK_AUTH), null)} function coralLogin () {coralEmbedlogin (getAuthToken ())} function embeddedScript (e, t) {let i = documentcreateElement (“script” ” ); itype = “text / javascript”, iasync =! 0, isrc = e, iaddEventListener (“load”, () => {hasEmbedScriptLoaded =! 0, renderComments (t)}), documentgetElementsByTagName (“head”) [0] appendChild (i)} function initVerificationMessage () {auth0isAuthenticated ( ) &&auth0refresh (); let e = documentquerySelector (“coral-talk-container”); auth0isAuthenticated () &&! auth0isEmailVerified () && (einsertAdjacentHTML (“beforebegin”, ‘ n n Please check your account to enable commenting. You haven’t received a confirmation email? Please resend the email now n’), DocumentquerySelector (“activation link”) addEventListener (“click”, sendVerificationEmail))} function sendVerificationEmail () {let e = documentquerySelector (“coral-talk-verify-address”); return fetch (`https: // $ {windowStandorthost} / _ user / verification-email? user_id = $ {auth0getUserID ()}`, {method: “GET”, header: {“Content-Type”: “application / json “}}) then (e => e) then (t => {t&&200 == tStatus? einnerHTML =” Confirmation email was sent successfully “: einnerHTML =` $ {tstatusText} `}) catch (e => Console log (e))} Function tryScriptEmbedding (e, t) {initVerificationMessage (), hasEmbedScriptLoaded? renderComments (t): embeddedScript (tEMBED_URL, t)} function addVisibilityListener (e, t) {new VisibilitySichtbar (e, {pretoadThreshold: 750}) on (“Preload”, () => tryScriptEmbedding (e, t))} function removeSignInButton (e) {e&&eparentNode&&domremoveElement (e)} function init (e) {const t = egetAttribute (“data coral talk host”), i = `$ {t} / static / embeddedjs`, n =` http: // $ {documentdocumentElementgetAttribute (“data-uri”)} html`, a = “true” === egetAttribute (“data maintenance”), o = -1! == nindexOf (“@ published”), r = equerySelector (“Korallen-Talk-Container”), s = equerySelector (“coral-talk-btn-signin”), c = {CORAL_TALK_HOST: t, EMBED_URL: i, commentStreamContainer : r, signInButton: s, TALK_ASSET_URL: n} ;! on (“init”, () => {addVisibilityListener (e, c), saddEventListener (“click”, () => auth0showLogin ()), auth0isAuthenticated () &CSSEANDInCHARremove (s)}), auth0on (“login”, t => {removeSignInButton (s), getAuthToken (t), VisibilityisElementInViewport (e) &&attemptScriptEmbedding (c), hasCoralTalkRendered&&on (), logout (), > {storeRemove the module (TALK_AUTH)}))} Exports = Init;
}, {3: 3, 4: 4, 12: 12, 116: 116}];
WindowModule [“Choreographer Client”] = [function (require, module, export) {“use strict”; const cookie = require (40), _ get = require (23), _ omit = require (80), {insertSpeedBumpComponents: insertSpeedBumpComponents} = require (77)), {insertNewsletterSpeedBumpComponents: insertNewsletterSpeedBumpComponents} = require (78), {generateGrowl: generateGrowl} = require (76), gtm = require (1), {getLocalStorage: getLocalStorage, setLocalStorage: setLocalStorage} = require (13), {reportPaywall:} = require (52), moment = require (24), {getClientHistory: getClientHistory, updateClientHistoryWithPageData: updateClientHistoryWithPageData} = require (79), auth0 = require (12), {scenario: scenario} = require (73), cidReadyEvent = “nymcid-set”, cidKey = “nymcid”, isProduction = require (9) (), logger = require (74) Logger (() => getLocalStorage (“show_choreographer_logs”)), {Verdon: Verdon} = require (75), TEST_COHORT_FLAG = “optimizeCohort”; Function displayDebug (e = “”) {if (“Authorization”! == eShare (“#”) pop ()) return; const t = _get (window “dataLayer [0] userDetails”, {}), o = _get (window, “dataLayer [0] pageDetailsfeatureTypes”, “”), n = o contains (“magazine”)? “Magazine”: “”, r = o contains (“Feature”)? “Featured”: “”, i = “Value of the article:” (n || r || “Article”), a = _get (JSONparse (localStoragegetItem (“auth0: profile”)), “http: // nymagcom / app_metadata “), l =” Authentication status: “(a?” authenticated “:” not authenticated “), s =” Authorization status: “(!! a&&ahas_subscription?” with the title “:” unentitled “), c = Object key (_omit (t, “newYorkMediaUserID”)) map (e => `$ {e}: $ {t [e]}`), d = documentBody, g = documentcreateElement (“div”), u = documentcreateElement (“ul”) ; [i, l, s, c] map (e => {const t = documentcreateElement (“li”); return tclassListadd (“debug-item”), tappendChild (document createTextNode (e)), t}) forEach (e = > {uappendChild (e)}), uclassListadd (“data balls”), gclassListadd (“debug choreographer”), gclassListadd (“display-debug-data”), gappendChild (u), dappendChild (g)} function initializeChoreographer (e ) {const t = egetAttribute (“data-site-slug”), o = pageShouldCountAsView (t), n = auth0isSubscriber (); return t? getClientId (cidKey, 8e3) then (e => (Logger) h1 (“Choreographer initialized”), Loggerlog (`clientId: $ {e}`), loggerlog (`Page counts as a view: $ {o}`), Window symViewsResponse || (o? updateClientHistoryWithPageData (e, t): getClientHistory (e))) then (r => {if (Logger) group (), Loggerh2 (“Client History”), LoggerTable (r), LoggergroupEnd (), isNCR ()) return; const {scenarios: i, touts: a, testCohort: l = “”} = readJSONFromScript (equerySelector (“script”)); if (! (l === (documentBodyDatet [TEST_COHORT_FLAG] || “”))) return; const s = iCard (e => Assign scenario (object) ({}, e, {History: r, siteSlug: t, isSubscriber: n}))) Filter (e => (Loggergroup (), Loggerh2 (“Evaluate scenarios “), Loggerlog (e), LoggergroupEnd (), it should show)) reduce ((e, {action: t, min: o, number: n}) => {const r = afind (({value: e}) => e === t); return r? (e [rTyp] = r, e [rArt] viewCount = no, e): e}, {}); Loggergroup (), Loggerh2 (“Active Touts”), LoggerProtokoll (e), LoggergroupEnd (), executeTouts (e, o, s, r)}) catch (console error): console error (“siteSlug not found”)} function documentIncludesComponent ( e) {return documentquerySelector (`[data-uri * =” / $ {e} / “]`)} function pageShouldCountAsView (e) {const t = “strategist” === e, o = [“product”, “product grid “]] find (e => documentIncludesComponent (e)); return t ||! o} Function executeTouts (e, t, o = {}, n) {const {global: r} = n, i = {featureArticleCount: rFeature || 0, magazineArticleCount: rMagazin || 0, standardArticleCount: rArticle || 0, totalArticleCount: rtotal || 0}, a = window concert ads, l = window concert ads; if (o [“Speed-Bump”] && (_get (a, “adsBlocked”,! 0)? InsertSpeedBumpComponents (findTemplate (e, “Speed-Bump”), o [“Speed-Bump”], i): a lifecycle listsAndPlayback (lVeranstaltenenslotsInserted, () => {insertSpeedBumpComponents (findTemplate (e, “Speed-Bump”), o [“Speed-Bump”], i)})), o [“Newsletter-Speed-Bump”] && (_get ( a, “adsBlocked”,! 0)? insertNewsletterSpeedBumpComponents (findTemplate (e, “Newsletter-Speed-Bump”), o [“Newsletter-Speed-Bump”], i): aLebenscyclelistenAndPlayback (lVeranstevenenslotsInserted, () => {insertNewsletterSpeedB ( findTemplate (e, “Newsletter-Speed-Bump”), o [“Newsletter-Speed-Bump”], i)}), o [“Branded-Growl”] &&brandedTakeoverTime (o [“Branded-Growl”]) &&t) Return loggerlog (“should show brand growl”), void growlManager (findTemplate (e, “brand growl”), {baseTrackingData: i, body: o [“brand growl”] brandedGrowlBody, contentClass: “branded-cont ent “, cta: o [” branded-Growl “] brandedGrowlCTA, imageUrl: o [” branded-Growl “] imageUrl, Link: o [” Branded-Growl “] brandedGrowlLink, Name: o [” Branded-Growl “] name , scrollDepth: o [“Brand-Growl”] brandedGrowlScrollDepth, Title: o [“branded-Growl”] brandedGrowlTitle, toutType: “branded Growl”}, “# branded-Growl”); if (t&&o [“content-cliff”]) contentCliff (findTemplate (e, “content-cliff”), o [“content-cliff”], o [“content-cliff”] viewsLeft, n); else {if (t&&o [“Cliff takeover”]) return / coronavirus news | pivot | paywall exclude / iTest (Fenster_nymGtmPageTags)? void (isProduction&&loggerlog (“Content Cliff No-Op due to excluded tag match:”, Fenster_nymGtmPageTags)): void cliffTakeover (findTemplate (e, “Paywall reader interface”), i, o [“Cliff takeover”]); if (o [“Growl-Newletter”] ||! o [“Promo- growl”]) if (o [“Baby-Growl”]) babyGrowl (findTemplate (e, “Paywall reader interface”), i, o [“baby growls”]); else {if (! o [“warning-growl-2”]) return o [“warning-growl”] &&shouldWarn ()? (setContentCliffWarningDisplayed (), Loggerlog (“should show warning”), void growlManager (findTemplate (e, “warning-growl”), {contentClass: “warning-content”, title: o [“warning-growl”] warningGrowlTitle, name : o [“Warning-growl”] name, scrollDepth: o [“warn-growl”] warningGrowlScrollDepth, cta: o [“Warning-growl”] warningGrowlCTA, body: o [“Warning-growl”] warningGrowlBody, Link: o [“Warning-growl”] warningGrowlLink, baseTrackingData: i, toutType: “Warning-growl”}, “# Warning-growl”)): void 0; WarningGrowl (findTemplate (e, “paywall reader interface”), i, o [“warning-growl- 2”])} else growlManager (findTemplate (e, “growl message”), {contentClass: “promo content “, Title: void 0, Name: o [” Promo-Growl “] name, scrollDepth: o [” Promo-Growl “] promoGrowlScrollDepth, cta: o [” Promo-Growl “] promoGrowlCTA, Body: o [” Promo- Growl “] promoGrowlMessage, Link: o [” Promo-Growl “] promoGrowlLink, baseTrackingData: i, toutType:” promo growl “},” # growl-message “)}} Function shouldWarn () {return! contentCliffWarningDisplayed ()} function getContentCliffWarningDisplayedKey () {const e = new Date, t = egetMonth (); return`content-cliff-warning-displayed – $ {egetFullYear ()} – $ {t} `} Function contentCliffWarningDisplayed () {const e = getContentCliffWarningDisplayedKey (); return “true” === getLocalStorage (e)} function setContentCliffWarningDisplayed () {const e = getContentCliffWarningStand; e, “true”)} function growlManager (e, {contentClass: t, scrollDepth: o, name: n, title: r, body: i, cta: a, link: l, baseTrackingData: s, toutType: c, imageUrl : d = null}, g = “”) {const u = function () {const e = ” n n n n $ {r} n $ {d? ”:” “} n $ {i} n $ {d? “: “”} n $ {a} n n n n `; Return document createRange () createContextualFragment (e)} (), p = {Creative: i, ID: c, Name: n, Position: “Growl”}; uquerySelector (“a”) addEventListener (“click”, () => PromotionReport (“Click”, s, p)), generateGrowl (e.g. B. {content: u, scrollDepth: o, onShow: () => PromotionReport (“View”, s, p)})} Function contentCliff (e, t, o, n) {const {first_visit: r, global: i} = n, a = {totalArticleCount: itotal || 0, standardArticleCount: iArticle || 0, featureArticleCount: iFeature || 0, magazineArticleCount: iMagazin || 0}, {contentCliffBody: l} = t, s = DocumentimportNode (e,! 0) querySelector (“content cliff”), c = DocumentquerySelector (“Article content> sound paragraph”), d = {Creative: l, ID: ” Content Cliff “, Name:” Content Cliff “, Position:” In-Article “}; s&& (cinsertAdjacentHTML (“afterend”, sOuterHTML), require (“Content-Cliffclient”) (DocumentquerySelector (“content-cliff”), {contentCliffOptions: t, viewsLeft: o, firstVisit: Number (r), onShow: () = > PromotionReport (“View”, a, d), onClickCliff: () => PromotionReport (“Click”), a, d)}))} Function verdonFosseToutSetter (e, t, o, n, r) {const i = new Verdon ({container: “paywall-reader-interface”, url: “https: // fosseNymagcom / fosse / v152 / indexhtml”}), a = eTyp, l = {E-Mail: auth0getEmail (), isAuthenticated: auth0isAuthenticated (), isSubscriber: auth0isSubscriber ()}; add nclassList (a), icheinmal (“frame: ready”, () => {isendMessage (“tout: show”, {readerState: l, toutType: a, toutData: e}), r&&isendMessage (“frame: height”) }), ion (“tout: visible”, () => {PromotionReport (“View”, t, o)}), ion (“tout: sign-in”, () => {auth0showLogin (FensterStandorthref)}) , ion (“tout: dismissed”, () => {nclassListAdd (“dismissed”), ichsendMessage (“tout: hide”, {toutType: a, toutData: e})}), ion (“tout: subscribe”, () => {ectaLink = replaceQueryParams (ectaLink), PromotionReport (“click”, t, o), window open (ectaLink, “_ ​​blank”)}), iein (“frame: height”, e => {nStilheight = `$ {eNutzlastcurrentHeight 10} px`}), ion (” tout: view-account “, () => {windowStandorthref =” https: // subsNymagcom / account “})} Function promotion report (e, t, o) { const {creative: n, id: r, name: i, position: a} = o; tevent = `eecFörderung $ {e}`, tecommerce = {promoView: {Promotions: [{creative: ntrim (), id: r, name: i, position: a}]}}, gtmreportNow (t), reportPaywall ({ creative: ntrim (), eventType: e, id: r, name: i, position: a})} function babyGrowl (e, t, o) {const n = documentimportNode (e,! 0) querySelector (“paywall-reader -interface “), r = {creative: obabygrowlDescription, ID:” Baby growling “, Name:” Baby growling “, Position:” Growling “}; DocumentBody AppendChild (n), octaLink = obabygrowlCtaLink, octaText = obabygrowlMessage, oÜberschrift = obabygrowlDescription, verdonFosseToutSetter (o, t, r, n)} Function cliffTakeover (e, t, o) {const {cliffTakeLink: riffover, cliffTake: cliffCTA: nDover: n i, cliffTakeoverImage: a, cliffTakeoverPromo:: c} = o, d = Document ImportNode (e,! 0) querySelector (“Paywall Reader Interface”), g = DocumentquerySelectorAll (“Sound Paragraph”), u = {Creative: l, ID: “Content Cliff”, Name: “Content Cliff”, Position: “Growl”}, p = {cta: n, ctaLink: r, Description: i, Image: a, Promo: l, Status: s, Type: c}; DocumentKkörperappendChild (d), gforEach ((e, t) => {0! == t&&eremove ()}), verdonFosseToutSetter (p, t, u, d,! 0), documentquerySelector (“html”) StiloverflowY = “hidden” , DocumentBodyStyle position = “fixed”} Function warningGrowl (e, t, o) {const {Type: n, warningGrowl2CTA: r, warningGrowl2CtaLink: i, warningGrowl2Description: a, warningGrowl2Bild: l, warningGrowl2Promo: s, warningGrowl2Status: c} = o, d = DokumentimportNode (e,! 0) querySelector (“paywall-reader-interface”), g = {creative: s, id: “warning growl”, name: “warning growl”, position: “growl”}, u = { cta: r, ctaLink: i, description: a, picture: l, promo: s, status: c, type: n}; DocumentBody AppendChild (d), verdonFosseToutSetter (u, t, g, d,! 0)} Function getClientId (e = “”, t = 8e3) {let o = cookieget (e); return o? Promise resolution (o): new promise ((o, n) => {const r = setTimeout (() => {n (`Key could not be found: $ {e} on cookie after $ {t} ms`)} , t); Window addEventListener (cidReadyEvent, () => {clearTimeout (r), o (Cookie) get (e))})})} Function readJSONFromScript (e) {try {return JSONAnalyse (einnerHTML)} catch (e) {return {touts: [], scenarios: []}}} function findTemplate (e, t = “”) {const o = e&&equerySelector (`[data-template-id =” $ {t} “]`); returns o&&oContents} Function isNCR () {return / [? &] source = ncr / Test (location search)} Function brandedTakeoverTime (e) {const {startTime: t, endTime: o, startDate: n, endDate: r} = e, i = nconcat (“”, t), a = rconcat (“”, o), l = moment (i), s = moment (a); Return moment () isBetween (l, s)} function optimizeDebugger () {return new promise (e => {const t = windowLocation search || “”; if (t) {const o = new URLSearchParams (t), n = oget ( “Optimize-Attribute-Name”) || “”, r = oget (“Optimize-Attribute-Value”) || “”, i = oget (“Optimization delay”) || 0, a = oget (“Optimize-Cookie “) ||! 1; setTimeout (() => {a&& (document cookie = randomNymcid ()), document body set attributes (` data – $ {n} `, r), e ()}, i)} else e ()} )} function randomNymcid () {return`nymcid = $ {(() => ([1e7] – 1e3 -4e3 -8e3 -1e11) Replace (/ / g, e => (e ^ 16 * crypto) getRandomValues (New Uint8Array (1)) [0] >> e / 4) toString (16) [0])) ()} `} function replaceQueryParams (e) {const t = windowLocation search || “”; if (t) {const o = new URLSearchParams (t); if (econtains (“?”)) {const t = esplit (“?”), n = new URLSearchParams (t [1]); for (let e of oEntries ()) nset (e [0], e [1]); e = `$ {t [0]}? $ {ntoString ()} `} else e =` $ {e}? $ {otoString ()} `} return e} Module exported = (e => new promise (e => {auth0on (” init “, () => {e ()})}) then (() => optimizeDebugger ( )) then (() => {displayDebug (FensterStandorthref), initializeChoreographer (e)}));
}, {1: 1, 9: 9, 12: 12, 13: 13, 23: 23, 24: 24, 40: 40, 52: 52, 73: 73, 74: 74, 75: 75, 76: 76, 77: 77, 78: 78, 79: 79, 80: 80 Content-Cliffclient “:” content-cliffKlient “}];
FensterModule [“growl client”] = [function (required, module, export) {“use strict”; require (140); const _some = require (60), dom = require (3), localStorageKeyRoot = “slideout -“, {getLocalStorage: getLocalStorage, setLocalStorage: setLocalStorage} = require (13); module exported = ((e, t) => {const {content: o, onShow: s, scrollDepth: r = 50, dismissable: i =! 1} = t, n = Number (r || egetAttribute (“data display at -Page scroll percentage “)), a = domfind (e,” modal “), l =” slideout- “(tid || egetAttribute (” id “)), c = getLocalStorage (l); function d () {aclassListadd (“hidden”)} Function g () {setLocalStorage (l,! 0), d ()} i&&c? eremove () 🙁 o&&equerySelector (“[data content]”) appendChild (o), nCSSEAND 50 ) {const t = new IntersectionObserver (e => {_ some (e, “isIntersecting”) && (aStiltop = “inherit”, aclassListremove (“hidden”, “initial”), “function” == typeof s&&s (), dobeobachten (a))}); aStiltop = `$ {documentquerySelector (” body “) scrollHeight / (100 / e)} px`, tbeobachte (a)} (n), equerySelector (” dismissed-modal “) addEventListener (” click “, () => i? g (): d ()), eaddEventListener (” growl: hide “, d), eaddEventListen he (“growl: dismissed”, g))});
}, {3: 3, 13: 13, 60: 60, 140: 140}];
FensterModule [“Speed-Bumpclient”] = [Function (required, module, export) {“use strict”; const gtm = required (1), visibility = required (4); Module exported = ((e, i) => {if (! I ||! E) return; const {name: o, speedbumpDescription: r, speedbumpMessage: t, speedbumpLink: n, baseTrackingData: s} = i, c = new VisibilitySvisible (e, {shownThreshold: 5}); equerySelector (“Description”) innerHTML = r, equerySelector (“Promo-Link”) innerHTML = t, equerySelector (“Promo-Link”) href = n, eclassListentfernen (“collapsed” ), con (“shown”, function () {if (VisibilityisElementNotHidden (e)) {let e = s; eevent = “eecPromotionView”, eecommerce = {promoView: {Promotions: [{Name: o, Creative: r, ID : “Speed ​​Bump”, Position: “In-Artikel”}]}}, gtmreportNow (e), cdestroy ()}}), equerySelector (“Promo-Link”) addEventListener (“click”, function () { let e = s; eevent = “eecPromotionClick”, eecommerce = {promoClick: {Promotions: [{Name: o, Creative: r, ID: “Speed ​​Bump”, Position: “In-Article”}]}}, gtmreportNow (e)})});
}, {“1”: 1, “4”: 4}];
FensterModule [“Newsletter-Speed-Bumpclient”] = [Function (required, module, export) {“use strict”; const {loadRecaptcha: loadRecaptcha} = require (108), _ isEmpty = require (87), _ set = require (107), _ kebabCase = require (81)), gtm = require (1), auth0 = require (12) , Visibility = require (4), COMPONENT_NAME = “Newsletter-Speed-Bump”, EMAIL_VALID_REGEX = / ^ (?: (?: [^ () [] \,;: s @ “] (?: [^ () [] \,;: s @ “]) *) | (” “)) @ (?: (?: [[0-9] {1,3} [1, 3] {1,3} [1,3] {1,3} [0-9] {1,3}]) | (?: (?: [A-zA-Z -0-9] ) [a-zA-Z] {2,})) $ /, LOCAL_STORAGE_KEY_NAME = “newsletterSpeedBumpSignUpStatus _”, MAX_EMAIL_LENGTH = 50; Function setClass (e, t) {eclassListadd (t)} Function getRequestUrl (e) {return egetAttribute (“action”)} Function getPageType (e) {const t = e? egetAttribute (“content”): “”; return _kebabCase (t)} function getPayloadObject (e, t, r, s) {const n = {}; return _set (n, `varsQuelle _ $ {t}`, `$ {COMPONENT_NAME} _ $ {s}`), nE-Mail = r, nListen = {}, nlistet [t] =! 0, nrecaptcha = e, nsignuppage = `$ {documentStandorthref} _ $ {t}`, n [`source _ $ {t}`] = “newsleter_speedbump”, n} Module exported = ((e, t) => {if (! t ||! e) return; if (“success” === window local storage getItem (`$ {LOCAL_STORAGE_KEY_NAME} $ {tnewsletterSpeedBumpNewsletterId}`)) return void eremove (); const {baseTrackingData: r, name: s, newsletterSpeedBumpCopy : n, newsletterSpeedBumpDescription: i, newsletterSpeedBumpHeadline: a, newsletterSpeedBumpNewsletterId: o, newsletterSpeedBumpThankYouMessage: c, RECUT__getEmail (), d = equerySelector (“Description”), p = equerySelector (“Incoming email”), error message ), h = equerySelector (“Form”), E = equerySelector (“Form-Container”), y = equerySelector (“form-recaptcha-container”), g = equerySelector (“Heading”), v = equerySelector (“Container “), S = equerySelector (” Incoming newsletterId “), _ = equerySelector (” recaptcha-wrapper “), L = equerySelector (” Incoming submit “), w = equerySelector (“TextContainer”), q = new VisibilityVisible (e, {shownThreshold: 5}); u&& (premoveAttribute (“required”), eclassListadd (“logged in”)), dinnerHTML = i, ginnerHTML = a, SValue = o, LValue = n, qon (“shown”, function () {if (VisibilityisElementNotHidden (e)) {const e = r; eevent = “eecPromotionView”, eecommerce = {promoView: {Promotions: [{creative: `$ {a} | $ {i} `, id:” Newsletter Speed ​​Bump “, Name: s, Position:” In-Article “}]}}, gtmreportNow (e), qdestroy ()}}), paddEventListener (” focus ” , () => {_classListentfernen (“hidden”)}), haddEventListener (“submit”, t => {tPreventDefault (); const s = new XMLHttpRequest, n = u || equerySelector (“input email”) value, i = getPageType (DocumentquerySelector (‘meta [name = “type”]’)); u ||! (nLength> = 50) &&EMAIL_VALID_REGEXtest (n)? loadRecaptcha (l, “newsletterSubmit”,! 0) then (a => {sopen (“POST”, getRequestUrl (h),! 0), ssetRequestHeader (“content type”, “application / json; character set = UTF-8”), saddEventListener (“load”, s => {const a = scurrentTarget || sZiel , if (astatus> = 200&&astatussetClass (e, “Success”)), [d, E, m, _] forEach (e => setClass (e, “hidden”)), gi nnerHTML = cersetzen (“{{email}}”, n), minnerHTML = “”; const s = Parsing JSON (aAnswer), l = _isEmpty (ssailthruIds)? “”: ObjectValues ​​(ssailthruIds) [0], u = r; uevent = “eecKauf”, uecommerce = {Purchase: {actionField: {id: l, Sales: “000”}, Products: [{Category: “Newsletter Registration”, Name: SValue, amount: 1, variant: `$ {COMPONENT_NAME} – $ {i}`}]}}, gtmreportNow (u), setTimeout (() => {eclassListadd (“hidden”)}, 5e3), tPreventDefault () } else minnerHTML = “* An error has occurred please try again”}), saddEventListener (“error”, () => {remove mclassListent (“hidden”), minnerHTML = “* An error has occurred please try again”} ), ssenden (JSONstringify (getPayloadObject (a, o, n, i))), tPreventDefault ()}): minnerHTML = “* Please enter a valid email address”})});
}, {“1”: 1, “4”: 4, “12”: 12, “81”: 81, “87”: 87, “107”: 107, “108”: 108}];
WindowModule [“Content-Cliffclient”] = [Function (required, module, export) {“use strict”; const auth0 = required (12), isProduction = required (9) (), logger = required (74) Logger (() =>! IsProduction); Module exported = ((t, e) => {if (! E) return; loggergroup (), Loggerh2 (“Content Cliff”); const {contentCliffOptions: o, firstVisit: n, onShow: r, onClickCliff: i} = e , c = 300, l = Number (DocumentquerySelector (“[Number of data components]”) getAttribute (“Number of data components”)), u = 3, s = [“taboola”], a = “# content-cliff”, f = t, d = function () {let t = 0; return documentquerySelectorAll (“[number of data words]”) forEach (function (s) {t = number (egetAttribute (“number of data words”) || 0,10) || 0 }), t} (), g = function (t, e) {function o (t) {return mathund (tgetTime () / 1e3 / 60)} const n = o (t), r = o (e); return nr} (new date, new date (s)) {}, show: () => {r (), function () {(p = function (t = “”) {return documentquerySelectorAll (`$ {t} ~ * `)} (a)) forEach (t => tremove ()), function () {const {contentCliffStatus: e, contentCliffPromo: n, contentCliffCTA: r, contentCliffURL: c} = o, l = tquerySelector (” [ Data content cliff status] “), u = tquerySelector (” [data-content-cliff-promo] “), s = tquerySelector (” [data-content-cliff-cta] “); s&&ssetAttribute ( “href”, c), s&&sinsertAdjacentHTML ( “after begin”, r), l&&linsertAdjacentHTML ( “after begin”, e), u&&uinsertAdjacentHTML ( “after begin”, n), s&&saddEventListener ( “click”, i)} () fclassListentfernen ( “collapsed”), e = s, eforEach (t => {const e = documentquerySelector (`[data-uri * =” / $ {t} / “]`); e&&eremove ()}), maddEventListener (“click” , () => auth0showLogin ()); var e} ()}} [function () {if (dl) return loggerlog (`Number of article words $ {d} was too short for the cliff`), Loggerlog (` Number of article components is less than $ {u} and not for the cliff suitable`), “noop”; if (g&&isProduction) returns “noop”; g&&loggerlog (`The first session check was $ {g}! Show the cliff anyway: isProduction => $ {isProduction}`); if (/ coronavirus news | pivot | paywall exclude / iTest (Fenster_nymGtmPageTags)) return isProduction&&loggerlog (“Content Cliff No-Op due to excluded tag match:”, Fenster_nymGtmPageTags), “noop”; return “show”} ()], m = tquerySelector (“content-cliff-login”); let p = []; return loggerlog (`should not work due to the 30 minute window of the first session in production: $ {g}`), loggergroupEnd (), auth0on (“login”, () => {fclassListadd (“reduced”), ( p = ArrayPrototypeScheibeAnruf (p, 0) reverse ()) forEach (t => finsertAdjacentElement (“afterend”, t)), p = []}), “function” == typeof h? h (): void 0});
}, {“9”: 9, “12”: 12, “74”: 74}];
WindowModule [“most popularclient”] = [function (required, module, export) {“use strict”; const dom = require (3), lazyLoad = require (96); Function lazyLoadImage (a) {const o = domfind (a, “img [data-src]”), d = a&&domfindAll (a, “source [data-srcset]”), e = o&&dom at the next (o, “feed-image -wrap “); if (o&&e) {new lazyLoadLazyLoader (e, o, d) init ()}} function handleLazyLoad (a) {(domfindAll (a, “most popular article”) || []) forEach (lazyLoadImage)} module exported = (a = > {handleLazyLoad (a)});
}, {“3”: 3, “96”: 96}];
WindowModules [“Collection Package Client”] = [Function (required, module, export) {“use strict”; const dom = required (3), hammer = required (99), lazyLoad = required (96), _ debounce = required (100), BREAKPOINT = 768, ANIMATION_DURATION = 250; Module exported = (e => {const t = domfind (“collection-simple_text-top”), n = equerySelector (“list wrapper”), i = equerySelector (“package content”), o = domfindAll (e, “article” ), r = eclassListenthalt (“carousel layout”); var a, s = 0, c =! 1; if (r) {if (! n) return; function d () {aaus (“swipeleft”) from ( “swiperight”), s = 0, nStiltransform = “translate (0px)”, FensterinnerWidth1? (FenstercancelAnimationFrame (s), i&&i ()) 🙁 t = r (c = d) * (2-c) * a, eStiltransform = “translate (” t “px)”, window requestAnimationFrame (s))}; n || (n = 0); window requestAnimationFrame (s)} (n, i, ANIMATION_DURATION, function () {s = e, c =! 1})} function f () {c || s> 0&&l (s-1)} function u () {c || s {! Function (e) {const t = domfindAll (e, “source [data-srcset ] “), n = domfind (e,” img [data-src] “), i = domfind (e,” article-img-wrapper “); if (t&&n&&i) {const e = new lazyLoadLazyLoader (i, n, t); iclassListadd ( “contains-image”), einit ()}} (e)})});
}, {3: 3, 96: 96, 99: 99, 100: 100}];
WindowModule [“Sticky-Listeclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), $ gtm = require (1), _ get = require (23), stickyContainer = require (“sticky-container” Client “); DSController (” Sticky-List “, [” $ window ” , Function (t) {var e = require (218), i = 40; function s (s) {let n, r = function (t) {let s = t [0], n = 0, r = eHeight ( diescontentArea), h = thisContentAreaoffsetHeight; if (thiscontainer&&thisBehältLänge) {if (sZieloffsetHeight) {let t = thisAusbrüchefindIndex (t => (function body (t, e)) {return t! == document}} ARtCSSEAND sZielCSSEAND s ; if (t> -1&&thisAusbrüche [t]) {let e = diesAusbrüche [t] offsetHeight i; thisBehält [t] StilmarginBottom = `$ {e} px`}} if (h! == thiscurrentHeigh) {const t = eRect (diesrightRail, das hiercontentArea); diescurrentHeight = h, diesrightRailStilHöhe = r-ttop-a (diesrightRail) “px”, diesAusbrbruchforEach ((s, r) => {let a = erect (s, thiscontentArea), h = eSchnittpunkt (a , t); if (h) {let e, s = htop- ttop-n; n = s hHöhe ich, dasBehält [r] Stilheight = `$ {s} px`, diesBehält [r] StilminHeight =` $ {s} px`, e = thisBehausbruch [r] offsetHeight i, thisBehält [r] StilmarginBottom = ` $ {e} px`}})}}} bind (this); tinnerWidth {let n = _get (e, “RecordName”, “”), r = nSlice (-1) || “1”, a = [“Image_Gallery”, “Standard_Article”, “Feature”, “One_Column_Article”] find (t => ncontains (t)) || “”; diesrightRailparentElementclassListentcontains (“tertiary”) &&a&& (eDatsatzname = parseInt (i, 10) se === t) || 0; return iSheight (n 1) reduce ((t, e) => t (eoffsetHeight || 0), 0) || 0} return sprototype = {setPins: function () {const t = eRect (diesrightRail, the hiercontentArea), i = eHöhe (diescontentArea), s = i-ttop-a (diesrightRail); let n, h, o, l; if (thispopulatePinsList (), s1&&tclassListadd (“Multi-Children”), l = 0; l {const t = Arrayof (eKinder); let o, a, i = 0; for (; iabelow || incorrectly)? abottom-ntop : 0} function getElementsOverlapAmount (e, t) {var n, a = []; return _forEach (t, function (t) {n = getElementsVerticalOverlap (e, t), apush (n)}), _ max (a) } Function getNYMagAdChannel (e) {var t = “”; switch (e) {case “company information”: t = “company”; break; case “new york does & things to do”: t = “to do”; break; case “other”: t = e; break; case “sponsored leader”: t = “s-leader”; break; case “urbanist”: t = “urbanist” “; break; default: t =” “} return t} Function appendSectionToDfpAds () {var e, t, n, a = DocumentquerySelector (“meta [property = ‘og: site_name’]”), o = documentquerySelector (“Article [data content channel]”), i = DocumentquerySelectorAll (AD_NAME_SELECTOR ); a&& (e = aContents), o&& (t = ogetAttribute (“Date ninhaltskanal “) toLowerCase ()), t&&” New York Magazine “=== e&& (n = getNYMagAdChannel (t)), n&&appendToAdd (i, n)} body {}, t = documentquerySelector (“body”) || {}, n = e&&eclassList, a = n&&nLength? [n]: [], o = _find (a, e => econtains (“Feature”)), i = DocumentquerySelectorAll (AD_NAME_SELECTOR); n&& (o? appendPageNumberPositionToDfpAds (i, “Feature”): ncontains (“lede-gallery-content”)? appendPageNumberPositionToDfpAds (i, “Image_Gallery”): tclassListentTohalts (“One-column layout”)? ncontains (“article content”) &&appendPageNumberPositionToDfpAds (i, “Standard_Article”))} Function appendPageNumberPositionToDfpAds (e, t) {const n = [“528×379”, “1100×200”, “find 1×1” = [let a =] o, ad-splash “), i = domfind (” section wrapper “), r = domfind (” secondary “), d = domfind (” bottom “), s = domfind (” primary “), c = {IA: {xsMobile: {normal: 1, grid: 1}, mobile: {normal: 1, grid: 1}, tablet: {normal: 1, grid: 1}, desktop: {normal: 1, grid: 1}}, BA: { xsMobile: {normal: 1, grid: 1}, mobile: {normal: 1, grid: 1}, tablet: {normal: 1, grid: 1}, desktop: {normal: 1, grid: 1}}}; aforEach (e => {let a, l = “”, u = eDatsatzSchsize, m = eclassListVert, p = _find (n, e => ubeinhalt (e)), g = eparentElementclassListenthalt (“image-gallery-mobile-grid- ad “); if (u&&! p || esetAttribute (” data name “, egetAttribute (” data name “)” / “t), i&&u&&! p) {let n, u; if (oCSSE) contains (e) {let n, u; if (oCSSE) “: i&&contains (e)? l =” IA “:( r&&contains (e) || d&&dcontains (e) || s&&scontains (e)) =”! ” u = checkForAdViewport (m))) return; g? (n = c [l] [u] grid, c [l] [u] grid) 🙁 n = c [l] [u] normal, c [l] [u] normal), a = n {esetAttribute (“data name”, egetAttribute (“data name”) “/” t)})} inject functionGoogleScripts () {var e = document createElement (“script”), t = documentcreateElement (” script “), n = documentcreateDocumentFragment (); esrc = “// wwwgoogletagservicescom / tag / js / gptjs”, easync = “async”, tsrc = “// pagead2googlesyndicationcom / pagead / js / adsbygooglejs”, tasync = “async”, n asyncappendChild (e), nappendChild (t), document getElementsByTagName (“body”) [0] appendChild (n)} appendSectionToDfpAds (), appendPageTypeToDfpAds (), injectGoogleScripts (), DSController (ad. “, [” ) {Return function (t) {var n, a, o, i = tgetAttribute (“data offload”), r = new $ VisibilitySvisible (t, {pretoadThreshold: i? WindowinnerHeight / 4: 200}), d =! 1 ; Function s () {FensterinnerWidth> = 1180&&tparentElementclassListenthalts (“ad-repeat”) &&flaggedComponentsOnPagelength&& (a = getElementsOverlapEANDCHAR, a = getElementsOverlapAmount (a = getElementsOverlapAmount), a = getElementsOverlapAmountA (a )} Function c () {s (), eUpdate (n)} Function l () {eremove (n), d || (d =! 0, ron (“shown”, c))} DocumentquerySelector (‘script [ data-name = “concert displays”] ‘) || (n = eerstellen (t), rPreload&& $ VisibilityisElementNotHidden (t)? (eaddTo PageLoadQueue (n), i&&ron (“hidden”, l)) 🙁 ron (“preload”, function () {! nslot&& $ VisibilityisElementNotHidden (t) && (s (), eload (n))}), i&&rauf (“hidden”, l)), diesadData = n)}}]);
}, {3: 3, 4: 4, 41: 41, 42: 42, 43: 43, 44: 44}];
WindowModule [“Article Client”] = [Function (required, module, export) {“use strict”; const $ visibility = required (4), $ gtm = required (1), ImageZoom = required (56), $ sentry = required (57); DScontroller (“article”, [function () {var e = 40; function t (t) {const i = documentquerySelector (“Wrapper> tertiary”), n = tquerySelector (“lede-image-wrapperVollblutung”), r = tquerySelector (“Attribution full bleeding”), o = tquerySelector (“article header”), l = o? OquerySelector (“img”): null, c = function () {let t = ogetBoundingClientRect () height; n&& (t = ngetBoundingClientRect ( ) Height 25, r&& (t = rgetBoundingClientRect () height)), ichStilpaddingTop = te “px”}; i&&o&& (window innerWidtht (e)), $}}]););
}, {“1”: 1, “4”: 4, “56”: 56, “57”: 57}];
WindowModule [“Tagsclient”] = [Function (required, module, export) {“use strict”; const _forEach = require (41); DScontroller (“tags”, [function () {function e (e) {thisel = e} return ePrototype = {Events: {“amore click on”: “showAll”}, showAll: function (e) {var t = eZiel, o = dieselquerySelectorAll (“liversteckt”); _ forEach (o, function (e) {eclassListernernen (“hidden”)}), tparent noderemoveChild (t), ePreventDefault ()}}, e}]);
}, {“41”: 41}];
FensterModule [“image client”] = [function (required, module, export) {“use strict”; const dom = require (3), lazyLoad = require (96); Module exported = (e => {const a = domfindAll (e, “source [data-srcset]”), d = domfind (e, “img [data-src]”), o = domfind (e, “image-wrapper “); new lazyLoadLazyLoader (o, d, a) in there ()});
}, {“3”: 3, “96”: 96}];
FensterModule [“Newsletter-Flex-Textclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ kebabCase = required (81), _ isEmpty = required (87), _ set = required (107), permutiv = require (52), cmptName = “newsletter-flex-text”, { loadRecaptcha: loadRecaptcha} = require (108), gtm = require (1), EMAIL_VALID_REGEX = / ^ (?: (?: [^ () [] \,;: s @ “] (?: [ ^ () [] \,;: s @ “]) *) | (” “)) @ (?: (?: [[0-9] {1,3} [1,3 ] {1,3} [1,3] {1,3} [0-9] {1,3}]) | (?: (?: [A-zA-Z -0-9] ) [a-zA-Z] {2,})) $ /, MAX_EMAIL_LENGTH = 50; DScontroller (cmptName, [“$ window”, function (s) {function t (t) {thisel = t, dasemail = domfind (t, “email”), diestitle = domfind (t, “title”), this description = domfind (t, “description”), diesQuelle = domfind (t, “source”), diesform = domfind (t, “form”), diesreturnMsg = domfind (t, “feedback”), diesnewsletterId = domfind (t, ” newsletterId “) value, diesexpandTerms = domfind (t,” extended terms “), diesrecaptchaKey = this formData recordrecaptchaPublicKey, daslocal = elocalStorage, dasSitzung = esessionStorage, dasdisplayComponent ()} return tprototype = {getRequestUrl: function (” form actionA “return this) )}, getPageType: function () {var e = domfind (‘meta [name = “type”]’), t = e? egetAttribute (“content”): “”; return _kebabCase (t)}, getPayloadObject: function (e) {var t = {}; return temail = thisEmailWert, trecaptcha = e, _set (t, `varsQuelle _ $ {thisnewsletterId}`, `$ {cmptName} _ $ {thisgetPageType ()}`), tListen = { }, tlistet [this newslet terId] =! 0, t}, displayComponent: function () {var t = this, s = “success” === thislocal [“signUpColumnStatus” thisNewsletterIdtoString ()], i = “true” === thisbildengetAttribute (“data display after login”) ; if (! s || i) {if (remove thiselclassListent (“initially hidden”), this formclassListremove (“initially hidden”), setTimeout (function () {telclassListenferne (“opacity-zero”)}, 100), try this session) {diesSessionsetItem (“signUpColumn”, “displayed”)} catch (e) {}} else telparentElementclassListadd (“newsletter-collapsed”); eaddEventListener (“unload”, function () {tSessionremoveItem (“signUpColumn”)})}, events: {“Send form”: “submitForm”, “E-mail keystroke”: “clearMsg”, “Terms button click “:” showTerms “}, clearMsg: function () {thisreturnMsginnerHTML =” “}, showTerms: function () {thisexpandTermsclassListadd (” active “), thisexpandTermssetAttribute (” aria-hidden “,” false “)}, submitForm: function ( e) {var t = new XMLHttpRequest, s = thisbildengetAttribute (“data-error-msg”); thisEmailValueLength> = 50 ||! EMAIL_VALID_REGEXTest (this email value)? (s&& “”! == s || (s = “* Please enter a valid email address”), diesreturnMsginnerHTML = s, dasreturnMsgfocus (), ePreventDefault ()): loadRecaptcha (thisrecaptchaKey, “newsletterSubmit”, ! 0) then (s => {domverhommunikDefault (e), topen (“POST”, diesgetRequestUrl (),! 0), tsetRequestHeader (“content type”, “application / json; character set = UTF-8″), taddEventListener (” load “, this to bind request (dies)), taddEventListener (” error “, dieonErrorbind (dies)), tsenden (JSONstringify (diesgetPayloadObject (s))), ePreventDefault ()})}, onRequest: function (e) {const t = ecurrentTarget || eZiel; tstatus> = 200&&tStatus {var e = document createElement (“script”); easync =! 0, etype = “text / javascript”, esrc = DokumentStandortProtokoll “// d16xpr36wrmcmkCloudfrontnet / js / memojs”, (Document getElementsByTagName (“head”) [0] || Document getElementsByTagName (“body”) [0]) appendChild (e)} ) (), ModulExporte = (() => {});
}, {}];
FensterModule [“Affiliate-Linksclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ contains = required (44), _ StartsWith = required (48), globalClick = required (46), visit = require (47), productSubtags = require (49); var excluded hostnames, skimlinksBaseUrl, skimlinksId, visitState, productUrl, ignoreDataAttribute = “Ignore Data Affiliate Links”, Article = WindowDocumentquerySelector (“Article”), isSponsored = article&& “Sponsor Story” === (Article “GetAtAtype”) Function setExcludedHostnames (t) {excludedHostnames = (tgetAttribute (“Data excluded hostnames”) || “”) toLowerCase () split (“,”)} Function isSkimLink (t) {return !! (skimlinksId = tgetAttribute (“data-skimlinks”))} Function isExcluded (t) {return _includes (excluded hostnames, t) || _startsWith (t, “www”) &&_includes (excluding host names, tSlice (4)) || isSponsored} function isUrlProtocol (t) {return 0! == tindexOf (“mailto:”) &&0! == tindexOf (“javascript:”)} function getTargetHostname (t) {return (tHostname || tHost || thref || “”) toLowerCase ()} function convertSkimlinkUrl (t) {return (skimlinksBaseUrl = skimlinksBaseUrl || skimlinksId? ” // goUmleitungcom /? xs = 1&id = “skimlinksId” &sref = “encodeURIComponent (FensterStandorthref)” &url = “: void 0) &&skimlinksBaseUrluteIgnodeURIComponent (t)} function” return “encodeURIComponent (t) } Function convertSkimlink (t) {var e, i, r, s = domam next (tZiel, “a”), n = s&&shref; n&&nlength&&! tdefaultPrevented&& (i = getTargetHostname (s),! isUrlProtocol (n) || isExcluded (i) || hasIgnoreAttribute (s) || productSubtagsgetAffiliate (n) || (e = convertSkimlinkUrl = CSSUrl (n))) s&&sgetAttribute (“data-track-id”), shref = productSubtagssureSubtag ({url: e, productId: r, visitState: visitState, anchorEl: s}))}} function revertSkimLink (t) {var e = domam next (tZiel, “a”), i = e&&ehref || “”; icontains (skimlinksBaseUrl) &&i&&ilength&&productUrl&href || “”; ), e&& (setExcludedHostnames (t), globalClickaddHandler (convertSkimlink, revertSkimLink))});
}, {3: 3, 44: 44, 46: 46, 47: 47, 48: 48, 49: 49}];
WindowModule [“gtmclient”] = [Function (required, module, export) {“use strict”; const $ gtm = require (1); DScontroller (“gtm”, [function () {return function (t) {$ gtminit (tgetAttribute (“data container ID”), tgetAttribute (“data-site-slug”))}}]);
}, {“1”: 1}];
FensterModule [“global-navclient”] = [function (required, module, export) {“use strict”; const dom = required (3), auth0 = required (12), signInButton = find dom (“user login”), signOutButton = find dom (“user logout”), globalNav = domfind (‘[class ^ = “global-nav”]’) , body = domfind (“body”), dropdownItems = domfinde all (“dropdown wrap”), gtm = require (1), pageUri = require (136) getPageUri (); Function closeDropdowns (e) {let n = globalNavquerySelectorAll (“Dropdown-Listopen”); dropdownItemsforEach (function (t) {let o = tquerySelector (“Dropdown”) ;! n || tcontains (eZiel) &&27! == ekeyCode || oclassListremove (“open”)})} function gtmSendReport (e, n, t) {let o = {eventCategory: “ecommerce”, eventAction: “componentClick”, brand: e, dimension23: “global-nav”, list: pageUri, pageZone: “header”, variant: “nav-link”}; “global-nav-link” === t&& (oeventLabel = nhref), gtmreportNow (o)} function init (e) {auth0on (“init”, () => {signInButtonaddEventListener (“click”, function (e) { ePreventDefault (), auth0showLogin ()}), signOutButtonaddEventListener (“click”, function (e) {everhindereDefault (), auth0logout (), gtmSendReport (“Logout”, eZiel, “User Info Link”)}), auth0isAuthenticated () ) &&eclassListadd (“registered”), auth0isSubscriber () &&eclassListadd (“subscribed”), equerySelectorAll (“user link”) forEach (e => {eclassListadd (“active”)})}), auth0 ) => {eclassListadd (“registered”), auth0isSubscriber () &&eclassListadd (“subscribed”)}), auth0on (“logout”, () => {remove eclassList (“registered”), eclassListentferne (“subscribed”)})} dropdownItemsforEach (function (s) {eaddEventListener (“click”, function () {equerySelector (“dropdown list”) classListum toggle (“open”)})}), body addEventListener (“click”, closeDropdowns), document addEventListener (“keydown”, closeDropdowns), globalNavaddEventListener (“click”, function (s) {let n = eZiel; n ZielclassListenthalts (“global-nav-track”) &&gtmSendReport (nText, n, “global-nav-link”)}), ModulExporte = Init;
}, {“1”: 1, “3”: 3, “12”: 12, “136”: 136}];
FensterModule [“aaa-Modul-MontageLegacy”] = [Function (required, module, export) {“use strict”; const eventify = required (164), _ pickBy = required (139), _ each = required (301), fingerprintjs2 = required (300), DS = require (299); function registerGlobals () {windowDS = DS, WindowEventify = eventify, WindowFingerprint2 = Fingerprintjs2, DSValue (“Eventify”, eventify), DSValue (“Fingerprint2”, fingerprintjs2), DSValue (“$ document”, WindowDocument), DSvalue (“$ window “, window)} Function mountDollarSliceComponents () {DSservice (” Components “, [” $ document “,” $ module “, Function (e, n) {var r = _pickBy (nDefinitions, e => eproviderStrategy === nVendorController) , o = object keys (r); function t (e) {return r => {try {nget (e, r)} catch (e) {logMountError (r, e)}}} _ each (o, n => {var r = equerySelectorAll (‘[data-uri * = “/ _ components /’ n ‘/”]’), o = equerySelectorAll (‘[data-uri $ = “/ _ components /’ n ‘”]’) ; _ each (r, t (n)), _ each (o, t (n))}), diesComponents = o}]), DSget (“Components”)} Function logMountError (e, n) {const r = eOuterHTMLSlice (0, eOuterHTMLindexOf (oneHTML)); ConsoleError (“Error attaching the controller to” r, n)} registerGlobals (), DokumentaddEventListener (“DOMContentLoaded”, () => {mountDollarSliceComponents ()});
}, {139: 139, 164: 164, 299: 299, 300: 300, 301: 301}];
WindowModule [“ShowLegacy”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ forEach = require (41), _ isString = require (184), _ intersectionWith = require (302), _ isEqual = require (190), _ each = require (301), _ debounce = require (100), _ sortBy = require (123), page = require (136), visit = require (47); DSservice (“adService”, [“Eventify”, “$ cid”, “$ document”, “$ window”, function (e, t, a, i) {var o, n, s, r, d, c, l, u, g, p, m = {}, h = dies, f = [], b = visit getQueryParamsObject ([“utm_campaign”]), w = documentquerySelector (‘script [data-type = “ad-a9”] ‘); DocumentquerySelector (‘ script [data-name = “Konzertangebote”] ‘) || (iNYM = {}, iNYMAnalytics = {}, iNYMAnalytikadStartTime = iPerformance now ichgoogletag = igoogletag || {}, igoogletagcmd = igoogletagcmd || [] c = igoogletag, w&& (igoogletagcmd = igoogletagcmd || [], igoogletagcmdpush (function () {igoogletagPubads () disableInitialLoad ()}), l = isetInterval (function 0ChAssErStagCANDWindow (function 0CHSSEstag) (l), window day deleted =! 0, l = null)}, 10), setTimeout (function () {l&& (iclearInterval (l), ichgoogletagPubads () refresh (), window window || console log (“MESSAGE: Timeout for A9- L. ast exceeded, abort “))}, 500)), u = documentcreateElement (” script “), g = documentcreateDocumentFragment (), p = documentgetElementsByTagName (” head “) [0], usrc =” https: // zWassergräbencom / voxprebidheader841653991752 / moatheaderjs “, gappendChild (u), pinsertBefore (g, pfirstChild), o = function (e) {var t, a, o = eData, n = []; Return loaded? e: (loaded =! 0, t = null, (t = oSizes? cdefineSlot (oName oSizes, oI would) addService (cPubads ()): cdefineOutOfPageSlot (oName oI would) addService (cpubads ())) setTargeting (“adid” , oid), bhasOwnProperty (“utm_campaign”) &&tsetTargeting (“utmcamp”, butm_campaign), a = hgetAdCount (oEtikett), tsetTargeting (“label”, oBeschriftung “_” oSeite “-” a) ) addEventListener ( “slotOnload”, function () {iNYMAnalytikfirstAdLoadTime || (iNYMAnalytikfirstAdLoadTime = iPerformancejetzt ichNYMAnalytikfirstAdLoadLabel = eDatenlabel)}) (n = v (o)) Fensterapstag&&windowapstagclear&&windowapstagfetchBids ({slots: [n], timeout: windowapstagZeitüberschreitung}, function ( ) {ccmdpush (function () {windowapagsetDisplayBids (), cPubads () refresh ([t], {changeCorrelator:! 1})})}): cPubads () refresh ([t], {changeCorrelator:! 1}), eslot = t, e)}, n = function (e) {var a, i, o, n = t (), s = egetAttribute (“Datenna me “), r = egetAttribute (” data sizes “), d = egetAttribute (” data label “), c = egetAttribute (” data-site “); n = eid, r&&rLength? (r = rsplit (“,”), a = [], _ map (r, function (e) {e = esplit (“x”), i = parseInt (e [0]), o = parseInt (e [ 1]), apush ([i, o])})) 🙁 eclassListaddere (“oop”), a =! 1), diesData = {ID: n, name: s, sizes: a, loaded:! 1, designation: d, site: c}, m [n] = this}, r = function (e) {ccmdpush (function () {var t = o (e); m [eDatenid] = t})}, s = function (s) {var t = []; eSlot? (t = v (e)) &&windowapstag&&windowapstagclear&&windowapstagfetchBids ({slots: [t], timeout: windowapstagTime exceeded}, function (1) {ccmdpushBids (function) {update ccmdpushBids (function) (), function (1) {ccmdpushBids (function) () })})}): e&&r (e)}, ccmdpush (function () {var e, t, o, n = SeitegetMeta (“Article: Tag”), s = SeitegetMeta (“Author”), r = iStandorthref, d = (e = aKopfquerySelector (“head-gtm”), t = aBodyquerySelector (“gtm”), e&& “top” === egetAttribute (“data-gtm”)? “gtmtop”: t&& ” tgetAttribute (“data-gtm”)? “gtmbottom”: “”); o = [], _ forEach ([n, s, d], function (s) {_ forEach (esplit (“,”), function ( e) {(e = etrimmen () toLowerCase () replace (/ s / g, “-“) replace (/ ‘| ‘ / g, “”)) length&&opush (e)})}), cPubads ( ) setTargeting (“kw”, o), cPubads () setTargeting (“entry_group”, o), r = rScheibe (rl astIndexOf (“/”) 1), cPubads () setTargeting (“pn”, r), cCompanionAds () setRefreshUnfilledSlots (! 0), cPubads () enableAsyncRendering (), cenableServices ()}), diesload = r, thiscreate = function (e) {return new n (e)}, diesrefresh = function (s) {var t; _isString (e)? (t = thisgetById (e), s (t)): s (e)}, diesremove = function (e) {var t = eDatenid; agetElementById (t) innerHTML = “”}, diesgetAdCount = function (s) {var t, a = 0, i = object keys (m); return _each (i, function (i) {(t = m [i]) data load&&tDatalabel === e&&a}), a}, thisgetById = function (e) {return m [e]}, d = _debounce (function () {var e = {TopLeaderboard: 1, RightColTopMPU: 2, outOfPage: 99, “homepageTakeover / TopLeaderboard”: 1}, t = _sortBy (f, function (t) {return e [tDatenlabel] || 10}); _ forEach (t, function (e) {return eDataSize? r (e): isetTimeout (function () {r (e)}, 2e3)}), f = []}, 10), thisaddToPageLoadQueue = function (e) {fpush (e), d ()}); Function v (e) {var t, a = e sizes; Returns a = _IntersectionWith (a, [[970.250], [970.90], [728.90], [300.600], [300.250], [320.100], [320.50]], _ isEqual), eSize&&eSize length&&SSEANDCHAR = {slotID: eID, sizes: a, slot name: elabel}), t}}]);
}, {41: 41, 47: 47, 50: 50, 100: 100, 123: 123, 136: 136, 184: 184, 190: 190 301: 301, 302: 302}];
WindowModule [“cidLegacy”] = [Function (required, module, export) {“use strict”; DSservice (“$ cid”, function () {var r = MathBoden (100 * Mathrandom ()); return function () {return “cid-” r}});
}, {}];
WindowModule [“FacebookLegacy”] = [Function (required, module, export) {“use strict”; DSservice (“facebook”, [function () {thisfb = function (i) {windowFB&&windowFB [i] apply (this, ArrayPrototypeSlice call (arguments, 1))}}]);
}, {}];
require = (function e (t, n, r) {function s (o, u) {if (! n [o]) {if (! t [o]) {var a = type of require == “function” &&require; if (! U&&a) returns a (o,! 0); if (i) returns i (o,! 0); var f = new error (“module ‘” o “‘” cannot be found) ; f throw code = “MODULE_NOT_FOUND”, f} var l = n [o] = {exported: {}}; t [o] [0] call (lExporte, function (s) {var n = t [o] [1 ] [e]; return s (n? n: e)}, l, lExporte, e, t, n, r)} return n [o] exported} var i = typeof require == “function” &&require; for ( var o = 0; o typeof key === ‘string’ &&-SchlüsselSpiel (/ legacy $ /)) forEach (key => windowower (key));
}}

Function tryToMount (fn, el, name) {
To attempt {
fn (el); // start the controller
} catch (e) {
const elementTag = elOuterHTMLSchibe (0, elOuterHTMLindexOf (elinnerHTML));
ConsoleError (`Error initializing controller for” $ {name} “on” $ {elementTag} “`, e);
}}
}}
/ **
* Client embed js component controls
* /

Function mountComponentModules () {
ObjectKey (WindowModule) filter (key => typeof key === ‘string’ &&-SchlüsselSpiel (/ client $ /)) forEach (key => {
let controllerFn = windower require (key);

if (typeof controllerFn === ‘function’) {
const name = replace key (‘client’, ”),
instanceSelector = `[data-uri * =” _ components / $ {name} / “]`,
defaultSelector = `[data-uri $ =” _ components $ {name} “]`,
Instances = Document querySelectorAll (instanceSelector),
Standard = Document querySelectorAll (defaultSelector);

for (let el of instances) {
tryToMount (controllerFn, el, name);
}}

for (leave el by default) {
tryToMount (controllerFn, el, name);
}}
}}
});
} // Make sure that a `WindowProzessenvNODE_ENV` is available in the client for all dependencies
// Services or components that might require it
// Note: The value “ is exchanged for the actual environment variable in / lib / cmd / compile / scripts

WindowProcess = WindowProcess || {};
WindowProcessesv = WindowProcessesv || {};

if (! FensterProzessenvNODE_ENV) {
FensterProzessenvNODE_ENV = ”;
} // Note: Legacy controllers that need legacy services (eg dollar disk) must be
// Wait for DOMContentLoaded to initialize itself, as the files themselves have to be mounted first

mountLegacyServices ();
mountComponentModules ();
//]]

Maritime transport, ever given Suez

World news – FI – The Suez Canal ship is almost free: updates

Source: https://nymag.com/intelligencer/2021/03/ship-still-stuck-leaving-suez-canal-blocked-updates.html