mirror of https://github.com/it-security-kassel-nordhessen/meetup.git

secf00tprint
18.48.2019 4fd101400b65821bde4ed67ae4cb99e4c2c44f2d
add secure software development talk - daniel
56 files added
8840 ■■■■■ changed files
2019_09_18_41st/Sichere_Softwareentwicklung/slides/Sichere Softwareentwicklung.html 468 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/css/reveal.css 1591 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/css/theme/cic.css 314 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/css/theme/logo.png patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/js/reveal.js 5577 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/js/reveal.min.js 9 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/css/zenburn.css 80 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Black.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Black.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BlackItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BlackItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Bold.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Bold.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BoldItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BoldItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBold.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBold.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBoldItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBoldItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLight.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLight.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLightItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLightItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Light.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Light.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-LightItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-LightItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Medium.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Medium.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-MediumItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-MediumItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Regular.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Regular.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-RegularItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-RegularItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBold.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBold.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBoldItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBoldItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Thin.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Thin.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ThinItalic.woff patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ThinItalic.woff2 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/metropolis.css 143 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/js/classList.js 2 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/js/head.min.js 6 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/js/html5shiv.js 7 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/SDLC.svg 643 ●●●●● patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/assessment.png patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/cheers.gif patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/cheers.mp4 patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/roadmap.png patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/s-tags.png patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/samm.png patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/scorecard.png patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/scrum.png patch | view | raw | blame | history
2019_09_18_41st/Sichere_Softwareentwicklung/slides/Sichere Softwareentwicklung.html
New file
@@ -0,0 +1,468 @@
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
        <title>Sichere Softwareentwicklung</title>
        <link rel="stylesheet" href="css/reveal.css">
        <link rel="stylesheet" href="css/theme/cic.css">
        <!-- Theme used for syntax highlighting of code -->
        <link rel="stylesheet" href="lib/css/zenburn.css">
    </head>
    <body>
        <div class="reveal">
            <div class="slides">
                <section>
                    <h1>Sichere Softwareentwicklung</h1>
                </section>
                <section>
                    <h2>~# whoami</h2>
                    <p class="fragment fade-in">Daniel Keyhani (tty)</p>
                    <p class="fragment fade-in">Infosec Consultant @ Crucible IT Consulting</p>
                    <p class="fragment fade-in">Consulting, Pentests and Training</p>
                    <p class="fragment fade-in">OSCP etc.</p>
                </section>
                <section>
                    <h2>~# cat .plan</h2>
                    <ol>
                        <li class="fragment fade-in">Einführung</li>
                        <li class="fragment fade-in">SSDLC</li>
                        <li class="fragment fade-in">DevSecOps</li>
                        <li class="fragment fade-in">Vorgehensmodelle</li>
                    </ol>
                </section>
                <section>
                    <h2>Was interessiert mich Softwaresicherheit?</h2>
                    <ul>
                        <li class="fragment fade-in">Software ist aus allen Bereichen des Lebens nicht mehr wegzudenken</li>
                        <li class="fragment fade-in">Immer mehr immer komplexere und vernetztere Software verarbeitet immer mehr Daten</li>
                        <li class="fragment fade-in">Verizon DBIR 2019: mehr als <span class="fragment highlight-red">60%</span> aller Angriffe Ã¼ber Webapplikationen</li>
                    </ul>
                </section>
                <section>
                    <h2>Aber wie bekommt man Software "sicher"?</h2>
                    <p class="fragment fade-up">Einfach immer alles richtig machen!</p>
                </section>
                <section>
                    <h2>Neue Idee: Pentest!</h2>
                    <p class="fragment fade-in">1,337 Findings, davon 42 kritisch... <span class="fragment fade-in">und nun?</span></p>
                </section>
                <section>
                    <h2>Pentests...</h2>
                    <p class="fragment fade-in">... kosten viel Zeit und Geld.</p>
                    <p class="fragment fade-in">... finden nie alle Probleme.</p>
                    <p class="fragment fade-in">... entdecken Probleme erst (zu) spät.</p>
                    <p class="fragment fade-in">... sind trotzdem besser als nichts.</p>
                </section>
                <section>
                    <h2>Neue Idee:</h2>
                    <p><span style="visibility: hidden;">Einfach </span><span class="fragment fade-in" data-fragment-index="0">meistens </span><span class="fragment fade-in" data-fragment-index="1">vieles </span><span class="fragment fade-in" data-fragment-index="2">besser </span><span style="visibility: hidden;">machen!</span></p>
                    <p>Einfach <span class="fragment strikethrough" data-fragment-index="0">immer</span> <span class="fragment strikethrough" data-fragment-index="1">alles</span> <span class="fragment strikethrough" data-fragment-index="2">richtig</span> machen!</p>
                </section>
                <section>
                    <h1>Secure Software Development Lifecycle</h1>
                </section>
                <section>
                    <img src="media/securesoftware/SDLC.svg" width="100%">
                    <section>
                        <h2>Entwicklungsprozess</h2>
                    </section>
                    <section>
                        <h3>Planung</h3>
                        <ul>
                            <li class="fragment fade-in">Projektinhalt und -ziel festlegen</li>
                            <li class="fragment fade-in">Machbarkeit evaluieren</li>
                            <li class="fragment fade-in">Projektrisiken identifizieren</li>
                            <li class="fragment fade-in">Personal- und Zeitplanung</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Analyse</h3>
                        <ul>
                            <li class="fragment fade-in">Anforderungen erfassen</li>
                            <li class="fragment fade-in">Prozesse modellieren</li>
                            <li class="fragment fade-in">Subjekte und Objekte festlegen</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Design</h3>
                        <ul>
                            <li class="fragment fade-in">Architektur und Technologien</li>
                            <li class="fragment fade-in">Entwurfsmuster und Komponenten</li>
                            <li class="fragment fade-in">Spikes und Prototypen</li>
                            <li class="fragment fade-in">APIs und andere IO</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Code</h3>
                        <ul>
                            <li class="fragment fade-in">Implementation von Komponenten</li>
                            <li class="fragment fade-in">Integration zu Gesamtsystem</li>
                            <li class="fragment fade-in">Modul- und Integrationstests?</li>
                            <li class="fragment fade-in">Regressionstests?</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Test</h3>
                        <ul>
                            <li class="fragment fade-in">Funktionale Vollständigkeit</li>
                            <li class="fragment fade-in">Korrektheit</li>
                            <li class="fragment fade-in">Automatisierte und/oder manuelle Tests</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Betrieb</h3>
                        <ul>
                            <li class="fragment fade-in">Deployment</li>
                            <li class="fragment fade-in">Maintenance</li>
                            <li class="fragment fade-in">Stilllegung</li>
                            <li class="fragment fade-in">DevOps?</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Prozessmodelle</h3>
                        <ul>
                            <li class="fragment fade-in">Scrum</li>
                            <li class="fragment fade-in">Extreme Programming</li>
                            <li class="fragment fade-in">V-Modell XT</li>
                            <li class="fragment fade-in">Kanban</li>
                            <li class="fragment fade-in">Proprietärer Prozess</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Voraussetzungen</h3>
                        <ul>
                            <li class="fragment fade-in">Prozess ist spezifiziert</li>
                            <li class="fragment fade-in">Prozess wird befolgt</li>
                        </ul>
                    </section>
                </section>
                <section>
                    <h2>Aber wie wird der Entwicklungsprozess "secure"?</h2>
                </section>
                <section>
                    <img src="media/securesoftware/SDLC.svg" width="100%">
                    <section>
                        <h2>Just add Security!</h2>
                        <ul>
                            <li class="fragment fade-in">Security-Aktivitäten zu Prozess hinzufügen</li>
                            <li class="fragment fade-in">Probleme früh im Prozess erkennen</li>
                            <li class="fragment fade-in">Aktivitäten bauen auf einander auf</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Planung</h3>
                        <ul>
                            <li class="fragment fade-in">Sicherheitsrisiken erkennen und abschätzen</li>
                            <li class="fragment fade-in">Einordnung in Gesamtrisikokonzept</li>
                            <li class="fragment fade-in">Securitykompetenzen im Team sicherstellen</li>
                            <li class="fragment fade-in">Zusätzliches Training oder Personal?</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Analyse</h3>
                        <ul>
                            <li class="fragment fade-in">Sicherheitsanforderungen erfassen</li>
                            <li class="fragment fade-in">Sicherheitskategorien für Daten festlegen</li>
                            <li class="fragment fade-in">Prozessrisiken erkennen</li>
                            <li class="fragment fade-in">Berechtigungen/Zugriff festlegen</li>
                            <li class="fragment fade-in">Akzeptanzkriterien festlegen</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Design</h3>
                        <ul>
                            <li class="fragment fade-in">Sicherheitsanforderungen berücksichtigen</li>
                            <li class="fragment fade-in">Angriffsfläche analysieren und reduzieren</li>
                            <li class="fragment fade-in">Threat Model erstellen und auswerten</li>
                            <li class="fragment fade-in">Architekturreview</li>
                            <li class="fragment fade-in">Guidelines</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Code</h3>
                        <ul>
                            <li class="fragment fade-in">Standardkomponenten verwenden</li>
                            <li class="fragment fade-in">Sauberer und lesbarer Code</li>
                            <li class="fragment fade-in">Guidelines</li>
                            <li class="fragment fade-in">Code Review (Checklisten!)</li>
                            <li class="fragment fade-in">Tooling (SAST etc.)</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Test</h3>
                        <ul>
                            <li class="fragment fade-in">Automatisierte Security-Tests</li>
                            <li class="fragment fade-in">SAST, IAST, DAST</li>
                            <li class="fragment fade-in">Dependency Checks</li>
                            <li class="fragment fade-in">Pentesting - auch nach Deployment</li>
                            <li class="fragment fade-in">Fuzzing</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Betrieb</h3>
                        <ul>
                            <li class="fragment fade-in">Sicheres Deployment</li>
                            <li class="fragment fade-in">Patchkonzept</li>
                            <li class="fragment fade-in">Incident Response</li>
                            <li class="fragment fade-in">DevSecOps?</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Übergreifende Aktivitäten</h3>
                        <ul>
                            <li class="fragment fade-in">Strategie</li>
                            <li class="fragment fade-in">Training</li>
                            <li class="fragment fade-in">Metriken</li>
                            <li class="fragment fade-in">Bereitstellen von Materialien</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Grundsätze</h3>
                        <ul>
                            <li class="fragment fade-in">Prozess ist dokumentiert</li>
                            <li class="fragment fade-in">Prozess wird gelebt</li>
                            <li class="fragment fade-in">Guidelines, Checklisten, Vorlagen</li>
                            <li class="fragment fade-in">Hilfe für Entwickler, keine Gängelung</li>
                            <li class="fragment fade-in">Management- und Entwickler-Buy-In essentiell</li>
                        </ul>
                    </section>
                    <section>
                        <p>... und wenn man sonst nichts tut...</p>
                    </section>
                    <section>
                        <h2>Training und Guidelines</h2>
                    </section>
                </section>
                <section>
                    <h1>DevSecOps</h1>
                </section>
                <section>
                    <h2>DevOps - Herausforderungen</h2>
                    <ul>
                        <li class="fragment fade-in">Kurze Zyklen, hohe Geschwindigkeit</li>
                        <li class="fragment fade-in"><q>Move fast and break things</q></li>
                        <li class="fragment fade-in">Klassische Security bremst</li>
                        <li class="fragment fade-in">Mangelndes Verständnis für Dev-Prozesse bei Security-Team</li>
                        <li class="fragment fade-in">Risiken in Pipeline</li>
                    </ul>
                </section>
                <section>
                    <h2>DevOps - Chancen</h2>
                    <ul>
                        <li class="fragment fade-in">Klassischer Pentest als "Gate" unmöglich</li>
                        <li class="fragment fade-in">Hoher Automatisierungsgrad</li>
                        <li class="fragment fade-in">Prozess ist wichtig</li>
                        <li class="fragment fade-in">Teamarbeit, Knowledge Sharing</li>
                        <li class="fragment fade-in">Kurze Feedbackzyklen</li>
                    </ul>
                </section>
                <section>
                    <h2>DevOps - Lösungen</h2>
                    <ul>
                        <li class="fragment fade-in">Shift security left (SSDLC)</li>
                        <li class="fragment fade-in">Security-Tooling und Automatisierung</li>
                        <li class="fragment fade-in">Enge Integration mit Dev und Ops (DevSecOps)</li>
                        <li class="fragment fade-in">Monitoring und "Red Teaming"</li>
                        <li class="fragment fade-in">Aus Erfahrung lernen (PDCA)</li>
                    </ul>
                </section>
                <section>
                    <h1>Vorgehensmodelle</h1>
                </section>
                <section>
                    <h2>Sicherer Entwicklungsprozess fällt nicht vom Himmel... was tun?</h2>
                </section>
                <section>
                    <section>
                        <h2>"Fertige" Modelle</h2>
                        <ul>
                            <li class="fragment fade-in">Microsoft SDL</li>
                            <li class="fragment fade-in">Secure Scrum</li>
                            <li class="fragment fade-in">OWASP SAMM</li>
                            <li class="fragment fade-in">BSIMM</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Microsoft SDL</h3>
                        <ul>
                            <li class="fragment fade-in">Präskriptives Modell</li>
                            <li class="fragment fade-in">12 Praktiken</li>
                            <li class="fragment fade-in">Ursprünglich eher Wasserfall</li>
                            <li class="fragment fade-in">Seit 2002 entwickelt und verbessert</li>
                            <li class="fragment fade-in">Seit 2004 bei Microsoft verpflichtend</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Microsoft SDL - Praktiken</h3>
                        <div class="colcontainer">
                            <div class="col">
                                <ul>
                                    <li class="fragment fade-in">Training</li>
                                    <li class="fragment fade-in">Security Requirements</li>
                                    <li class="fragment fade-in">Metrics and Reporting</li>
                                    <li class="fragment fade-in">Threat Modeling</li>
                                    <li class="fragment fade-in">Design Requirements</li>
                                    <li class="fragment fade-in">Cryptography Standards</li>
                                </ul>
                            </div>
                            <div class="col">
                                <ul>
                                    <li class="fragment fade-in">Manage Third-Party Risk</li>
                                    <li class="fragment fade-in">Approved Tools</li>
                                    <li class="fragment fade-in">Static Analysis (SAST)</li>
                                    <li class="fragment fade-in">Dynamic Analysis (DAST)</li>
                                    <li class="fragment fade-in">Penetration Testing</li>
                                    <li class="fragment fade-in">Incident Response Process</li>
                                </ul>
                            </div>
                        </div>
                    </section>
                    <section>
                        <h3>Microsoft SDL - Maturity Model</h3>
                        <ul>
                            <li class="fragment fade-in">Wie gut ist meine SDL-Implementation?</li>
                            <li class="fragment fade-in">Guides zur Implementierung</li>
                            <li class="fragment fade-in">Maturity Level "messen"</li>
                        </ul>
                    </section>
                    <section>
                        <h3>Secure Scrum</h3>
                        <ul>
                            <li class="fragment fade-in">Modifikation von Standard-Scrum</li>
                            <li class="fragment fade-in">IT Security Research Group München</li>
                            <li class="fragment fade-in">Zusätzliche Aktivitäten</li>
                            <li class="fragment fade-in">Mapping auf Scrum-Aktivitäten</li>
                        </ul>
                    </section>
                    <section>
                        <h3>OWASP SAMM</h3>
                        <ul>
                            <li class="fragment fade-in">OWASP Software Assurance Maturity Model</li>
                            <li class="fragment fade-in">Präskriptives Modell</li>
                            <li class="fragment fade-in">Offener Erstellungsprozess</li>
                            <li class="fragment fade-in">Vier Geschäftsfunktionen</li>
                            <li class="fragment fade-in">12 Praktiken</li>
                            <li class="fragment fade-in">Version 2.0: 15 Praktiken</li>
                        </ul>
                    </section>
                    <section>
                        <h3>BSIMM</h3>
                        <ul>
                            <li class="fragment fade-in">Building Security In Maturity Model</li>
                            <li class="fragment fade-in">Deskriptives Modell</li>
                            <li class="fragment fade-in">Basiert auf Erhebungen zu existierenden Sicherheitsprogrammen</li>
                            <li class="fragment fade-in">Ursprünglich Untersuchung von Cigital/Synopsys</li>
                            <li class="fragment fade-in">Mittlerweile Beteiligung von 122 Firmen</li>
                            <li class="fragment fade-in">Geeignet vor allem für Evaluation</li>
                        </ul>
                    </section>
                </section>
                <section>
                    <h2>OWASP SAMM 1.5</h2>
                    <img src="media/securesoftware/samm.png">
                </section>
                <section>
                    <h2>OWASP SAMM</h2>
                    <ul>
                        <li class="fragment fade-in">12 Praktiken</li>
                        <li class="fragment fade-in">Jede Praktik hat drei Reifegrade</li>
                        <li class="fragment fade-in">Zwei Aktivitäten pro Reifegrad</li>
                        <li class="fragment fade-in">Scoring der Aktivitäten</li>
                        <li class="fragment fade-in">Metriken</li>
                    </ul>
                </section>
                <section>
                    <h2>OWASP SAMM</h2>
                    <ul>
                        <li class="fragment fade-in">Umfangreiche Beschreibung von Aktivitäten</li>
                        <li class="fragment fade-in">Tools und Worksheets</li>
                        <li class="fragment fade-in">How To-Dokument</li>
                        <li class="fragment fade-in">Quick Start Guide</li>
                    </ul>
                </section>
                <section>
                    <h2>OWASP SAMM - Einstieg</h2>
                    <ul>
                        <li class="fragment fade-in">Initiales Assessment durchführen</li>
                        <li class="fragment fade-in">Roadmap auswählen oder erstellen</li>
                        <li class="fragment fade-in">Iterative Verbesserung planen</li>
                        <li class="fragment fade-in">Umsetzen, Messen, Anpassen (PDCA)</li>
                        <li class="fragment fade-in">Iterieren</li>
                    </ul>
                </section>
                <section>
                    <h2>OWASP SAMM - Assessment</h2>
                    <p>Assessment Worksheets mit Fragen</p>
                    <img src="media/securesoftware/assessment.png">
                </section>
                <section>
                    <h2>OWASP SAMM - Assessment</h2>
                    <p>Scorecard erstellen</p>
                    <img src="media/securesoftware/scorecard.png">
                </section>
                <section>
                    <h2>OWASP SAMM - Roadmap</h2>
                    <p>Roadmap-Templates</p>
                    <img src="media/securesoftware/roadmap.png">
                </section>
                <section>
                    <h2>OWASP SAMM - Roadmap</h2>
                    <ul>
                        <li class="fragment fade-in">Roadmap-Template nach Unternehmenstyp wählen</li>
                        <li class="fragment fade-in">Roadmap anpassen</li>
                        <li class="fragment fade-in">Was bringt am meisten?</li>
                        <li class="fragment fade-in">Was ist für planvolles Vorgehen nötig?</li>
                    </ul>
                </section>
                <section>
                    <h2>OWASP SAMM - Planen</h2>
                    <ul>
                        <li class="fragment fade-in">Zielvorgaben für Phase aus Roadmap ablesen</li>
                        <li class="fragment fade-in">Aktivitäten auswählen</li>
                        <li class="fragment fade-in">Maßnahmen zur Implementation planen</li>
                        <li class="fragment fade-in">Personen, Dokumente, Prozesse</li>
                        <li class="fragment fade-in">Kontrollmechansimen einplanen</li>
                    </ul>
                </section>
                <section data-background="media/securesoftware/cheers.gif">
                    <h1 style="visibility: hidden;">FILL TEXT<br />FILL TEXT<br />FILL TEXT<br />FILL TEXT</h1>
                    <h2>Fertig - alles ist sicher!</h2>
                </section>
                <section>
                    <h2>Referenzen</h2>
                    <ul>
                        <li>https://www.microsoft.com/en-us/securityengineering/</li>
                        <li>https://owaspsamm.org/</li>
                        <li>https://www.bsimm.com/</li>
                        <li>https://cheatsheetseries.owasp.org/</li>
                    </ul>
                </section>
                <section>
                    <h1>Vielen Dank für die Aufmerksamkeit.</h1>
                    <h1>Fragen?</h1>
                </section>
            </div>
        </div>
        <script src="lib/js/head.min.js"></script>
        <script src="js/reveal.min.js"></script>
        <script>
            // More info about config & dependencies:
            // - https://github.com/hakimel/reveal.js#configuration
            // - https://github.com/hakimel/reveal.js#dependencies
            Reveal.initialize({
                transition: 'convex',
                dependencies: [
                    { src: 'plugin/notes/notes.js', async: true },
                    { src: 'plugin/zoom-js/zoom.js', async: true },
                    { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
                ]
            });
        </script>
    </body>
</html>
2019_09_18_41st/Sichere_Softwareentwicklung/slides/css/reveal.css
New file
@@ -0,0 +1,1591 @@
/*!
 * reveal.js
 * http://revealjs.com
 * MIT licensed
 *
 * Copyright (C) 2018 Hakim El Hattab, http://hakim.se
 */
/*********************************************
 * RESET STYLES
 *********************************************/
html, body, .reveal div, .reveal span, .reveal applet, .reveal object, .reveal iframe,
.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6, .reveal p, .reveal blockquote, .reveal pre,
.reveal a, .reveal abbr, .reveal acronym, .reveal address, .reveal big, .reveal cite, .reveal code,
.reveal del, .reveal dfn, .reveal em, .reveal img, .reveal ins, .reveal kbd, .reveal q, .reveal s, .reveal samp,
.reveal small, .reveal strike, .reveal strong, .reveal sub, .reveal sup, .reveal tt, .reveal var,
.reveal b, .reveal u, .reveal center,
.reveal dl, .reveal dt, .reveal dd, .reveal ol, .reveal ul, .reveal li,
.reveal fieldset, .reveal form, .reveal label, .reveal legend,
.reveal table, .reveal caption, .reveal tbody, .reveal tfoot, .reveal thead, .reveal tr, .reveal th, .reveal td,
.reveal article, .reveal aside, .reveal canvas, .reveal details, .reveal embed,
.reveal figure, .reveal figcaption, .reveal footer, .reveal header, .reveal hgroup,
.reveal menu, .reveal nav, .reveal output, .reveal ruby, .reveal section, .reveal summary,
.reveal time, .reveal mark, .reveal audio, .reveal video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }
.reveal article, .reveal aside, .reveal details, .reveal figcaption, .reveal figure,
.reveal footer, .reveal header, .reveal hgroup, .reveal menu, .reveal nav, .reveal section {
  display: block; }
/*********************************************
 * GLOBAL STYLES
 *********************************************/
html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden; }
body {
  position: relative;
  line-height: 1;
  background-color: #fff;
  color: #000; }
/*********************************************
 * VIEW FRAGMENTS
 *********************************************/
.reveal .slides section .fragment {
  opacity: 0;
  visibility: hidden;
  transition: all .2s ease; }
  .reveal .slides section .fragment.visible {
    opacity: 1;
    visibility: inherit; }
.reveal .slides section .fragment.grow {
  opacity: 1;
  visibility: inherit; }
  .reveal .slides section .fragment.grow.visible {
    -webkit-transform: scale(1.3);
            transform: scale(1.3); }
.reveal .slides section .fragment.shrink {
  opacity: 1;
  visibility: inherit; }
  .reveal .slides section .fragment.shrink.visible {
    -webkit-transform: scale(0.7);
            transform: scale(0.7); }
.reveal .slides section .fragment.zoom-in {
  -webkit-transform: scale(0.1);
          transform: scale(0.1); }
  .reveal .slides section .fragment.zoom-in.visible {
    -webkit-transform: none;
            transform: none; }
.reveal .slides section .fragment.fade-out {
  opacity: 1;
  visibility: inherit; }
  .reveal .slides section .fragment.fade-out.visible {
    opacity: 0;
    visibility: hidden; }
.reveal .slides section .fragment.semi-fade-out {
  opacity: 1;
  visibility: inherit; }
  .reveal .slides section .fragment.semi-fade-out.visible {
    opacity: 0.5;
    visibility: inherit; }
.reveal .slides section .fragment.strike {
  opacity: 1;
  visibility: inherit; }
  .reveal .slides section .fragment.strike.visible {
    text-decoration: line-through; }
.reveal .slides section .fragment.fade-up {
  -webkit-transform: translate(0, 20%);
          transform: translate(0, 20%); }
  .reveal .slides section .fragment.fade-up.visible {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
.reveal .slides section .fragment.fade-down {
  -webkit-transform: translate(0, -20%);
          transform: translate(0, -20%); }
  .reveal .slides section .fragment.fade-down.visible {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
.reveal .slides section .fragment.fade-right {
  -webkit-transform: translate(-20%, 0);
          transform: translate(-20%, 0); }
  .reveal .slides section .fragment.fade-right.visible {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
.reveal .slides section .fragment.fade-left {
  -webkit-transform: translate(20%, 0);
          transform: translate(20%, 0); }
  .reveal .slides section .fragment.fade-left.visible {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
.reveal .slides section .fragment.fade-in-then-out,
.reveal .slides section .fragment.current-visible {
  opacity: 0;
  visibility: hidden; }
  .reveal .slides section .fragment.fade-in-then-out.current-fragment,
  .reveal .slides section .fragment.current-visible.current-fragment {
    opacity: 1;
    visibility: inherit; }
.reveal .slides section .fragment.fade-in-then-semi-out {
  opacity: 0;
  visibility: hidden; }
  .reveal .slides section .fragment.fade-in-then-semi-out.visible {
    opacity: 0.5;
    visibility: inherit; }
  .reveal .slides section .fragment.fade-in-then-semi-out.current-fragment {
    opacity: 1;
    visibility: inherit; }
.reveal .slides section .fragment.highlight-red,
.reveal .slides section .fragment.highlight-current-red,
.reveal .slides section .fragment.highlight-green,
.reveal .slides section .fragment.highlight-current-green,
.reveal .slides section .fragment.highlight-blue,
.reveal .slides section .fragment.highlight-current-blue {
  opacity: 1;
  visibility: inherit; }
.reveal .slides section .fragment.highlight-red.visible {
  color: #ff2c2d; }
.reveal .slides section .fragment.highlight-green.visible {
  color: #17ff2e; }
.reveal .slides section .fragment.highlight-blue.visible {
  color: #1b91ff; }
.reveal .slides section .fragment.highlight-current-red.current-fragment {
  color: #ff2c2d; }
.reveal .slides section .fragment.highlight-current-green.current-fragment {
  color: #17ff2e; }
.reveal .slides section .fragment.highlight-current-blue.current-fragment {
  color: #1b91ff; }
/*********************************************
 * DEFAULT ELEMENT STYLES
 *********************************************/
/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */
.reveal:after {
  content: '';
  font-style: italic; }
.reveal iframe {
  z-index: 1; }
/** Prevents layering issues in certain browser/transition combinations */
.reveal a {
  position: relative; }
.reveal .stretch {
  max-width: none;
  max-height: none; }
.reveal pre.stretch code {
  height: 100%;
  max-height: 100%;
  box-sizing: border-box; }
/*********************************************
 * CONTROLS
 *********************************************/
@-webkit-keyframes bounce-right {
  0%, 10%, 25%, 40%, 50% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  30% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px); } }
@keyframes bounce-right {
  0%, 10%, 25%, 40%, 50% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  30% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px); } }
@-webkit-keyframes bounce-down {
  0%, 10%, 25%, 40%, 50% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  20% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  30% {
    -webkit-transform: translateY(-5px);
            transform: translateY(-5px); } }
@keyframes bounce-down {
  0%, 10%, 25%, 40%, 50% {
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  20% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  30% {
    -webkit-transform: translateY(-5px);
            transform: translateY(-5px); } }
.reveal .controls {
  display: none;
  position: absolute;
  top: auto;
  bottom: 12px;
  right: 12px;
  left: auto;
  z-index: 1;
  color: #000;
  pointer-events: none;
  font-size: 10px; }
  .reveal .controls button {
    position: absolute;
    padding: 0;
    background-color: transparent;
    border: 0;
    outline: 0;
    cursor: pointer;
    color: currentColor;
    -webkit-transform: scale(0.9999);
            transform: scale(0.9999);
    transition: color 0.2s ease, opacity 0.2s ease, -webkit-transform 0.2s ease;
    transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
    z-index: 2;
    pointer-events: auto;
    font-size: inherit;
    visibility: hidden;
    opacity: 0;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent; }
  .reveal .controls .controls-arrow:before,
  .reveal .controls .controls-arrow:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 2.6em;
    height: 0.5em;
    border-radius: 0.25em;
    background-color: currentColor;
    transition: all 0.15s ease, background-color 0.8s ease;
    -webkit-transform-origin: 0.2em 50%;
            transform-origin: 0.2em 50%;
    will-change: transform; }
  .reveal .controls .controls-arrow {
    position: relative;
    width: 3.6em;
    height: 3.6em; }
    .reveal .controls .controls-arrow:before {
      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
              transform: translateX(0.5em) translateY(1.55em) rotate(45deg); }
    .reveal .controls .controls-arrow:after {
      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
              transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); }
    .reveal .controls .controls-arrow:hover:before {
      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(40deg);
              transform: translateX(0.5em) translateY(1.55em) rotate(40deg); }
    .reveal .controls .controls-arrow:hover:after {
      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-40deg);
              transform: translateX(0.5em) translateY(1.55em) rotate(-40deg); }
    .reveal .controls .controls-arrow:active:before {
      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(36deg);
              transform: translateX(0.5em) translateY(1.55em) rotate(36deg); }
    .reveal .controls .controls-arrow:active:after {
      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-36deg);
              transform: translateX(0.5em) translateY(1.55em) rotate(-36deg); }
  .reveal .controls .navigate-left {
    right: 6.4em;
    bottom: 3.2em;
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px); }
  .reveal .controls .navigate-right {
    right: 0;
    bottom: 3.2em;
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
    .reveal .controls .navigate-right .controls-arrow {
      -webkit-transform: rotate(180deg);
              transform: rotate(180deg); }
    .reveal .controls .navigate-right.highlight {
      -webkit-animation: bounce-right 2s 50 both ease-out;
              animation: bounce-right 2s 50 both ease-out; }
  .reveal .controls .navigate-up {
    right: 3.2em;
    bottom: 6.4em;
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px); }
    .reveal .controls .navigate-up .controls-arrow {
      -webkit-transform: rotate(90deg);
              transform: rotate(90deg); }
  .reveal .controls .navigate-down {
    right: 3.2em;
    bottom: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
    .reveal .controls .navigate-down .controls-arrow {
      -webkit-transform: rotate(-90deg);
              transform: rotate(-90deg); }
    .reveal .controls .navigate-down.highlight {
      -webkit-animation: bounce-down 2s 50 both ease-out;
              animation: bounce-down 2s 50 both ease-out; }
  .reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled,
  .reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled {
    opacity: 0.3; }
    .reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled:hover,
    .reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled:hover {
      opacity: 1; }
  .reveal .controls[data-controls-back-arrows="hidden"] .navigate-left.enabled,
  .reveal .controls[data-controls-back-arrows="hidden"] .navigate-up.enabled {
    opacity: 0;
    visibility: hidden; }
  .reveal .controls .enabled {
    visibility: visible;
    opacity: 0.9;
    cursor: pointer;
    -webkit-transform: none;
            transform: none; }
  .reveal .controls .enabled.fragmented {
    opacity: 0.5; }
  .reveal .controls .enabled:hover,
  .reveal .controls .enabled.fragmented:hover {
    opacity: 1; }
.reveal:not(.has-vertical-slides) .controls .navigate-left {
  bottom: 1.4em;
  right: 5.5em; }
.reveal:not(.has-vertical-slides) .controls .navigate-right {
  bottom: 1.4em;
  right: 0.5em; }
.reveal:not(.has-horizontal-slides) .controls .navigate-up {
  right: 1.4em;
  bottom: 5em; }
.reveal:not(.has-horizontal-slides) .controls .navigate-down {
  right: 1.4em;
  bottom: 0.5em; }
.reveal.has-dark-background .controls {
  color: #fff; }
.reveal.has-light-background .controls {
  color: #000; }
.reveal.no-hover .controls .controls-arrow:hover:before,
.reveal.no-hover .controls .controls-arrow:active:before {
  -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
          transform: translateX(0.5em) translateY(1.55em) rotate(45deg); }
.reveal.no-hover .controls .controls-arrow:hover:after,
.reveal.no-hover .controls .controls-arrow:active:after {
  -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
          transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); }
@media screen and (min-width: 500px) {
  .reveal .controls[data-controls-layout="edges"] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
  .reveal .controls[data-controls-layout="edges"] .navigate-left,
  .reveal .controls[data-controls-layout="edges"] .navigate-right,
  .reveal .controls[data-controls-layout="edges"] .navigate-up,
  .reveal .controls[data-controls-layout="edges"] .navigate-down {
    bottom: auto;
    right: auto; }
  .reveal .controls[data-controls-layout="edges"] .navigate-left {
    top: 50%;
    left: 8px;
    margin-top: -1.8em; }
  .reveal .controls[data-controls-layout="edges"] .navigate-right {
    top: 50%;
    right: 8px;
    margin-top: -1.8em; }
  .reveal .controls[data-controls-layout="edges"] .navigate-up {
    top: 8px;
    left: 50%;
    margin-left: -1.8em; }
  .reveal .controls[data-controls-layout="edges"] .navigate-down {
    bottom: 8px;
    left: 50%;
    margin-left: -1.8em; } }
/*********************************************
 * PROGRESS BAR
 *********************************************/
.reveal .progress {
  position: absolute;
  display: none;
  height: 3px;
  width: 100%;
  bottom: 0;
  left: 0;
  z-index: 10;
  background-color: rgba(0, 0, 0, 0.2);
  color: #fff; }
.reveal .progress:after {
  content: '';
  display: block;
  position: absolute;
  height: 10px;
  width: 100%;
  top: -10px; }
.reveal .progress span {
  display: block;
  height: 100%;
  width: 0px;
  background-color: currentColor;
  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
 * SLIDE NUMBER
 *********************************************/
.reveal .slide-number {
  position: absolute;
  display: block;
  right: 8px;
  bottom: 8px;
  z-index: 31;
  font-family: Helvetica, sans-serif;
  font-size: 12px;
  line-height: 1;
  color: #fff;
  background-color: rgba(0, 0, 0, 0.4);
  padding: 5px; }
.reveal .slide-number a {
  color: currentColor; }
.reveal .slide-number-delimiter {
  margin: 0 3px; }
/*********************************************
 * SLIDES
 *********************************************/
.reveal {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -ms-touch-action: none;
      touch-action: none; }
@media only screen and (orientation: landscape) {
  .reveal.ua-iphone {
    position: fixed; } }
.reveal .slides {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  pointer-events: none;
  overflow: visible;
  z-index: 1;
  text-align: center;
  -webkit-perspective: 600px;
          perspective: 600px;
  -webkit-perspective-origin: 50% 40%;
          perspective-origin: 50% 40%; }
.reveal .slides > section {
  -ms-perspective: 600px; }
.reveal .slides > section,
.reveal .slides > section > section {
  display: none;
  position: absolute;
  width: 100%;
  padding: 20px 0px;
  pointer-events: auto;
  z-index: 10;
  -webkit-transform-style: flat;
          transform-style: flat;
  transition: -webkit-transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), -webkit-transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
  transition: transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/* Global transition speed settings */
.reveal[data-transition-speed="fast"] .slides section {
  transition-duration: 400ms; }
.reveal[data-transition-speed="slow"] .slides section {
  transition-duration: 1200ms; }
/* Slide-specific transition speed overrides */
.reveal .slides section[data-transition-speed="fast"] {
  transition-duration: 400ms; }
.reveal .slides section[data-transition-speed="slow"] {
  transition-duration: 1200ms; }
.reveal .slides > section.stack {
  padding-top: 0;
  padding-bottom: 0;
  pointer-events: none; }
.reveal .slides > section.present,
.reveal .slides > section > section.present {
  display: block;
  z-index: 11;
  opacity: 1; }
.reveal .slides > section:empty,
.reveal .slides > section > section:empty,
.reveal .slides > section[data-background-interactive],
.reveal .slides > section > section[data-background-interactive] {
  pointer-events: none; }
.reveal.center,
.reveal.center .slides,
.reveal.center .slides section {
  min-height: 0 !important; }
/* Don't allow interaction with invisible slides */
.reveal .slides > section.future,
.reveal .slides > section > section.future,
.reveal .slides > section.past,
.reveal .slides > section > section.past {
  pointer-events: none; }
.reveal.overview .slides > section,
.reveal.overview .slides > section > section {
  pointer-events: auto; }
.reveal .slides > section.past,
.reveal .slides > section.future,
.reveal .slides > section > section.past,
.reveal .slides > section > section.future {
  opacity: 0; }
/*********************************************
 * Mixins for readability of transitions
 *********************************************/
/*********************************************
 * SLIDE TRANSITION
 * Aliased 'linear' for backwards compatibility
 *********************************************/
.reveal.slide section {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
.reveal .slides > section[data-transition=slide].past,
.reveal .slides > section[data-transition~=slide-out].past,
.reveal.slide .slides > section:not([data-transition]).past {
  -webkit-transform: translate(-150%, 0);
          transform: translate(-150%, 0); }
.reveal .slides > section[data-transition=slide].future,
.reveal .slides > section[data-transition~=slide-in].future,
.reveal.slide .slides > section:not([data-transition]).future {
  -webkit-transform: translate(150%, 0);
          transform: translate(150%, 0); }
.reveal .slides > section > section[data-transition=slide].past,
.reveal .slides > section > section[data-transition~=slide-out].past,
.reveal.slide .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate(0, -150%);
          transform: translate(0, -150%); }
.reveal .slides > section > section[data-transition=slide].future,
.reveal .slides > section > section[data-transition~=slide-in].future,
.reveal.slide .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate(0, 150%);
          transform: translate(0, 150%); }
.reveal.linear section {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
.reveal .slides > section[data-transition=linear].past,
.reveal .slides > section[data-transition~=linear-out].past,
.reveal.linear .slides > section:not([data-transition]).past {
  -webkit-transform: translate(-150%, 0);
          transform: translate(-150%, 0); }
.reveal .slides > section[data-transition=linear].future,
.reveal .slides > section[data-transition~=linear-in].future,
.reveal.linear .slides > section:not([data-transition]).future {
  -webkit-transform: translate(150%, 0);
          transform: translate(150%, 0); }
.reveal .slides > section > section[data-transition=linear].past,
.reveal .slides > section > section[data-transition~=linear-out].past,
.reveal.linear .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate(0, -150%);
          transform: translate(0, -150%); }
.reveal .slides > section > section[data-transition=linear].future,
.reveal .slides > section > section[data-transition~=linear-in].future,
.reveal.linear .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate(0, 150%);
          transform: translate(0, 150%); }
/*********************************************
 * CONVEX TRANSITION
 * Aliased 'default' for backwards compatibility
 *********************************************/
.reveal .slides section[data-transition=default].stack,
.reveal.default .slides section.stack {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
.reveal .slides > section[data-transition=default].past,
.reveal .slides > section[data-transition~=default-out].past,
.reveal.default .slides > section:not([data-transition]).past {
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }
.reveal .slides > section[data-transition=default].future,
.reveal .slides > section[data-transition~=default-in].future,
.reveal.default .slides > section:not([data-transition]).future {
  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }
.reveal .slides > section > section[data-transition=default].past,
.reveal .slides > section > section[data-transition~=default-out].past,
.reveal.default .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
          transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }
.reveal .slides > section > section[data-transition=default].future,
.reveal .slides > section > section[data-transition~=default-in].future,
.reveal.default .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
          transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }
.reveal .slides section[data-transition=convex].stack,
.reveal.convex .slides section.stack {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
.reveal .slides > section[data-transition=convex].past,
.reveal .slides > section[data-transition~=convex-out].past,
.reveal.convex .slides > section:not([data-transition]).past {
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }
.reveal .slides > section[data-transition=convex].future,
.reveal .slides > section[data-transition~=convex-in].future,
.reveal.convex .slides > section:not([data-transition]).future {
  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }
.reveal .slides > section > section[data-transition=convex].past,
.reveal .slides > section > section[data-transition~=convex-out].past,
.reveal.convex .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
          transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }
.reveal .slides > section > section[data-transition=convex].future,
.reveal .slides > section > section[data-transition~=convex-in].future,
.reveal.convex .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
          transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }
/*********************************************
 * CONCAVE TRANSITION
 *********************************************/
.reveal .slides section[data-transition=concave].stack,
.reveal.concave .slides section.stack {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
.reveal .slides > section[data-transition=concave].past,
.reveal .slides > section[data-transition~=concave-out].past,
.reveal.concave .slides > section:not([data-transition]).past {
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); }
.reveal .slides > section[data-transition=concave].future,
.reveal .slides > section[data-transition~=concave-in].future,
.reveal.concave .slides > section:not([data-transition]).future {
  -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); }
.reveal .slides > section > section[data-transition=concave].past,
.reveal .slides > section > section[data-transition~=concave-out].past,
.reveal.concave .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
          transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); }
.reveal .slides > section > section[data-transition=concave].future,
.reveal .slides > section > section[data-transition~=concave-in].future,
.reveal.concave .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
          transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); }
/*********************************************
 * ZOOM TRANSITION
 *********************************************/
.reveal .slides section[data-transition=zoom],
.reveal.zoom .slides section:not([data-transition]) {
  transition-timing-function: ease; }
.reveal .slides > section[data-transition=zoom].past,
.reveal .slides > section[data-transition~=zoom-out].past,
.reveal.zoom .slides > section:not([data-transition]).past {
  visibility: hidden;
  -webkit-transform: scale(16);
          transform: scale(16); }
.reveal .slides > section[data-transition=zoom].future,
.reveal .slides > section[data-transition~=zoom-in].future,
.reveal.zoom .slides > section:not([data-transition]).future {
  visibility: hidden;
  -webkit-transform: scale(0.2);
          transform: scale(0.2); }
.reveal .slides > section > section[data-transition=zoom].past,
.reveal .slides > section > section[data-transition~=zoom-out].past,
.reveal.zoom .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate(0, -150%);
          transform: translate(0, -150%); }
.reveal .slides > section > section[data-transition=zoom].future,
.reveal .slides > section > section[data-transition~=zoom-in].future,
.reveal.zoom .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate(0, 150%);
          transform: translate(0, 150%); }
/*********************************************
 * CUBE TRANSITION
 *
 * WARNING:
 * this is deprecated and will be removed in a
 * future version.
 *********************************************/
.reveal.cube .slides {
  -webkit-perspective: 1300px;
          perspective: 1300px; }
.reveal.cube .slides section {
  padding: 30px;
  min-height: 700px;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  box-sizing: border-box;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
.reveal.center.cube .slides section {
  min-height: 0; }
.reveal.cube .slides section:not(.stack):before {
  content: '';
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  -webkit-transform: translateZ(-20px);
          transform: translateZ(-20px); }
.reveal.cube .slides section:not(.stack):after {
  content: '';
  position: absolute;
  display: block;
  width: 90%;
  height: 30px;
  left: 5%;
  bottom: 0;
  background: none;
  z-index: 1;
  border-radius: 4px;
  box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);
  -webkit-transform: translateZ(-90px) rotateX(65deg);
          transform: translateZ(-90px) rotateX(65deg); }
.reveal.cube .slides > section.stack {
  padding: 0;
  background: none; }
.reveal.cube .slides > section.past {
  -webkit-transform-origin: 100% 0%;
          transform-origin: 100% 0%;
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
          transform: translate3d(-100%, 0, 0) rotateY(-90deg); }
.reveal.cube .slides > section.future {
  -webkit-transform-origin: 0% 0%;
          transform-origin: 0% 0%;
  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
          transform: translate3d(100%, 0, 0) rotateY(90deg); }
.reveal.cube .slides > section > section.past {
  -webkit-transform-origin: 0% 100%;
          transform-origin: 0% 100%;
  -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
          transform: translate3d(0, -100%, 0) rotateX(90deg); }
.reveal.cube .slides > section > section.future {
  -webkit-transform-origin: 0% 0%;
          transform-origin: 0% 0%;
  -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
          transform: translate3d(0, 100%, 0) rotateX(-90deg); }
/*********************************************
 * PAGE TRANSITION
 *
 * WARNING:
 * this is deprecated and will be removed in a
 * future version.
 *********************************************/
.reveal.page .slides {
  -webkit-perspective-origin: 0% 50%;
          perspective-origin: 0% 50%;
  -webkit-perspective: 3000px;
          perspective: 3000px; }
.reveal.page .slides section {
  padding: 30px;
  min-height: 700px;
  box-sizing: border-box;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
.reveal.page .slides section.past {
  z-index: 12; }
.reveal.page .slides section:not(.stack):before {
  content: '';
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.1);
  -webkit-transform: translateZ(-20px);
          transform: translateZ(-20px); }
.reveal.page .slides section:not(.stack):after {
  content: '';
  position: absolute;
  display: block;
  width: 90%;
  height: 30px;
  left: 5%;
  bottom: 0;
  background: none;
  z-index: 1;
  border-radius: 4px;
  box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);
  -webkit-transform: translateZ(-90px) rotateX(65deg); }
.reveal.page .slides > section.stack {
  padding: 0;
  background: none; }
.reveal.page .slides > section.past {
  -webkit-transform-origin: 0% 0%;
          transform-origin: 0% 0%;
  -webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
          transform: translate3d(-40%, 0, 0) rotateY(-80deg); }
.reveal.page .slides > section.future {
  -webkit-transform-origin: 100% 0%;
          transform-origin: 100% 0%;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0); }
.reveal.page .slides > section > section.past {
  -webkit-transform-origin: 0% 0%;
          transform-origin: 0% 0%;
  -webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
          transform: translate3d(0, -40%, 0) rotateX(80deg); }
.reveal.page .slides > section > section.future {
  -webkit-transform-origin: 0% 100%;
          transform-origin: 0% 100%;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0); }
/*********************************************
 * FADE TRANSITION
 *********************************************/
.reveal .slides section[data-transition=fade],
.reveal.fade .slides section:not([data-transition]),
.reveal.fade .slides > section > section:not([data-transition]) {
  -webkit-transform: none;
          transform: none;
  transition: opacity 0.5s; }
.reveal.fade.overview .slides section,
.reveal.fade.overview .slides > section > section {
  transition: none; }
/*********************************************
 * NO TRANSITION
 *********************************************/
.reveal .slides section[data-transition=none],
.reveal.none .slides section:not([data-transition]) {
  -webkit-transform: none;
          transform: none;
  transition: none; }
/*********************************************
 * PAUSED MODE
 *********************************************/
.reveal .pause-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  visibility: hidden;
  opacity: 0;
  z-index: 100;
  transition: all 1s ease; }
.reveal .pause-overlay .resume-button {
  position: absolute;
  bottom: 20px;
  right: 20px;
  color: #ccc;
  border-radius: 2px;
  padding: 6px 14px;
  border: 2px solid #ccc;
  font-size: 16px;
  background: transparent;
  cursor: pointer; }
  .reveal .pause-overlay .resume-button:hover {
    color: #fff;
    border-color: #fff; }
.reveal.paused .pause-overlay {
  visibility: visible;
  opacity: 1; }
/*********************************************
 * FALLBACK
 *********************************************/
.no-transforms {
  overflow-y: auto; }
.no-transforms .reveal .slides {
  position: relative;
  width: 80%;
  height: auto !important;
  top: 0;
  left: 50%;
  margin: 0;
  text-align: center; }
.no-transforms .reveal .controls,
.no-transforms .reveal .progress {
  display: none !important; }
.no-transforms .reveal .slides section {
  display: block !important;
  opacity: 1 !important;
  position: relative !important;
  height: auto;
  min-height: 0;
  top: 0;
  left: -50%;
  margin: 70px 0;
  -webkit-transform: none;
          transform: none; }
.no-transforms .reveal .slides section section {
  left: 0; }
.reveal .no-transition,
.reveal .no-transition * {
  transition: none !important; }
/*********************************************
 * PER-SLIDE BACKGROUNDS
 *********************************************/
.reveal .backgrounds {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  -webkit-perspective: 600px;
          perspective: 600px; }
.reveal .slide-background {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  background-color: transparent;
  transition: all 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
.reveal .slide-background-content {
  position: absolute;
  width: 100%;
  height: 100%;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover; }
.reveal .slide-background.stack {
  display: block; }
.reveal .slide-background.present {
  opacity: 1;
  visibility: visible;
  z-index: 2; }
.print-pdf .reveal .slide-background {
  opacity: 1 !important;
  visibility: visible !important; }
/* Video backgrounds */
.reveal .slide-background video {
  position: absolute;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover; }
.reveal .slide-background[data-background-size="contain"] video {
  -o-object-fit: contain;
     object-fit: contain; }
/* Immediate transition style */
.reveal[data-background-transition=none] > .backgrounds .slide-background,
.reveal > .backgrounds .slide-background[data-background-transition=none] {
  transition: none; }
/* Slide */
.reveal[data-background-transition=slide] > .backgrounds .slide-background,
.reveal > .backgrounds .slide-background[data-background-transition=slide] {
  opacity: 1;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
.reveal[data-background-transition=slide] > .backgrounds .slide-background.past,
.reveal > .backgrounds .slide-background.past[data-background-transition=slide] {
  -webkit-transform: translate(-100%, 0);
          transform: translate(-100%, 0); }
.reveal[data-background-transition=slide] > .backgrounds .slide-background.future,
.reveal > .backgrounds .slide-background.future[data-background-transition=slide] {
  -webkit-transform: translate(100%, 0);
          transform: translate(100%, 0); }
.reveal[data-background-transition=slide] > .backgrounds .slide-background > .slide-background.past,
.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=slide] {
  -webkit-transform: translate(0, -100%);
          transform: translate(0, -100%); }
.reveal[data-background-transition=slide] > .backgrounds .slide-background > .slide-background.future,
.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=slide] {
  -webkit-transform: translate(0, 100%);
          transform: translate(0, 100%); }
/* Convex */
.reveal[data-background-transition=convex] > .backgrounds .slide-background.past,
.reveal > .backgrounds .slide-background.past[data-background-transition=convex] {
  opacity: 0;
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }
.reveal[data-background-transition=convex] > .backgrounds .slide-background.future,
.reveal > .backgrounds .slide-background.future[data-background-transition=convex] {
  opacity: 0;
  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }
.reveal[data-background-transition=convex] > .backgrounds .slide-background > .slide-background.past,
.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=convex] {
  opacity: 0;
  -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
          transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0); }
.reveal[data-background-transition=convex] > .backgrounds .slide-background > .slide-background.future,
.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=convex] {
  opacity: 0;
  -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
          transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0); }
/* Concave */
.reveal[data-background-transition=concave] > .backgrounds .slide-background.past,
.reveal > .backgrounds .slide-background.past[data-background-transition=concave] {
  opacity: 0;
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); }
.reveal[data-background-transition=concave] > .backgrounds .slide-background.future,
.reveal > .backgrounds .slide-background.future[data-background-transition=concave] {
  opacity: 0;
  -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); }
.reveal[data-background-transition=concave] > .backgrounds .slide-background > .slide-background.past,
.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=concave] {
  opacity: 0;
  -webkit-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
          transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0); }
.reveal[data-background-transition=concave] > .backgrounds .slide-background > .slide-background.future,
.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=concave] {
  opacity: 0;
  -webkit-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
          transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0); }
/* Zoom */
.reveal[data-background-transition=zoom] > .backgrounds .slide-background,
.reveal > .backgrounds .slide-background[data-background-transition=zoom] {
  transition-timing-function: ease; }
.reveal[data-background-transition=zoom] > .backgrounds .slide-background.past,
.reveal > .backgrounds .slide-background.past[data-background-transition=zoom] {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: scale(16);
          transform: scale(16); }
.reveal[data-background-transition=zoom] > .backgrounds .slide-background.future,
.reveal > .backgrounds .slide-background.future[data-background-transition=zoom] {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: scale(0.2);
          transform: scale(0.2); }
.reveal[data-background-transition=zoom] > .backgrounds .slide-background > .slide-background.past,
.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=zoom] {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: scale(16);
          transform: scale(16); }
.reveal[data-background-transition=zoom] > .backgrounds .slide-background > .slide-background.future,
.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=zoom] {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: scale(0.2);
          transform: scale(0.2); }
/* Global transition speed settings */
.reveal[data-transition-speed="fast"] > .backgrounds .slide-background {
  transition-duration: 400ms; }
.reveal[data-transition-speed="slow"] > .backgrounds .slide-background {
  transition-duration: 1200ms; }
/*********************************************
 * OVERVIEW
 *********************************************/
.reveal.overview {
  -webkit-perspective-origin: 50% 50%;
          perspective-origin: 50% 50%;
  -webkit-perspective: 700px;
          perspective: 700px; }
  .reveal.overview .slides {
    -moz-transform-style: preserve-3d; }
  .reveal.overview .slides section {
    height: 100%;
    top: 0 !important;
    opacity: 1 !important;
    overflow: hidden;
    visibility: visible !important;
    cursor: pointer;
    box-sizing: border-box; }
  .reveal.overview .slides section:hover,
  .reveal.overview .slides section.present {
    outline: 10px solid rgba(150, 150, 150, 0.4);
    outline-offset: 10px; }
  .reveal.overview .slides section .fragment {
    opacity: 1;
    transition: none; }
  .reveal.overview .slides section:after,
  .reveal.overview .slides section:before {
    display: none !important; }
  .reveal.overview .slides > section.stack {
    padding: 0;
    top: 0 !important;
    background: none;
    outline: none;
    overflow: visible; }
  .reveal.overview .backgrounds {
    -webkit-perspective: inherit;
            perspective: inherit;
    -moz-transform-style: preserve-3d; }
  .reveal.overview .backgrounds .slide-background {
    opacity: 1;
    visibility: visible;
    outline: 10px solid rgba(150, 150, 150, 0.1);
    outline-offset: 10px; }
  .reveal.overview .backgrounds .slide-background.stack {
    overflow: visible; }
.reveal.overview .slides section,
.reveal.overview-deactivating .slides section {
  transition: none; }
.reveal.overview .backgrounds .slide-background,
.reveal.overview-deactivating .backgrounds .slide-background {
  transition: none; }
/*********************************************
 * RTL SUPPORT
 *********************************************/
.reveal.rtl .slides,
.reveal.rtl .slides h1,
.reveal.rtl .slides h2,
.reveal.rtl .slides h3,
.reveal.rtl .slides h4,
.reveal.rtl .slides h5,
.reveal.rtl .slides h6 {
  direction: rtl;
  font-family: sans-serif; }
.reveal.rtl pre,
.reveal.rtl code {
  direction: ltr; }
.reveal.rtl ol,
.reveal.rtl ul {
  text-align: right; }
.reveal.rtl .progress span {
  float: right; }
/*********************************************
 * PARALLAX BACKGROUND
 *********************************************/
.reveal.has-parallax-background .backgrounds {
  transition: all 0.8s ease; }
/* Global transition speed settings */
.reveal.has-parallax-background[data-transition-speed="fast"] .backgrounds {
  transition-duration: 400ms; }
.reveal.has-parallax-background[data-transition-speed="slow"] .backgrounds {
  transition-duration: 1200ms; }
/*********************************************
 * LINK PREVIEW OVERLAY
 *********************************************/
.reveal .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.9);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease; }
.reveal .overlay.visible {
  opacity: 1;
  visibility: visible; }
.reveal .overlay .spinner {
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  width: 32px;
  height: 32px;
  margin: -16px 0 0 -16px;
  z-index: 10;
  background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);
  visibility: visible;
  opacity: 0.6;
  transition: all 0.3s ease; }
.reveal .overlay header {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 40px;
  z-index: 2;
  border-bottom: 1px solid #222; }
.reveal .overlay header a {
  display: inline-block;
  width: 40px;
  height: 40px;
  line-height: 36px;
  padding: 0 10px;
  float: right;
  opacity: 0.6;
  box-sizing: border-box; }
.reveal .overlay header a:hover {
  opacity: 1; }
.reveal .overlay header a .icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background-position: 50% 50%;
  background-size: 100%;
  background-repeat: no-repeat; }
.reveal .overlay header a.close .icon {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC); }
.reveal .overlay header a.external .icon {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==); }
.reveal .overlay .viewport {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  top: 40px;
  right: 0;
  bottom: 0;
  left: 0; }
.reveal .overlay.overlay-preview .viewport iframe {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  border: 0;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease; }
.reveal .overlay.overlay-preview.loaded .viewport iframe {
  opacity: 1;
  visibility: visible; }
.reveal .overlay.overlay-preview.loaded .viewport-inner {
  position: absolute;
  z-index: -1;
  left: 0;
  top: 45%;
  width: 100%;
  text-align: center;
  letter-spacing: normal; }
.reveal .overlay.overlay-preview .x-frame-error {
  opacity: 0;
  transition: opacity 0.3s ease 0.3s; }
.reveal .overlay.overlay-preview.loaded .x-frame-error {
  opacity: 1; }
.reveal .overlay.overlay-preview.loaded .spinner {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: scale(0.2);
          transform: scale(0.2); }
.reveal .overlay.overlay-help .viewport {
  overflow: auto;
  color: #fff; }
.reveal .overlay.overlay-help .viewport .viewport-inner {
  width: 600px;
  margin: auto;
  padding: 20px 20px 80px 20px;
  text-align: center;
  letter-spacing: normal; }
.reveal .overlay.overlay-help .viewport .viewport-inner .title {
  font-size: 20px; }
.reveal .overlay.overlay-help .viewport .viewport-inner table {
  border: 1px solid #fff;
  border-collapse: collapse;
  font-size: 16px; }
.reveal .overlay.overlay-help .viewport .viewport-inner table th,
.reveal .overlay.overlay-help .viewport .viewport-inner table td {
  width: 200px;
  padding: 14px;
  border: 1px solid #fff;
  vertical-align: middle; }
.reveal .overlay.overlay-help .viewport .viewport-inner table th {
  padding-top: 20px;
  padding-bottom: 20px; }
/*********************************************
 * PLAYBACK COMPONENT
 *********************************************/
.reveal .playback {
  position: absolute;
  left: 15px;
  bottom: 20px;
  z-index: 30;
  cursor: pointer;
  transition: all 400ms ease;
  -webkit-tap-highlight-color: transparent; }
.reveal.overview .playback {
  opacity: 0;
  visibility: hidden; }
/*********************************************
 * ROLLING LINKS
 *********************************************/
.reveal .roll {
  display: inline-block;
  line-height: 1.2;
  overflow: hidden;
  vertical-align: top;
  -webkit-perspective: 400px;
          perspective: 400px;
  -webkit-perspective-origin: 50% 50%;
          perspective-origin: 50% 50%; }
.reveal .roll:hover {
  background: none;
  text-shadow: none; }
.reveal .roll span {
  display: block;
  position: relative;
  padding: 0 2px;
  pointer-events: none;
  transition: all 400ms ease;
  -webkit-transform-origin: 50% 0%;
          transform-origin: 50% 0%;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
.reveal .roll:hover span {
  background: rgba(0, 0, 0, 0.5);
  -webkit-transform: translate3d(0px, 0px, -45px) rotateX(90deg);
          transform: translate3d(0px, 0px, -45px) rotateX(90deg); }
.reveal .roll span:after {
  content: attr(data-title);
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  padding: 0 2px;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform-origin: 50% 0%;
          transform-origin: 50% 0%;
  -webkit-transform: translate3d(0px, 110%, 0px) rotateX(-90deg);
          transform: translate3d(0px, 110%, 0px) rotateX(-90deg); }
/*********************************************
 * SPEAKER NOTES
 *********************************************/
.reveal aside.notes {
  display: none; }
.reveal .speaker-notes {
  display: none;
  position: absolute;
  width: 25vw;
  height: 100%;
  top: 0;
  left: 100%;
  padding: 14px 18px 14px 18px;
  z-index: 1;
  font-size: 18px;
  line-height: 1.4;
  border: 1px solid rgba(0, 0, 0, 0.05);
  color: #222;
  background-color: #f5f5f5;
  overflow: auto;
  box-sizing: border-box;
  text-align: left;
  font-family: Helvetica, sans-serif;
  -webkit-overflow-scrolling: touch; }
  .reveal .speaker-notes .notes-placeholder {
    color: #ccc;
    font-style: italic; }
  .reveal .speaker-notes:focus {
    outline: none; }
  .reveal .speaker-notes:before {
    content: 'Speaker notes';
    display: block;
    margin-bottom: 10px;
    opacity: 0.5; }
.reveal.show-notes {
  max-width: 75vw;
  overflow: visible; }
.reveal.show-notes .speaker-notes {
  display: block; }
@media screen and (min-width: 1600px) {
  .reveal .speaker-notes {
    font-size: 20px; } }
@media screen and (max-width: 1024px) {
  .reveal.show-notes {
    border-left: 0;
    max-width: none;
    max-height: 70%;
    overflow: visible; }
  .reveal.show-notes .speaker-notes {
    top: 100%;
    left: 0;
    width: 100%;
    height: 42.8571428571%; } }
@media screen and (max-width: 600px) {
  .reveal.show-notes {
    max-height: 60%; }
  .reveal.show-notes .speaker-notes {
    top: 100%;
    height: 66.6666666667%; }
  .reveal .speaker-notes {
    font-size: 14px; } }
/*********************************************
 * ZOOM PLUGIN
 *********************************************/
.zoomed .reveal *,
.zoomed .reveal *:before,
.zoomed .reveal *:after {
  -webkit-backface-visibility: visible !important;
          backface-visibility: visible !important; }
.zoomed .reveal .progress,
.zoomed .reveal .controls {
  opacity: 0; }
.zoomed .reveal .roll span {
  background: none; }
.zoomed .reveal .roll span:after {
  visibility: hidden; }
2019_09_18_41st/Sichere_Softwareentwicklung/slides/css/theme/cic.css
New file
@@ -0,0 +1,314 @@
/**
 * Black theme for reveal.js. This is the opposite of the 'white' theme.
 *
 * By Hakim El Hattab, http://hakim.se
 */
@import url(../../lib/font/metropolis/metropolis.css);
section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 {
  color: #222; }
/*********************************************
 * GLOBAL STYLES
 *********************************************/
body {
  background: #222;
  background-color: #222; }
.reveal {
  font-family: "Metropolis", Helvetica, sans-serif;
  font-size: 42px;
  font-weight: normal;
  color: #fff; }
::selection {
  color: #fff;
  background: #e7aaa9;
  text-shadow: none; }
::-moz-selection {
  color: #fff;
  background: #e7aaa9;
  text-shadow: none; }
.reveal .slides section,
.reveal .slides section > section {
  line-height: 1.3;
  font-weight: inherit; }
/*********************************************
 * HEADERS
 *********************************************/
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  margin: 0 0 20px 0;
  color: #fff;
  font-family: "Metropolis", Helvetica, sans-serif;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: normal;
  text-transform: none;
  text-shadow: none;
  word-wrap: break-word; }
.reveal h1 {
  font-size: 2em; }
.reveal h2 {
  font-size: 1.6em; }
.reveal h3 {
  font-size: 1.3em; }
.reveal h4 {
  font-size: 1em; }
.reveal h1 {
  text-shadow: none; }
/*********************************************
 * OTHER
 *********************************************/
.reveal p {
  margin: 20px 0;
  line-height: 1.3; }
/* Ensure certain elements are never larger than the slide itself */
.reveal img,
.reveal video,
.reveal iframe {
  max-width: 95%;
  max-height: 95%; }
.reveal strong,
.reveal b {
  font-weight: bold; }
.reveal em {
  font-style: italic; }
.reveal ol,
.reveal dl,
.reveal ul {
  display: inline-block;
  text-align: left;
  margin: 0 0 0 1em; }
.reveal ol {
  list-style-type: decimal; }
.reveal ul {
  list-style-type: disc; }
.reveal ul ul {
  list-style-type: square; }
.reveal ul ul ul {
  list-style-type: circle; }
.reveal ul ul,
.reveal ul ol,
.reveal ol ol,
.reveal ol ul {
  display: block;
  margin-left: 40px; }
.reveal dt {
  font-weight: bold; }
.reveal dd {
  margin-left: 40px; }
.reveal blockquote {
  display: block;
  position: relative;
  width: 70%;
  margin: 20px auto;
  padding: 5px;
  font-style: italic;
  background: rgba(255, 255, 255, 0.05);
  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
.reveal blockquote p:first-child,
.reveal blockquote p:last-child {
  display: inline-block; }
.reveal q {
  font-style: italic; }
.reveal pre {
  display: block;
  position: relative;
  width: 90%;
  margin: 20px auto;
  text-align: left;
  font-size: 0.55em;
  font-family: monospace;
  line-height: 1.2em;
  word-wrap: break-word;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }
.reveal code {
  font-family: monospace;
  text-transform: none; }
.reveal pre code {
  display: block;
  padding: 5px;
  overflow: auto;
  max-height: 400px;
  word-wrap: normal; }
.reveal table {
  margin: auto;
  border-collapse: collapse;
  border-spacing: 0; }
.reveal table th {
  font-weight: bold; }
.reveal table th,
.reveal table td {
  text-align: left;
  padding: 0.2em 0.5em 0.2em 0.5em;
  border-bottom: 1px solid; }
.reveal table th[align="center"],
.reveal table td[align="center"] {
  text-align: center; }
.reveal table th[align="right"],
.reveal table td[align="right"] {
  text-align: right; }
.reveal table tbody tr:last-child th,
.reveal table tbody tr:last-child td {
  border-bottom: none; }
.reveal sup {
  vertical-align: super;
  font-size: smaller; }
.reveal sub {
  vertical-align: sub;
  font-size: smaller; }
.reveal small {
  display: inline-block;
  font-size: 0.6em;
  line-height: 1.2em;
  vertical-align: top; }
.reveal small * {
  vertical-align: top; }
/*********************************************
 * LINKS
 *********************************************/
.reveal a {
  color: #cc4645;
  text-decoration: none;
  -webkit-transition: color .15s ease;
  -moz-transition: color .15s ease;
  transition: color .15s ease; }
.reveal a:hover {
  color: #dc8281;
  text-shadow: none;
  border: none; }
.reveal .roll span:after {
  color: #fff;
  background: #9a2b2a; }
/*********************************************
 * IMAGES
 *********************************************/
.reveal section img {
  margin: 15px 0px;
  background: rgba(255, 255, 255, 0.12);
  border: 4px solid #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
.reveal section img.plain {
  border: 0;
  box-shadow: none; }
.reveal a img {
  -webkit-transition: all .15s linear;
  -moz-transition: all .15s linear;
  transition: all .15s linear; }
.reveal a:hover img {
  background: rgba(255, 255, 255, 0.2);
  border-color: #cc4645;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
/*********************************************
 * NAVIGATION CONTROLS
 *********************************************/
.reveal .controls {
  color: #cc4645; }
/*********************************************
 * PROGRESS BAR
 *********************************************/
.reveal .progress {
  background: rgba(0, 0, 0, 0.2);
  color: #cc4645; }
.reveal .progress span {
  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
 * PRINT BACKGROUND
 *********************************************/
@media print {
  .backgrounds {
    background-color: #222; } }
.reveal::after {
  content: url(logo.png);
  position: absolute;
  bottom: 10px;
  left: 10px; }
.reveal .slides section .fragment.step-fade-out {
  opacity: 1;
  display: inline; }
.reveal .slides section .fragment.step-fade-out.current-fragment {
  opacity: 0;
  display: none; }
.reveal .slides section .fragment.step-fade-in-then-out {
  opacity: 0;
  display: none; }
.reveal .slides section .fragment.step-fade-in-then-out.current-fragment {
  opacity: 1;
  display: inline; }
.reveal .slides section .fragment.strikethrough {
  opacity: 1;
  visibility: visible; }
.reveal .slides section .fragment.strikethrough.visible {
  text-decoration: line-through; }
.reveal .slides section .colcontainer {
  display: flex; }
.reveal .slides section .colcontainer .col {
  flex: 1; }
.reveal section img {
  margin: 15px 0px;
  background: #222;
  border: 0;
  box-shadow: 0 0 0; }
2019_09_18_41st/Sichere_Softwareentwicklung/slides/css/theme/logo.png
2019_09_18_41st/Sichere_Softwareentwicklung/slides/js/reveal.js
New file
Diff too large
2019_09_18_41st/Sichere_Softwareentwicklung/slides/js/reveal.min.js
New file
@@ -0,0 +1,9 @@
/*!
 * reveal.js 3.7.0 (2018-12-12, 21:38)
 * http://revealjs.com
 * MIT licensed
 *
 * Copyright (C) 2018 Hakim El Hattab, http://hakim.se
 */
!function(e,t){"function"==typeof define&&define.amd?define(function(){return e.Reveal=t(),e.Reveal}):"object"==typeof exports?module.exports=t():e.Reveal=t()}(this,function(){"use strict";var u,h,v,g,m,l,p,f,a,s=".slides section",y=".slides>section",b=".slides>section.present>section",w=".slides>section:first-of-type",k=navigator.userAgent,A={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,hashOneBasedIndex:!1,showSlideNumber:"all",history:!1,keyboard:!0,keyboardCondition:null,overview:!0,disableLayout:!1,center:!0,touch:!0,loop:!1,rtl:!1,shuffle:!1,fragments:!0,fragmentInURL:!1,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,display:"block",dependencies:[]},L=!1,S=!1,t=!1,n=null,i=null,r=!1,o=!1,E=[],c=1,d={layout:"",overview:""},x={},q={},N=0,M=0,I=!1,T=0,C=0,P=-1,B=!1,H={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40},R={"N  ,  SPACE":"Next slide",P:"Previous slide","&#8592;  ,  H":"Navigate left","&#8594;  ,  L":"Navigate right","&#8593;  ,  K":"Navigate up","&#8595;  ,  J":"Navigate down",Home:"First slide",End:"Last slide","B  ,  .":"Pause",F:"Fullscreen","ESC, O":"Slide overview"},D={};function z(e){var t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){var r=e.getAttribute("aria-hidden"),n="none"===window.getComputedStyle(e).display;"true"===r||n||K(e.childNodes).forEach(function(e){t+=z(e)})}return t}function O(){var e=ue(window.innerWidth,window.innerHeight),v=Math.floor(e.width*(1+A.margin)),g=Math.floor(e.height*(1+A.margin)),m=e.width,b=e.height;Z("@page{size:"+v+"px "+g+"px; margin: 0px;}"),Z(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+m+"px; max-height:"+b+"px}"),document.body.classList.add("print-pdf"),document.body.style.width=v+"px",document.body.style.height=g+"px",de(m,b),K(x.wrapper.querySelectorAll(y)).forEach(function(e,r){e.setAttribute("data-index-h",r),e.classList.contains("stack")&&K(e.querySelectorAll("section")).forEach(function(e,t){e.setAttribute("data-index-h",r),e.setAttribute("data-index-v",t)})}),K(x.wrapper.querySelectorAll(s)).forEach(function(e){if(!1===e.classList.contains("stack")){var t=(v-m)/2,r=(g-b)/2,n=e.scrollHeight,a=Math.max(Math.ceil(n/g),1);(1===(a=Math.min(a,A.pdfMaxPagesPerSlide))&&A.center||e.classList.contains("center"))&&(r=Math.max((g-n)/2,0));var i=document.createElement("div");if(i.className="pdf-page",i.style.height=(g+A.pdfPageHeightOffset)*a+"px",e.parentNode.insertBefore(i,e),i.appendChild(e),e.style.left=t+"px",e.style.top=r+"px",e.style.width=m+"px",e.slideBackgroundElement&&i.insertBefore(e.slideBackgroundElement,e),A.showNotes){var o=nt(e);if(o){var s="string"==typeof A.showNotes?A.showNotes:"inline",l=document.createElement("div");l.classList.add("speaker-notes"),l.classList.add("speaker-notes-pdf"),l.setAttribute("data-layout",s),l.innerHTML=o,"separate-page"===s?i.parentNode.insertBefore(l,i.nextSibling):(l.style.left="8px",l.style.bottom="8px",l.style.width=v-16+"px",i.appendChild(l))}}if(A.slideNumber&&/all|print/i.test(A.showSlideNumber)){var c=parseInt(e.getAttribute("data-index-h"),10)+1,d=parseInt(e.getAttribute("data-index-v"),10)+1,u=document.createElement("div");u.classList.add("slide-number"),u.classList.add("slide-number-pdf"),u.innerHTML=Re(c,".",d),i.appendChild(u)}if(A.pdfSeparateFragments){var p,f,h=it(i.querySelectorAll(".fragment"),!0);h.forEach(function(e){p&&p.forEach(function(e){e.classList.remove("current-fragment")}),e.forEach(function(e){e.classList.add("visible","current-fragment")});var t=i.cloneNode(!0);i.parentNode.insertBefore(t,(f||i).nextSibling),p=e,f=t}),h.forEach(function(e){e.forEach(function(e){e.classList.remove("visible","current-fragment")})})}else K(i.querySelectorAll(".fragment:not(.fade-out)")).forEach(function(e){e.classList.add("visible")})}}),ne("pdf-ready")}function W(e,t,r,n){for(var a=e.querySelectorAll("."+r),i=0;i<a.length;i++){var o=a[i];if(o.parentNode===e)return o}var s=document.createElement(t);return s.className=r,"string"==typeof n&&(s.innerHTML=n),e.appendChild(s),s}function F(e,t){var r=document.createElement("div");r.className="slide-background "+e.className.replace(/present|past|future/,"");var n=document.createElement("div");return n.className="slide-background-content",r.appendChild(n),t.appendChild(r),e.slideBackgroundElement=r,e.slideBackgroundContentElement=n,U(e),r}function U(e){var t=e.slideBackgroundElement,r=e.slideBackgroundContentElement;e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),t.removeAttribute("data-loaded"),t.removeAttribute("data-background-hash"),t.removeAttribute("data-background-size"),t.removeAttribute("data-background-transition"),t.style.backgroundColor="",r.style.backgroundSize="",r.style.backgroundRepeat="",r.style.backgroundPosition="",r.style.backgroundImage="",r.style.opacity="",r.innerHTML="";var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")};n.background&&(/^(http|file|\/\/)/gi.test(n.background)||/\.(svg|png|jpg|jpeg|gif|bmp)([?#\s]|$)/gi.test(n.background)?e.setAttribute("data-background-image",n.background):t.style.background=n.background),(n.background||n.backgroundColor||n.backgroundImage||n.backgroundVideo||n.backgroundIframe)&&t.setAttribute("data-background-hash",n.background+n.backgroundSize+n.backgroundImage+n.backgroundVideo+n.backgroundIframe+n.backgroundColor+n.backgroundRepeat+n.backgroundPosition+n.backgroundTransition+n.backgroundOpacity),n.backgroundSize&&t.setAttribute("data-background-size",n.backgroundSize),n.backgroundColor&&(t.style.backgroundColor=n.backgroundColor),n.backgroundTransition&&t.setAttribute("data-background-transition",n.backgroundTransition),n.backgroundSize&&(r.style.backgroundSize=n.backgroundSize),n.backgroundRepeat&&(r.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(r.style.backgroundPosition=n.backgroundPosition),n.backgroundOpacity&&(r.style.opacity=n.backgroundOpacity);var a=window.getComputedStyle(t);if(a&&a.backgroundColor){var i=ee(a.backgroundColor);i&&0!==i.a&&(function o(e){"string"==typeof e&&(e=ee(e));if(e)return(299*e.r+587*e.g+114*e.b)/1e3;return null}(a.backgroundColor)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}}function Y(e){var t=A.transition;if("object"==typeof e&&V(A,e),!1!==S){var r=x.wrapper.querySelectorAll(s).length;x.wrapper.classList.remove(t),!1===q.transforms3d&&(A.transition="linear"),x.wrapper.classList.add(A.transition),x.wrapper.setAttribute("data-transition-speed",A.transitionSpeed),x.wrapper.setAttribute("data-background-transition",A.backgroundTransition),x.controls.style.display=A.controls?"block":"none",x.progress.style.display=A.progress?"block":"none",x.controls.setAttribute("data-controls-layout",A.controlsLayout),x.controls.setAttribute("data-controls-back-arrows",A.controlsBackArrows),A.shuffle&&Ie(),A.rtl?x.wrapper.classList.add("rtl"):x.wrapper.classList.remove("rtl"),A.center?x.wrapper.classList.add("center"):x.wrapper.classList.remove("center"),!1===A.pause&&Le(),A.showNotes&&x.speakerNotes.setAttribute("data-layout","string"==typeof A.showNotes?A.showNotes:"inline"),A.mouseWheel?(document.addEventListener("DOMMouseScroll",Mt,!1),document.addEventListener("mousewheel",Mt,!1)):(document.removeEventListener("DOMMouseScroll",Mt,!1),document.removeEventListener("mousewheel",Mt,!1)),A.rollingLinks?function i(){if(q.transforms3d&&!("msPerspective"in document.body.style))for(var e=x.wrapper.querySelectorAll(s+" a"),t=0,r=e.length;t<r;t++){var n=e[t];if(n.textContent&&!n.querySelector("*")&&(!n.className||!n.classList.contains(n,"roll"))){var a=document.createElement("span");a.setAttribute("data-title",n.text),a.innerHTML=n.innerHTML,n.classList.add("roll"),n.innerHTML="",n.appendChild(a)}}}():function o(){for(var e=x.wrapper.querySelectorAll(s+" a.roll"),t=0,r=e.length;t<r;t++){var n=e[t],a=n.querySelector("span");a&&(n.classList.remove("roll"),n.innerHTML=a.innerHTML)}}(),A.previewLinks?(ae(),ie("[data-preview-link=false]")):(ie(),ae("[data-preview-link]:not([data-preview-link=false])")),a&&(a.destroy(),a=null),1<r&&A.autoSlide&&A.autoSlideStoppable&&q.canvas&&q.requestAnimationFrame&&((a=new Yt(x.wrapper,function(){return Math.min(Math.max((Date.now()-P)/T,0),1)})).on("click",Ut),B=!1),!1===A.fragments&&K(x.slides.querySelectorAll(".fragment")).forEach(function(e){e.classList.add("visible"),e.classList.remove("current-fragment")});var n="none";A.slideNumber&&!te()&&("all"===A.showSlideNumber?n="block":"speaker"===A.showSlideNumber&&_e()&&(n="block")),x.slideNumber.style.display=n,Ne()}}function X(){var e;(I=!0,window.addEventListener("hashchange",Dt,!1),window.addEventListener("resize",zt,!1),A.touch&&("onpointerdown"in window?(x.wrapper.addEventListener("pointerdown",xt,!1),x.wrapper.addEventListener("pointermove",qt,!1),x.wrapper.addEventListener("pointerup",Nt,!1)):window.navigator.msPointerEnabled?(x.wrapper.addEventListener("MSPointerDown",xt,!1),x.wrapper.addEventListener("MSPointerMove",qt,!1),x.wrapper.addEventListener("MSPointerUp",Nt,!1)):(x.wrapper.addEventListener("touchstart",Lt,!1),x.wrapper.addEventListener("touchmove",St,!1),x.wrapper.addEventListener("touchend",Et,!1))),A.keyboard&&(document.addEventListener("keydown",At,!1),document.addEventListener("keypress",kt,!1)),A.progress&&x.progress&&x.progress.addEventListener("click",It,!1),x.resumeButton.addEventListener("click",Le,!1),A.focusBodyOnPageVisibilityChange)&&("hidden"in document?e="visibilitychange":"msHidden"in document?e="msvisibilitychange":"webkitHidden"in document&&(e="webkitvisibilitychange"),e&&document.addEventListener(e,Ot,!1));var t=["touchstart","click"];k.match(/android/gi)&&(t=["touchstart"]),t.forEach(function(t){x.controlsLeft.forEach(function(e){e.addEventListener(t,Tt,!1)}),x.controlsRight.forEach(function(e){e.addEventListener(t,Ct,!1)}),x.controlsUp.forEach(function(e){e.addEventListener(t,Pt,!1)}),x.controlsDown.forEach(function(e){e.addEventListener(t,Bt,!1)}),x.controlsPrev.forEach(function(e){e.addEventListener(t,Ht,!1)}),x.controlsNext.forEach(function(e){e.addEventListener(t,Rt,!1)})})}function j(){I=!1,document.removeEventListener("keydown",At,!1),document.removeEventListener("keypress",kt,!1),window.removeEventListener("hashchange",Dt,!1),window.removeEventListener("resize",zt,!1),x.wrapper.removeEventListener("pointerdown",xt,!1),x.wrapper.removeEventListener("pointermove",qt,!1),x.wrapper.removeEventListener("pointerup",Nt,!1),x.wrapper.removeEventListener("MSPointerDown",xt,!1),x.wrapper.removeEventListener("MSPointerMove",qt,!1),x.wrapper.removeEventListener("MSPointerUp",Nt,!1),x.wrapper.removeEventListener("touchstart",Lt,!1),x.wrapper.removeEventListener("touchmove",St,!1),x.wrapper.removeEventListener("touchend",Et,!1),x.resumeButton.removeEventListener("click",Le,!1),A.progress&&x.progress&&x.progress.removeEventListener("click",It,!1),["touchstart","click"].forEach(function(t){x.controlsLeft.forEach(function(e){e.removeEventListener(t,Tt,!1)}),x.controlsRight.forEach(function(e){e.removeEventListener(t,Ct,!1)}),x.controlsUp.forEach(function(e){e.removeEventListener(t,Pt,!1)}),x.controlsDown.forEach(function(e){e.removeEventListener(t,Bt,!1)}),x.controlsPrev.forEach(function(e){e.removeEventListener(t,Ht,!1)}),x.controlsNext.forEach(function(e){e.removeEventListener(t,Rt,!1)})})}function V(e,t){for(var r in t)e[r]=t[r];return e}function K(e){return Array.prototype.slice.call(e)}function $(e){if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e}function _(e,t){var r=e.x-t.x,n=e.y-t.y;return Math.sqrt(r*r+n*n)}function J(e,t){e.style.WebkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.transform=t}function Q(e){"string"==typeof e.layout&&(d.layout=e.layout),"string"==typeof e.overview&&(d.overview=e.overview),d.layout?J(x.slides,d.layout+" "+d.overview):J(x.slides,d.overview)}function Z(e){var t=document.createElement("style");t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),document.getElementsByTagName("head")[0].appendChild(t)}function G(e,t){for(var r=e.parentNode;r;){var n=r.matches||r.matchesSelector||r.msMatchesSelector;if(n&&n.call(r,t))return r;r=r.parentNode}return null}function ee(e){var t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};var r=e.match(/^#([0-9a-f]{6})$/i);if(r&&r[1])return r=r[1],{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16)};var n=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(n)return{r:parseInt(n[1],10),g:parseInt(n[2],10),b:parseInt(n[3],10)};var a=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return a?{r:parseInt(a[1],10),g:parseInt(a[2],10),b:parseInt(a[3],10),a:parseFloat(a[4])}:null}function te(){return/print-pdf/gi.test(window.location.search)}function re(){setTimeout(function(){window.scrollTo(0,1)},10)}function ne(e,t){var r=document.createEvent("HTMLEvents",1,2);r.initEvent(e,!0,!0),V(r,t),x.wrapper.dispatchEvent(r),A.postMessageEvents&&window.parent!==window.self&&window.parent.postMessage(JSON.stringify({namespace:"reveal",eventName:e,state:at()}),"*")}function ae(e){K(document.querySelectorAll(e||"a")).forEach(function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",Ft,!1)})}function ie(e){K(document.querySelectorAll(e||"a")).forEach(function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",Ft,!1)})}function oe(e){"boolean"==typeof e?e?se():le():x.overlay?le():se()}function se(){if(A.help){le(),x.overlay=document.createElement("div"),x.overlay.classList.add("overlay"),x.overlay.classList.add("overlay-help"),x.wrapper.appendChild(x.overlay);var e='<p class="title">Keyboard Shortcuts</p><br/>';for(var t in e+="<table><th>KEY</th><th>ACTION</th>",R)e+="<tr><td>"+t+"</td><td>"+R[t]+"</td></tr>";for(var r in D)D[r].key&&D[r].description&&(e+="<tr><td>"+D[r].key+"</td><td>"+D[r].description+"</td></tr>");e+="</table>",x.overlay.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>',"</header>",'<div class="viewport">','<div class="viewport-inner">'+e+"</div>","</div>"].join(""),x.overlay.querySelector(".close").addEventListener("click",function(e){le(),e.preventDefault()},!1),setTimeout(function(){x.overlay.classList.add("visible")},1)}}function le(){x.overlay&&(x.overlay.parentNode.removeChild(x.overlay),x.overlay=null)}function ce(){if(x.wrapper&&!te()){if(!A.disableLayout){var e=ue();de(A.width,A.height),x.slides.style.width=e.width+"px",x.slides.style.height=e.height+"px",c=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),c=Math.max(c,A.minScale),1===(c=Math.min(c,A.maxScale))?(x.slides.style.zoom="",x.slides.style.left="",x.slides.style.top="",x.slides.style.bottom="",Q({layout:x.slides.style.right=""})):1<c&&q.zoom?(x.slides.style.zoom=c,x.slides.style.left="",x.slides.style.top="",x.slides.style.bottom="",Q({layout:x.slides.style.right=""})):(x.slides.style.zoom="",x.slides.style.left="50%",x.slides.style.top="50%",x.slides.style.bottom="auto",x.slides.style.right="auto",Q({layout:"translate(-50%, -50%) scale("+c+")"}));for(var t=K(x.wrapper.querySelectorAll(s)),r=0,n=t.length;r<n;r++){var a=t[r];"none"!==a.style.display&&(A.center||a.classList.contains("center")?a.classList.contains("stack")?a.style.top=0:a.style.top=Math.max((e.height-a.scrollHeight)/2,0)+"px":a.style.top="")}}Be(),Oe(),ye()&&ge()}}function de(o,s){K(x.slides.querySelectorAll("section > .stretch")).forEach(function(e){var t=function i(e,t){if(t=t||0,e){var r,n=e.style.height;return e.style.height="0px",r=t-e.parentNode.offsetHeight,e.style.height=n+"px",r}return t}(e,s);if(/(img|video)/gi.test(e.nodeName)){var r=e.naturalWidth||e.videoWidth,n=e.naturalHeight||e.videoHeight,a=Math.min(o/r,t/n);e.style.width=r*a+"px",e.style.height=n*a+"px"}else e.style.width=o+"px",e.style.height=t+"px"})}function ue(e,t){var r={width:A.width,height:A.height,presentationWidth:e||x.wrapper.offsetWidth,presentationHeight:t||x.wrapper.offsetHeight};return r.presentationWidth-=r.presentationWidth*A.margin,r.presentationHeight-=r.presentationHeight*A.margin,"string"==typeof r.width&&/%$/.test(r.width)&&(r.width=parseInt(r.width,10)/100*r.presentationWidth),"string"==typeof r.height&&/%$/.test(r.height)&&(r.height=parseInt(r.height,10)/100*r.presentationHeight),r}function pe(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function fe(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){var t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function he(){if(A.overview&&!ye()){t=!0,x.wrapper.classList.add("overview"),x.wrapper.classList.remove("overview-deactivating"),q.overviewTransitions&&setTimeout(function(){x.wrapper.classList.add("overview-animated")},1),dt(),x.slides.appendChild(x.background),K(x.wrapper.querySelectorAll(s)).forEach(function(e){e.classList.contains("stack")||e.addEventListener("click",Wt,!0)});var e=ue();n=e.width+70,i=e.height+70,A.rtl&&(n=-n),Ce(),ve(),ge(),ce(),ne("overviewshown",{indexh:h,indexv:v,currentSlide:m})}}function ve(){K(x.wrapper.querySelectorAll(y)).forEach(function(e,r){e.setAttribute("data-index-h",r),J(e,"translate3d("+r*n+"px, 0, 0)"),e.classList.contains("stack")&&K(e.querySelectorAll("section")).forEach(function(e,t){e.setAttribute("data-index-h",r),e.setAttribute("data-index-v",t),J(e,"translate3d(0, "+t*i+"px, 0)")})}),K(x.background.childNodes).forEach(function(e,t){J(e,"translate3d("+t*n+"px, 0, 0)"),K(e.querySelectorAll(".slide-background")).forEach(function(e,t){J(e,"translate3d(0, "+t*i+"px, 0)")})})}function ge(){var e=Math.min(window.innerWidth,window.innerHeight);Q({overview:["scale("+Math.max(e/5,150)/e+")","translateX("+-h*n+"px)","translateY("+-v*i+"px)"].join(" ")})}function me(){A.overview&&(t=!1,x.wrapper.classList.remove("overview"),x.wrapper.classList.remove("overview-animated"),x.wrapper.classList.add("overview-deactivating"),setTimeout(function(){x.wrapper.classList.remove("overview-deactivating")},1),x.wrapper.appendChild(x.background),K(x.wrapper.querySelectorAll(s)).forEach(function(e){J(e,""),e.removeEventListener("click",Wt,!0)}),K(x.background.querySelectorAll(".slide-background")).forEach(function(e){J(e,"")}),Q({overview:""}),qe(h,v),ce(),ct(),ne("overviewhidden",{indexh:h,indexv:v,currentSlide:m}))}function be(e){"boolean"==typeof e?e?he():me():ye()?me():he()}function ye(){return t}function we(){var e,t="/",r=m?m.getAttribute("id"):null;if(r&&(r=encodeURIComponent(r)),A.fragmentInURL&&(e=Ze().f),"string"==typeof r&&r.length&&e===undefined)t="/"+r;else{var n=A.hashOneBasedIndex?1:0;(0<h||0<v||e!==undefined)&&(t+=h+n),(0<v||e!==undefined)&&(t+="/"+(v+n)),e!==undefined&&(t+="/"+e)}return t}function ke(e){return(e=e||m)&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Ae(){if(A.pause){var e=x.wrapper.classList.contains("paused");dt(),x.wrapper.classList.add("paused"),!1===e&&ne("paused")}}function Le(){var e=x.wrapper.classList.contains("paused");x.wrapper.classList.remove("paused"),ct(),e&&ne("resumed")}function Se(e){"boolean"==typeof e?e?Ae():Le():Ee()?Le():Ae()}function Ee(){return x.wrapper.classList.contains("paused")}function xe(e){"boolean"==typeof e?e?pt():ut():B?pt():ut()}function qe(e,t,r,n){g=m;var a=x.wrapper.querySelectorAll(y);if(0!==a.length){t!==undefined||ye()||(t=fe(a[e])),g&&g.parentNode&&g.parentNode.classList.contains("stack")&&pe(g.parentNode,v);var i=E.concat();E.length=0;var o=h||0,s=v||0;h=Te(y,e===undefined?h:e),v=Te(b,t===undefined?v:t),Ce(),ce();e:for(var l=0,c=E.length;l<c;l++){for(var d=0;d<i.length;d++)if(i[d]===E[l]){i.splice(d,1);continue e}document.documentElement.classList.add(E[l]),ne(E[l])}for(;i.length;)document.documentElement.classList.remove(i.pop());ye()&&ge();var u=a[h],p=u.querySelectorAll("section");m=p[v]||u,void 0!==r&&ot(r);var f=h!==o||v!==s;f||(g=null),g&&g!==m&&(g.classList.remove("present"),g.setAttribute("aria-hidden","true"),x.wrapper.querySelector(w).classList.contains("present")&&setTimeout(function(){var e,t=K(x.wrapper.querySelectorAll(y+".stack"));for(e in t)t[e]&&pe(t[e],0)},0)),f&&ne("slidechanged",{indexh:h,indexv:v,previousSlide:g,currentSlide:m,origin:n}),!f&&g||(Ke(g),Xe(m)),x.statusDiv.textContent=z(m),De(),Be(),ze(),Oe(),He(),Pe(),Qe(),ct()}}function Ne(){j(),X(),ce(),T=A.autoSlide,ct(),function e(){te(),x.background.innerHTML="",x.background.classList.add("no-transition"),K(x.wrapper.querySelectorAll(y)).forEach(function(e){var t=F(e,x.background);K(e.querySelectorAll("section")).forEach(function(e){F(e,t),t.classList.add("stack")})}),A.parallaxBackgroundImage?(x.background.style.backgroundImage='url("'+A.parallaxBackgroundImage+'")',x.background.style.backgroundSize=A.parallaxBackgroundSize,x.background.style.backgroundRepeat=A.parallaxBackgroundRepeat,x.background.style.backgroundPosition=A.parallaxBackgroundPosition,setTimeout(function(){x.wrapper.classList.add("has-parallax-background")},1)):(x.background.style.backgroundImage="",x.wrapper.classList.remove("has-parallax-background"))}(),Qe(),function t(){K(x.wrapper.querySelectorAll(y)).forEach(function(e){var t=K(e.querySelectorAll("section"));t.forEach(function(e,t){it(e.querySelectorAll(".fragment"))}),0===t.length&&it(e.querySelectorAll(".fragment"))})}(),De(),Be(),He(),Ce(),ze(!0),function r(){A.showNotes&&function e(){return 0<x.slides.querySelectorAll("[data-notes], aside.notes").length}()?x.wrapper.classList.add("show-notes"):x.wrapper.classList.remove("show-notes")}(),Pe(),function n(){var e=function(r,e,n){K(x.slides.querySelectorAll("iframe["+r+'*="'+e+'"]')).forEach(function(e){var t=e.getAttribute(r);t&&-1===t.indexOf(n)&&e.setAttribute(r,t+(/\?/.test(t)?"&":"?")+n)})};e("src","youtube.com/embed/","enablejsapi=1"),e("data-src","youtube.com/embed/","enablejsapi=1"),e("src","player.vimeo.com/","api=1"),e("data-src","player.vimeo.com/","api=1"),p&&K(x.slides.querySelectorAll("video, audio")).forEach(function(e){e.controls=!0})}(),!1===A.autoPlayMedia?Ke(m,{unloadIframes:!1}):Xe(m),ye()&&ve()}function Me(e){it(e.querySelectorAll(".fragment"))}function Ie(){var t=K(x.wrapper.querySelectorAll(y));t.forEach(function(e){x.slides.insertBefore(e,t[Math.floor(Math.random()*t.length)])})}function Te(e,t){var r=K(x.wrapper.querySelectorAll(e)),n=r.length,a=te();if(n){A.loop&&(t%=n)<0&&(t=n+t),t=Math.max(Math.min(t,n-1),0);for(var i=0;i<n;i++){var o=r[i],s=A.rtl&&!ke(o);if(o.classList.remove("past"),o.classList.remove("present"),o.classList.remove("future"),o.setAttribute("hidden",""),o.setAttribute("aria-hidden","true"),o.querySelector("section")&&o.classList.add("stack"),a)o.classList.add("present");else if(i<t){if(o.classList.add(s?"future":"past"),A.fragments)for(var l=K(o.querySelectorAll(".fragment"));l.length;){var c=l.pop();c.classList.add("visible"),c.classList.remove("current-fragment")}}else if(t<i&&(o.classList.add(s?"past":"future"),A.fragments))for(var d=K(o.querySelectorAll(".fragment.visible"));d.length;){var u=d.pop();u.classList.remove("visible"),u.classList.remove("current-fragment")}}r[t].classList.add("present"),r[t].removeAttribute("hidden"),r[t].removeAttribute("aria-hidden");var p=r[t].getAttribute("data-state");p&&(E=E.concat(p.split(" ")))}else t=0;return t}function Ce(){var e,t=K(x.wrapper.querySelectorAll(y)),r=t.length;if(r&&void 0!==h){var n=ye()?10:A.viewDistance;p&&(n=ye()?6:2),te()&&(n=Number.MAX_VALUE);for(var a=0;a<r;a++){var i=t[a],o=K(i.querySelectorAll("section")),s=o.length;if(e=Math.abs((h||0)-a)||0,A.loop&&(e=Math.abs(((h||0)-a)%(r-n))||0),e<n?We(i):Fe(i),s)for(var l=fe(i),c=0;c<s;c++){var d=o[c];e+(a===(h||0)?Math.abs((v||0)-c):Math.abs(c-l))<n?We(d):Fe(d)}}x.wrapper.querySelectorAll(".slides>section>section").length?x.wrapper.classList.add("has-vertical-slides"):x.wrapper.classList.remove("has-vertical-slides"),1<x.wrapper.querySelectorAll(".slides>section").length?x.wrapper.classList.add("has-horizontal-slides"):x.wrapper.classList.remove("has-horizontal-slides")}}function Pe(){A.showNotes&&x.speakerNotes&&m&&!te()&&(x.speakerNotes.innerHTML=nt()||'<span class="notes-placeholder">No notes on this slide.</span>')}function Be(){A.progress&&x.progressbar&&(x.progressbar.style.width=e()*x.wrapper.offsetWidth+"px")}function He(){if(A.slideNumber&&x.slideNumber){var e=[],t="h.v";switch("string"==typeof A.slideNumber&&(t=A.slideNumber),/c/.test(t)||1!==x.wrapper.querySelectorAll(y).length||(t="c"),t){case"c":e.push($e()+1);break;case"c/t":e.push($e()+1,"/",et());break;case"h/v":e.push(h+1),ke()&&e.push("/",v+1);break;default:e.push(h+1),ke()&&e.push(".",v+1)}x.slideNumber.innerHTML=Re(e[0],e[1],e[2])}}function Re(e,t,r){var n="#"+we();return"number"!=typeof r||isNaN(r)?'<a href="'+n+'"><span class="slide-number-a">'+e+"</span></a>":'<a href="'+n+'"><span class="slide-number-a">'+e+'</span><span class="slide-number-delimiter">'+t+'</span><span class="slide-number-b">'+r+"</span></a>"}function De(){var e=Ue(),t=Ye();x.controlsLeft.concat(x.controlsRight).concat(x.controlsUp).concat(x.controlsDown).concat(x.controlsPrev).concat(x.controlsNext).forEach(function(e){e.classList.remove("enabled"),e.classList.remove("fragmented"),e.setAttribute("disabled","disabled")}),e.left&&x.controlsLeft.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),e.right&&x.controlsRight.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),e.up&&x.controlsUp.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),e.down&&x.controlsDown.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.left||e.up)&&x.controlsPrev.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.right||e.down)&&x.controlsNext.forEach(function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}),m&&(t.prev&&x.controlsPrev.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsNext.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),ke(m)?(t.prev&&x.controlsUp.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsDown.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(t.prev&&x.controlsLeft.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),t.next&&x.controlsRight.forEach(function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))),A.controlsTutorial&&(!o&&e.down?x.controlsDownArrow.classList.add("highlight"):(x.controlsDownArrow.classList.remove("highlight"),!r&&e.right&&0===v?x.controlsRightArrow.classList.add("highlight"):x.controlsRightArrow.classList.remove("highlight")))}function ze(t){var n=null,a=A.rtl?"future":"past",i=A.rtl?"past":"future";if(K(x.background.childNodes).forEach(function(e,r){e.classList.remove("past"),e.classList.remove("present"),e.classList.remove("future"),r<h?e.classList.add(a):h<r?e.classList.add(i):(e.classList.add("present"),n=e),(t||r===h)&&K(e.querySelectorAll(".slide-background")).forEach(function(e,t){e.classList.remove("past"),e.classList.remove("present"),e.classList.remove("future"),t<v?e.classList.add("past"):v<t?e.classList.add("future"):(e.classList.add("present"),r===h&&(n=e))})}),l&&Ke(l),n){Xe(n);var e=n.querySelector(".slide-background-content");if(e){var r=e.style.backgroundImage||"";/\.gif/i.test(r)&&(e.style.backgroundImage="",window.getComputedStyle(e).opacity,e.style.backgroundImage=r)}var o=l?l.getAttribute("data-background-hash"):null,s=n.getAttribute("data-background-hash");s&&s===o&&n!==l&&x.background.classList.add("no-transition"),l=n}m&&["has-light-background","has-dark-background"].forEach(function(e){m.classList.contains(e)?x.wrapper.classList.add(e):x.wrapper.classList.remove(e)}),setTimeout(function(){x.background.classList.remove("no-transition")},1)}function Oe(){if(A.parallaxBackgroundImage){var e,t,r=x.wrapper.querySelectorAll(y),n=x.wrapper.querySelectorAll(b),a=x.background.style.backgroundSize.split(" ");1===a.length?e=t=parseInt(a[0],10):(e=parseInt(a[0],10),t=parseInt(a[1],10));var i,o=x.background.offsetWidth,s=r.length;i=("number"==typeof A.parallaxBackgroundHorizontal?A.parallaxBackgroundHorizontal:1<s?(e-o)/(s-1):0)*h*-1;var l,c,d=x.background.offsetHeight,u=n.length;l="number"==typeof A.parallaxBackgroundVertical?A.parallaxBackgroundVertical:(t-d)/(u-1),c=0<u?l*v:0,x.background.style.backgroundPosition=i+"px "+-c+"px"}}function We(e,t){t=t||{},e.style.display=A.display,K(e.querySelectorAll("img[data-src], video[data-src], audio[data-src]")).forEach(function(e){e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src")}),K(e.querySelectorAll("video, audio")).forEach(function(e){var t=0;K(e.querySelectorAll("source[data-src]")).forEach(function(e){e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),t+=1}),0<t&&e.load()});var r=e.slideBackgroundElement;if(r){r.style.display="block";var n=e.slideBackgroundContentElement;if(!1===r.hasAttribute("data-loaded")){r.setAttribute("data-loaded","true");var a=e.getAttribute("data-background-image"),i=e.getAttribute("data-background-video"),o=e.hasAttribute("data-background-video-loop"),s=e.hasAttribute("data-background-video-muted"),l=e.getAttribute("data-background-iframe");if(a)n.style.backgroundImage="url("+encodeURI(a)+")";else if(i&&!_e()){var c=document.createElement("video");o&&c.setAttribute("loop",""),s&&(c.muted=!0),p&&(c.muted=!0,c.autoplay=!0,c.setAttribute("playsinline","")),i.split(",").forEach(function(e){c.innerHTML+='<source src="'+e+'">'}),n.appendChild(c)}else if(l&&!0!==t.excludeIframes){var d=document.createElement("iframe");d.setAttribute("allowfullscreen",""),d.setAttribute("mozallowfullscreen",""),d.setAttribute("webkitallowfullscreen",""),/autoplay=(1|true|yes)/gi.test(l)?d.setAttribute("data-src",l):d.setAttribute("src",l),d.style.width="100%",d.style.height="100%",d.style.maxHeight="100%",d.style.maxWidth="100%",n.appendChild(d)}}}}function Fe(e){e.style.display="none";var t=rt(e);t&&(t.style.display="none"),K(e.querySelectorAll("video[data-lazy-loaded][src], audio[data-lazy-loaded][src]")).forEach(function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}),K(e.querySelectorAll("video[data-lazy-loaded] source[src], audio source[src]")).forEach(function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})}function Ue(){var e=x.wrapper.querySelectorAll(y),t=x.wrapper.querySelectorAll(b),r={left:0<h,right:h<e.length-1,up:0<v,down:v<t.length-1};if(A.loop&&(1<e.length&&(r.left=!0,r.right=!0),1<t.length&&(r.up=!0,r.down=!0)),A.rtl){var n=r.left;r.left=r.right,r.right=n}return r}function Ye(){if(m&&A.fragments){var e=m.querySelectorAll(".fragment"),t=m.querySelectorAll(".fragment:not(.visible)");return{prev:0<e.length-t.length,next:!!t.length}}return{prev:!1,next:!1}}function Xe(e){e&&!_e()&&(K(e.querySelectorAll('img[src$=".gif"]')).forEach(function(e){e.setAttribute("src",e.getAttribute("src"))}),K(e.querySelectorAll("video, audio")).forEach(function(e){if(!G(e,".fragment")||G(e,".fragment.visible")){var t=A.autoPlayMedia;"boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!G(e,".slide-background")),t&&"function"==typeof e.play&&(1<e.readyState?je({target:e}):p?e.play():(e.removeEventListener("loadeddata",je),e.addEventListener("loadeddata",je)))}}),K(e.querySelectorAll("iframe[src]")).forEach(function(e){G(e,".fragment")&&!G(e,".fragment.visible")||Ve({target:e})}),K(e.querySelectorAll("iframe[data-src]")).forEach(function(e){G(e,".fragment")&&!G(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",Ve),e.addEventListener("load",Ve),e.setAttribute("src",e.getAttribute("data-src")))}))}function je(e){var t=!!G(e.target,"html"),r=!!G(e.target,".present");t&&r&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",je)}function Ve(e){var t=e.target;if(t&&t.contentWindow){var r=!!G(e.target,"html"),n=!!G(e.target,".present");if(r&&n){var a=A.autoPlayMedia;"boolean"!=typeof a&&(a=t.hasAttribute("data-autoplay")||!!G(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&a?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&a?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}function Ke(e,t){t=V({unloadIframes:!0},t||{}),e&&e.parentNode&&(K(e.querySelectorAll("video, audio")).forEach(function(e){e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())}),K(e.querySelectorAll("iframe")).forEach(function(e){e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",Ve)}),K(e.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(e){!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),K(e.querySelectorAll('iframe[src*="player.vimeo.com/"]')).forEach(function(e){!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")}),!0===t.unloadIframes&&K(e.querySelectorAll("iframe[data-src]")).forEach(function(e){e.setAttribute("src","about:blank"),e.removeAttribute("src")}))}function $e(){var e=K(x.wrapper.querySelectorAll(y)),t=0;e:for(var r=0;r<e.length;r++){for(var n=e[r],a=K(n.querySelectorAll("section")),i=0;i<a.length;i++){if(a[i].classList.contains("present"))break e;t++}if(n.classList.contains("present"))break;!1===n.classList.contains("stack")&&t++}return t}function e(){var e=et(),t=$e();if(m){var r=m.querySelectorAll(".fragment");if(0<r.length){t+=m.querySelectorAll(".fragment.visible").length/r.length*.9}}return t/(e-1)}function _e(){return!!window.location.search.match(/receiver/gi)}function Je(){var e=window.location.hash,t=e.slice(2).split("/"),r=e.replace(/#|\//gi,"");if(!/^[0-9]*$/.test(t[0])&&r.length){var n;try{n=document.getElementById(decodeURIComponent(r))}catch(d){}var a=!!m&&m.getAttribute("id")===r;if(n&&!a){var i=u.getIndices(n);qe(i.h,i.v)}else qe(h||0,v||0)}else{var o,s=A.hashOneBasedIndex?1:0,l=parseInt(t[0],10)-s||0,c=parseInt(t[1],10)-s||0;A.fragmentInURL&&(o=parseInt(t[2],10),isNaN(o)&&(o=undefined)),l===h&&c===v&&o===undefined||qe(l,c,o)}}function Qe(e){A.history&&(clearTimeout(M),"number"==typeof e?M=setTimeout(Qe,e):m&&(window.location.hash=we()))}function Ze(e){var t,r=h,n=v;if(e){var a=ke(e),i=a?e.parentNode:e,o=K(x.wrapper.querySelectorAll(y));r=Math.max(o.indexOf(i),0),n=undefined,a&&(n=Math.max(K(e.parentNode.querySelectorAll("section")).indexOf(e),0))}if(!e&&m&&0<m.querySelectorAll(".fragment").length){var s=m.querySelector(".current-fragment");t=s&&s.hasAttribute("data-fragment-index")?parseInt(s.getAttribute("data-fragment-index"),10):m.querySelectorAll(".fragment.visible").length-1}return{h:r,v:n,f:t}}function Ge(){return K(x.wrapper.querySelectorAll(s+":not(.stack)"))}function et(){return Ge().length}function tt(e,t){var r=x.wrapper.querySelectorAll(y)[e],n=r&&r.querySelectorAll("section");return n&&n.length&&"number"==typeof t?n?n[t]:undefined:r}function rt(e,t){var r="number"==typeof e?tt(e,t):e;return r?r.slideBackgroundElement:undefined}function nt(e){if((e=e||m).hasAttribute("data-notes"))return e.getAttribute("data-notes");var t=e.querySelector("aside.notes");return t?t.innerHTML:null}function at(){var e=Ze();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:Ee(),overview:ye()}}function it(e,t){e=K(e);var n=[],a=[],r=[];e.forEach(function(e,t){if(e.hasAttribute("data-fragment-index")){var r=parseInt(e.getAttribute("data-fragment-index"),10);n[r]||(n[r]=[]),n[r].push(e)}else a.push([e])}),n=n.concat(a);var i=0;return n.forEach(function(e){e.forEach(function(e){r.push(e),e.setAttribute("data-fragment-index",i)}),i++}),!0===t?n:r}function ot(r,e){if(m&&A.fragments){var t=it(m.querySelectorAll(".fragment"));if(t.length){if("number"!=typeof r){var n=it(m.querySelectorAll(".fragment.visible")).pop();r=n?parseInt(n.getAttribute("data-fragment-index")||0,10):-1}"number"==typeof e&&(r+=e);var a=[],i=[];return K(t).forEach(function(e,t){e.hasAttribute("data-fragment-index")&&(t=parseInt(e.getAttribute("data-fragment-index"),10)),t<=r?(e.classList.contains("visible")||a.push(e),e.classList.add("visible"),e.classList.remove("current-fragment"),x.statusDiv.textContent=z(e),t===r&&(e.classList.add("current-fragment"),Xe(e))):(e.classList.contains("visible")&&i.push(e),e.classList.remove("visible"),e.classList.remove("current-fragment"))}),i.length&&ne("fragmenthidden",{fragment:i[0],fragments:i}),a.length&&ne("fragmentshown",{fragment:a[0],fragments:a}),De(),Be(),A.fragmentInURL&&Qe(),!(!a.length&&!i.length)}}return!1}function st(){return ot(null,1)}function lt(){return ot(null,-1)}function ct(){if(dt(),m&&!1!==A.autoSlide){var e=m.querySelector(".current-fragment");e||(e=m.querySelector(".fragment"));var t=e?e.getAttribute("data-autoslide"):null,r=m.parentNode?m.parentNode.getAttribute("data-autoslide"):null,n=m.getAttribute("data-autoslide");T=t?parseInt(t,10):n?parseInt(n,10):r?parseInt(r,10):A.autoSlide,0===m.querySelectorAll(".fragment").length&&K(m.querySelectorAll("video, audio")).forEach(function(e){e.hasAttribute("data-autoplay")&&T&&1e3*e.duration/e.playbackRate>T&&(T=1e3*e.duration/e.playbackRate+1e3)}),!T||B||Ee()||ye()||u.isLastSlide()&&!Ye().next&&!0!==A.loop||(C=setTimeout(function(){"function"==typeof A.autoSlideMethod?A.autoSlideMethod():bt(),ct()},T),P=Date.now()),a&&a.setPlaying(-1!==C)}}function dt(){clearTimeout(C),C=-1}function ut(){T&&!B&&(B=!0,ne("autoslidepaused"),clearTimeout(C),a&&a.setPlaying(!1))}function pt(){T&&B&&(B=!1,ne("autoslideresumed"),ct())}function ft(){A.rtl?(ye()||!1===st())&&Ue().left&&qe(h+1):(ye()||!1===lt())&&Ue().left&&qe(h-1)}function ht(){r=!0,A.rtl?(ye()||!1===lt())&&Ue().right&&qe(h-1):(ye()||!1===st())&&Ue().right&&qe(h+1)}function vt(){(ye()||!1===lt())&&Ue().up&&qe(h,v-1)}function gt(){o=!0,(ye()||!1===st())&&Ue().down&&qe(h,v+1)}function mt(){var e;if(!1===lt())if(Ue().up)vt();else if(e=A.rtl?K(x.wrapper.querySelectorAll(y+".future")).pop():K(x.wrapper.querySelectorAll(y+".past")).pop()){var t=e.querySelectorAll("section").length-1||undefined;qe(h-1,t)}}function bt(){if(!(o=r=!0)===st()){var e=Ue();e.down&&e.right&&A.loop&&u.isLastVerticalSlide(m)&&(e.down=!1),e.down?gt():A.rtl?ft():ht()}}function yt(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}function wt(e){A.autoSlideStoppable&&ut()}function kt(e){e.shiftKey&&63===e.charCode&&oe()}function At(e){if("function"==typeof A.keyboardCondition&&!1===A.keyboardCondition(e))return!0;var t=B;wt();var r=document.activeElement&&"inherit"!==document.activeElement.contentEditable,n=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),a=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className);if(!(r||n||a||e.shiftKey&&32!==e.keyCode||e.altKey||e.ctrlKey||e.metaKey)){var i,o=[66,86,190,191];if("object"==typeof A.keyboard)for(i in A.keyboard)"togglePause"===A.keyboard[i]&&o.push(parseInt(i,10));if(Ee()&&-1===o.indexOf(e.keyCode))return!1;var s=!1;if("object"==typeof A.keyboard)for(i in A.keyboard)if(parseInt(i,10)===e.keyCode){var l=A.keyboard[i];"function"==typeof l?l.apply(null,[e]):"string"==typeof l&&"function"==typeof u[l]&&u[l].call(),s=!0}if(!1===s)for(i in D)if(parseInt(i,10)===e.keyCode){var c=D[i].callback;"function"==typeof c?c.apply(null,[e]):"string"==typeof c&&"function"==typeof u[c]&&u[c].call(),s=!0}if(!1===s)switch(s=!0,e.keyCode){case 80:case 33:mt();break;case 78:case 34:bt();break;case 72:case 37:ft();break;case 76:case 39:ht();break;case 75:case 38:vt();break;case 74:case 40:gt();break;case 36:qe(0);break;case 35:qe(Number.MAX_VALUE);break;case 32:ye()?me():e.shiftKey?mt():bt();break;case 13:ye()?me():s=!1;break;case 58:case 59:case 66:case 86:case 190:case 191:Se();break;case 70:!function d(){var e=document.documentElement,t=e.requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)}();break;case 65:A.autoSlideStoppable&&xe(t);break;default:s=!1}s?e.preventDefault&&e.preventDefault():27!==e.keyCode&&79!==e.keyCode||!q.transforms3d||(x.overlay?le():be(),e.preventDefault&&e.preventDefault()),ct()}}function Lt(e){if(yt(e.target))return!0;H.startX=e.touches[0].clientX,H.startY=e.touches[0].clientY,H.startCount=e.touches.length,2===e.touches.length&&A.overview&&(H.startSpan=_({x:e.touches[1].clientX,y:e.touches[1].clientY},{x:H.startX,y:H.startY}))}function St(e){if(yt(e.target))return!0;if(H.captured)k.match(/android/gi)&&e.preventDefault();else{wt();var t=e.touches[0].clientX,r=e.touches[0].clientY;if(2===e.touches.length&&2===H.startCount&&A.overview){var n=_({x:e.touches[1].clientX,y:e.touches[1].clientY},{x:H.startX,y:H.startY});Math.abs(H.startSpan-n)>H.threshold&&(H.captured=!0,n<H.startSpan?he():me()),e.preventDefault()}else if(1===e.touches.length&&2!==H.startCount){var a=t-H.startX,i=r-H.startY;a>H.threshold&&Math.abs(a)>Math.abs(i)?(H.captured=!0,ft()):a<-H.threshold&&Math.abs(a)>Math.abs(i)?(H.captured=!0,ht()):i>H.threshold?(H.captured=!0,vt()):i<-H.threshold&&(H.captured=!0,gt()),A.embedded?(H.captured||ke(m))&&e.preventDefault():e.preventDefault()}}}function Et(e){H.captured=!1}function xt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Lt(e))}function qt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],St(e))}function Nt(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],Et())}function Mt(e){if(600<Date.now()-N){N=Date.now();var t=e.detail||-e.wheelDelta;0<t?bt():t<0&&mt()}}function It(e){wt(),e.preventDefault();var t=K(x.wrapper.querySelectorAll(y)).length,r=Math.floor(e.clientX/x.wrapper.offsetWidth*t);A.rtl&&(r=t-r),qe(r)}function Tt(e){e.preventDefault(),wt(),ft()}function Ct(e){e.preventDefault(),wt(),ht()}function Pt(e){e.preventDefault(),wt(),vt()}function Bt(e){e.preventDefault(),wt(),gt()}function Ht(e){e.preventDefault(),wt(),mt()}function Rt(e){e.preventDefault(),wt(),bt()}function Dt(e){Je()}function zt(e){ce()}function Ot(e){!1===(document.webkitHidden||document.msHidden||document.hidden)&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function Wt(e){if(I&&ye()){e.preventDefault();for(var t=e.target;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled"))if(me(),t.nodeName.match(/section/gi))qe(parseInt(t.getAttribute("data-index-h"),10),parseInt(t.getAttribute("data-index-v"),10))}}function Ft(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){var t=e.currentTarget.getAttribute("href");t&&(!function r(e){le(),x.overlay=document.createElement("div"),x.overlay.classList.add("overlay"),x.overlay.classList.add("overlay-preview"),x.wrapper.appendChild(x.overlay),x.overlay.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+e+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+e+'"></iframe>','<small class="viewport-inner">','<span class="x-frame-error">Unable to load iframe. This is likely due to the site\'s policy (x-frame-options).</span>',"</small>","</div>"].join(""),x.overlay.querySelector("iframe").addEventListener("load",function(e){x.overlay.classList.add("loaded")},!1),x.overlay.querySelector(".close").addEventListener("click",function(e){le(),e.preventDefault()},!1),x.overlay.querySelector(".external").addEventListener("click",function(e){le()},!1),setTimeout(function(){x.overlay.classList.add("visible")},1)}(t),e.preventDefault())}}function Ut(e){u.isLastSlide()&&!1===A.loop?(qe(0,0),pt()):B?pt():ut()}function Yt(e,t){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=t,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}return Yt.prototype.setPlaying=function(e){var t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()},Yt.prototype.animate=function(){var e=this.progress;this.progress=this.progressCheck(),.8<e&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&q.requestAnimationFrameMethod.call(window,this.animate.bind(this))},Yt.prototype.render=function(){var e=this.playing?this.progress:0,t=this.diameter2-this.thickness,r=this.diameter2,n=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);var a=-Math.PI/2+e*(2*Math.PI),i=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(r,n,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(r,n,t,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(r,n,t,i,a,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(r-14,n-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()},Yt.prototype.on=function(e,t){this.canvas.addEventListener(e,t,!1)},Yt.prototype.off=function(e,t){this.canvas.removeEventListener(e,t,!1)},Yt.prototype.destroy=function(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)},u={VERSION:"3.7.0",initialize:function Xt(e){if(!0!==L)if(L=!0,function l(){p=/(iphone|ipod|ipad|android)/gi.test(k),f=/chrome/i.test(k)&&!/edge/i.test(k);var e=document.createElement("div");q.transforms3d="WebkitPerspective"in e.style||"MozPerspective"in e.style||"msPerspective"in e.style||"OPerspective"in e.style||"perspective"in e.style,q.transforms2d="WebkitTransform"in e.style||"MozTransform"in e.style||"msTransform"in e.style||"OTransform"in e.style||"transform"in e.style,q.requestAnimationFrameMethod=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,q.requestAnimationFrame="function"==typeof q.requestAnimationFrameMethod,q.canvas=!!document.createElement("canvas").getContext,q.overviewTransitions=!/Version\/[\d\.]+.*Safari/.test(k),q.zoom="zoom"in e.style&&!p&&(f||/Version\/[\d\.]+.*Safari/.test(k))}(),q.transforms2d||q.transforms3d){x.wrapper=document.querySelector(".reveal"),x.slides=document.querySelector(".reveal .slides"),window.addEventListener("load",ce,!1);var t=u.getQueryHash();"undefined"!=typeof t.dependencies&&delete t.dependencies,V(A,e),V(A,t),function c(){A.hideAddressBar&&p&&(window.addEventListener("load",re,!1),window.addEventListener("orientationchange",re,!1))}(),function d(){var e=[],t=[],r=0;function n(){t.length&&head.js.apply(null,t),function a(){S=!0,function e(){x.slides.classList.add("no-transition"),p?x.wrapper.classList.add("no-hover"):x.wrapper.classList.remove("no-hover"),/iphone/gi.test(k)?x.wrapper.classList.add("ua-iphone"):x.wrapper.classList.remove("ua-iphone"),x.background=W(x.wrapper,"div","backgrounds",null),x.progress=W(x.wrapper,"div","progress","<span></span>"),x.progressbar=x.progress.querySelector("span"),x.controls=W(x.wrapper,"aside","controls",'<button class="navigate-left" aria-label="previous slide"><div class="controls-arrow"></div></button><button class="navigate-right" aria-label="next slide"><div class="controls-arrow"></div></button><button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button><button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>'),x.slideNumber=W(x.wrapper,"div","slide-number",""),x.speakerNotes=W(x.wrapper,"div","speaker-notes",null),x.speakerNotes.setAttribute("data-prevent-swipe",""),x.speakerNotes.setAttribute("tabindex","0"),x.pauseOverlay=W(x.wrapper,"div","pause-overlay",'<button class="resume-button">Resume presentation</button>'),x.resumeButton=x.pauseOverlay.querySelector(".resume-button"),x.wrapper.setAttribute("role","application"),x.controlsLeft=K(document.querySelectorAll(".navigate-left")),x.controlsRight=K(document.querySelectorAll(".navigate-right")),x.controlsUp=K(document.querySelectorAll(".navigate-up")),x.controlsDown=K(document.querySelectorAll(".navigate-down")),x.controlsPrev=K(document.querySelectorAll(".navigate-prev")),x.controlsNext=K(document.querySelectorAll(".navigate-next")),x.controlsRightArrow=x.controls.querySelector(".navigate-right"),x.controlsDownArrow=x.controls.querySelector(".navigate-down"),x.statusDiv=function t(){var e=document.getElementById("aria-status-div");return e||((e=document.createElement("div")).style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.setAttribute("id","aria-status-div"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),x.wrapper.appendChild(e)),e}()}(),function t(){A.postMessage&&window.addEventListener("message",function(e){var t=e.data;"string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t)).method&&"function"==typeof u[t.method]&&u[t.method].apply(u,t.args)},!1)}(),function r(){setInterval(function(){0===x.wrapper.scrollTop&&0===x.wrapper.scrollLeft||(x.wrapper.scrollTop=0,x.wrapper.scrollLeft=0)},1e3)}(),function n(){K(x.wrapper.querySelectorAll(y)).forEach(function(e){var t=K(e.querySelectorAll("section"));t.forEach(function(e,t){0<t&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))})})}(),Y(),Je(),ze(!0),setTimeout(function(){x.slides.classList.remove("no-transition"),x.wrapper.classList.add("ready"),ne("ready",{indexh:h,indexv:v,currentSlide:m})},1),te()&&(j(),"complete"===document.readyState?O():window.addEventListener("load",O))}()}function a(e){head.ready(e.src.match(/([\w\d_\-]*)\.?js(\?[\w\d.=&]*)?$|[^\\\/]*$/i)[0],function(){"function"==typeof e.callback&&e.callback.apply(this),0==--r&&n()})}for(var i=0,o=A.dependencies.length;i<o;i++){var s=A.dependencies[i];s.condition&&!s.condition()||(s.async?t.push(s.src):e.push(s.src),a(s))}e.length?(r=e.length,head.js.apply(null,e)):n()}()}else{document.body.setAttribute("class","no-transforms");for(var r=K(document.getElementsByTagName("img")),n=K(document.getElementsByTagName("iframe")),a=r.concat(n),i=0,o=a.length;i<o;i++){var s=a[i];s.getAttribute("data-src")&&(s.setAttribute("src",s.getAttribute("data-src")),s.removeAttribute("data-src"))}}},configure:Y,sync:Ne,syncSlide:function jt(e){U(e),Me(e),ze(),Pe(),We(e)},syncFragments:Me,slide:qe,left:ft,right:ht,up:vt,down:gt,prev:mt,next:bt,navigateFragment:ot,prevFragment:lt,nextFragment:st,navigateTo:qe,navigateLeft:ft,navigateRight:ht,navigateUp:vt,navigateDown:gt,navigatePrev:mt,navigateNext:bt,layout:ce,shuffle:Ie,availableRoutes:Ue,availableFragments:Ye,toggleHelp:oe,toggleOverview:be,togglePause:Se,toggleAutoSlide:xe,isOverview:ye,isPaused:Ee,isAutoSliding:function Vt(){return!(!T||B)},isSpeakerNotes:_e,loadSlide:We,unloadSlide:Fe,addEventListeners:X,removeEventListeners:j,getState:at,setState:function Kt(e){if("object"==typeof e){qe($(e.indexh),$(e.indexv),$(e.indexf));var t=$(e.paused),r=$(e.overview);"boolean"==typeof t&&t!==Ee()&&Se(t),"boolean"==typeof r&&r!==ye()&&be(r)}},getSlidePastCount:$e,getProgress:e,getIndices:Ze,getSlides:Ge,getTotalSlides:et,getSlide:tt,getSlideBackground:rt,getSlideNotes:nt,getPreviousSlide:function(){return g},getCurrentSlide:function(){return m},getScale:function(){return c},getConfig:function(){return A},getQueryHash:function(){var t={};for(var e in location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,function(e){t[e.split("=").shift()]=e.split("=").pop()}),t){var r=t[e];t[e]=$(unescape(r))}return t},isFirstSlide:function(){return 0===h&&0===v},isLastSlide:function(){return!!m&&(!m.nextElementSibling&&(!ke(m)||!m.parentNode.nextElementSibling))},isLastVerticalSlide:function(){return!(!m||!ke(m))&&!m.nextElementSibling},isReady:function(){return S},addEventListener:function(e,t,r){"addEventListener"in window&&(x.wrapper||document.querySelector(".reveal")).addEventListener(e,t,r)},removeEventListener:function(e,t,r){"addEventListener"in window&&(x.wrapper||document.querySelector(".reveal")).removeEventListener(e,t,r)},addKeyBinding:function $t(e,t){"object"==typeof e&&e.keyCode?D[e.keyCode]={callback:t,key:e.key,description:e.description}:D[e]={callback:t,key:null,description:null}},removeKeyBinding:function _t(e){delete D[e]},triggerKey:function(e){At({keyCode:e})},registerKeyboardShortcut:function(e,t){R[e]=t}}});
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/css/zenburn.css
New file
@@ -0,0 +1,80 @@
/*
Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
based on dark.css by Ivan Sagalaev
*/
.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  background: #3f3f3f;
  color: #dcdcdc;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-tag {
  color: #e3ceab;
}
.hljs-template-tag {
  color: #dcdcdc;
}
.hljs-number {
  color: #8cd0d3;
}
.hljs-variable,
.hljs-template-variable,
.hljs-attribute {
  color: #efdcbc;
}
.hljs-literal {
  color: #efefaf;
}
.hljs-subst {
  color: #8f8f8f;
}
.hljs-title,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-section,
.hljs-type {
  color: #efef8f;
}
.hljs-symbol,
.hljs-bullet,
.hljs-link {
  color: #dca3a3;
}
.hljs-deletion,
.hljs-string,
.hljs-built_in,
.hljs-builtin-name {
  color: #cc9393;
}
.hljs-addition,
.hljs-comment,
.hljs-quote,
.hljs-meta {
  color: #7f9f7f;
}
.hljs-emphasis {
  font-style: italic;
}
.hljs-strong {
  font-weight: bold;
}
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Black.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Black.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BlackItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BlackItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Bold.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Bold.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BoldItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-BoldItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBold.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBold.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBoldItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraBoldItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLight.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLight.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLightItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ExtraLightItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Light.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Light.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-LightItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-LightItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Medium.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Medium.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-MediumItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-MediumItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Regular.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Regular.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-RegularItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-RegularItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBold.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBold.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBoldItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-SemiBoldItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Thin.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-Thin.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ThinItalic.woff
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/Metropolis-ThinItalic.woff2
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/font/metropolis/metropolis.css
New file
@@ -0,0 +1,143 @@
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-Regular.woff2') format('woff2'),
         url('Metropolis-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-RegularItalic.woff2') format('woff2'),
         url('Metropolis-RegularItalic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-Thin.woff2') format('woff2'),
         url('Metropolis-Thin.woff') format('woff');
    font-weight: 100;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-ThinItalic.woff2') format('woff2'),
         url('Metropolis-ThinItalic.woff') format('woff');
    font-weight: 100;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-ExtraLight.woff2') format('woff2'),
         url('Metropolis-ExtraLight.woff') format('woff');
    font-weight: 200;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-ExtraLightItalic.woff2') format('woff2'),
         url('Metropolis-ExtraLightItalic.woff') format('woff');
    font-weight: 200;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-Light.woff2') format('woff2'),
         url('Metropolis-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-LightItalic.woff2') format('woff2'),
         url('Metropolis-LightItalic.woff') format('woff');
    font-weight: 300;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-Medium.woff2') format('woff2'),
         url('Metropolis-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-MediumItalic.woff2') format('woff2'),
         url('Metropolis-MediumItalic.woff') format('woff');
    font-weight: 500;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-SemiBold.woff2') format('woff2'),
         url('Metropolis-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-SemiBoldItalic.woff2') format('woff2'),
         url('Metropolis-SemiBoldItalic.woff') format('woff');
    font-weight: 600;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-Bold.woff2') format('woff2'),
         url('Metropolis-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-BoldItalic.woff2') format('woff2'),
         url('Metropolis-BoldItalic.woff') format('woff');
    font-weight: 700;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-ExtraBold.woff2') format('woff2'),
         url('Metropolis-ExtraBold.woff') format('woff');
    font-weight: 800;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-ExtraBoldItalic.woff2') format('woff2'),
         url('Metropolis-ExtraBoldItalic.woff') format('woff');
    font-weight: 800;
    font-style: italic;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-Black.woff2') format('woff2'),
         url('Metropolis-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
}
@font-face {
    font-family: 'Metropolis';
    src: url('Metropolis-Black.woff2') format('woff2'),
         url('Metropolis-Black.woff') format('woff');
    font-weight: 900;
    font-style: italic;
}
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/js/classList.js
New file
@@ -0,0 +1,2 @@
/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.className),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.className=this.toString()}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(o){o+="";if(g(this,o)===-1){this.push(o);this._updateClassName()}};e.remove=function(p){p+="";var o=g(this,p);if(o!==-1){this.splice(o,1);this._updateClassName()}};e.toggle=function(o){o+="";if(g(this,o)===-1){this.add(o)}else{this.remove(o)}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/js/head.min.js
New file
@@ -0,0 +1,6 @@
/*! head.core - v1.0.2 */
(function(n,t){"use strict";function r(n){a[a.length]=n}function k(n){var t=new RegExp(" ?\\b"+n+"\\b");c.className=c.className.replace(t,"")}function p(n,t){for(var i=0,r=n.length;i<r;i++)t.call(n,n[i],i)}function tt(){var t,e,f,o;c.className=c.className.replace(/ (w-|eq-|gt-|gte-|lt-|lte-|portrait|no-portrait|landscape|no-landscape)\d+/g,"");t=n.innerWidth||c.clientWidth;e=n.outerWidth||n.screen.width;u.screen.innerWidth=t;u.screen.outerWidth=e;r("w-"+t);p(i.screens,function(n){t>n?(i.screensCss.gt&&r("gt-"+n),i.screensCss.gte&&r("gte-"+n)):t<n?(i.screensCss.lt&&r("lt-"+n),i.screensCss.lte&&r("lte-"+n)):t===n&&(i.screensCss.lte&&r("lte-"+n),i.screensCss.eq&&r("e-q"+n),i.screensCss.gte&&r("gte-"+n))});f=n.innerHeight||c.clientHeight;o=n.outerHeight||n.screen.height;u.screen.innerHeight=f;u.screen.outerHeight=o;u.feature("portrait",f>t);u.feature("landscape",f<t)}function it(){n.clearTimeout(b);b=n.setTimeout(tt,50)}var y=n.document,rt=n.navigator,ut=n.location,c=y.documentElement,a=[],i={screens:[240,320,480,640,768,800,1024,1280,1440,1680,1920],screensCss:{gt:!0,gte:!1,lt:!0,lte:!1,eq:!1},browsers:[{ie:{min:6,max:11}}],browserCss:{gt:!0,gte:!1,lt:!0,lte:!1,eq:!0},html5:!0,page:"-page",section:"-section",head:"head"},v,u,s,w,o,h,l,d,f,g,nt,e,b;if(n.head_conf)for(v in n.head_conf)n.head_conf[v]!==t&&(i[v]=n.head_conf[v]);u=n[i.head]=function(){u.ready.apply(null,arguments)};u.feature=function(n,t,i){return n?(Object.prototype.toString.call(t)==="[object Function]"&&(t=t.call()),r((t?"":"no-")+n),u[n]=!!t,i||(k("no-"+n),k(n),u.feature()),u):(c.className+=" "+a.join(" "),a=[],u)};u.feature("js",!0);s=rt.userAgent.toLowerCase();w=/mobile|android|kindle|silk|midp|phone|(windows .+arm|touch)/.test(s);u.feature("mobile",w,!0);u.feature("desktop",!w,!0);s=/(chrome|firefox)[ \/]([\w.]+)/.exec(s)||/(iphone|ipad|ipod)(?:.*version)?[ \/]([\w.]+)/.exec(s)||/(android)(?:.*version)?[ \/]([\w.]+)/.exec(s)||/(webkit|opera)(?:.*version)?[ \/]([\w.]+)/.exec(s)||/(msie) ([\w.]+)/.exec(s)||/(trident).+rv:(\w.)+/.exec(s)||[];o=s[1];h=parseFloat(s[2]);switch(o){case"msie":case"trident":o="ie";h=y.documentMode||h;break;case"firefox":o="ff";break;case"ipod":case"ipad":case"iphone":o="ios";break;case"webkit":o="safari"}for(u.browser={name:o,version:h},u.browser[o]=!0,l=0,d=i.browsers.length;l<d;l++)for(f in i.browsers[l])if(o===f)for(r(f),g=i.browsers[l][f].min,nt=i.browsers[l][f].max,e=g;e<=nt;e++)h>e?(i.browserCss.gt&&r("gt-"+f+e),i.browserCss.gte&&r("gte-"+f+e)):h<e?(i.browserCss.lt&&r("lt-"+f+e),i.browserCss.lte&&r("lte-"+f+e)):h===e&&(i.browserCss.lte&&r("lte-"+f+e),i.browserCss.eq&&r("eq-"+f+e),i.browserCss.gte&&r("gte-"+f+e));else r("no-"+f);r(o);r(o+parseInt(h,10));i.html5&&o==="ie"&&h<9&&p("abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|progress|section|summary|time|video".split("|"),function(n){y.createElement(n)});p(ut.pathname.split("/"),function(n,u){if(this.length>2&&this[u+1]!==t)u&&r(this.slice(u,u+1).join("-").toLowerCase()+i.section);else{var f=n||"index",e=f.indexOf(".");e>0&&(f=f.substring(0,e));c.id=f.toLowerCase()+i.page;u||r("root"+i.section)}});u.screen={height:n.screen.height,width:n.screen.width};tt();b=0;n.addEventListener?n.addEventListener("resize",it,!1):n.attachEvent("onresize",it)})(window);
/*! head.css3 - v1.0.0 */
(function(n,t){"use strict";function a(n){for(var r in n)if(i[n[r]]!==t)return!0;return!1}function r(n){var t=n.charAt(0).toUpperCase()+n.substr(1),i=(n+" "+c.join(t+" ")+t).split(" ");return!!a(i)}var h=n.document,o=h.createElement("i"),i=o.style,s=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),c="Webkit Moz O ms Khtml".split(" "),l=n.head_conf&&n.head_conf.head||"head",u=n[l],f={gradient:function(){var n="background-image:";return i.cssText=(n+s.join("gradient(linear,left top,right bottom,from(#9f9),to(#fff));"+n)+s.join("linear-gradient(left top,#eee,#fff);"+n)).slice(0,-n.length),!!i.backgroundImage},rgba:function(){return i.cssText="background-color:rgba(0,0,0,0.5)",!!i.backgroundColor},opacity:function(){return o.style.opacity===""},textshadow:function(){return i.textShadow===""},multiplebgs:function(){i.cssText="background:url(https://),url(https://),red url(https://)";var n=(i.background||"").match(/url/g);return Object.prototype.toString.call(n)==="[object Array]"&&n.length===3},boxshadow:function(){return r("boxShadow")},borderimage:function(){return r("borderImage")},borderradius:function(){return r("borderRadius")},cssreflections:function(){return r("boxReflect")},csstransforms:function(){return r("transform")},csstransitions:function(){return r("transition")},touch:function(){return"ontouchstart"in n},retina:function(){return n.devicePixelRatio>1},fontface:function(){var t=u.browser.name,n=u.browser.version;switch(t){case"ie":return n>=9;case"chrome":return n>=13;case"ff":return n>=6;case"ios":return n>=5;case"android":return!1;case"webkit":return n>=5.1;case"opera":return n>=10;default:return!1}}};for(var e in f)f[e]&&u.feature(e,f[e].call(),!0);u.feature()})(window);
/*! head.load - v1.0.3 */
(function(n,t){"use strict";function w(){}function u(n,t){if(n){typeof n=="object"&&(n=[].slice.call(n));for(var i=0,r=n.length;i<r;i++)t.call(n,n[i],i)}}function it(n,i){var r=Object.prototype.toString.call(i).slice(8,-1);return i!==t&&i!==null&&r===n}function s(n){return it("Function",n)}function a(n){return it("Array",n)}function et(n){var i=n.split("/"),t=i[i.length-1],r=t.indexOf("?");return r!==-1?t.substring(0,r):t}function f(n){(n=n||w,n._done)||(n(),n._done=1)}function ot(n,t,r,u){var f=typeof n=="object"?n:{test:n,success:!t?!1:a(t)?t:[t],failure:!r?!1:a(r)?r:[r],callback:u||w},e=!!f.test;return e&&!!f.success?(f.success.push(f.callback),i.load.apply(null,f.success)):e||!f.failure?u():(f.failure.push(f.callback),i.load.apply(null,f.failure)),i}function v(n){var t={},i,r;if(typeof n=="object")for(i in n)!n[i]||(t={name:i,url:n[i]});else t={name:et(n),url:n};return(r=c[t.name],r&&r.url===t.url)?r:(c[t.name]=t,t)}function y(n){n=n||c;for(var t in n)if(n.hasOwnProperty(t)&&n[t].state!==l)return!1;return!0}function st(n){n.state=ft;u(n.onpreload,function(n){n.call()})}function ht(n){n.state===t&&(n.state=nt,n.onpreload=[],rt({url:n.url,type:"cache"},function(){st(n)}))}function ct(){var n=arguments,t=n[n.length-1],r=[].slice.call(n,1),f=r[0];return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(f?(u(r,function(n){s(n)||!n||ht(v(n))}),b(v(n[0]),s(f)?f:function(){i.load.apply(null,r)})):b(v(n[0])),i)}function lt(){var n=arguments,t=n[n.length-1],r={};return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(u(n,function(n){n!==t&&(n=v(n),r[n.name]=n)}),u(n,function(n){n!==t&&(n=v(n),b(n,function(){y(r)&&f(t)}))}),i)}function b(n,t){if(t=t||w,n.state===l){t();return}if(n.state===tt){i.ready(n.name,t);return}if(n.state===nt){n.onpreload.push(function(){b(n,t)});return}n.state=tt;rt(n,function(){n.state=l;t();u(h[n.name],function(n){f(n)});o&&y()&&u(h.ALL,function(n){f(n)})})}function at(n){n=n||"";var t=n.split("?")[0].split(".");return t[t.length-1].toLowerCase()}function rt(t,i){function e(t){t=t||n.event;u.onload=u.onreadystatechange=u.onerror=null;i()}function o(f){f=f||n.event;(f.type==="load"||/loaded|complete/.test(u.readyState)&&(!r.documentMode||r.documentMode<9))&&(n.clearTimeout(t.errorTimeout),n.clearTimeout(t.cssTimeout),u.onload=u.onreadystatechange=u.onerror=null,i())}function s(){if(t.state!==l&&t.cssRetries<=20){for(var i=0,f=r.styleSheets.length;i<f;i++)if(r.styleSheets[i].href===u.href){o({type:"load"});return}t.cssRetries++;t.cssTimeout=n.setTimeout(s,250)}}var u,h,f;i=i||w;h=at(t.url);h==="css"?(u=r.createElement("link"),u.type="text/"+(t.type||"css"),u.rel="stylesheet",u.href=t.url,t.cssRetries=0,t.cssTimeout=n.setTimeout(s,500)):(u=r.createElement("script"),u.type="text/"+(t.type||"javascript"),u.src=t.url);u.onload=u.onreadystatechange=o;u.onerror=e;u.async=!1;u.defer=!1;t.errorTimeout=n.setTimeout(function(){e({type:"timeout"})},7e3);f=r.head||r.getElementsByTagName("head")[0];f.insertBefore(u,f.lastChild)}function vt(){for(var t,u=r.getElementsByTagName("script"),n=0,f=u.length;n<f;n++)if(t=u[n].getAttribute("data-headjs-load"),!!t){i.load(t);return}}function yt(n,t){var v,p,e;return n===r?(o?f(t):d.push(t),i):(s(n)&&(t=n,n="ALL"),a(n))?(v={},u(n,function(n){v[n]=c[n];i.ready(n,function(){y(v)&&f(t)})}),i):typeof n!="string"||!s(t)?i:(p=c[n],p&&p.state===l||n==="ALL"&&y()&&o)?(f(t),i):(e=h[n],e?e.push(t):e=h[n]=[t],i)}function e(){if(!r.body){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(e,50);return}o||(o=!0,vt(),u(d,function(n){f(n)}))}function k(){r.addEventListener?(r.removeEventListener("DOMContentLoaded",k,!1),e()):r.readyState==="complete"&&(r.detachEvent("onreadystatechange",k),e())}var r=n.document,d=[],h={},c={},ut="async"in r.createElement("script")||"MozAppearance"in r.documentElement.style||n.opera,o,g=n.head_conf&&n.head_conf.head||"head",i=n[g]=n[g]||function(){i.ready.apply(null,arguments)},nt=1,ft=2,tt=3,l=4,p;if(r.readyState==="complete")e();else if(r.addEventListener)r.addEventListener("DOMContentLoaded",k,!1),n.addEventListener("load",e,!1);else{r.attachEvent("onreadystatechange",k);n.attachEvent("onload",e);p=!1;try{p=!n.frameElement&&r.documentElement}catch(wt){}p&&p.doScroll&&function pt(){if(!o){try{p.doScroll("left")}catch(t){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(pt,50);return}e()}}()}i.load=i.js=ut?lt:ct;i.test=ot;i.ready=yt;i.ready(r,function(){y()&&u(h.ALL,function(n){f(n)});i.feature&&i.feature("domloaded",!0)})})(window);
2019_09_18_41st/Sichere_Softwareentwicklung/slides/lib/js/html5shiv.js
New file
@@ -0,0 +1,7 @@
document.createElement('header');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');
document.createElement('footer');
document.createElement('hgroup');
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/SDLC.svg
New file
@@ -0,0 +1,643 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:ooo="http://xml.openoffice.org/svg/export"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.2"
   width="196.51mm"
   height="30.01mm"
   viewBox="999 11500 19651 3001"
   preserveAspectRatio="xMidYMid"
   fill-rule="evenodd"
   stroke-width="28.222"
   stroke-linejoin="round"
   xml:space="preserve"
   id="svg243"
   sodipodi:docname="SDLC.svg"
   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
   id="metadata247"><rdf:RDF><cc:Work
       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
   pagecolor="#ffffff"
   bordercolor="#666666"
   borderopacity="1"
   objecttolerance="10"
   gridtolerance="10"
   guidetolerance="10"
   inkscape:pageopacity="0"
   inkscape:pageshadow="2"
   inkscape:window-width="1530"
   inkscape:window-height="836"
   id="namedview245"
   showgrid="false"
   inkscape:zoom="1.2535092"
   inkscape:cx="538.0894"
   inkscape:cy="56.711811"
   inkscape:window-x="70"
   inkscape:window-y="27"
   inkscape:window-maximized="1"
   inkscape:current-layer="g235" />
 <defs
   class="ClipPathGroup"
   id="defs16">
  <clipPath
   id="presentation_clip_path"
   clipPathUnits="userSpaceOnUse">
   <rect
   x="999"
   y="11500"
   width="19651"
   height="3001"
   id="rect10" />
  </clipPath>
  <clipPath
   id="presentation_clip_path_shrink"
   clipPathUnits="userSpaceOnUse">
   <rect
   x="1018"
   y="11503"
   width="19612"
   height="2995"
   id="rect13" />
  </clipPath>
 </defs>
 <defs
   id="defs63">
  <font
   id="EmbeddedFont_1"
   horiz-adv-x="2048">
   <font-face
   font-family="Metropolis embedded"
   units-per-em="2048"
   font-weight="normal"
   font-style="normal"
   ascent="1614"
   descent="423"
   id="font-face18" />
   <missing-glyph
   horiz-adv-x="2048"
   d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"
   id="missing-glyph20" />
   <glyph
   unicode="y"
   horiz-adv-x="1086"
   d="M 313,-369 C 459,-367 561,-299 635,-119 L 1118,1059 952,1059 602,178 231,1059 61,1059 522,-4 461,-135 C 420,-207 375,-229 307,-229 262,-229 219,-221 182,-203 L 145,-334 C 195,-356 252,-369 313,-369 Z"
   id="glyph22" />
   <glyph
   unicode="u"
   horiz-adv-x="927"
   d="M 901,1059 L 901,385 C 901,238 752,113 573,113 418,113 309,233 309,406 L 309,1059 156,1059 156,385 C 156,145 319,-25 553,-25 702,-25 840,57 901,170 L 901,0 1055,0 1055,1059 901,1059 Z"
   id="glyph24" />
   <glyph
   unicode="t"
   horiz-adv-x="662"
   d="M 621,156 C 598,131 557,113 510,113 449,113 395,168 395,246 L 395,922 655,922 655,1059 395,1059 395,1350 242,1350 242,1059 76,1059 76,922 242,922 242,246 C 242,88 348,-25 500,-25 571,-25 641,0 696,43 L 621,156 Z"
   id="glyph26" />
   <glyph
   unicode="s"
   horiz-adv-x="848"
   d="M 530,-25 C 750,-25 918,100 918,295 918,496 741,553 571,606 375,670 297,698 297,791 297,893 395,946 514,946 608,946 713,913 819,846 L 893,965 C 780,1038 645,1083 514,1083 303,1083 143,965 143,772 143,621 242,545 498,471 641,430 764,393 764,279 764,178 670,113 530,113 414,113 293,158 172,246 L 92,133 C 219,31 383,-25 530,-25 Z"
   id="glyph28" />
   <glyph
   unicode="r"
   horiz-adv-x="583"
   d="M 324,852 L 324,1059 170,1059 170,0 324,0 324,592 C 324,799 494,946 733,946 L 733,1083 C 539,1083 387,993 324,852 Z"
   id="glyph30" />
   <glyph
   unicode="o"
   horiz-adv-x="1113"
   d="M 647,-25 C 944,-25 1194,229 1194,530 1194,831 944,1083 647,1083 350,1083 98,831 98,530 98,229 350,-25 647,-25 Z M 647,113 C 436,113 260,303 260,530 260,756 436,946 647,946 856,946 1032,756 1032,530 1032,303 856,113 647,113 Z"
   id="glyph32" />
   <glyph
   unicode="n"
   horiz-adv-x="927"
   d="M 659,1083 C 510,1083 373,1001 311,889 L 311,1059 158,1059 158,0 311,0 311,674 C 311,821 461,946 639,946 795,946 903,825 903,653 L 903,0 1057,0 1057,674 C 1057,913 893,1083 659,1083 Z"
   id="glyph34" />
   <glyph
   unicode="l"
   horiz-adv-x="187"
   d="M 156,0 L 309,0 309,1432 156,1432 156,0 Z"
   id="glyph36" />
   <glyph
   unicode="i"
   horiz-adv-x="239"
   d="M 231,1251 C 287,1251 332,1298 332,1354 332,1407 287,1454 231,1454 174,1454 129,1407 129,1354 129,1298 174,1251 231,1251 Z M 154,0 L 307,0 307,1059 154,1059 154,0 Z"
   id="glyph38" />
   <glyph
   unicode="g"
   horiz-adv-x="1033"
   d="M 979,1059 L 979,877 C 897,1006 762,1083 594,1083 309,1083 107,877 107,582 107,287 309,78 594,78 762,78 897,156 979,285 L 979,113 C 979,-94 836,-215 592,-215 461,-215 334,-168 252,-90 L 184,-211 C 281,-293 440,-352 612,-352 918,-352 1133,-160 1133,113 L 1133,1059 979,1059 Z M 623,215 C 416,215 268,367 268,582 268,795 416,946 623,946 831,946 979,795 979,582 979,367 831,215 623,215 Z"
   id="glyph40" />
   <glyph
   unicode="e"
   horiz-adv-x="1060"
   d="M 633,113 C 424,113 279,264 256,471 L 1122,471 C 1122,842 940,1083 621,1083 336,1083 98,848 98,532 98,207 352,-25 635,-25 782,-25 969,39 1061,139 L 967,240 C 901,168 758,113 633,113 Z M 627,946 C 838,946 950,799 971,608 L 258,608 C 287,813 438,946 627,946 Z"
   id="glyph42" />
   <glyph
   unicode="d"
   horiz-adv-x="1033"
   d="M 983,1432 L 983,860 C 903,999 768,1083 598,1083 319,1083 111,854 111,530 111,205 319,-25 598,-25 768,-25 903,59 983,199 L 983,0 1137,0 1137,1432 983,1432 Z M 627,113 C 420,113 272,287 272,530 272,774 420,946 627,946 836,946 983,774 983,530 983,287 836,113 627,113 Z"
   id="glyph44" />
   <glyph
   unicode="b"
   horiz-adv-x="1033"
   d="M 709,1083 C 539,1083 403,999 324,860 L 324,1432 170,1432 170,0 324,0 324,199 C 403,59 539,-25 709,-25 987,-25 1196,205 1196,530 1196,854 987,1083 709,1083 Z M 680,113 C 471,113 324,287 324,530 324,774 471,946 680,946 887,946 1034,774 1034,530 1034,287 887,113 680,113 Z"
   id="glyph46" />
   <glyph
   unicode="a"
   horiz-adv-x="954"
   d="M 586,1083 C 483,1083 356,1057 205,981 L 266,856 C 363,905 469,952 575,952 805,952 862,788 862,645 L 862,606 C 754,641 633,666 518,666 291,666 102,524 102,313 102,104 266,-25 489,-25 629,-25 786,41 862,166 L 862,0 1016,0 1016,645 C 1016,901 875,1083 586,1083 Z M 516,111 C 367,111 252,188 252,319 252,446 385,537 543,537 657,537 766,520 862,494 L 862,332 C 821,182 655,111 516,111 Z"
   id="glyph48" />
   <glyph
   unicode="T"
   horiz-adv-x="1139"
   d="M 565,0 L 725,0 725,1255 1198,1255 1198,1407 92,1407 92,1255 565,1255 565,0 Z"
   id="glyph50" />
   <glyph
   unicode="P"
   horiz-adv-x="1112"
   d="M 162,0 L 322,0 322,506 733,506 C 1024,506 1251,692 1251,956 1251,1221 1024,1407 733,1407 L 162,1407 162,0 Z M 322,657 L 322,1255 705,1255 C 934,1255 1090,1145 1090,956 1090,768 934,657 705,657 L 322,657 Z"
   id="glyph52" />
   <glyph
   unicode="D"
   horiz-adv-x="1245"
   d="M 193,0 L 668,0 C 1114,0 1430,293 1430,705 1430,1116 1114,1407 668,1407 L 193,1407 193,0 Z M 352,145 L 352,1262 668,1262 C 1020,1262 1268,1030 1268,705 1268,377 1020,145 668,145 L 352,145 Z"
   id="glyph54" />
   <glyph
   unicode="C"
   horiz-adv-x="1244"
   d="M 827,-25 C 1022,-25 1202,59 1333,190 L 1225,301 C 1122,193 981,123 827,123 524,123 268,389 268,705 268,1018 524,1284 827,1284 981,1284 1122,1214 1225,1106 L 1333,1217 C 1202,1350 1022,1432 827,1432 438,1432 107,1100 107,705 107,309 438,-25 827,-25 Z"
   id="glyph56" />
   <glyph
   unicode="B"
   horiz-adv-x="1112"
   d="M 193,0 L 862,0 C 1106,0 1280,160 1280,385 1280,539 1186,666 1024,748 1151,821 1225,907 1225,1057 1225,1262 1065,1407 838,1407 L 193,1407 193,0 Z M 352,811 L 352,1262 797,1262 C 952,1262 1063,1167 1063,1036 1063,905 952,811 797,811 L 352,811 Z M 352,145 L 352,666 821,666 C 995,666 1118,557 1118,406 1118,254 995,145 821,145 L 352,145 Z"
   id="glyph58" />
   <glyph
   unicode="A"
   horiz-adv-x="1430"
   d="M 1307,0 L 1481,0 860,1407 686,1407 66,0 240,0 381,319 1165,319 1307,0 Z M 446,471 L 774,1210 1100,471 446,471 Z"
   id="glyph60" />
  </font>
 </defs>
 <defs
   class="TextShapeIndex"
   id="defs67">
  <g
   ooo:slide="id1"
   ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14"
   id="g65" />
 </defs>
 <defs
   class="EmbeddedBulletChars"
   id="defs99">
  <g
   id="bullet-char-template-57356"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"
   id="path69" />
  </g>
  <g
   id="bullet-char-template-57354"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"
   id="path72" />
  </g>
  <g
   id="bullet-char-template-10146"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"
   id="path75" />
  </g>
  <g
   id="bullet-char-template-10132"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"
   id="path78" />
  </g>
  <g
   id="bullet-char-template-10007"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"
   id="path81" />
  </g>
  <g
   id="bullet-char-template-10004"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"
   id="path84" />
  </g>
  <g
   id="bullet-char-template-9679"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"
   id="path87" />
  </g>
  <g
   id="bullet-char-template-8226"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"
   id="path90" />
  </g>
  <g
   id="bullet-char-template-8211"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"
   id="path93" />
  </g>
  <g
   id="bullet-char-template-61548"
   transform="scale(0.00048828125,-0.00048828125)">
   <path
   d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"
   id="path96" />
  </g>
 </defs>
 <defs
   class="TextEmbeddedBitmaps"
   id="defs101" />
 <g
   class="SlideGroup"
   id="g241">
  <g
   id="g239">
   <g
   id="container-id1">
    <g
   id="id1"
   class="Slide"
   clip-path="url(#presentation_clip_path)">
     <g
   class="Page"
   id="g235">
      <g
   class="com.sun.star.drawing.PolyPolygonShape"
   id="g110">
       <g
   id="id3">
        <rect
   class="BoundingBox"
   stroke="none"
   fill="none"
   x="999"
   y="11499"
   width="3653"
   height="3004"
   id="rect103" />
        <path
   fill="rgb(214,107,106)"
   stroke="none"
   d="M 1000,11500 L 1650,13000 1000,14501 4000,14500 4650,13000 4000,11500 1000,11500 Z"
   id="path105" />
        <path
   fill="none"
   stroke="rgb(214,107,106)"
   d="M 1000,11500 L 1650,13000 1000,14501 4000,14500 4650,13000 4000,11500 1000,11500 Z"
   id="path107" />
       </g>
      </g>
      <g
   class="com.sun.star.drawing.PolyPolygonShape"
   id="g119">
       <g
   id="id4">
        <rect
   class="BoundingBox"
   stroke="none"
   fill="none"
   x="7399"
   y="11499"
   width="3653"
   height="3004"
   id="rect112" />
        <path
   fill="rgb(204,70,69)"
   stroke="none"
   d="M 7400,11500 L 8050,13000 7400,14501 10400,14500 11050,13000 10400,11500 7400,11500 Z"
   id="path114" />
        <path
   fill="none"
   stroke="rgb(204,70,69)"
   d="M 7400,11500 L 8050,13000 7400,14501 10400,14500 11050,13000 10400,11500 7400,11500 Z"
   id="path116" />
       </g>
      </g>
      <g
   class="com.sun.star.drawing.PolyPolygonShape"
   id="g128">
       <g
   id="id5">
        <rect
   class="BoundingBox"
   stroke="none"
   fill="none"
   x="16999"
   y="11499"
   width="3653"
   height="3004"
   id="rect121" />
        <path
   fill="rgb(176,94,94)"
   stroke="none"
   d="M 17000,11500 L 17650,13000 17000,14501 20000,14500 20650,13000 20000,11500 17000,11500 Z"
   id="path123" />
        <path
   fill="none"
   stroke="rgb(176,94,94)"
   d="M 17000,11500 L 17650,13000 17000,14501 20000,14500 20650,13000 20000,11500 17000,11500 Z"
   id="path125" />
       </g>
      </g>
      <g
   class="com.sun.star.drawing.PolyPolygonShape"
   id="g137">
       <g
   id="id6">
        <rect
   class="BoundingBox"
   stroke="none"
   fill="none"
   x="10599"
   y="11499"
   width="3653"
   height="3004"
   id="rect130" />
        <path
   fill="rgb(156,54,54)"
   stroke="none"
   d="M 10600,11500 L 11250,13000 10600,14501 13600,14500 14250,13000 13600,11500 10600,11500 Z"
   id="path132" />
        <path
   fill="none"
   stroke="rgb(156,54,54)"
   d="M 10600,11500 L 11250,13000 10600,14501 13600,14500 14250,13000 13600,11500 10600,11500 Z"
   id="path134" />
       </g>
      </g>
      <g
   class="com.sun.star.drawing.PolyPolygonShape"
   id="g146">
       <g
   id="id7">
        <rect
   class="BoundingBox"
   stroke="none"
   fill="none"
   x="13799"
   y="11499"
   width="3653"
   height="3004"
   id="rect139" />
        <path
   fill="rgb(163,56,55)"
   stroke="none"
   d="M 13800,11500 L 14450,13000 13800,14501 16800,14500 17450,13000 16800,11500 13800,11500 Z"
   id="path141" />
        <path
   fill="none"
   stroke="rgb(163,56,55)"
   d="M 13800,11500 L 14450,13000 13800,14501 16800,14500 17450,13000 16800,11500 13800,11500 Z"
   id="path143" />
       </g>
      </g>
      <g
   class="com.sun.star.drawing.PolyPolygonShape"
   id="g155">
       <g
   id="id8">
        <rect
   class="BoundingBox"
   stroke="none"
   fill="none"
   x="4199"
   y="11499"
   width="3653"
   height="3004"
   id="rect148" />
        <path
   fill="rgb(125,43,43)"
   stroke="none"
   d="M 4200,11500 L 4850,13000 4200,14501 7200,14500 7850,13000 7200,11500 4200,11500 Z"
   id="path150" />
        <path
   fill="none"
   stroke="rgb(125,43,43)"
   d="M 4200,11500 L 4850,13000 4200,14501 7200,14500 7850,13000 7200,11500 4200,11500 Z"
   id="path152" />
       </g>
      </g>
      <g
   class="com.sun.star.drawing.TextShape"
   id="g168">
       <g
   id="id9">
        <path
   style="fill:none;stroke:none"
   d="m 4810,12582 h 2933 v 887 H 4810 Z"
   id="rect157" />
        <g
   aria-label="Analyse"
   style=""
   id="text165"><path
     d="m 5277.041,12810.784 -84.956,230.374 h 170.2221 z m -35.3467,-61.701 h 71.0035 L 5489.1211,13212 h -65.1123 l -42.168,-118.752 h -208.6694 l -42.168,118.752 h -66.0425 z"
     style="fill:#ffffff;stroke:none"
     id="path316" /><path
     d="m 5842.5879,13002.4 v 209.6 h -57.0508 v -207.739 q 0,-49.3 -19.2236,-73.794 -19.2237,-24.495 -57.6709,-24.495 -46.1988,0 -72.8638,29.456 -26.665,29.455 -26.665,80.305 V 13212 h -57.3609 v -347.266 h 57.3609 v 53.951 q 20.4638,-31.316 48.0591,-46.819 27.9052,-15.503 64.1821,-15.503 59.8413,0 90.5371,37.207 30.6958,36.897 30.6958,108.83 z"
     style="fill:#ffffff;stroke:none"
     id="path318" /><path
     d="m 6114.8193,13037.437 q -69.143,0 -95.8081,15.813 -26.665,15.813 -26.665,53.95 0,30.386 19.8437,48.369 20.1538,17.674 54.5704,17.674 47.4389,0 75.9643,-33.487 28.8355,-33.796 28.8355,-89.607 v -12.712 z m 113.7915,-23.564 V 13212 h -57.0507 v -52.71 q -19.5337,31.626 -48.6792,46.819 -29.1455,14.883 -71.3135,14.883 -53.3301,0 -84.9561,-29.766 -31.3159,-30.076 -31.3159,-80.305 0,-58.601 39.0674,-88.367 39.3774,-29.765 117.2021,-29.765 h 79.9952 v -5.581 q 0,-39.378 -26.045,-60.772 -25.7348,-21.704 -72.5537,-21.704 -29.7656,0 -57.9809,7.131 -28.2154,7.132 -54.2603,21.394 v -52.71 q 31.3159,-12.092 60.7715,-17.983 29.4556,-6.201 57.3608,-6.201 75.3443,0 112.5513,39.067 37.207,39.068 37.207,118.443 z"
     style="fill:#ffffff;stroke:none"
     id="path320" /><path
     d="m 6346.4331,12729.549 h 57.0508 V 13212 h -57.0508 z"
     style="fill:#ffffff;stroke:none"
     id="path322" /><path
     d="m 6667.0337,13244.246 q -24.1846,62.012 -47.1289,80.925 -22.9444,18.914 -61.3916,18.914 h -45.5786 v -47.749 h 33.4863 q 23.5645,0 36.5869,-11.162 13.0225,-11.162 28.8355,-52.71 l 10.2319,-26.045 -140.4565,-341.685 h 60.4614 l 108.5205,271.612 108.5205,-271.612 h 60.4614 z"
     style="fill:#ffffff;stroke:none"
     id="path324" /><path
     d="m 7119.7192,12874.966 v 53.951 q -24.1845,-12.403 -50.2295,-18.604 -26.0449,-6.201 -53.9501,-6.201 -42.4781,0 -63.8721,13.022 -21.084,13.023 -21.084,39.068 0,19.843 15.1929,31.316 15.1928,11.162 61.0815,21.394 l 19.5337,4.34 q 60.7715,13.023 86.1963,36.897 25.7349,23.565 25.7349,66.043 0,48.369 -38.4473,76.584 -38.1372,28.216 -105.1099,28.216 -27.9052,0 -58.291,-5.581 -30.0757,-5.271 -63.562,-16.123 v -58.912 q 31.626,16.434 62.3218,24.805 30.6958,8.062 60.7715,8.062 40.3076,0 62.0117,-13.643 21.7041,-13.953 21.7041,-39.067 0,-23.255 -15.813,-35.657 -15.5029,-12.402 -68.523,-23.875 l -19.8437,-4.65 q -53.02,-11.163 -76.5845,-34.107 -23.5644,-23.254 -23.5644,-63.562 0,-48.989 34.7265,-75.654 34.7266,-26.665 98.5987,-26.665 31.6259,0 59.5312,4.651 27.9053,4.651 51.4697,13.952 z"
     style="fill:#ffffff;stroke:none"
     id="path326" /><path
     d="m 7526.5161,13024.104 v 27.906 h -262.3096 q 3.7207,58.911 35.3467,89.917 31.9361,30.696 88.6768,30.696 32.8662,0 63.562,-8.062 31.0059,-8.061 61.3916,-24.185 v 53.951 q -30.6958,13.022 -62.9419,19.843 -32.2461,6.822 -65.4224,6.822 -83.0957,0 -131.7749,-48.369 -48.3691,-48.37 -48.3691,-130.845 0,-85.266 45.8887,-135.186 46.1987,-50.229 124.3335,-50.229 70.0732,0 110.6909,45.268 40.9277,44.959 40.9277,122.473 z m -57.0508,-16.743 q -0.6201,-46.819 -26.3549,-74.724 -25.4249,-27.905 -67.5928,-27.905 -47.749,0 -76.5845,26.975 -28.5254,26.975 -32.8662,75.964 z"
     style="fill:#ffffff;stroke:none"
     id="path328" /></g>
       </g>
      </g>
      <g
   class="com.sun.star.drawing.TextShape"
   id="g181">
       <g
   id="id10">
        <path
   style="fill:none;stroke:none"
   d="m 8177,12582 h 2599 v 887 H 8177 Z"
   id="rect170" />
        <g
   aria-label="Design"
   style=""
   id="text178"><path
     d="m 8551.9536,12800.552 v 359.978 h 75.6543 q 95.8081,0 140.1465,-43.408 44.6484,-43.408 44.6484,-137.046 0,-93.017 -44.6484,-136.116 -44.3384,-43.408 -140.1465,-43.408 z m -62.6318,-51.469 h 128.6743 q 134.5654,0 197.5073,56.12 62.9419,55.811 62.9419,174.873 0,119.683 -63.2519,175.803 -63.252,56.121 -197.1973,56.121 h -128.6743 z"
     style="fill:#ffffff;stroke:none"
     id="path302" /><path
     d="m 9272.5298,13024.104 v 27.906 h -262.3096 q 3.7207,58.911 35.3467,89.917 31.936,30.696 88.6768,30.696 32.8662,0 63.562,-8.062 31.0058,-8.061 61.3916,-24.185 v 53.951 q -30.6958,13.022 -62.9419,19.843 -32.2461,6.822 -65.4224,6.822 -83.0957,0 -131.7749,-48.369 -48.3691,-48.37 -48.3691,-130.845 0,-85.266 45.8886,-135.186 46.1988,-50.229 124.3335,-50.229 70.0733,0 110.691,45.268 40.9277,44.959 40.9277,122.473 z m -57.0508,-16.743 q -0.6201,-46.819 -26.355,-74.724 -25.4248,-27.905 -67.5927,-27.905 -47.7491,0 -76.5845,26.975 -28.5254,26.975 -32.8662,75.964 z"
     style="fill:#ffffff;stroke:none"
     id="path304" /><path
     d="m 9587.5493,12874.966 v 53.951 q -24.1846,-12.403 -50.2295,-18.604 -26.0449,-6.201 -53.9502,-6.201 -42.478,0 -63.872,13.022 -21.084,13.023 -21.084,39.068 0,19.843 15.1928,31.316 15.1929,11.162 61.0816,21.394 l 19.5337,4.34 q 60.7715,13.023 86.1963,36.897 25.7348,23.565 25.7348,66.043 0,48.369 -38.4472,76.584 -38.1372,28.216 -105.1099,28.216 -27.9053,0 -58.291,-5.581 -30.0757,-5.271 -63.562,-16.123 v -58.912 q 31.626,16.434 62.3218,24.805 30.6958,8.062 60.7714,8.062 40.3077,0 62.0118,-13.643 21.7041,-13.953 21.7041,-39.067 0,-23.255 -15.813,-35.657 -15.503,-12.402 -68.523,-23.875 l -19.8437,-4.65 q -53.02,-11.163 -76.5845,-34.107 -23.5645,-23.254 -23.5645,-63.562 0,-48.989 34.7266,-75.654 34.7266,-26.665 98.5986,-26.665 31.626,0 59.5313,4.651 27.9053,4.651 51.4697,13.952 z"
     style="fill:#ffffff;stroke:none"
     id="path306" /><path
     d="m 9697.3101,12864.734 h 57.0507 V 13212 h -57.0507 z m 0,-135.185 h 57.0507 v 72.243 h -57.0507 z"
     style="fill:#ffffff;stroke:none"
     id="path308" /><path
     d="m 10101.937,13034.336 q 0,-62.011 -25.735,-96.118 -25.425,-34.106 -71.624,-34.106 -45.8885,0 -71.6234,34.106 -25.4248,34.107 -25.4248,96.118 0,61.702 25.4248,95.809 25.7349,34.106 71.6234,34.106 46.199,0 71.624,-34.106 25.735,-34.107 25.735,-95.809 z m 57.05,134.566 q 0,88.677 -39.377,131.775 -39.378,43.408 -120.6129,43.408 -30.0757,0 -56.7408,-4.651 -26.665,-4.341 -51.7797,-13.642 v -55.501 q 25.1147,13.643 49.6093,20.154 24.4947,6.511 49.9195,6.511 56.1206,0 84.0256,-29.456 27.906,-29.145 27.906,-88.366 v -28.216 q -17.674,30.696 -45.269,45.889 -27.595,15.193 -66.0425,15.193 -63.8721,0 -102.9395,-48.679 -39.0673,-48.679 -39.0673,-128.985 0,-80.615 39.0673,-129.294 39.0674,-48.679 102.9395,-48.679 38.4475,0 66.0425,15.193 27.595,15.193 45.269,45.888 v -52.71 h 57.05 z"
     style="fill:#ffffff;stroke:none"
     id="path310" /><path
     d="m 10565.164,13002.4 v 209.6 h -57.051 v -207.739 q 0,-49.3 -19.223,-73.794 -19.224,-24.495 -57.671,-24.495 -46.199,0 -72.864,29.456 -26.665,29.455 -26.665,80.305 V 13212 h -57.361 v -347.266 h 57.361 v 53.951 q 20.464,-31.316 48.059,-46.819 27.905,-15.503 64.182,-15.503 59.841,0 90.537,37.207 30.696,36.897 30.696,108.83 z"
     style="fill:#ffffff;stroke:none"
     id="path312" /></g>
       </g>
      </g>
      <g
   class="com.sun.star.drawing.TextShape"
   id="g194">
       <g
   id="id11">
        <path
   style="fill:none;stroke:none"
   d="m 1650,12582 h 2954 v 887 H 1650 Z"
   id="rect183" />
        <g
   aria-label="Planung"
   style=""
   id="text191"><path
     d="m 2024.9536,12800.552 v 173.943 h 78.7549 q 43.7183,0 67.5928,-22.634 23.8745,-22.634 23.8745,-64.492 0,-41.548 -23.8745,-64.182 -23.8745,-22.635 -67.5928,-22.635 z m -62.6318,-51.469 h 141.3867 q 77.8247,0 117.5122,35.346 39.9976,35.037 39.9976,102.94 0,68.523 -39.9976,103.559 -39.6875,35.037 -117.5122,35.037 h -78.7549 V 13212 h -62.6318 z"
     style="fill:#ffffff;stroke:none"
     id="path250" /><path
     d="m 2343.0737,12729.549 h 57.0508 V 13212 h -57.0508 z"
     style="fill:#ffffff;stroke:none"
     id="path252" /><path
     d="m 2677.0068,13037.437 q -69.143,0 -95.8081,15.813 -26.665,15.813 -26.665,53.95 0,30.386 19.8437,48.369 20.1539,17.674 54.5704,17.674 47.4389,0 75.9643,-33.487 28.8355,-33.796 28.8355,-89.607 v -12.712 z m 113.7915,-23.564 V 13212 h -57.0507 v -52.71 q -19.5337,31.626 -48.6792,46.819 -29.1455,14.883 -71.3135,14.883 -53.3301,0 -84.9561,-29.766 -31.3159,-30.076 -31.3159,-80.305 0,-58.601 39.0674,-88.367 39.3774,-29.765 117.2021,-29.765 h 79.9952 v -5.581 q 0,-39.378 -26.045,-60.772 -25.7348,-21.704 -72.5537,-21.704 -29.7656,0 -57.9809,7.131 -28.2154,7.132 -54.2603,21.394 v -52.71 q 31.3159,-12.092 60.7715,-17.983 29.4556,-6.201 57.3608,-6.201 75.3443,0 112.5513,39.067 37.207,39.068 37.207,118.443 z"
     style="fill:#ffffff;stroke:none"
     id="path254" /><path
     d="m 3197.2852,13002.4 v 209.6 h -57.0508 v -207.739 q 0,-49.3 -19.2237,-73.794 -19.2236,-24.495 -57.6709,-24.495 -46.1987,0 -72.8637,29.456 -26.6651,29.455 -26.6651,80.305 V 13212 h -57.3608 v -347.266 h 57.3608 v 53.951 q 20.4639,-31.316 48.0591,-46.819 27.9053,-15.503 64.1821,-15.503 59.8414,0 90.5372,37.207 30.6958,36.897 30.6958,108.83 z"
     style="fill:#ffffff;stroke:none"
     id="path256" /><path
     d="m 3305.8057,13074.954 v -210.22 h 57.0507 v 208.05 q 0,49.299 19.2237,74.104 19.2236,24.494 57.6709,24.494 46.1987,0 72.8637,-29.455 26.9751,-29.456 26.9751,-80.305 v -196.888 h 57.0508 V 13212 h -57.0508 v -53.33 q -20.7739,31.626 -48.3691,47.129 -27.2852,15.193 -63.562,15.193 -59.8413,0 -90.8472,-37.207 -31.0058,-37.207 -31.0058,-108.831 z m 143.5571,-218.591 z"
     style="fill:#ffffff;stroke:none"
     id="path258" /><path
     d="m 4003.4375,13002.4 v 209.6 h -57.0508 v -207.739 q 0,-49.3 -19.2236,-73.794 -19.2236,-24.495 -57.6709,-24.495 -46.1987,0 -72.8638,29.456 -26.665,29.455 -26.665,80.305 V 13212 h -57.3609 v -347.266 h 57.3609 v 53.951 q 20.4638,-31.316 48.0591,-46.819 27.9052,-15.503 64.1821,-15.503 59.8413,0 90.5371,37.207 30.6958,36.897 30.6958,108.83 z"
     style="fill:#ffffff;stroke:none"
     id="path260" /><path
     d="m 4346.3623,13034.336 q 0,-62.011 -25.7349,-96.118 -25.4248,-34.106 -71.6235,-34.106 -45.8887,0 -71.6235,34.106 -25.4248,34.107 -25.4248,96.118 0,61.702 25.4248,95.809 25.7348,34.106 71.6235,34.106 46.1987,0 71.6235,-34.106 25.7349,-34.107 25.7349,-95.809 z m 57.0508,134.566 q 0,88.677 -39.3775,131.775 -39.3774,43.408 -120.6127,43.408 -30.0757,0 -56.7408,-4.651 -26.665,-4.341 -51.7798,-13.642 v -55.501 q 25.1148,13.643 49.6094,20.154 24.4946,6.511 49.9195,6.511 56.1206,0 84.0258,-29.456 27.9053,-29.145 27.9053,-88.366 v -28.216 q -17.6733,30.696 -45.2686,45.889 -27.5952,15.193 -66.0424,15.193 -63.8721,0 -102.9395,-48.679 -39.0674,-48.679 -39.0674,-128.985 0,-80.615 39.0674,-129.294 39.0674,-48.679 102.9395,-48.679 38.4472,0 66.0424,15.193 27.5953,15.193 45.2686,45.888 v -52.71 h 57.0508 z"
     style="fill:#ffffff;stroke:none"
     id="path262" /></g>
       </g>
      </g>
      <g
   class="com.sun.star.drawing.TextShape"
   id="g207">
       <g
   id="id12">
        <path
   style="fill:none;stroke:none"
   d="m 11614,12582 h 2120 v 887 h -2120 z"
   id="rect196" />
        <g
   aria-label="Code"
   style=""
   id="text204"><path
     d="m 12272.967,12783.739 v 66.043 q -31.626,-29.456 -67.592,-44.029 -35.657,-14.572 -75.965,-14.572 -79.375,0 -121.543,48.679 -42.168,48.369 -42.168,140.146 0,91.468 42.168,140.147 42.168,48.369 121.543,48.369 40.308,0 75.965,-14.573 35.966,-14.573 67.592,-44.028 v 65.422 q -32.866,22.324 -69.763,33.487 -36.587,11.162 -77.515,11.162 -105.109,0 -165.571,-64.182 -60.461,-64.493 -60.461,-175.804 0,-111.621 60.461,-175.803 60.462,-64.492 165.571,-64.492 41.548,0 78.135,11.162 36.897,10.852 69.143,32.866 z"
     style="fill:#ffffff;stroke:none"
     id="path292" /><path
     d="m 12502.411,12903.732 q -45.889,0 -72.554,35.967 -26.665,35.656 -26.665,97.978 0,62.322 26.355,98.289 26.665,35.657 72.864,35.657 45.578,0 72.243,-35.967 26.665,-35.967 26.665,-97.979 0,-61.701 -26.665,-97.668 -26.665,-36.277 -72.243,-36.277 z m 0,-48.369 q 74.414,0 116.892,48.369 42.478,48.369 42.478,133.945 0,85.266 -42.478,133.946 -42.478,48.369 -116.892,48.369 -74.724,0 -117.203,-48.369 -42.167,-48.68 -42.167,-133.946 0,-85.576 42.167,-133.945 42.479,-48.369 117.203,-48.369 z"
     style="fill:#ffffff;stroke:none"
     id="path294" /><path
     d="m 12984.552,12916.444 v -187.895 h 57.051 V 13211 h -57.051 v -52.09 q -17.984,31.006 -45.579,46.199 -27.285,14.883 -65.732,14.883 -62.942,0 -102.63,-50.23 -39.377,-50.229 -39.377,-132.085 0,-81.855 39.377,-132.085 39.688,-50.229 102.63,-50.229 38.447,0 65.732,15.193 27.595,14.882 45.579,45.888 z m -194.407,121.233 q 0,62.942 25.735,98.909 26.045,35.657 71.313,35.657 45.269,0 71.314,-35.657 26.045,-35.967 26.045,-98.909 0,-62.942 -26.045,-98.598 -26.045,-35.967 -71.314,-35.967 -45.268,0 -71.313,35.967 -25.735,35.656 -25.735,98.598 z"
     style="fill:#ffffff;stroke:none"
     id="path296" /><path
     d="m 13456.151,13023.104 v 27.906 h -262.31 q 3.721,58.911 35.347,89.917 31.936,30.696 88.677,30.696 32.866,0 63.562,-8.062 31.006,-8.061 61.391,-24.185 v 53.951 q -30.695,13.022 -62.942,19.843 -32.246,6.822 -65.422,6.822 -83.096,0 -131.775,-48.369 -48.369,-48.37 -48.369,-130.845 0,-85.266 45.889,-135.186 46.198,-50.229 124.333,-50.229 70.073,0 110.691,45.268 40.928,44.959 40.928,122.473 z m -57.051,-16.743 q -0.62,-46.819 -26.355,-74.724 -25.425,-27.905 -67.593,-27.905 -47.749,0 -76.584,26.975 -28.526,26.975 -32.866,75.964 z"
     style="fill:#ffffff;stroke:none"
     id="path298" /></g>
       </g>
      </g>
      <g
   class="com.sun.star.drawing.TextShape"
   id="g220">
       <g
   id="id13">
        <path
   style="fill:none;stroke:none"
   d="m 14848,12582 h 1832 v 887 h -1832 z"
   id="rect209" />
        <g
   aria-label="Test"
   style=""
   id="text217"><path
     d="m 15096.14,12748.083 h 391.604 v 52.709 h -164.331 V 13211 h -62.942 v -410.208 h -164.331 z"
     style="fill:#ffffff;stroke:none"
     id="path282" /><path
     d="m 15735.17,13023.104 v 27.906 h -262.309 q 3.721,58.911 35.347,89.917 31.936,30.696 88.676,30.696 32.866,0 63.562,-8.062 31.006,-8.061 61.392,-24.185 v 53.951 q -30.696,13.022 -62.942,19.843 -32.246,6.822 -65.422,6.822 -83.096,0 -131.775,-48.369 -48.369,-48.37 -48.369,-130.845 0,-85.266 45.888,-135.186 46.199,-50.229 124.334,-50.229 70.073,0 110.691,45.268 40.927,44.959 40.927,122.473 z m -57.05,-16.743 q -0.62,-46.819 -26.355,-74.724 -25.425,-27.905 -67.593,-27.905 -47.749,0 -76.585,26.975 -28.525,26.975 -32.866,75.964 z"
     style="fill:#ffffff;stroke:none"
     id="path284" /><path
     d="m 16050.19,12873.966 v 53.951 q -24.185,-12.403 -50.23,-18.604 -26.044,-6.201 -53.95,-6.201 -42.478,0 -63.872,13.022 -21.084,13.023 -21.084,39.068 0,19.843 15.193,31.316 15.193,11.162 61.082,21.394 l 19.533,4.34 q 60.772,13.023 86.197,36.897 25.734,23.565 25.734,66.043 0,48.369 -38.447,76.584 -38.137,28.216 -105.11,28.216 -27.905,0 -58.291,-5.581 -30.075,-5.271 -63.562,-16.123 v -58.912 q 31.626,16.434 62.322,24.805 30.696,8.062 60.772,8.062 40.307,0 62.011,-13.643 21.704,-13.953 21.704,-39.067 0,-23.255 -15.813,-35.657 -15.503,-12.402 -68.523,-23.875 l -19.843,-4.65 q -53.02,-11.163 -76.585,-34.107 -23.564,-23.254 -23.564,-63.562 0,-48.989 34.726,-75.654 34.727,-26.665 98.599,-26.665 31.626,0 59.531,4.651 27.905,4.651 51.47,13.952 z"
     style="fill:#ffffff;stroke:none"
     id="path286" /><path
     d="m 16216.381,12765.136 v 98.598 h 117.513 v 44.339 h -117.513 v 188.515 q 0,42.478 11.473,54.571 11.782,12.092 47.438,12.092 h 58.602 V 13211 h -58.602 q -66.042,0 -91.157,-24.495 -25.114,-24.804 -25.114,-89.917 v -188.515 h -41.858 v -44.339 h 41.858 v -98.598 z"
     style="fill:#ffffff;stroke:none"
     id="path288" /></g>
       </g>
      </g>
      <g
   class="com.sun.star.drawing.TextShape"
   id="g233">
       <g
   id="id14">
        <path
   style="fill:none;stroke:none"
   d="m 17714,12582 h 2721 v 887 h -2721 z"
   id="rect222" />
        <g
   aria-label="Betrieb"
   style=""
   id="text230"><path
     d="m 18088.954,12989.928 v 169.602 h 100.459 q 50.539,0 74.724,-20.774 24.494,-21.084 24.494,-64.182 0,-43.408 -24.494,-63.872 -24.185,-20.774 -74.724,-20.774 z m 0,-190.376 v 139.527 h 92.707 q 45.889,0 68.213,-17.054 22.634,-17.363 22.634,-52.71 0,-35.036 -22.634,-52.399 -22.324,-17.364 -68.213,-17.364 z m -62.632,-51.469 h 159.99 q 71.624,0 110.381,29.765 38.757,29.766 38.757,84.646 0,42.478 -19.844,67.593 -19.843,25.115 -58.291,31.316 46.199,9.922 71.624,41.548 25.735,31.316 25.735,78.445 0,62.011 -42.168,95.808 -42.168,33.796 -119.993,33.796 h -166.191 z"
     style="fill:#ffffff;stroke:none"
     id="path266" /><path
     d="m 18756.2,13023.104 v 27.906 h -262.31 q 3.721,58.911 35.347,89.917 31.936,30.696 88.677,30.696 32.866,0 63.562,-8.062 31.005,-8.061 61.391,-24.185 v 53.951 q -30.696,13.022 -62.942,19.843 -32.246,6.822 -65.422,6.822 -83.096,0 -131.775,-48.369 -48.369,-48.37 -48.369,-130.845 0,-85.266 45.889,-135.186 46.198,-50.229 124.333,-50.229 70.073,0 110.691,45.268 40.928,44.959 40.928,122.473 z m -57.051,-16.743 q -0.62,-46.819 -26.355,-74.724 -25.425,-27.905 -67.593,-27.905 -47.749,0 -76.584,26.975 -28.526,26.975 -32.867,75.964 z"
     style="fill:#ffffff;stroke:none"
     id="path268" /><path
     d="m 18906.268,12765.136 v 98.598 h 117.512 v 44.339 h -117.512 v 188.515 q 0,42.478 11.472,54.571 11.782,12.092 47.439,12.092 h 58.601 V 13211 h -58.601 q -66.042,0 -91.157,-24.495 -25.115,-24.804 -25.115,-89.917 v -188.515 h -41.858 v -44.339 h 41.858 v -98.598 z"
     style="fill:#ffffff;stroke:none"
     id="path270" /><path
     d="m 19300.353,12917.064 q -9.612,-5.581 -21.084,-8.061 -11.163,-2.791 -24.805,-2.791 -48.369,0 -74.414,31.626 -25.735,31.316 -25.735,90.227 V 13211 h -57.361 v -347.266 h 57.361 v 53.951 q 17.983,-31.626 46.819,-46.819 28.835,-15.503 70.073,-15.503 5.891,0 13.022,0.93 7.132,0.62 15.813,2.17 z"
     style="fill:#ffffff;stroke:none"
     id="path272" /><path
     d="m 19360.814,12863.734 h 57.051 V 13211 h -57.051 z m 0,-135.185 h 57.051 v 72.243 h -57.051 z"
     style="fill:#ffffff;stroke:none"
     id="path274" /><path
     d="m 19833.963,13023.104 v 27.906 h -262.309 q 3.721,58.911 35.346,89.917 31.937,30.696 88.677,30.696 32.866,0 63.562,-8.062 31.006,-8.061 61.392,-24.185 v 53.951 q -30.696,13.022 -62.942,19.843 -32.246,6.822 -65.422,6.822 -83.096,0 -131.775,-48.369 -48.369,-48.37 -48.369,-130.845 0,-85.266 45.888,-135.186 46.199,-50.229 124.334,-50.229 70.073,0 110.691,45.268 40.927,44.959 40.927,122.473 z m -57.05,-16.743 q -0.621,-46.819 -26.355,-74.724 -25.425,-27.905 -67.593,-27.905 -47.749,0 -76.585,26.975 -28.525,26.975 -32.866,75.964 z"
     style="fill:#ffffff;stroke:none"
     id="path276" /><path
     d="m 20176.888,13037.677 q 0,-62.942 -26.045,-98.598 -25.735,-35.967 -71.003,-35.967 -45.269,0 -71.314,35.967 -25.734,35.656 -25.734,98.598 0,62.942 25.734,98.909 26.045,35.657 71.314,35.657 45.268,0 71.003,-35.657 26.045,-35.967 26.045,-98.909 z m -194.096,-121.233 q 17.983,-31.006 45.268,-45.888 27.595,-15.193 65.732,-15.193 63.252,0 102.63,50.229 39.687,50.23 39.687,132.085 0,81.856 -39.687,132.085 -39.378,50.23 -102.63,50.23 -38.137,0 -65.732,-14.883 -27.285,-15.193 -45.268,-46.199 v 52.09 h -57.361 v -482.451 h 57.361 z"
     style="fill:#ffffff;stroke:none"
     id="path278" /></g>
       </g>
      </g>
     </g>
    </g>
   </g>
  </g>
 </g>
</svg>
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/assessment.png
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/cheers.gif
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/cheers.mp4
Binary files differ
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/roadmap.png
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/s-tags.png
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/samm.png
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/scorecard.png
2019_09_18_41st/Sichere_Softwareentwicklung/slides/media/securesoftware/scrum.png