>2>.>>>35>>>>zf>z,>>>v>4>(>.>!>>>>>>>[?>y??5??8??7 ??? ?+m?k??"??%??$??+??+???(??(??.??+??2?:?!>??yB??4K??RK?f#M?jU??Tb?5e??_h??^j??_k?3v??Jw?Xƅ?絊???W?????33?Y?s?>$?AAAWAA_|AHAH‡AQTADAIAAAAFA@AAAAAAA:AkA{BC_B)B8?B6VBhiBNkBb[zBqBBLBBBlByBhBFC C#CSeCA#C@+CC3CF?CQ@CwACACIECICC!dCnhCO]kCA7tCk6uCCCCCsCBCxCCCC7yCHD\'DDCDM DcuDU~D"Df#DD"&DDc&DAq'D"/DNv3D~:D$;=D"?D.?DD@DDDDDDDIDGID PDeQDC2^D`d`DGjD,7pDDEUBECEDvVEd=XEhET{nErEY̏EeEkEeE ֳEŸEYEGEGEEE+EUEEEEMEF"1F1FF+`F[`FgFiFoFCcuFG ?GH@GcDPGQGRTGT}UGUWG1\GG ]GU_GdG`$gG(iGC(oGG]zGG̸GB G GeGGGGHHH%H,)HDNHTH`HPSHcHATHs!H7#HN(HN+HP0HJx0HRJ2Hw=HP&>HZ~>HvACHhHH PH/OeHHeHEfHnfH:BnHZXqHHHHWHTӎH@ԘHhҚH@&HHǯHH^HҹHhHJHiHAHHLHXHL$H H!HG}HH IkvIQ_II[II[IH{IUIITI=IY I!*II+Ix1Ir;I+bBIIDIKEImKFIj0HILIXI QXI&a[IK(cIhIitIPyI{II̅IKʇI#IӟIjImIII>IbI ILICIIIII:III#IIIIIcI IjFJJJJJJJlJJKJJ/JD4JJ`@JJ DJJEJJGJ^{QJ vdJ>eJ(rJyJ>,JNJJJJJKJ(JNJHJ JXJHJbJCG KKKf(K0KT=KxBK]%HKKKK&CQK~TKCOGOOOOc\OjOO3uOO(wOp}OWݒO]TOOOOO|OOOM@OOOߟO^OOO"OeO. P_IPPUEP,PPoPPPu P$PV(P0PPc2Pc3P3P$3P=P IP\IPPPP DQPHISP UP XP5c^P2RhPP)iP\(xPP/PP2PSGPPIPȈPpPxP PEPPpPPPBiPSPАPPPwPP@PPPPP|PPPЧP P[PPPPQP,PPzPPPСPtPPPPEPX_PPQChQXVQQQ QqJQQ QQ Qyl(QCQHQQIQSPQ]QQRQYW[QQ]QYgQChQQ qQQ*qQ_0qQ?sQUwvQ.{QQÂQSQQQѐQsNQuQ(QXQSQSQQQUQoQQ[QQQ_QAQQQUQQ Q?Q VQQQQԷQQ"QQQRۂR-RpARRFR iTR:IuRJyRR݇R[ÊRRQRRR^RRRRҀRBRRRRRR^fSPwS7hS m!S(SSc1S9SyCSSOSW2aSS=aS7gSW!vS'vS„Sq҉S3ڋSSSTژSݩSSsSStS|Sq TVGTPJTTu!TTw!Tw#TEW%T6&TPs'TR(T])TT[-TV{-Tf2TPB6Tp?TPT~TTZTq/^TaTd cTT8nTTwTTT[TTT T<őT\TpǟT7T[TdT4İTtT3TTTpTTTpTTTTU+TtTMT rTTUTTTU_UMUU]KUm%U (U;Uh!=UU=UA>UTGUEGUUUU`+VUTWU1 XUqcUd{fUlUU>nUW$qU!NxUYkyU({Ut8}UUx}UuUUWU܃UU׆Ur2UșU׽UqUՄUsUMUWUUUSU=UUUWUuU] UC_UUT'UWU҆U7UU{UTUT~VVFVtFVHVV? V,Vr#9V"@VZQVTV0rVՃV%V@VWVVV?VVV8VV"VZV&VWWrWUPW Ws?$Wߏ0W0W?@W@W@WPUFWPW/PWPWUWr+\W/`W`W`WbW7(jW4ioWpWpWpWpW?W?W?W?W/W/W/WWWSq XX XPq XXX XXxXX"X~&XZ?'X^-XX1XyT8XXf9XX;XH@XAXXCXZNXٴOX$XX[X\]Xs^XX8`XGjXX؀XXсXہX_XXLÏX XśX|˟XYϧXŨXXXЭX"XXX_XY7XDXXXIX\X͙XXXXYXXQXPXHXarrBlocks[$name] = array_reduce($this->arrBlocks[$name], $callback, "[[TL_PARENT_$nonce]]"); } // Handle nested blocks if ($this->arrBlocks[$name] != "[[TL_PARENT_$nonce]]") { // Output everything before the first TL_PARENT tag if (strpos($this->arrBlocks[$name], "[[TL_PARENT_$nonce]]") !== false) { list($content) = explode("[[TL_PARENT_$nonce]]", $this->arrBlocks[$name], 2); echo $content; } // Output the current block and start a new output buffer to remove the following blocks else { echo $this->arrBlocks[$name]; ob_start(); ++$this->intBufferLevel; } } } // Child template else { // Clean the output buffer ob_clean(); // Check for nested blocks if (\count($this->arrBlockNames) > 1) { throw new \Exception('Nested blocks are not allowed in child templates'); } } } /** * End a block * * @throws \Exception If there is no open block */ public function endblock() { // Check for open blocks if (empty($this->arrBlockNames)) { throw new \Exception('You must start a block before you can end it'); } // Get the block name $name = array_pop($this->arrBlockNames); // Root template if ($this->strParent === null) { $nonce = ContaoFramework::getNonce(); // Handle nested blocks if ($this->arrBlocks[$name] != "[[TL_PARENT_$nonce]]") { // Output everything after the first TL_PARENT tag if (strpos($this->arrBlocks[$name], "[[TL_PARENT_$nonce]]") !== false) { list(, $content) = explode("[[TL_PARENT_$nonce]]", $this->arrBlocks[$name], 2); echo $content; } // Remove the overwritten content else { ob_end_clean(); --$this->intBufferLevel; } } } // Child template else { // Capture the block content $this->arrBlocks[$name][] = ob_get_clean(); // Start a new output buffer ob_start(); } } /** * Insert a template * * @param string $name The template name * @param array $data An optional data array */ public function insert($name, array $data=null) { /** @var Template $tpl */ if ($this instanceof Template) { $tpl = new static($name); } elseif (TL_MODE == 'BE') { $tpl = new BackendTemplate($name); } else { $tpl = new FrontendTemplate($name); } if ($data !== null) { $tpl->setData($data); } echo $tpl->parse(); } /** * Find a particular template file and return its path * * @param string $strTemplate The name of the template * @param string $strFormat The file extension * @param boolean $blnDefault If true, the default template path is returned * * @return string The path to the template file */ protected function getTemplatePath($strTemplate, $strFormat='html5', $blnDefault=false) { if ($blnDefault) { return TemplateLoader::getDefaultPath($strTemplate, $strFormat); } return Controller::getTemplate($strTemplate); } /** * Render a Twig template if one exists */ protected function renderTwigSurrogateIfExists(): ?string { $container = System::getContainer(); if (null === ($twig = $container->get('twig', ContainerInterface::NULL_ON_INVALID_REFERENCE))) { return null; } $templateCandidate = "@Contao/$this->strTemplate.html.twig"; if (!$twig->getLoader()->exists($templateCandidate)) { return null; } $contextFactory = $container->get('contao.twig.interop.context_factory'); $context = $this instanceof Template ? $contextFactory->fromContaoTemplate($this) : $contextFactory->fromClass($this); return $twig->render($templateCandidate, $context); } } class_alias(TemplateInheritance::class, 'TemplateInheritance'); An Error Occurred: Internal Server Error

Oops! An Error Occurred

The server returned a "500 Internal Server Error".

Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.