diff --git a/modules/core/templates/authsource_list.tpl.php b/modules/core/templates/authsource_list.tpl.php
deleted file mode 100644
index 20522518defa804e70e6e850a8f4ef9447c4b9d2..0000000000000000000000000000000000000000
--- a/modules/core/templates/authsource_list.tpl.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Template to show list of configured authentication sources.
- *
- */
-$this->data['header'] = 'Test authentication sources';
-$this->includeAtTemplateBase('includes/header.php');
-?>
-<h1><?php echo $this->data['header']; ?></h1>
-<ul>
-<?php
-foreach ($this->data['sources'] as $id) {
-    echo '<li><a href="?as='.htmlspecialchars(urlencode($id)).'">'.htmlspecialchars($id).'</a></li>';
-}
-?>
-</ul>
-
-<?php
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/cardinality_error.tpl.php b/modules/core/templates/cardinality_error.tpl.php
deleted file mode 100644
index 6dd78aa1b6168858a14063c815525b32fd2cba22..0000000000000000000000000000000000000000
--- a/modules/core/templates/cardinality_error.tpl.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Template which is shown when when an attribute violates a cardinality rule
- *
- * Parameters:
- * - 'target': Target URL.
- * - 'params': Parameters which should be included in the request.
- *
- * @package SimpleSAMLphp
- */
-
-
-$this->data['cardinality_header'] = $this->t('{core:cardinality:cardinality_header}');
-$this->data['cardinality_text'] = $this->t('{core:cardinality:cardinality_text}');
-$this->data['problematic_attributes'] = $this->t('{core:cardinality:problematic_attributes}');
-
-$this->includeAtTemplateBase('includes/header.php');
-?>
-<h1><?php echo $this->data['cardinality_header']; ?></h1>
-<p><?php echo $this->data['cardinality_text']; ?></p>
-<h3><?php echo $this->data['problematic_attributes']; ?></h3>
-<dl class="cardinalityErrorAttributes">
-<?php
-foreach ($this->data['cardinalityErrorAttributes'] as $attr => $v) {
-    echo '<dt>'.$attr.'</td><dd>';
-    echo $this->t(
-        '{core:cardinality:got_want}',
-        ['%GOT%' => $v[0], '%WANT%' => htmlspecialchars($v[1])]
-    );
-    echo '</dd></tr>';
-}
-echo '</dl>';
-if (isset($this->data['LogoutURL'])) {
-    echo '<p><a href="'.htmlspecialchars($this->data['LogoutURL']).'>">'.$this->t('{status:logout}').'</a></p>';
-}
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/frontpage_auth.tpl.php b/modules/core/templates/frontpage_auth.tpl.php
deleted file mode 100644
index afb55b30d72452381c8e02b3f17f346d5ac046dc..0000000000000000000000000000000000000000
--- a/modules/core/templates/frontpage_auth.tpl.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-$this->data['header'] = $this->t('{core:frontpage:page_title}');
-$this->includeAtTemplateBase('includes/header.php');
-
-?>
-
-<?php
-if ($this->data['isadmin']) {
-    echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>';
-} else {
-    echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'.
-        $this->t('{core:frontpage:login_as_admin}').'</a></p>';
-}
-?>
-
-<!-- <h2><?php echo $this->t('{core:frontpage:useful_links_header}'); ?></h2> -->
-<ul>
-<?php
-foreach ($this->data['links_auth'] as $link) {
-    echo '<li><a href="'.htmlspecialchars($link['href']).'">'.$this->t($link['text']).'</a>';
-    if (isset($link['deprecated']) && $link['deprecated']) {
-        echo ' <b>'.$this->t('{core:frontpage:deprecated}').'</b>';
-    }
-    echo '</li>';
-}
-?>
-</ul>
-
-<?php $this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/frontpage_config.tpl.php b/modules/core/templates/frontpage_config.tpl.php
deleted file mode 100644
index 8227e8cd0ce23e0a572b21388d5544cf57fc614f..0000000000000000000000000000000000000000
--- a/modules/core/templates/frontpage_config.tpl.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-$this->data['header'] = $this->t('{core:frontpage:page_title}');
-$this->includeAtTemplateBase('includes/header.php');
-
-?>
-
-<!--
-<div id="tabdiv">
-<ul>
-    <li><a href="#welcome"><?php echo $this->t('{core:frontpage:welcome}'); ?></a></li>
-    <li><a href="#configuration"><?php echo $this->t('{core:frontpage:configuration}'); ?></a></li>
-    <li><a href="#metadata"><?php echo $this->t('{core:frontpage:metadata}'); ?></a></li>
-</ul> -->
-<?php
-if ($this->data['isadmin']) {
-    echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>';
-} else {
-    echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'.
-        $this->t('{core:frontpage:login_as_admin}').'</a></p>';
-}
-?>
-
-<div style="margin-top: 1em;">
-    <code style="background: white; background: #f5f5f5; border: 1px dotted #bbb; padding: 1em;  color: #555" ><?php
-    echo $this->data['directory'].' ('.$this->data['version'].')';
-    ?></code>
-</div>
-
-<div style="clear: both" class="enablebox mini">
-    <table>
-
-    <?php
-    $icon_enabled  = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/accept.png" alt="enabled" />';
-    $icon_disabled = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/delete.png" alt="disabled" />';
-    echo '<tr class="'.($this->data['enablematrix']['saml20idp'] ? 'enabled' : 'disabled').'"><td>SAML 2.0 IdP</td>';
-    echo '<td>'.($this->data['enablematrix']['saml20idp'] ? $icon_enabled : $icon_disabled).'</td></tr>';
-
-    echo '<tr class="'.($this->data['enablematrix']['shib13idp'] ? 'enabled' : 'disabled').'"><td>Shib 1.3 IdP</td>';
-    echo '<td>'.($this->data['enablematrix']['shib13idp'] ? $icon_enabled : $icon_disabled).'</td></tr>';
-    ?>
-
-    </table>
-</div>
-
-<h2><?php echo $this->t('{core:frontpage:configuration}'); ?></h2>
-<ul>
-<?php
-foreach ($this->data['links_config'] as $link) {
-    echo '<li><a href="'.htmlspecialchars($link['href']).'">'.$this->t($link['text']).'</a></li>';
-}
-?>
-</ul>
-
-<?php
-if (array_key_exists('warnings', $this->data) && is_array($this->data['warnings']) && !empty($this->data['warnings'])) {
-    echo '<h2>'.$this->t('{core:frontpage:warnings}').'</h2>';
-    foreach ($this->data['warnings'] as $warning) {
-        echo '<div class="caution">'.$warning.'</div>';
-    }
-}
-
-if ($this->data['isadmin']) {
-    echo '<h2>'.$this->t('{core:frontpage:checkphp}').'</h2>';
-    echo '<div class="enablebox"><table>';
-
-    $icon_enabled = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/accept.png" alt="enabled" />';
-    $icon_disabled = '<img src="/'.$this->data['baseurlpath'].'resources/icons/silk/delete.png" alt="disabled" />';
-
-    foreach ($this->data['funcmatrix'] as $func) {
-        echo '<tr class="'.($func['enabled'] ? 'enabled' : 'disabled').'"><td>'.
-            ($func['enabled'] ? $icon_enabled : $icon_disabled).'</td>';
-        echo '<td>'.$this->t($this->data['requiredmap'][$func['required']]).'</td><td>'.$func['descr'].'</td></tr>';
-    }
-    echo '</table></div>';
-}
-
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/frontpage_federation.tpl.php b/modules/core/templates/frontpage_federation.tpl.php
deleted file mode 100644
index 6bdce021115624cd0b38451de208c217e64dc1a3..0000000000000000000000000000000000000000
--- a/modules/core/templates/frontpage_federation.tpl.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-$this->data['header'] = $this->t('{core:frontpage:page_title}');
-$this->includeAtTemplateBase('includes/header.php');
-
-if ($this->data['isadmin']) {
-    echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>';
-} else {
-    echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'.
-        $this->t('{core:frontpage:login_as_admin}').'</a></p>';
-}
-
-if (is_array($this->data['metaentries']['hosted']) && count($this->data['metaentries']['hosted']) > 0) {
-    echo '<dl>';
-    foreach ($this->data['metaentries']['hosted'] as $hm) {
-        echo '<dt>'.$this->t($this->data['mtype'][$hm['metadata-set']]).'</dt>';
-        echo '<dd>';
-        echo '<p>Entity ID: '.$hm['entityid'];
-        if (isset($hm['deprecated']) && $hm['deprecated']) {
-            echo '<br /><b>Deprecated</b>';
-        }
-        if ($hm['entityid'] !== $hm['metadata-index']) {
-            echo '<br />Index: '.$hm['metadata-index'];
-        }
-        if (!empty($hm['name'])) {
-            echo '<br /><strong>'.
-                $this->getTranslator()->getPreferredTranslation(SimpleSAML\Utils\Arrays::arrayize($hm['name'], 'en')).
-                '</strong>';
-        }
-        if (!empty($hm['descr'])) {
-            echo '<br /><strong>'.
-                $this->getTranslator()->getPreferredTranslation(SimpleSAML\Utils\Arrays::arrayize($hm['descr'], 'en')).
-                '</strong>';
-        }
-
-        echo '<br  />[ <a href="'.$hm['metadata-url'].'">'.$this->t('{core:frontpage:show_metadata}').'</a> ]';
-
-        echo '</p></dd>';
-    }
-    echo '</dl>';
-}
-
-if (is_array($this->data['metaentries']['remote']) && count($this->data['metaentries']['remote']) > 0) {
-    $now = time();
-    foreach ($this->data['metaentries']['remote'] as $setkey => $set) {
-        echo '<fieldset class="fancyfieldset"><legend>'.$this->t($this->data['mtype'][$setkey]).' (Trusted)</legend>';
-        echo '<ul>';
-        foreach ($set as $entry) {
-            echo '<li>';
-            echo('<a href="'.
-                htmlspecialchars(
-                    SimpleSAML\Module::getModuleURL(
-                        'core/show_metadata.php',
-                        ['entityid' => $entry['entityid'], 'set' => $setkey]
-                    )
-                ).'">');
-            if (!empty($entry['name'])) {
-                echo htmlspecialchars($this->getTranslator()->getPreferredTranslation(
-                    SimpleSAML\Utils\Arrays::arrayize($entry['name'], 'en')
-                ));
-            } elseif (!empty($entry['OrganizationDisplayName'])) {
-                echo htmlspecialchars($this->getTranslator()->getPreferredTranslation(
-                    SimpleSAML\Utils\Arrays::arrayize($entry['OrganizationDisplayName'], 'en')
-                ));
-            } else {
-                echo htmlspecialchars($entry['entityid']);
-            }
-            echo '</a>';
-            if (array_key_exists('expire', $entry)) {
-                if ($entry['expire'] < $now) {
-                    echo '<span style="color: #500; font-weight: bold"> (expired '.
-                        number_format(($now - $entry['expire']) / 3600, 1).' hours ago)</span>';
-                } else {
-                    echo ' (expires in '.number_format(($entry['expire'] - $now) / 3600, 1).' hours)';
-                }
-            }
-            echo '</li>';
-        }
-        echo '</ul>';
-        echo '</fieldset>';
-    }
-}
-
-echo '<h2>'.$this->t('{core:frontpage:tools}').'</h2>';
-echo '<ul>';
-foreach ($this->data['links_federation'] as $link) {
-    echo '<li><a href="'.htmlspecialchars($link['href']).'">'.$this->t($link['text']).'</a></li>';
-}
-echo '</ul>';
-if ($this->data['isadmin']) {
-?>
-    <fieldset class="fancyfieldset">
-        <legend>Lookup metadata</legend>
-        <form action="<?php echo SimpleSAML\Module::getModuleURL('core/show_metadata.php'); ?>" method="get">
-            <p style="margin: 1em 2em ">Look up metadata for entity:
-                <select name="set">
-<?php
-    if (is_array($this->data['metaentries']['remote']) && count($this->data['metaentries']['remote']) > 0) {
-        foreach ($this->data['metaentries']['remote'] as $setkey => $set) {
-            echo '<option value="'.htmlspecialchars($setkey).'">'.$this->t($this->data['mtype'][$setkey]).'</option>';
-        }
-    }
-?>
-                </select>
-                <input type="text" name="entityid" />
-                <button class="btn" type="submit">Lookup </button>
-            </p>
-        </form>
-    </fieldset>
-<?php
-}
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/frontpage_welcome.tpl.php b/modules/core/templates/frontpage_welcome.tpl.php
deleted file mode 100644
index da5c2e5297df57f79fd9fac751a7f0832cb3cebc..0000000000000000000000000000000000000000
--- a/modules/core/templates/frontpage_welcome.tpl.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-$this->data['header'] = $this->t('{core:frontpage:page_title}');
-$this->includeAtTemplateBase('includes/header.php');
-
-if ($this->data['isadmin']) {
-    echo '<p class="float-r youareadmin">'.$this->t('{core:frontpage:loggedin_as_admin}').'</p>';
-} else {
-    echo '<p class="float-r youareadmin"><a href="'.$this->data['loginurl'].'">'.
-        $this->t('{core:frontpage:login_as_admin}').'</a></p>';
-}
-?>
-
-<p><?php echo $this->t('{core:frontpage:intro}'); ?></p>
-
-<ul>
-<?php
-foreach ($this->data['links_welcome'] as $link) {
-    echo '<li><a href="'. htmlspecialchars($link['href']).'">'.$this->t($link['text']).'</a></li>';
-}
-?>
-</ul>
-
-<?php $this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/loginuserpass.tpl.php b/modules/core/templates/loginuserpass.tpl.php
deleted file mode 100644
index 30c8db5499bd5af0d1a4bf0c827b40498b5c091b..0000000000000000000000000000000000000000
--- a/modules/core/templates/loginuserpass.tpl.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-$this->data['header'] = $this->t('{login:user_pass_header}');
-
-if (strlen($this->data['username']) > 0) {
-    $this->data['autofocus'] = 'password';
-} else {
-    $this->data['autofocus'] = 'username';
-}
-$this->includeAtTemplateBase('includes/header.php');
-
-if ($this->data['errorcode'] !== null) {
-?>
-    <div style="border-left: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8; background: #f5f5f5">
-        <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-error.48x48.png"
-             class="float-l erroricon" style="margin: 15px" alt=""/>
-
-        <h2><?php echo $this->t('{login:error_header}'); ?></h2>
-
-        <p><strong>
-        <?php
-            echo htmlspecialchars(
-                $this->t(
-                    $this->data['errorcodes']['title'][$this->data['errorcode']],
-                    $this->data['errorparams']
-                )
-            );
-        ?>
-        </strong></p>
-        <p>
-        <?php
-            echo htmlspecialchars(
-                $this->t(
-                    $this->data['errorcodes']['descr'][$this->data['errorcode']],
-                    $this->data['errorparams']
-                )
-            );
-        ?>
-        </p>
-    </div>
-<?php
-}
-?>
-    <h2 style="break: both"><?php echo $this->t('{login:user_pass_header}'); ?></h2>
-
-    <p class="logintext"><?php echo $this->t('{login:user_pass_text}'); ?></p>
-
-    <form action="?" method="post" name="f">
-        <table>
-            <tr>
-                <td rowspan="2" class="loginicon">
-                    <img alt=""
-                        src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-authentication.48x48.png" />
-                </td>
-                <td><label for="username"><?php echo $this->t('{login:username}'); ?></label></td>
-                <td>
-                    <input id="username" <?php echo ($this->data['forceUsername']) ? 'disabled="disabled"' : ''; ?>
-                        type="text" name="username"<?php echo $this->data['forceUsername'] ? '' : ' autocomplete="username" tabindex="1"'; ?>
-                        value="<?php echo htmlspecialchars($this->data['username']); ?>" />
-                </td>
-            <?php
-            if ($this->data['rememberUsernameEnabled'] && !$this->data['forceUsername']) {
-                // display the "remember my username" checkbox
-            ?>
-                <td id="regular_remember_username">
-                    <input type="checkbox" id="remember_username" tabindex="4"
-                           <?php echo ($this->data['rememberUsernameChecked']) ? 'checked="checked"' : ''; ?>
-                           name="remember_username" value="Yes" />
-                    <small><?php echo $this->t('{login:remember_username}'); ?></small>
-                </td>
-            <?php
-            }
-            ?>
-            </tr>
-            <?php
-            if ($this->data['rememberUsernameEnabled'] && !$this->data['forceUsername']) {
-                // display the "remember my username" checkbox
-            ?>
-            <tr id="mobile_remember_username">
-                <td>&nbsp;</td>
-                <td>
-                    <input type="checkbox" id="remember_username" tabindex="4"
-                        <?php echo ($this->data['rememberUsernameChecked']) ? 'checked="checked"' : ''; ?>
-                        name="remember_username" value="Yes" />
-                    <small><?php echo $this->t('{login:remember_username}'); ?></small>
-                </td>
-            </tr>
-            <?php
-            }
-            ?>
-            <tr>
-                <td><label for="password"><?php echo $this->t('{login:password}'); ?></label></td>
-                <td><input id="password" type="password" tabindex="2" name="password" autocomplete="current-password" /></td>
-            <?php
-            if ($this->data['rememberMeEnabled']) {
-                // display the remember me checkbox (keep me logged in)
-            ?>
-                <td id="regular_remember_me">
-                    <input type="checkbox" id="remember_me" tabindex="5"
-                        <?php echo ($this->data['rememberMeChecked']) ? 'checked="checked"' : ''; ?>
-                        name="remember_me" value="Yes" />
-                    <small><?php echo $this->t('{login:remember_me}'); ?></small>
-                </td>
-            <?php
-            }
-            ?>
-            </tr>
-            <?php
-            if ($this->data['rememberMeEnabled']) {
-                // display the remember me checkbox (keep me logged in)
-            ?>
-            <tr>
-                <td></td>
-                <td id="mobile_remember_me">
-                    <input type="checkbox" id="remember_me" tabindex="5"
-                        <?php echo ($this->data['rememberMeChecked']) ? 'checked="checked"' : ''; ?>
-                        name="remember_me" value="Yes" />
-                    <small><?php echo $this->t('{login:remember_me}'); ?></small>
-                </td>
-            </tr>
-            <?php
-            }
-            ?>
-            <?php
-            if (array_key_exists('organizations', $this->data)) {
-            ?>
-                <tr>
-                    <td></td>
-                    <td><label for="organization"><?php echo $this->t('{login:organization}'); ?></label></td>
-                    <td><select name="organization" tabindex="3">
-                        <?php
-                        if (array_key_exists('selectedOrg', $this->data)) {
-                            $selectedOrg = $this->data['selectedOrg'];
-                        } else {
-                            $selectedOrg = null;
-                        }
-
-                        foreach ($this->data['organizations'] as $orgId => $orgDesc) {
-                            if (is_array($orgDesc)) {
-                                $orgDesc = $this->t($orgDesc);
-                            }
-
-                            if ($orgId === $selectedOrg) {
-                                $selected = 'selected="selected" ';
-                            } else {
-                                $selected = '';
-                            }
-
-                            echo '<option '.$selected.'value="'.htmlspecialchars($orgId).'">'.
-                                htmlspecialchars($orgDesc).'</option>';
-                        }
-                        ?>
-                        </select></td>
-                    <td style="padding: .4em;">
-                        <?php
-                            if ($this->data['rememberOrganizationEnabled']) {
-                                echo str_repeat("\t", 4);
-                                echo '<input type="checkbox" id="remember_organization" tabindex="5"'.
-                                    ' name="remember_organization" value="Yes" '.
-                                    ($this->data['rememberOrganizationChecked'] ? 'checked="Yes" /> ' : '/> ').
-                                     $this->t('{login:remember_organization}');
-                            }
-                        ?>
-                    </td>
-                </tr>
-            <?php
-            }
-            ?>
-            <tr id="submit">
-                <td class="loginicon"></td><td></td>
-                <td>
-                    <button id="submit_button" class="btn" tabindex="6" type="submit">
-                        <?php echo $this->t('{login:login_button}'); ?>
-                    </button>
-                </td>
-            </tr>
-        </table>
-        <input type="hidden" id="processing_trans" value="<?php echo $this->t('{login:processing}'); ?>" />
-        <?php
-        foreach ($this->data['stateparams'] as $name => $value) {
-            echo '<input type="hidden" name="'.htmlspecialchars($name).'" value="'.htmlspecialchars($value).'" />';
-        }
-        ?>
-    </form>
-<?php
-if (!empty($this->data['links'])) {
-    echo '<ul class="links" style="margin-top: 2em">';
-    foreach ($this->data['links'] as $l) {
-        echo '<li><a href="'.htmlspecialchars($l['href']).'">'.htmlspecialchars($this->t($l['text'])).'</a></li>';
-    }
-    echo '</ul>';
-}
-echo '<h2 class="logintext">'.$this->t('{login:help_header}').'</h2>';
-echo '<p class="logintext">'.$this->t('{login:help_text}').'</p>';
-
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/logout-iframe-wrapper.tpl.php b/modules/core/templates/logout-iframe-wrapper.tpl.php
deleted file mode 100644
index a26e55a62b72e87ae1213b0ada1018aa3edc544e..0000000000000000000000000000000000000000
--- a/modules/core/templates/logout-iframe-wrapper.tpl.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-use Webmozart\Assert\Assert;
-
-$id = $this->data['auth_state'];
-$SPs = $this->data['SPs'];
-
-$iframeURL = 'logout-iframe.php?type=embed&id='.urlencode($id);
-
-// pretty arbitrary height, but should have enough safety margins for most cases
-$iframeHeight = 25 + count($SPs) * 4;
-
-$this->data['header'] = $this->t('{logout:progress}');
-$this->includeAtTemplateBase('includes/header.php');
-echo '<iframe style="width:100%; height:'.$iframeHeight.'em; border:0;" src="'.
-    htmlspecialchars($iframeURL).'"></iframe>';
-
-foreach ($SPs as $assocId => $sp) {
-    $spId = sha1($assocId);
-
-    if ($sp['core:Logout-IFrame:State'] !== 'inprogress') {
-        continue;
-    }
-    Assert::notNull($sp['core:Logout-IFrame:URL']);
-
-    $url = $sp["core:Logout-IFrame:URL"];
-
-    echo '<iframe style="width:0; height:0; border:0;" src="'.htmlspecialchars($url).'"></iframe>';
-}
-
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/logout-iframe.tpl.php b/modules/core/templates/logout-iframe.tpl.php
deleted file mode 100644
index fca62bba7b2762e7fa8bf5532bae9bca3b52b5e1..0000000000000000000000000000000000000000
--- a/modules/core/templates/logout-iframe.tpl.php
+++ /dev/null
@@ -1,200 +0,0 @@
-<?php
-
-use Webmozart\Assert\Assert;
-
-$id = $this->data['auth_state'];
-$type = $this->data['type'];
-$from = $this->data['from'];
-$SPs = $this->data['SPs'];
-
-$stateImage = [
-    'unsupported' => '/'.$this->data['baseurlpath'].'resources/icons/silk/delete.png',
-    'completed'   => '/'.$this->data['baseurlpath'].'resources/icons/silk/accept.png',
-    'onhold'      => '/'.$this->data['baseurlpath'].'resources/icons/bullet16_grey.png',
-    'inprogress'  => '/'.$this->data['baseurlpath'].'resources/progress.gif',
-    'failed'      => '/'.$this->data['baseurlpath'].'resources/icons/silk/exclamation.png',
-];
-
-$stateText = [
-    'unsupported' => '',
-    'completed'   => $this->t('{logout:completed}'),
-    'onhold'      => '',
-    'inprogress'  => $this->t('{logout:progress}'),
-    'failed'      => $this->t('{logout:failed}'),
-];
-
-$spStatus = [];
-$spTimeout = [];
-$nFailed = 0;
-$nProgress = 0;
-foreach ($SPs as $assocId => $sp) {
-    Assert::notNull($sp['core:Logout-IFrame:State']);
-    $state = $sp['core:Logout-IFrame:State'];
-    $spStatus[sha1($assocId)] = $state;
-    if (isset($sp['core:Logout-IFrame:Timeout'])) {
-        $spTimeout[sha1($assocId)] = $sp['core:Logout-IFrame:Timeout'] - time();
-    } else {
-        $spTimeout[sha1($assocId)] = 5;
-    }
-    if ($state === 'failed') {
-        $nFailed += 1;
-    } elseif ($state === 'inprogress') {
-        $nProgress += 1;
-    }
-}
-
-if ($from !== null) {
-    $from = $this->getTranslator()->getPreferredTranslation($from);
-}
-
-if (!isset($this->data['head'])) {
-    $this->data['head'] = '';
-}
-
-$this->data['head'] .= '
-<script type="text/javascript" language="JavaScript">
-window.stateImage = '.json_encode($stateImage).';
-window.stateText = '.json_encode($stateText).';
-window.spStatus = '.json_encode($spStatus).';
-window.spTimeout = '.json_encode($spTimeout).';
-window.type = "'.$type.'";
-</script>';
-
-$this->data['head'] .= '<script type="text/javascript" src="logout-iframe.js"></script>';
-
-if ($type === 'embed') {
-    $this->data['head'] .= '<meta http-equiv="refresh" content="1" />';
-}
-
-$this->data['header'] = $this->t('{logout:progress}');
-if ($type === 'embed') {
-    $this->includeAtTemplateBase('includes/header-embed.php');
-} else {
-    $this->includeAtTemplateBase('includes/header.php');
-}
-?>
-<div id="wrap">
-    <div id="content">
-<?php
-if ($from !== null) {
-    echo '<div><img style="float: left; margin-right: 12px" src="/'.$this->data['baseurlpath'].
-        'resources/icons/checkmark.48x48.png" alt="Successful logout" />';
-    echo '<p style="padding-top: 16px; ">'.
-        $this->t('{logout:loggedoutfrom}', ['%SP%' => '<strong>'.htmlspecialchars($from).'</strong>']).'</p>';
-    echo '<p style="height: 0px; clear: left;"></p></div>';
-}
-
-echo '<div style="margin-top: 3em; clear: both">';
-
-echo '<p style="margin-bottom: .5em">';
-if ($type === 'init') {
-    echo $this->t('{logout:also_from}');
-} else {
-    echo $this->t('{logout:logging_out_from}');
-}
-?>
-    </p>
-    <table id="slostatustable">
-<?php
-foreach ($SPs as $assocId => $sp) {
-    if (isset($sp['core:Logout-IFrame:Name'])) {
-        $spName = $this->getTranslator()->getPreferredTranslation($sp['core:Logout-IFrame:Name']);
-    } else {
-        $spName = $assocId;
-    }
-
-    Assert::notNull($sp['core:Logout-IFrame:State']);
-    $spState = $sp['core:Logout-IFrame:State'];
-
-    $spId = sha1($assocId);
-
-    echo '<tr>';
-    echo '<td style="width: 3em;"></td>';
-    echo '<td>';
-    echo '<img class="logoutstatusimage" id="statusimage-'.$spId.'"  src="'.htmlspecialchars($stateImage[$spState]).
-        '" alt="'.htmlspecialchars($stateText[$spState]).'"/>';
-    echo '</td>';
-    echo '<td>'.htmlspecialchars($spName).'</td>';
-    echo '</tr>';
-}
-
-if (isset($from)) {
-    $logoutCancelText = $this->t('{logout:logout_only}', ['%SP%' => htmlspecialchars($from)]);
-} else {
-    $logoutCancelText = $this->t('{logout:no}');
-}
-
-?>
-    </table>
-</div>
-
-<?php
-if ($type === 'init') {
-?>
-<div id="confirmation" style="margin-top: 1em">
-    <p><?php echo $this->t('{logout:logout_all_question}'); ?> <br/></p>
-    <form id="startform" method="get" style="display:inline;" action="logout-iframe.php">
-        <input type="hidden" name="id" value="<?php echo $id; ?>"/>
-        <input type="hidden" id="logout-type-selector" name="type" value="nojs"/>
-        <button type="submit" id="logout-all" name="ok" class="btn">
-        <?php echo $this->t('{logout:logout_all}'); ?>
-        </button>
-    </form>
-    <form method="get" style="display:inline;" action="logout-iframe-done.php">
-        <input type="hidden" name="id" value="<?php echo $id; ?>"/>
-        <button type="submit" name="cancel" class="btn"><?php echo $logoutCancelText; ?></button>
-    </form>
-</div>
-<?php
-} else {
-    if ($nFailed > 0) {
-        $displayStyle = '';
-    } else {
-        $displayStyle = 'display: none;';
-    }
-    echo '<div id="logout-failed-message" style="margin-top: 1em; border: 1px solid #ccc; padding: 1em; '.
-        'background: #eaeaea;'.$displayStyle.'">';
-    echo '<img src="/'.$this->data['baseurlpath'].
-        'resources/icons/experience/gtk-dialog-warning.48x48.png" alt="" '.
-        'style="float: left; margin-right: 5px;" />';
-    echo '<p>'.$this->t('{logout:failedsps}').'</p>';
-    echo '<form method="post" action="logout-iframe-done.php" id="failed-form" target="_top">';
-    echo '<input type="hidden" name="id" value="'.$id.'" />';
-    echo '<button type="submit" name="continue" class="btn">'.$this->t('{logout:return}').'</button>';
-    echo '</form>';
-    echo '</div>';
-
-    if ($nProgress == 0 && $nFailed == 0) {
-        echo '<div id="logout-completed">';
-    } else {
-        echo '<div id="logout-completed" style="display:none;">';
-    }
-    echo '<p>'.$this->t('{logout:success}').'</p>';
-?>
-    <form method="post" action="logout-iframe-done.php" id="done-form" target="_top">
-        <input type="hidden" name="id" value="<?php echo $id; ?>"/>
-        <button type="submit" name="continue" class="btn"><?php echo $this->t('{logout:return}'); ?></button>
-    </form>
-</div>
-<?php
-    if ($type === 'js') {
-        foreach ($SPs as $assocId => $sp) {
-            $spId = sha1($assocId);
-            if ($sp['core:Logout-IFrame:State'] !== 'inprogress') {
-                continue;
-            }
-            Assert::notNull($sp['core:Logout-IFrame:URL']);
-            echo '<iframe style="width:0; height:0; border:0;" src="'.
-                htmlspecialchars($sp['core:Logout-IFrame:URL']).'"></iframe>';
-        }
-    }
-}
-?>
-        </div><!-- #content -->
-    </div><!-- #wrap -->
-<?php
-if ($type === 'embed') {
-    $this->includeAtTemplateBase('includes/footer-embed.php');
-} else {
-    $this->includeAtTemplateBase('includes/footer.php');
-}
diff --git a/modules/core/templates/no_cookie.tpl.php b/modules/core/templates/no_cookie.tpl.php
deleted file mode 100644
index 8c6c34e25288a99051c1675a055886d68881928b..0000000000000000000000000000000000000000
--- a/modules/core/templates/no_cookie.tpl.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-use Webmozart\Assert\Assert;
-
-Assert::keyExists($this->data, 'retryURL');
-$retryURL = $this->data['retryURL'];
-
-$header = htmlspecialchars($this->t('{core:no_cookie:header}'));
-$description = htmlspecialchars($this->t('{core:no_cookie:description}'));
-$retry = htmlspecialchars($this->t('{core:no_cookie:retry}'));
-
-$this->data['header'] = $header;
-$this->includeAtTemplateBase('includes/header.php');
-
-echo('<h2>'.$header.'</h2>');
-echo('<p>'.$description.'</p>');
-
-if ($retryURL !== null) {
-    echo('<ul>');
-    echo('<li><a href="'.htmlspecialchars($retryURL).'" id="retry">'.$retry.'</a></li>');
-    echo('</ul>');
-}
-
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/no_metadata.tpl.php b/modules/core/templates/no_metadata.tpl.php
deleted file mode 100644
index a00f3ce911bd2bf97f7ab11dc6200e4a109dd015..0000000000000000000000000000000000000000
--- a/modules/core/templates/no_metadata.tpl.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-echo '<p>'.$this->t('{core:no_metadata:config_problem}').'</p>';
-
-echo '<ul>';
-echo '<li>'.$this->t('{core:no_metadata:suggestion_user_link}').'</li>';
-echo '<li>'.$this->t('{core:no_metadata:suggestion_developer}').'</li>';
-echo '</ul>';
diff --git a/modules/core/templates/no_state.tpl.php b/modules/core/templates/no_state.tpl.php
deleted file mode 100644
index 1327a4b2dbf7e1b19151e75699517ae65c9c64d1..0000000000000000000000000000000000000000
--- a/modules/core/templates/no_state.tpl.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-echo '<h3>'.$this->t('{core:no_state:suggestions}').'</h3>';
-echo '<ul>';
-echo '<li>'.$this->t('{core:no_state:suggestion_badlink}').'</li>';
-echo '<li>'.$this->t('{core:no_state:suggestion_goback}').'</li>';
-echo '<li>'.$this->t('{core:no_state:suggestion_closebrowser}').'</li>';
-echo '</ul>';
-
-echo '<h3>'.$this->t('{core:no_state:causes}').'</h3>';
-echo '<ul>';
-echo '<li>'.$this->t('{core:no_state:cause_badlink}').'</li>';
-echo '<li>'.$this->t('{core:no_state:cause_backforward}').'</li>';
-echo '<li>'.$this->t('{core:no_state:cause_openbrowser}').'</li>';
-echo '<li>'.$this->t('{core:no_state:cause_nocookie}').'</li>';
-echo '</ul>';
diff --git a/modules/core/templates/short_sso_interval.tpl.php b/modules/core/templates/short_sso_interval.tpl.php
deleted file mode 100644
index 2e305c2b9ddf1ac3a6a190c36a7fc626e3665040..0000000000000000000000000000000000000000
--- a/modules/core/templates/short_sso_interval.tpl.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Template which is shown when there is only a short interval since the user was last authenticated.
- *
- * Parameters:
- * - 'target': Target URL.
- * - 'params': Parameters which should be included in the request.
- *
- * @package SimpleSAMLphp
- */
-
-
-$this->data['header'] = $this->t('{core:short_sso_interval:warning_header}');
-$this->data['autofocus'] = 'contbutton';
-
-$this->includeAtTemplateBase('includes/header.php');
-$target = htmlspecialchars($this->data['target']);
-$contButton = htmlspecialchars($this->t('{core:short_sso_interval:retry}'));
-?>
-<h1><?php echo $this->data['header']; ?></h1>
-<form style="display: inline; margin: 0px; padding: 0px" action="<?php echo $target; ?>">
-
-<?php
-// Embed hidden fields...
-foreach ($this->data['params'] as $name => $value) {
-    echo '<input type="hidden" name="'.htmlspecialchars($name).'" value="'.htmlspecialchars($value).'" />';
-}
-?>
-    <p><?php echo $this->t('{core:short_sso_interval:warning}'); ?></p>
-    <div class="trackidtext"><p>
-        <?php echo $this->t('{errors:report_trackid}'); ?>
-        <span class="trackid"><?php echo $this->data['trackId']; ?></span>
-        </p>
-    </div>
-
-    <input type="submit" name="continue" id="contbutton" value="<?php echo $contButton; ?>" />
-
-</form>
-
-<?php
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/core/templates/show_metadata.tpl.php b/modules/core/templates/show_metadata.tpl.php
deleted file mode 100644
index 2a23d6e91d898fc7c6fc880a50b70962a24d160a..0000000000000000000000000000000000000000
--- a/modules/core/templates/show_metadata.tpl.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-$this->includeAtTemplateBase('includes/header.php');
-?>
-<div class="metadatabox">
-    <button data-clipboard-target="#metadata" id="btncp" class="btn topright" style="margin-right: 0.5em;">
-        <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>"
-             alt="Copy to clipboard" />
-    </button>
-    <pre id="metadata">
-$metadata['<?php echo $this->data['m']['metadata-index']; unset($this->data['m']['metadata-index']) ?>'] = <?php
-    echo htmlspecialchars(var_export($this->data['m'], true));
-?>;
-    </pre>
-</div>
-<script type="text/javascript">
-    var clipboard = new ClipboardJS('#btncp');
-</script>
-<br/>
-<p><a href="<?php echo $this->data['backlink']; ?>"><span class="btn">Back</span></a></p>
-
-<?php
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/cron/templates/croninfo-result.tpl.php b/modules/cron/templates/croninfo-result.tpl.php
deleted file mode 100644
index e4f0dc1695a06d856d5eba5a01732e0810641ca2..0000000000000000000000000000000000000000
--- a/modules/cron/templates/croninfo-result.tpl.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-$this->data['header'] = $this->t('cron_header');
-$this->includeAtTemplateBase('includes/header.php');
-?>
-        <p><?php echo $this->t('cron_result_title') ?></p>
-        <pre style="color: #444; padding: 1em; border: 1px solid #eee; margin: .4em "><code>
-<?php
-
-echo '            <h1>'.$this->t('cron_report_title').'</h1><p>'.$this->t('ran_text').
-    ' '.$this->data['time'].'</p>'.'<p>URL: <code>'.$this->data['url'].'</code></p>'.
-    '<p>Tag: '.$this->data['tag']."</p>\n\n".
-    '<ul><li>'.join('</li><li>', $this->data['summary']).'</li></ul>';
-?>
-        </code></pre>
-</div>
-
-<?php
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/cron/templates/croninfo.tpl.php b/modules/cron/templates/croninfo.tpl.php
deleted file mode 100644
index dc1bf0583098993a14127e1214e9385f8e05afdc..0000000000000000000000000000000000000000
--- a/modules/cron/templates/croninfo.tpl.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-$this->data['header'] = $this->t('cron_header');
-$this->includeAtTemplateBase('includes/header.php');
-
-$run_text = $this->t('run_text');
-?>
-
-        <p><?php echo $this->t('cron_info') ?></p>
-
-        <p><?php echo $this->t('cron_suggestion') ?></p>
-        <pre style="font-size: x-small; color: #444; padding: 1em; border: 1px solid #eee; margin: .4em "><code>
-<?php
-foreach ($this->data['urls'] as $url) {
-    echo "# ".$run_text. ' ['.$url['tag'].']'."\n";
-    echo $url['int']." curl --silent \"".$url['exec_href']."\" > /dev/null 2>&1\n";
-}
-?>
-        </code></pre>
-
-        <br />
-        <p><?php echo $this->t('cron_execution') ?></p>
-        <ul>
-<?php
-foreach ($this->data['urls'] as $url) {
-    echo '        <li><a href="'.$url['href'].'">'.$run_text.' ['.$url['tag'].']'.'</a></li>';
-}
-?>
-        </ul>
-</div>
-
-<?php
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/multiauth/templates/selectsource.tpl.php b/modules/multiauth/templates/selectsource.tpl.php
deleted file mode 100644
index d40712998d5c636d1a593fda1defc51bb203c6c9..0000000000000000000000000000000000000000
--- a/modules/multiauth/templates/selectsource.tpl.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-$this->data['header'] = $this->t('{multiauth:multiauth:select_source_header}');
-$this->includeAtTemplateBase('includes/header.php');
-?>
-
-<h2><?php echo $this->t('{multiauth:multiauth:select_source_header}'); ?></h2>
-
-<p><?php echo $this->t('{multiauth:multiauth:select_source_text}'); ?></p>
-
-<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="get">
-    <input type="hidden" name="AuthState" value="<?php echo htmlspecialchars($this->data['authstate']); ?>" />
-    <ul>
-<?php
-foreach ($this->data['sources'] as $source) {
-    echo '<li class="'.htmlspecialchars($source['css_class']).' authsource">';
-    if ($source['source'] === $this->data['preferred']) {
-        $autofocus = ' autofocus="autofocus"';
-    } else {
-        $autofocus = '';
-    }
-    $name = 'src-'.base64_encode($source['source']);
-    echo '<input type="submit" name="'.htmlspecialchars($name).'"'.$autofocus.' '.
-        'id="button-'.htmlspecialchars($source['source']).'" '.
-        'value="'.htmlspecialchars($source['text']).'" />';
-    echo '</li>';
-}
-?>
-    </ul>
-</form>
-<?php $this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/saml/templates/proxy/invalid_session.tpl.php b/modules/saml/templates/proxy/invalid_session.tpl.php
deleted file mode 100644
index ede358580d665a0a8c88c8b340931d97d458debd..0000000000000000000000000000000000000000
--- a/modules/saml/templates/proxy/invalid_session.tpl.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/**
- * Template to ask a user whether to logout because of a reauthentication or not.
- *
- * @var \SimpleSAML\XHTML\Template $this
- *
- * @author Jaime Pérez Crespo, UNINETT AS <jaime.perez@uninett.no>
- *
- * @package SimpleSAMLphp
- */
-
-if (!isset($this->data['head'])) {
-    $this->data['head'] = '';
-}
-$this->includeAtTemplateBase('includes/header.php');
-
-$translator = $this->getTranslator();
-
-$params = [
-    '%IDP%' => $this->data['idp_name'],
-    '%SP%' => $this->data['sp_name'],
-];
-?>
-    <h2><?php echo $translator->t('{saml:proxy:invalid_idp}'); ?></h2>
-    <p><?php echo $translator->t('{saml:proxy:invalid_idp_description}', $params); ?></p>
-    <form method="post" action="?">
-        <input type="hidden" name="AuthState" value="<?php echo htmlspecialchars($this->data['AuthState']); ?>" />
-        <input type="submit" name="continue" value="<?php echo $translator->t('{general:yes_continue}'); ?>" />
-        <input type="submit" name="cancel" value="<?php echo $translator->t('{general:no_cancel}'); ?>" />
-    </form>
-<?php
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/modules/saml/templates/sp/wrong_authncontextclassref.tpl.php b/modules/saml/templates/sp/wrong_authncontextclassref.tpl.php
deleted file mode 100644
index 1872462c0fbcce863276584be9d2906a8b3f6f11..0000000000000000000000000000000000000000
--- a/modules/saml/templates/sp/wrong_authncontextclassref.tpl.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-$header = htmlspecialchars($this->t('{saml:wrong_authncontextclassref:header}'));
-$description = htmlspecialchars($this->t('{saml:wrong_authncontextclassref:description}'));
-$retry = htmlspecialchars($this->t('{saml:wrong_authncontextclassref:retry}'));
-
-$this->data['header'] = $header;
-$this->includeAtTemplateBase('includes/header.php');
-
-echo('<h2>' . $header . '</h2>');
-echo('<p>' . $description . '</p>');
-
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/psalm.xml b/psalm.xml
index ff74be3ca12ca4b9b6dad2589ca037f8ae1eeeb2..1cdd446a50fd28975dc53ae6ef2d4a659e5d9f57 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -25,20 +25,7 @@
 
         <!-- Ignore deprecated classes -->
         <ignoreFiles>
-            <directory name="lib/SimpleSAML/Bindings/Shib13" />
-            <directory name="lib/SimpleSAML/XML/Shib13" />
-            <directory name="tests/lib/SimpleSAML/XML/Shib13" />
-
-            <file name="lib/SimpleSAML/Auth/DefaultAuth.php" />
-            <file name="lib/SimpleSAML/Auth/TimeLimitedToken.php" />
-            <file name="lib/SimpleSAML/Utilities.php" />
-            <file name="tests/lib/SimpleSAML/Auth/TimeLimitedTokenTest.php" />
-
-            <!-- Ignore deprecated PHP-templates - Remove for 2.0 -->
-            <file name="modules/**/templates/*.tpl.php" />
-            <file name="modules/saml/templates/proxy/*.tpl.php" />
-            <file name="modules/saml/templates/sp/*.tpl.php" />
-
+            <directory name="tests/Utils/Stubs" />
             <directory name="vendor" />
         </ignoreFiles>
     </projectFiles>
diff --git a/templates/IFrameLogoutHandler.tpl.php b/templates/IFrameLogoutHandler.tpl.php
deleted file mode 100644
index 2a38f4bb86c6283eced23ce54b3c45ae887629ce..0000000000000000000000000000000000000000
--- a/templates/IFrameLogoutHandler.tpl.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Logout response from <?= htmlspecialchars(var_export($this->data['assocId'])); ?></title>
-    <script>
-<?php
-    if (array_key_exists('errorMsg', $this->data)) {
-        echo 'window.parent.logoutFailed("'.$this->data['spId'].'", "'.addslashes($this->data['errorMsg']).'");';
-    } else {
-        echo 'window.parent.logoutCompleted("'.$this->data['spId'].'");';
-    }
-?>
-    </script>
-  </head>
-  <body></body>
-</html>
diff --git a/templates/attributequery.php b/templates/attributequery.php
deleted file mode 100644
index 996d59edb3eefd80f1e5008de7d468289b25fe50..0000000000000000000000000000000000000000
--- a/templates/attributequery.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-$this->includeAtTemplateBase('includes/header.php');
-
-$dataId = $this->data['dataId'];
-assert(is_string($dataId));
-
-$url = $this->data['url'];
-assert(is_string($url));
-
-$nameIdFormat = $this->data['nameIdFormat'];
-assert(is_string($nameIdFormat));
-
-$nameIdValue = $this->data['nameIdValue'];
-assert(is_string($nameIdValue));
-
-$nameIdQualifier = $this->data['nameIdQualifier'];
-assert(is_string($nameIdQualifier));
-
-$nameIdSPQualifier = $this->data['nameIdSPQualifier'];
-assert(is_string($nameIdSPQualifier));
-
-$attributes = $this->data['attributes'];
-assert($attributes === null || is_array($attributes));
-?>
-
-<h2>Attribute query test</h2>
-
-<p>This is a test page for sending an AttributeQuery message.</p>
-
-<h3>Request</h3>
-
-<form action="?" method="post">
-<input name="dataId" type="hidden" value="<?php echo htmlspecialchars($dataId); ?>" />
-<p>
-<label for="url">URL of attribute query endpoint:</label><br />
-<input name="url" type="text" size="80" value="<?php echo htmlspecialchars($url); ?>" />
-</p>
-<p>
-<label for="nameIdFormat">NameID format:</label><br />
-<input name="nameIdFormat" type="text" size="80" value="<?php echo htmlspecialchars($nameIdFormat); ?>" />
-</p>
-
-<p>
-<label for="nameIdValue">NameID value:</label><br />
-<input name="nameIdValue" type="text" size="80" value="<?php echo htmlspecialchars($nameIdValue); ?>" />
-</p>
-
-<p>
-<label for="nameIdQualifier">NameID NameQualifier (optional):</label><br />
-<input name="nameIdQualifier" type="text" size="80" value="<?php echo htmlspecialchars($nameIdQualifier); ?>" />
-</p>
-
-<p>
-<label for="nameIdSPQualifier">NameID SPNameQualifier (optional):</label><br />
-<input name="nameIdSPQualifier" type="text" size="80" value="<?php echo htmlspecialchars($nameIdSPQualifier); ?>" />
-</p>
-
-<p>
-<button type="submit" name="send" class="btn">Send query</button>
-</p>
-</form>
-
-<?php
-if ($attributes !== null) {
-    echo '<h3>Attributes received</h3><dl>';
-    foreach ($attributes as $name => $values) {
-        echo '<dt>'.htmlspecialchars($name).'</dt><dd><ul>';
-        foreach ($values as $value) {
-            echo '<li>'.htmlspecialchars($value).'</li>';
-        }
-        echo '</dd>';
-    }
-    echo '</dl>';
-}
-?>
-
-<?php $this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/error.php b/templates/error.php
deleted file mode 100644
index 1acf83de34f47464709edd15b53fd7ad2ebd7280..0000000000000000000000000000000000000000
--- a/templates/error.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-$this->data['header'] = $this->t($this->data['dictTitle']);
-
-$this->data['head'] = <<<EOF
-<meta name="robots" content="noindex, nofollow" />
-<meta name="googlebot" content="noarchive, nofollow" />
-EOF;
-
-$this->includeAtTemplateBase('includes/header.php');
-?>
-    <h2><?php echo $this->t($this->data['dictTitle']); ?></h2>
-<?php
-echo htmlspecialchars($this->t($this->data['dictDescr'], $this->data['parameters']));
-
-// include optional information for error
-if (isset($this->data['includeTemplate'])) {
-    $this->includeAtTemplateBase($this->data['includeTemplate']);
-}
-?>
-    <div class="trackidtext">
-        <p><?php echo $this->t('report_trackid'); ?></p>
-        <div class="input-group" style="width: 1em;">
-            <pre id="trackid" class="input-left"><?php echo $this->data['error']['trackId']; ?></pre>
-            <button data-clipboard-target="#trackid" id="btntrackid" class="btnaddonright">
-                <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>"
-                     alt="Copy to clipboard" />
-            </button>
-        </div>
-    </div>
-<?php
-// print out exception only if the exception is available
-if ($this->data['showerrors']) {
-?>
-    <h2><?php echo $this->t('debuginfo_header'); ?></h2>
-    <p><?php echo $this->t('debuginfo_text'); ?></p>
-
-    <div style="border: 1px solid #eee; padding: 1em; font-size: x-small">
-        <p style="margin: 1px"><?php echo htmlspecialchars($this->data['error']['exceptionMsg']); ?></p>
-        <pre style="padding: 1em; font-family: monospace;"><?php
-            echo htmlspecialchars($this->data['error']['exceptionTrace']); ?></pre>
-    </div>
-<?php
-}
-
-/* Add error report submit section if we have a valid technical contact. 'errorreportaddress' will only be set if
- * the technical contact email address has been set.
- */
-if (isset($this->data['errorReportAddress'])) {
-?>
-    <h2><?php echo $this->t('report_header'); ?></h2>
-    <form action="<?php echo htmlspecialchars($this->data['errorReportAddress']); ?>" method="post">
-        <p><?php echo $this->t('report_text'); ?></p>
-        <p><?php echo $this->t('report_email'); ?>
-            <input type="email" size="25" name="email" value="<?php echo htmlspecialchars($this->data['email']); ?>" />
-        </p>
-        <p>
-            <textarea class="metadatabox" name="text" rows="6" cols="50" style="width: 100%; padding: 0.5em;"><?php
-                echo $this->t('report_explain'); ?></textarea>
-        </p>
-        <p>
-            <input type="hidden" name="reportId" value="<?php echo $this->data['error']['reportId']; ?>"/>
-            <button type="submit" name="send" class="btn"><?php echo $this->t('report_submit'); ?></button>
-        </p>
-    </form>
-    <?php
-}
-?>
-    <h2 style="clear: both"><?php echo $this->t('howto_header'); ?></h2>
-    <p><?php echo $this->t('howto_text'); ?></p>
-    <script type="text/javascript">
-        var clipboard = new ClipboardJS('#btntrackid');
-    </script>
-<?php
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/errorreport.php b/templates/errorreport.php
deleted file mode 100644
index e1154fa8dd025634754573786dd85fdc528e63d3..0000000000000000000000000000000000000000
--- a/templates/errorreport.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-    $this->data['header'] = $this->t('errorreport_header');
-    $this->includeAtTemplateBase('includes/header.php');
-?>
-
-<h2><?php echo $this->t('errorreport_header'); ?></h2>
-<p><?php echo $this->t('errorreport_text'); ?></p>
-<?php
-    $this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/hostnames.php b/templates/hostnames.php
deleted file mode 100644
index 2404638accde6cd145b732de6cf739f5033cb699..0000000000000000000000000000000000000000
--- a/templates/hostnames.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-$this->data['header'] = $this->t('{status:header_diagnostics}');
-$this->includeAtTemplateBase('includes/header.php');
-$this->includeAtTemplateBase('includes/attributes.php');
-
-echo "<h2>".$this->t('{core:frontpage:link_diagnostics}')."</h2>";
-
-$attributes = $this->data['attributes'];
-
-echo(present_attributes($this, $attributes, ''));
-
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/includes/attributes.php b/templates/includes/attributes.php
deleted file mode 100644
index 8894feb268a1004b9fce6fb51f4fbacee3279945..0000000000000000000000000000000000000000
--- a/templates/includes/attributes.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/**
- * Functions used to present a table of attributes and their values.
- */
-
-function present_list($attr)
-{
-    if (is_array($attr) && count($attr) > 1) {
-        $str = '<ul>';
-        foreach ($attr as $value) {
-            $str .= '<li>'.htmlspecialchars($attr).'</li>';
-        }
-        $str .= '</ul>';
-        return $str;
-    } else {
-        return htmlspecialchars($attr[0]);
-    }
-}
-
-function present_assoc($attr)
-{
-    if (is_array($attr)) {
-        $str = '<dl>';
-        foreach ($attr as $key => $value) {
-            $str .= "\n".'<dt>'.htmlspecialchars($key).'</dt><dd>'.present_list($value).'</dd>';
-        }
-        $str .= '</dl>';
-        return $str;
-    } else {
-        return htmlspecialchars($attr);
-    }
-}
-
-function present_eptid(\SimpleSAML\Locale\Translate $t, \SAML2\XML\saml\NameID $nameID)
-{
-    $eptid = [
-        'NameID' => [$nameID->getValue()],
-    ];
-    if ($nameID->getFormat() !== null) {
-        $eptid[$t->t('{status:subject_format}')] = [$nameID->getFormat()];
-    }
-    if ($nameID->getNameQualifier() !== null) {
-        $eptid['NameQualifier'] = [$nameID->getNameQualifier()];
-    }
-    if ($nameID->getSPNameQualifier() !== null) {
-        $eptid['SPNameQualifier'] = [$nameID->getSPNameQualifier()];
-    }
-    if ($nameID->getSPProvidedID() !== null) {
-        $eptid['SPProvidedID'] = [$nameID->getSPProvidedID()];
-    }
-    return '<td class="attrvalue">'.present_assoc($eptid);
-}
-
-function present_attributes(\SimpleSAML\XHTML\Template $t, $attributes, $nameParent)
-{
-    $alternate = ['odd', 'even'];
-    $i = 0;
-
-    $parentStr = (strlen($nameParent) > 0) ? strtolower($nameParent).'_' : '';
-    $str = (strlen($nameParent) > 0) ? '<table class="attributes" summary="attribute overview">' :
-        '<table id="table_with_attributes" class="attributes" summary="attribute overview">';
-
-    foreach ($attributes as $name => $value) {
-        $nameraw = $name;
-        $trans = $t->getTranslator();
-        $name = $trans->getAttributeTranslation($parentStr.$nameraw);
-
-        if (preg_match('/^child_/', $nameraw)) {
-            $parentName = preg_replace('/^child_/', '', $nameraw);
-            foreach ($value as $child) {
-                $str .= '<tr class="odd"><td colspan="2" style="padding: 2em">'.
-                    present_attributes($t, $child, $parentName).'</td></tr>';
-            }
-        } else {
-            if (sizeof($value) > 1) {
-                $str .= '<tr class="'.$alternate[($i++ % 2)].'"><td class="attrname">';
-
-                if ($nameraw !== $name) {
-                    $str .= htmlspecialchars($name).'<br/>';
-                }
-                $str .= '<code>'.htmlspecialchars($nameraw).'</code>';
-                $str .= '</td><td class="attrvalue"><ul>';
-                foreach ($value as $listitem) {
-                    if ($nameraw === 'jpegPhoto') {
-                        $str .= '<li><img src="data:image/jpeg;base64,'.htmlspecialchars($listitem).'" /></li>';
-                    } else {
-                        $str .= '<li>'.present_assoc($listitem).'</li>';
-                    }
-                }
-                $str .= '</ul></td></tr>';
-            } elseif (isset($value[0])) {
-                $str .= '<tr class="'.$alternate[($i++ % 2)].'"><td class="attrname">';
-                if ($nameraw !== $name) {
-                    $str .= htmlspecialchars($name).'<br/>';
-                }
-                $str .= '<code>'.htmlspecialchars($nameraw).'</code>';
-                $str .= '</td>';
-                if ($nameraw === 'jpegPhoto') {
-                    $str .= '<td class="attrvalue"><img src="data:image/jpeg;base64,'.htmlspecialchars($value[0]).
-                        '" /></td></tr>';
-                } elseif (is_a($value[0], 'DOMNodeList')) {
-                    // try to see if we have a NameID here
-                    /** @var \DOMNodeList $value [0] */
-                    $n = $value[0]->length;
-                    for ($idx = 0; $idx < $n; $idx++) {
-                        $elem = $value[0]->item($idx);
-                        /* @var \DOMElement $elem */
-                        if (!($elem->localName === 'NameID' && $elem->namespaceURI === \SAML2\Constants::NS_SAML)) {
-                            continue;
-                        }
-                        $str .= present_eptid($trans, new \SAML2\XML\saml\NameID($elem));
-                        break; // we only support one NameID here
-                    }
-                    $str .= '</td></tr>';
-                } elseif (is_a($value[0], '\SAML2\XML\saml\NameID')) {
-                    $str .= present_eptid($trans, $value[0]);
-                    $str .= '</td></tr>';
-                } else {
-                    $str .= '<td class="attrvalue">'.htmlspecialchars($value[0]).'</td></tr>';
-                }
-            }
-        }
-        $str .= "\n";
-    }
-    $str .= '</table>';
-    return $str;
-}
diff --git a/templates/includes/footer-embed.php b/templates/includes/footer-embed.php
deleted file mode 100644
index 308b1d01b6ca1e7ab1b1fa896e6a8497bbcd1a37..0000000000000000000000000000000000000000
--- a/templates/includes/footer-embed.php
+++ /dev/null
@@ -1,2 +0,0 @@
-</body>
-</html>
diff --git a/templates/includes/footer.php b/templates/includes/footer.php
deleted file mode 100644
index ed4d11e6ddd68241c23d69ed943be989a848d165..0000000000000000000000000000000000000000
--- a/templates/includes/footer.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-if (!empty($this->data['htmlinject']['htmlContentPost'])) {
-    foreach ($this->data['htmlinject']['htmlContentPost'] as $c) {
-        echo $c;
-    }
-}
-?>
-            </div><!-- #content -->
-            <div id="footer">
-                <hr />
-                <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/ssplogo-fish-small.png" alt="Small fish logo" style="float: right" />		
-                    Copyright &copy; 2007-2020 <a href="https://uninett.no/">UNINETT AS</a>
-
-                <br style="clear: right" />
-
-            </div><!-- #footer -->
-        </div><!-- #wrap -->
-    </body>
-</html>
diff --git a/templates/includes/header-embed.php b/templates/includes/header-embed.php
deleted file mode 100644
index 5b83cbf7da33e845cbdbd65f7d462221fa811522..0000000000000000000000000000000000000000
--- a/templates/includes/header-embed.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-    <title>
-<?php
-if (array_key_exists('header', $this->data)) {
-    echo $this->data['header'];
-} else {
-    echo 'SimpleSAMLphp';
-}
-?>
-    </title>
-    <link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default.css" />
-    <meta name="robots" content="noindex, nofollow" />
-
-<?php
-if (array_key_exists('head', $this->data)) {
-    echo '<!-- head -->'.$this->data['head'].'<!-- /head -->';
-}
-?>
-    </head>
-    <body class="body-embed">
-
diff --git a/templates/includes/header.php b/templates/includes/header.php
deleted file mode 100644
index 208139d29630c3ccae09f0357656d6146d1e75ed..0000000000000000000000000000000000000000
--- a/templates/includes/header.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-
-/**
- * Support the htmlinject hook, which allows modules to change header, pre and post body on all pages.
- */
-$this->data['htmlinject'] = [
-    'htmlContentPre' => [],
-    'htmlContentPost' => [],
-    'htmlContentHead' => [],
-];
-
-$jquery = [];
-if (array_key_exists('jquery', $this->data)) {
-    $jquery = $this->data['jquery'];
-}
-
-if (array_key_exists('pageid', $this->data)) {
-    $hookinfo = [
-        'pre' => &$this->data['htmlinject']['htmlContentPre'],
-        'post' => &$this->data['htmlinject']['htmlContentPost'],
-        'head' => &$this->data['htmlinject']['htmlContentHead'],
-        'jquery' => &$jquery,
-        'page' => $this->data['pageid']
-    ];
-
-    SimpleSAML\Module::callHooks('htmlinject', $hookinfo);
-}
-// - o - o - o - o - o - o - o - o - o - o - o - o -
-
-/**
- * Do not allow to frame SimpleSAMLphp pages from another location.
- * This prevents clickjacking attacks in modern browsers.
- *
- * If you don't want any framing at all you can even change this to
- * 'DENY', or comment it out if you actually want to allow foreign
- * sites to put SimpleSAMLphp in a frame. The latter is however
- * probably not a good security practice.
- */
-header('X-Frame-Options: SAMEORIGIN');
-
-?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="viewport" content="initial-scale=1.0" />
-<script type="text/javascript" src="/<?php echo $this->data['baseurlpath']; ?>resources/script.js"></script>
-<title><?php
-if (array_key_exists('header', $this->data)) {
-    echo $this->data['header'];
-} else {
-    echo 'SimpleSAMLphp';
-}
-?></title>
-
-    <link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default.css" />
-    <link rel="icon" type="image/icon" href="/<?php echo $this->data['baseurlpath']; ?>resources/icons/favicon.ico" />
-
-<?php
-
-if (!empty($jquery)) {
-    $version = '1.8';
-    if (array_key_exists('version', $jquery)) {
-        $version = $jquery['version'];
-    }
-
-    if ($version == '1.8') {
-        if (isset($jquery['core']) && $jquery['core']) {
-            echo '<script type="text/javascript" src="/'.$this->data['baseurlpath'].'resources/jquery-1.8.js"></script>'."\n";
-        }
-
-        if (isset($jquery['ui']) && $jquery['ui']) {
-            echo '<script type="text/javascript" src="/'.$this->data['baseurlpath'].'resources/jquery-ui-1.8.js"></script>'."\n";
-        }
-
-        if (isset($jquery['css']) && $jquery['css']) {
-            echo '<link rel="stylesheet" media="screen" type="text/css" href="/'.$this->data['baseurlpath'].
-                'resources/uitheme1.8/jquery-ui.css" />'."\n";
-        }
-    }
-}
-
-if (isset($this->data['clipboard.js'])) {
-    echo '<script type="text/javascript" src="/'.$this->data['baseurlpath'].'resources/clipboard.min.js"></script>'."\n";
-}
-
-if (!empty($this->data['htmlinject']['htmlContentHead'])) {
-    foreach ($this->data['htmlinject']['htmlContentHead'] as $c) {
-        echo $c;
-    }
-}
-
-if ($this->isLanguageRTL()) {
-    ?>
-    <link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default-rtl.css" />
-<?php
-}
-?>
-    <meta name="robots" content="noindex, nofollow" />
-
-<?php
-if (array_key_exists('head', $this->data)) {
-    echo '<!-- head -->'.$this->data['head'].'<!-- /head -->';
-}
-?>
-</head>
-<?php
-$onLoad = '';
-if (array_key_exists('autofocus', $this->data)) {
-    $onLoad .= ' onload="SimpleSAML_focus(\''.$this->data['autofocus'].'\');"';
-}
-?>
-<body<?php echo $onLoad; ?>>
-
-<div id="wrap">
-
-    <div id="header">
-        <h1><a href="/<?php echo $this->data['baseurlpath']; ?>"><?php
-            echo(isset($this->data['header']) ? $this->data['header'] : 'SimpleSAMLphp');
-        ?></a></h1>
-    </div>
-
-
-    <?php
-
-    $includeLanguageBar = true;
-    if (!empty($_POST)) {
-        $includeLanguageBar = false;
-    }
-    if (isset($this->data['hideLanguageBar']) && $this->data['hideLanguageBar'] === true) {
-        $includeLanguageBar = false;
-    }
-
-    if ($includeLanguageBar) {
-        $languages = $this->getLanguageList();
-        ksort($languages);
-        if (count($languages) > 1) {
-            echo '<div id="languagebar">';
-            $langnames = [
-                'no' => 'BokmĂĄl', // Norwegian BokmĂĄl
-                'nn' => 'Nynorsk', // Norwegian Nynorsk
-                'se' => 'Sámegiella', // Northern Sami
-                'da' => 'Dansk', // Danish
-                'en' => 'English',
-                'de' => 'Deutsch', // German
-                'sv' => 'Svenska', // Swedish
-                'fi' => 'Suomeksi', // Finnish
-                'es' => 'Español', // Spanish
-                'ca' => 'CatalĂ ', // Catalan
-                'fr' => 'Français', // French
-                'it' => 'Italiano', // Italian
-                'nl' => 'Nederlands', // Dutch
-                'lb' => 'Lëtzebuergesch', // Luxembourgish
-                'cs' => 'Čeština', // Czech
-                'sl' => 'Slovenščina', // Slovensk
-                'lt' => 'LietuviĹł kalba', // Lithuanian
-                'hr' => 'Hrvatski', // Croatian
-                'hu' => 'Magyar', // Hungarian
-                'pl' => 'Język polski', // Polish
-                'pt' => 'PortuguĂŞs', // Portuguese
-                'pt-br' => 'PortuguĂŞs brasileiro', // Portuguese
-                'ru' => 'русский язык', // Russian
-                'et' => 'eesti keel', // Estonian
-                'tr' => 'Türkçe', // Turkish
-                'el' => 'ελληνικά', // Greek
-                'ja' => '日本語', // Japanese
-                'zh' => '简体中文', // Chinese (simplified)
-                'zh-tw' => '繁體中文', // Chinese (traditional)
-                'ar' => 'العربية', // Arabic
-                'he' => 'עִבְרִית', // Hebrew
-                'id' => 'Bahasa Indonesia', // Indonesian
-                'sr' => 'Srpski', // Serbian
-                'lv' => 'Latviešu', // Latvian
-                'ro' => 'Românește', // Romanian
-                'eu' => 'Euskara', // Basque
-                'af' => 'Afrikaans', // Afrikaans
-                'zu' => 'IsiZulu', // Zulu
-                'xh' => 'isiXhosa', // Xhosa
-                'st' => 'Sesotho', // Sesotho
-            ];
-
-            $textarray = [];
-            foreach ($languages as $lang => $current) {
-                $lang = strtolower($lang);
-                if ($current) {
-                    $textarray[] = $langnames[$lang];
-                } else {
-                    $textarray[] = '<a href="'.htmlspecialchars(
-                        \SimpleSAML\Utils\HTTP::addURLParameters(
-                            \SimpleSAML\Utils\HTTP::getSelfURL(),
-                            [$this->getTranslator()->getLanguage()->getLanguageParameterName() => $lang]
-                        )
-                    ).'">'.$langnames[$lang].'</a>';
-                }
-            }
-            echo join(' | ', $textarray);
-            echo '</div>';
-        }
-    }
-
-    ?>
-    <div id="content">
-
-<?php
-
-if (!empty($this->data['htmlinject']['htmlContentPre'])) {
-    foreach ($this->data['htmlinject']['htmlContentPre'] as $c) {
-        echo $c;
-    }
-}
-$config = \SimpleSAML\Configuration::getInstance();
-if(! $config->getBoolean('production', true)) {
-    echo '<div class="caution">' . $this->t('{preprodwarning:warning:warning}'). '</div>';
-}
diff --git a/templates/login-ldapmulti.php b/templates/login-ldapmulti.php
deleted file mode 100644
index 64159298d9faca906aeda4427657a1cd25eb8290..0000000000000000000000000000000000000000
--- a/templates/login-ldapmulti.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php 
-    $this->includeAtTemplateBase('includes/header.php'); 
-?>
-
-<?php
-if (isset($this->data['error'])) {
-?>
-    <div style="border-left: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8; background: #f5f5f5">
-        <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-error.48x48.png" class="float-l erroricon" style="margin: 15px" alt="" />
-        <h2><?php echo $this->t('error_header'); ?></h2>
-
-        <p class="logintext"><?php echo htmlspecialchars($this->data['error']); ?> </p>
-    </div>
-<?php
-}
-?>
-    <h2 style="break: both"><?php echo $this->t('user_pass_header'); ?></h2>
-
-    <p><?php echo $this->t('user_pass_text'); ?></p>
-
-    <form action="?" method="post" name="f">
-
-        <table>
-            <tr>
-                <td rowspan="3"><img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-authentication.48x48.png" id="loginicon" alt="" /></td>
-                <td style="padding: .3em;"><?php echo $this->t('username'); ?></td>
-                <td><input type="text" tabindex="1" name="username" autocomplete="username"
-<?php
-if (isset($this->data['username'])) {
-    echo 'value="'.htmlspecialchars($this->data['username']).'"';
-}
-?>
- /></td>
-
-                <td style="padding: .4em;" rowspan="3">
-                    <button type="submit" tabindex="3" id="regularsubmit" class="btn"><?php echo $this->t('login_button'); ?></button>
-                    <input type="hidden" name="RelayState" value="<?php echo htmlspecialchars($this->data['relaystate']); ?>" />
-                </td>
-            </tr>
-            <tr>
-                <td style="padding: .3em;"><?php echo $this->t('organization'); ?></td>
-                <td><select name="org" tabindex="2">
-<?php
-foreach ($this->data['ldapconfig'] as $key => $entry) {
-    echo '<option '.($key == $this->data['org'] ? 'selected="selected" ' : '').
-        'value="'.htmlspecialchars($key).'">'.htmlspecialchars($entry['description']).'</option>';
-}
-?>
-                </select></td>
-            </tr>
-
-            <tr>
-                <td style="padding: .3em;"><?php echo $this->t('password'); ?></td>
-                <td><input type="password" tabindex="2" name="password" autocomplete="current-password" /></td>
-            </tr>
-            <tr><td></td><td>
-                <button type="submit" tabindex="5" id="mobilesubmit" class="btn"><?php echo $this->t('login_button'); ?></button>
-            </td></tr>
-        </table>
-    </form>
-    <h2 class="logintext"><?php echo $this->t('help_header'); ?>.</h2>
-    <p class="logintext"><?php echo $this->t('help_text'); ?>!</p>
-<?php
-    $this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/login.php b/templates/login.php
deleted file mode 100644
index 04502944ddf6e32667fbb86b7bcaba7163f2c330..0000000000000000000000000000000000000000
--- a/templates/login.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php 
-    if (!isset($this->data['autofocus'])) {
-        $this->data['autofocus'] = 'username';
-    }
-    $this->includeAtTemplateBase('includes/header.php'); 
-    if (isset($this->data['error'])) {
-?>
-    <div style="border-left: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8; background: #f5f5f5">
-        <img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-error.48x48.png" class="float-l erroricon" style="margin: 15px" alt="" />
-        <h2><?php echo $this->t('error_header'); ?></h2>
-
-        <p><?php echo $this->t($this->data['error']); ?> </p>
-    </div>
-<?php
-}
-?>
-    <h2 style="break: both"><?php echo $this->t('user_pass_header'); ?></h2>
-    <p class="logintext"><?php echo $this->t('user_pass_text'); ?></p>
-
-    <form action="?" method="post" name="f">
-
-        <table>
-            <tr>
-                <td rowspan="2"><img src="/<?php echo $this->data['baseurlpath']; ?>resources/icons/experience/gtk-dialog-authentication.48x48.png" id="loginicon" alt="" /></td>
-                <td style="padding: .3em;"><?php echo $this->t('username'); ?></td>
-                <td>
-<?php
-if (array_key_exists('admin', $this->data)) {
-    echo '<strong style="font-size: medium">Administrator</strong>';
-} else {
-    echo '<input type="text" id="username" tabindex="1" name="username" autocomplete="username" ';
-    if (isset($this->data['username'])) {
-        echo 'value="'.htmlspecialchars($this->data['username']).'"';
-    }
-    echo '/>';
-}
-?>
-                </td>
-                <td style="padding: .4em;" rowspan="2">
-                    <button type="submit" class="regularsubmit" tabindex="3" class="btn"><?php echo $this->t('login_button'); ?></button>
-                    <input type="hidden" name="RelayState" value="<?php echo htmlspecialchars($this->data['relaystate']); ?>" />
-                </td>
-            </tr>
-            <tr>
-                <td style="padding: .3em;"><?php echo $this->t('password'); ?></td>
-                <td><input id="password" type="password" tabindex="2" name="password" autocomplete="current-password" /></td>
-            </tr>
-            <tr>
-                <td></td>
-                <td></td>
-                <td>
-                    <button type="submit" tabindex="5" id="mobilesubmit" class="btn"><?php echo $this->t('login_button'); ?></button>
-                </td>
-            </tr>
-        </table>
-    </form>
-        <h2 class="logintext"><?php echo $this->t('help_header'); ?></h2>
-        <p class="logintext"><?php echo $this->t('help_text'); ?></p>
-<?php
-    $this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/logout.php b/templates/logout.php
deleted file mode 100644
index 92ecd7ae4f7609c0e594eb4b4ea442e8d33bc1e1..0000000000000000000000000000000000000000
--- a/templates/logout.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-$this->data['header'] = $this->t('{logout:title}');
-
-$this->includeAtTemplateBase('includes/header.php');
-
-echo '<h2>'.$this->data['header'].'</h2>';
-echo '<p>'.$this->t('{logout:logged_out_text}').'</p>';
-
-if ($this->getTranslator()->getTag($this->data['text']) !== null) {
-    $this->data['text'] = $this->t($this->data['text']);
-}
-echo '<p>[ <a href="'.htmlspecialchars($this->data['link']).'">'.
-    htmlspecialchars($this->data['text']).'</a> ]</p>';
-
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/metadata-converter.php b/templates/metadata-converter.php
deleted file mode 100644
index bc46d3a949d8d3279f5539788b72889341810dd4..0000000000000000000000000000000000000000
--- a/templates/metadata-converter.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-$this->data['header'] = $this->t('metaconv_title');
-$this->includeAtTemplateBase('includes/header.php');
-?>
-    <h2><?php echo $this->t('metaconv_title'); ?></h2>
-    <form action="?" method="post" enctype="multipart/form-data">
-        <p><?php echo($this->t('{admin:metaconv_xmlmetadata}')); ?></p>
-        <p>
-            <textarea rows="20" style="width: 100%"
-                      name="xmldata"><?php echo htmlspecialchars($this->data['xmldata']); ?></textarea>
-        </p>
-        <p>
-            <?php echo $this->t('metaconv_selectfile'); ?>
-            <input type="file" name="xmlfile" /></p>
-        <p>
-            <button type="submit" class="btn"><?php echo $this->t('metaconv_parse'); ?></button>
-        </p>
-    </form>
-<?php
-$output = $this->data['output'];
-
-if (!empty($output)) {
-?>
-    <h2><?php echo $this->t('metaconv_converted'); ?></h2>
-<?php
-    $i = 1;
-    foreach ($output as $type => $text) {
-        if ($text === '') {
-            continue;
-        }
-?>
-    <h3><?php echo htmlspecialchars($type); ?></h3>
-    <div class="metadatabox">
-        <button data-clipboard-target="#metadata<?php echo $i; ?>" id="btn<?php echo $i; ?>"
-                class="btn topright" style="margin-right: 0.5em;">
-            <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>"
-                 alt="Copy to clipboard" />
-        </button>
-        <pre id="metadata<?php echo $i; ?>"><?php
-            echo htmlspecialchars($text);
-        ?></pre>
-    </div>
-<?php
-        $i++;
-    }
-?>
-    <script type="text/javascript">
-<?php
-    for ($j = 1; $j <= $i; $j++) {
-?>
-        var clipboard<?php echo $j; ?> = new ClipboardJS('#btn<?php echo $j; ?>');
-<?php
-    }
-?>
-    </script>
-<?php
-}
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/metadata.tpl.php b/templates/metadata.tpl.php
deleted file mode 100644
index c851afea27b49696fd6fecfd714ffddab3720402..0000000000000000000000000000000000000000
--- a/templates/metadata.tpl.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-$this->data['header'] = $this->t($this->data['headerString']);
-$this->includeAtTemplateBase('includes/header.php'); ?>
-    <h2><?php echo $this->data['header']; ?></h2>
-    <p><?php echo $this->t('metadata_intro'); ?></p>
-<?php if (isset($this->data['metaurl'])) { ?>
-    <p><?php echo($this->t('metadata_xmlurl', ['%METAURL%' => htmlspecialchars($this->data['metaurl'])])); ?></p>
-    <div class="input-group">
-        <pre id="metadataurl" class="input-left"><?php echo htmlspecialchars($this->data['metaurl']); ?></pre>
-        <button data-clipboard-target="#metadataurl" id="btnurl" class="btnaddonright">
-            <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>"
-                 alt="Copy to clipboard" />
-        </button>
-    </div>
-<?php } ?>
-    <h2><?php echo($this->t('metadata_metadata')); ?></h2>
-    <p><?php echo($this->t('metadata_xmlformat')); ?></p>
-    <div class="metadatabox">
-         <button data-clipboard-target="#xmlmetadata" id="btnxml" class="btn topright" style="margin-right: 0.5em;">
-            <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>"
-                 alt="Copy to clipboard" />
-        </button>
-        <pre id="xmlmetadata"><?php echo $this->data['metadata']; ?></pre>
-    </div>
-
-    <p><?php echo($this->t('metadata_simplesamlformat')); ?></p>
-    <div class="metadatabox">
-        <button data-clipboard-target="#phpmetadata" id="btnphp" class="btn topright" style="margin-right: 0.5em;">
-            <img src="/<?php echo $this->data['baseurlpath'].'resources/icons/clipboard.svg'; ?>"
-                 alt="Copy to clipboard" />
-        </button>
-        <pre id="phpmetadata"><?php echo $this->data['metadataflat']; ?></pre>
-    </div>
-    <script type="text/javascript">
-        var clipboard1 = new ClipboardJS('#btnurl'),
-            clipboard2 = new ClipboardJS('#btnxml'),
-            clipboard3 = new ClipboardJS('#btnphp');
-    </script>
-<?php
-if (array_key_exists('available_certs', $this->data)) { ?>
-    <h2><?php echo($this->t('metadata_cert')); ?></h2>
-    <p><?php echo($this->t('metadata_cert_intro')); ?></p>
-    <ul>
-<?php
-    foreach (array_keys($this->data['available_certs']) as $certName) {
-        echo '<li><a href="'.
-            htmlspecialchars(SimpleSAML\Module::getModuleURL('saml/idp/certs.php').'/'.$certName).'">'.$certName.
-            '</a>';
-
-        if ($this->data['available_certs'][$certName]['certFingerprint'][0] ===
-            'afe71c28ef740bc87425be13a2263d37971da1f9') {
-            echo '&nbsp; <img style="display: inline;" src="/'.$this->data['baseurlpath'].
-                'resources/icons/silk/exclamation.png" alt="default certificate" />'.
-                'This is the default certificate. Generate a new certificate if this is a production system.';
-        }
-        echo '</li>';
-    } ?>
-    </ul>
-<?php
-}
-$this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/post.php b/templates/post.php
deleted file mode 100644
index e8aeaa12d2451bd390e8e8cd4e36e321b9fcadac..0000000000000000000000000000000000000000
--- a/templates/post.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
-    <title>POST data</title>
-    <script src="/<?php echo $this->data['baseurlpath']; ?>resources/post.js"></script>
-    <link type="text/css" rel="stylesheet" href="/<?php echo $this->data['baseurlpath']; ?>resources/post.css" />
-</head>
-<body>
-
-    <noscript>
-        <p><strong>Note:</strong> 
-        Since your browser does not support JavaScript, 
-        you must press the button below once to proceed.</p> 
-    </noscript> 
-
-    <form method="post" 
-        action="<?php echo htmlspecialchars($this->data['destination']); ?>">
-    <!-- Need to add this element and call click method, because calling 
-    submit() on the form causes failed submission if the form has another 
-    element with name or id of submit.
-    See: https://developer.mozilla.org/en/DOM/form.submit#Specification -->
-    <input type="submit" id="postLoginSubmitButton"/>
-<?php
-if (array_key_exists('post', $this->data)) {
-    $post = $this->data['post'];
-} else {
-    // For backwards compatibility
-    assert(array_key_exists('response', $this->data));
-    assert(array_key_exists('RelayStateName', $this->data));
-    assert(array_key_exists('RelayState', $this->data));
-        $post = [
-        'SAMLResponse' => $this->data['response'],
-        $this->data['RelayStateName'] => $this->data['RelayState'],
-        ];
-}
-
-/**
- * Write out one or more INPUT elements for the given name-value pair.
- *
- * If the value is a string, this function will write a single INPUT element.
- * If the value is an array, it will write multiple INPUT elements to
- * recreate the array.
- *
- * @param string $name  The name of the element.
- * @param string|array $value  The value of the element.
- */
-function printItem($name, $value)
-{
-    assert(is_string($name));
-    assert(is_string($value) || is_array($value));
-    if (is_string($value)) {
-        echo '<input type="hidden" name="'.
-            htmlspecialchars($name).'" value="'.
-            htmlspecialchars($value).'" />';
-        return;
-    }
-    // This is an array...
-    foreach ($value as $index => $item) {
-        printItem($name.'['.$index.']', $item);
-    }
-}
-
-foreach ($post as $name => $value) {
-    printItem($name, $value);
-}
-?>
-        <noscript>
-            <button type="submit" class="btn">Submit</button>
-        </noscript>
-    </form>
-
-</body>
-</html>
diff --git a/templates/selectidp-dropdown.php b/templates/selectidp-dropdown.php
deleted file mode 100644
index 4fa03d6ff05a5c07a3d98e2d961a026f894283f7..0000000000000000000000000000000000000000
--- a/templates/selectidp-dropdown.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-if (!array_key_exists('header', $this->data)) {
-    $this->data['header'] = 'selectidp';
-}
-$this->data['header'] = $this->t($this->data['header']);
-$this->data['autofocus'] = 'dropdownlist';
-$this->includeAtTemplateBase('includes/header.php');
-
-$translator = $this->getTranslator();
-foreach ($this->data['idplist'] as $idpentry) {
-    if (!empty($idpentry['name'])) {
-        $translator->includeInlineTranslation(
-            'idpname_'.$idpentry['entityid'],
-            $idpentry['name']
-        );
-    } elseif (!empty($idpentry['OrganizationDisplayName'])) {
-        $translator->includeInlineTranslation(
-            'idpname_'.$idpentry['entityid'],
-            $idpentry['OrganizationDisplayName']
-        );
-    }
-    if (!empty($idpentry['description'])) {
-        $translator->includeInlineTranslation('idpdesc_'.$idpentry['entityid'], $idpentry['description']);
-    }
-}
-?>
-    <h2><?php echo $this->data['header']; ?></h2>
-    <p><?php echo $this->t('selectidp_full'); ?></p>
-    <form method="get" action="<?php echo $this->data['urlpattern']; ?>">
-        <input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>"/>
-        <input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>"/>
-        <input type="hidden" name="returnIDParam"
-               value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>"/>
-        <select id="dropdownlist" name="idpentityid">
-            <?php
-            usort($this->data['idplist'], function($idpentry1, $idpentry2) {
-                return strcasecmp(
-                    $this->t('idpname_'.$idpentry1['entityid']),
-                    $this->t('idpname_'.$idpentry2['entityid'])
-                );
-            });
-
-            foreach ($this->data['idplist'] as $idpentry) {
-                echo '<option value="'.htmlspecialchars($idpentry['entityid']).'"';
-                if (isset($this->data['preferredidp']) && $idpentry['entityid'] == $this->data['preferredidp']) {
-                    echo ' selected="selected"';
-                }
-                echo '>'.htmlspecialchars($this->t('idpname_'.$idpentry['entityid'])).'</option>';
-            }
-            ?>
-        </select>
-        <button class="btn" type="submit"><?php echo $this->t('select'); ?></button>
-        <?php
-        if ($this->data['rememberenabled']) {
-            echo('<br/><input type="checkbox" name="remember" value="1" />'.$this->t('remember'));
-        }
-        ?>
-    </form>
-<?php $this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/selectidp-links.php b/templates/selectidp-links.php
deleted file mode 100644
index 6c4eabad3c5fbccb57f33671b5c0ce8b2e693fce..0000000000000000000000000000000000000000
--- a/templates/selectidp-links.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-if (!array_key_exists('header', $this->data)) {
-    $this->data['header'] = 'selectidp';
-}
-$this->data['header'] = $this->t($this->data['header']);
-$this->data['autofocus'] = 'preferredidp';
-$this->includeAtTemplateBase('includes/header.php');
-foreach ($this->data['idplist'] as $idpentry) {
-    if (isset($idpentry['name'])) {
-        $this->getTranslator()->includeInlineTranslation('idpname_'.$idpentry['entityid'], $idpentry['name']);
-    } elseif (isset($idpentry['OrganizationDisplayName'])) {
-        $this->getTranslator()->includeInlineTranslation(
-            'idpname_'.$idpentry['entityid'],
-            $idpentry['OrganizationDisplayName']
-        );
-    }
-    if (isset($idpentry['description'])) {
-        $this->getTranslator()->includeInlineTranslation('idpdesc_'.$idpentry['entityid'], $idpentry['description']);
-    }
-}
-?>
-    <h2><?php echo $this->data['header']; ?></h2>
-    <form method="get" action="<?php echo $this->data['urlpattern']; ?>">
-        <input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>"/>
-        <input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>"/>
-        <input type="hidden" name="returnIDParam"
-               value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>"/>
-        <p><?php
-            echo $this->t('selectidp_full');
-            if ($this->data['rememberenabled']) {
-                echo '<br /><input type="checkbox" name="remember" value="1" title="'.$this->t('remember').'" />'.
-                    $this->t('remember');
-            }
-            ?></p>
-<?php
-        usort($this->data['idplist'], function($idpentry1, $idpentry2) {
-            return strcasecmp(
-                $this->t('idpname_'.$idpentry1['entityid']),
-                $this->t('idpname_'.$idpentry2['entityid'])
-            );
-        });
-
-        if (!empty($this->data['preferredidp'])) {
-            foreach ($this->data['idplist'] as $idpentry) {
-                if ($idpentry['entityid'] != $this->data['preferredidp']) {
-                    continue;
-                }
-                echo '<div class="preferredidp">';
-                echo '	<img src="/'.$this->data['baseurlpath'].
-                    'resources/icons/experience/gtk-about.64x64.png" class="float-r" alt="'.
-                    $this->t('icon_prefered_idp').'" />';
-
-                if (array_key_exists('icon', $idpentry) && $idpentry['icon'] !== null) {
-                    $iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']);
-                    echo '<img class="float-l" style="margin: 1em; padding: 3px; border: 1px solid #999" src="'.
-                        htmlspecialchars($iconUrl).'" />';
-                }
-                echo "\n".'	<h3 style="margin-top: 8px">'.
-                    htmlspecialchars($this->t('idpname_'.$idpentry['entityid'])).'</h3>';
-
-                if (!empty($idpentry['description'])) {
-                    echo '	<p>'.htmlspecialchars($this->t('idpdesc_'.$idpentry['entityid'])).'<br />';
-                }
-                echo('<button id="preferredidp" type="submit" class="btn" name="idp_'.
-                    htmlspecialchars($idpentry['entityid']).'">'.
-                    $this->t('select').'</button></p>');
-                echo '</div>';
-            }
-        }
-
-        foreach ($this->data['idplist'] as $idpentry) {
-            if ($idpentry['entityid'] != $this->data['preferredidp']) {
-                if (array_key_exists('icon', $idpentry) && $idpentry['icon'] !== null) {
-                    $iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']);
-                    echo '<img class="float-l" style="clear: both; margin: 1em; padding: 3px; border: 1px solid #999"'.
-                        ' src="'.htmlspecialchars($iconUrl).'" />';
-                }
-                echo "\n".'	<h3 style="margin-top: 8px">'.htmlspecialchars($this->t('idpname_'.$idpentry['entityid']));
-                echo '</h3>';
-
-                if (!empty($idpentry['description'])) {
-                    echo '	<p>'.htmlspecialchars($this->t('idpdesc_'.$idpentry['entityid'])).'<br />';
-                }
-                echo '<button type="submit" class="btn" name="idp_'.htmlspecialchars($idpentry['entityid']).'">'.
-                    $this->t('select').'</button></p>';
-            }
-        }
-?>
-    </form>
-<?php $this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/status.php b/templates/status.php
deleted file mode 100644
index be24c273d2207dd435eef93199e0197bff428dd4..0000000000000000000000000000000000000000
--- a/templates/status.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-if (array_key_exists('header', $this->data)) {
-    if ($this->getTranslator()->getTag($this->data['header']) !== null) {
-        $this->data['header'] = $this->t($this->data['header']);
-    }
-}
-
-$this->includeAtTemplateBase('includes/header.php');
-$this->includeAtTemplateBase('includes/attributes.php');
-?>
-    <h2><?php if (isset($this->data['header'])) {
-            echo $this->data['header'];
-        } else {
-            echo $this->t('{status:some_error_occurred}');
-        } ?></h2>
-
-    <p><?php echo $this->t('{status:intro}'); ?></p>
-
-<?php
-if (isset($this->data['remaining'])) {
-    echo '<p>'.$this->t('{status:validfor}', ['%SECONDS%' => $this->data['remaining']]).'</p>';
-}
-
-if (isset($this->data['sessionsize'])) {
-    echo '<p>'.$this->t('{status:sessionsize}', ['%SIZE%' => $this->data['sessionsize']]).'</p>';
-}
-?>
-    <h2><?php echo $this->t('{status:attributes_header}'); ?></h2>
-<?php
-$attributes = $this->data['attributes'];
-echo present_attributes($this, $attributes, '');
-
-$nameid = $this->data['nameid'];
-if ($nameid !== false) {
-    /** @var \SAML2\XML\saml\NameID $nameid */
-    echo "<h2>".$this->t('{status:subject_header}')."</h2>";
-    if ($nameid->getValue() === null) {
-        $list = ["NameID" => [$this->t('{status:subject_notset}')]];
-        echo "<p>NameID: <span class=\"notset\">".$this->t('{status:subject_notset}')."</span></p>";
-    } else {
-        $list = [
-            "NameId" => [$nameid->getValue()],
-        ];
-        if ($nameid->getFormat() !== null) {
-            $list[$this->t('{status:subject_format}')] = [$nameid->getFormat()];
-        }
-        if ($nameid->getNameQualifier() !== null) {
-            $list['NameQualifier'] = [$nameid->getNameQualifier()];
-        }
-        if ($nameid->getSPNameQualifier() !== null) {
-            $list['SPNameQualifier'] = [$nameid->getSPNameQualifier()];
-        }
-        if ($nameid->getSPProvidedID() !== null) {
-            $list['SPProvidedID'] = [$nameid->getSPProvidedID()];
-        }
-    }
-    echo present_attributes($this, $list, '');
-}
-
-$authData = $this->data['authData'];
-if (!empty($authData)) {
-    echo "<h2>".$this->t('{status:authData_header}')."</h2>";
-    echo '<details><summary>'.$this->t('{status:authData_summary}').'</summary>'; 
-    echo '<pre>'.htmlspecialchars(json_encode($this->data['authData'], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)).'</pre>';
-    echo '</details>';
-}
-if (isset($this->data['logout'])) {
-    echo '<h2>'.$this->t('{status:logout}').'</h2>';
-    echo '<p>'.$this->data['logout'].'</p>';
-}
-
-if (isset($this->data['logouturl'])) {
-    echo '<a href="'.htmlspecialchars($this->data['logouturl']).'">'.$this->t('{status:logout}').'</a>';
-}
-
-$this->includeAtTemplateBase('includes/footer.php');