com presentations: Scotland and Barcelona presentations: deepdive-scotland19.xml jump-bcn19.xml slides/internals/bytecode1.xml slides/internals/exercise-short-open-tag.xml slides/internals/jumps-complex-dot.xml slides/internals/jumps-complex.xml slides/internals/jumps-do-while.xml slides/internals/jumps-for-rewritten.xml slides/internals/jumps-for.xml slides/internals/jumps-foreach.xml slides/internals/jumps-if-else.xml slides/internals/jumps-if.

[email protected] (Derick Rethans) Fri, 01 Nov 2019 13:32:13 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    7f4495bf35e78ffd1ddc81dea411de583cff67f3
Author:    Derick Rethans <[email protected]>         Fri, 1 Nov 2019 13:32:13 +0000
Parents:   7b6b435da3606568a707f06ff89ecf1615f0af5a
Branches:  master

Link:       http://git.php.net/?p=presentations.git;a=commitdiff;h=7f4495bf35e78ffd1ddc81dea411de583cff67f3

Log:
Scotland and Barcelona presentations

Changed paths:
  A  deepdive-scotland19.xml
  A  jump-bcn19.xml
  M  slides/internals/bytecode1.xml
  M  slides/internals/exercise-short-open-tag.xml
  M  slides/internals/jumps-complex-dot.xml
  M  slides/internals/jumps-complex.xml
  M  slides/internals/jumps-do-while.xml
  M  slides/internals/jumps-for-rewritten.xml
  M  slides/internals/jumps-for.xml
  M  slides/internals/jumps-foreach.xml
  M  slides/internals/jumps-if-else.xml
  M  slides/internals/jumps-if.xml
  M  slides/internals/jumps-try-catch.xml
  M  slides/internals/jumps-while.xml
  M  slides/internals/parse-tokenization.xml
  M  slides/internals/scanner-ast2.xml
  M  slides/internals/scanner-rules.xml
  M  slides/internals/scanner.xml
  M  slides/internals/switch-followup.xml
  M  slides/internals/switch.xml
  M  slides/xdebug/breakpoint-behaviour.xml
  M  slides/xdebug/breakpoints-2.xml
  M  slides/xdebug/business-support.xml
  M  slides/xdebug/code-reorgnisation.xml
  M  slides/xdebug/config-settings-2.xml
  M  slides/xdebug/config-settings-3.xml
  M  slides/xdebug/config-settings-3b.xml
  M  slides/xdebug/debugger-connection-log.xml
  M  slides/xdebug/donate.xml
  A  slides/xdebug/github-sponsor.png
  M  slides/xdebug/test-with-many-versions.xml
  M  slides/xdebug/vld-path-3-paths.xml
  M  slides/xdebug/vld-path-4-code.xml
  M  slides/xdebug/xdebug-ci.xml
  A  xdebug-scotland19.xml
diff_7f4495bf35e78ffd1ddc81dea411de583cff67f3.txt (text/plain, 61 KB)
diff --git a/deepdive-scotland19.xml b/deepdive-scotland19.xml
new file mode 100644
index 00000000..ae162b17
--- /dev/null
+++ b/deepdive-scotland19.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>PHP Deep Dive</title>
+<event>ScotlandPHP</event>
+<location>Edinburgh, Scotland, UK</location>
+<date>November 8th, 2019</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/deepdive-scotland19</url>
+<joindin>https://joind.in/XXXXX</joindin>
+
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/internals/title-agenda.xml</slide>
+
+<slide>slides/internals/title-stages.xml</slide>
+<!-- INTRODUCTION
+Compile stages:
+Parse script
+Create AST
+Convert to opcodes
+Run the code
+Opcache for caching
+-->
+<slide>slides/internals/stages.xml</slide>
+
+<!-- STAGES
+Parse
+- Show parser rules
+- Show "compiler" rules
+-->
+
+<slide>slides/internals/title-parsing.xml</slide>
+<slide>slides/internals/parse-state-machine.xml</slide>
+<slide>slides/internals/parse-tokenization.xml</slide>
+<slide>slides/internals/scanner.xml</slide>
+<slide>slides/internals/scanner-rules.xml</slide>
+
+<!-- EXERCISE: SHORT OPEN TAG -->
+<slide>slides/internals/exercise-short-open-tag.xml</slide>
+
+<slide>slides/internals/ast.xml</slide>
+<slide>slides/internals/ast1.xml</slide>
+<slide>slides/internals/scanner-ast.xml</slide>
+<slide>slides/internals/scanner-ast2.xml</slide>
+<slide>slides/internals/bytecode0.xml</slide>
+<slide>slides/internals/bytecode½.xml</slide>
+<slide>slides/internals/bytecode1.xml</slide>
+
+<!-- EXERCISE: ALWAYS STRICT -->
+<slide>slides/internals/exercise-strict-by-default.xml</slide>
+
+<slide>slides/internals/jumps.xml</slide>
+
+<!--
+AST
+- Show AST for various control structures
+
+Opcodes
+- Show AST for the same control structures
+-->
+
+<slide>slides/internals/jumps-if.xml</slide>
+<slide>slides/internals/jumps-if-else.xml</slide>
+
+<slide>slides/internals/rings.xml</slide>
+<slide>slides/internals/jumps-for.xml</slide>
+<slide>slides/internals/jumps-for-rewritten.xml</slide>
+<slide>slides/internals/jumps-while.xml</slide>
+<slide>slides/internals/jumps-do-while.xml</slide>
+<slide>slides/internals/jumps-foreach.xml</slide>
+<slide>slides/internals/jumps-complex.xml</slide>
+<slide>slides/internals/loops.xml</slide>
+<slide>slides/internals/jumps-complex-dot.xml</slide>
+
+<!-- EXERCISE: STRICT SWITCH -->
+<slide>slides/internals/switch-confusion.xml</slide>
+<slide>slides/internals/switch.xml</slide>
+<slide>slides/internals/exercise-strict-switch.xml</slide>
+<slide>slides/internals/switch-followup.xml</slide>
+
+<!--
+Try/Catch nonsense
+- FASTCALL/FASTRET
+-->
+<slide>slides/internals/catch.xml</slide>
+<slide>slides/internals/jumps-try-catch.xml</slide>
+
+<!--
+Dead code analysis
+- Show how Xdebug does it through VLD
+-->
+<slide>slides/internals/deadcode.xml</slide>
+<slide>slides/internals/deadcode-vld.xml</slide>
+
+<!--
+Path analysis
+- Branch and Path
+-->
+<slide>slides/internals/branches.xml</slide>
+<slide>slides/xdebug/vld-path-2-paths.xml</slide>
+<slide>slides/xdebug/vld-path-4-code.xml</slide>
+<slide>slides/xdebug/vld-path-4-output.xml</slide>
+
+<slide>slides/xdebug/vld-path-3-code.xml</slide>
+<slide>slides/xdebug/vld-path-3-output.xml</slide>
+<slide>slides/xdebug/vld-path-3-paths.xml</slide>
+
+<!-- Conclusion
+
+Code -> Tokens -> AST -> opode
+
+Transformation of control structures
+
+Useful implementations 
+
+-->
+<slide>slides/internals/recap.xml</slide>
+<slide>slides/internals/recap-content.xml</slide>
+
+
+
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>
diff --git a/jump-bcn19.xml b/jump-bcn19.xml
new file mode 100644
index 00000000..88ce4aa3
--- /dev/null
+++ b/jump-bcn19.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>PHP</topic>
+<title>It's All About the Goto</title>
+<event>PHP.Barcelona</event>
+<location>Barcelona, Spain</location>
+<date>November 12th, 2019</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<joindin>https://joind.in/XXXXX</joindin>
+
+<slide>slides/mongodb/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/internals/title-agenda.xml</slide>
+
+<slide>slides/internals/title-stages.xml</slide>
+<!-- INTRODUCTION
+Compile stages:
+Parse script
+Create AST
+Convert to opcodes
+Run the code
+Opcache for caching
+-->
+<slide>slides/internals/stages.xml</slide>
+
+<!-- STAGES
+Parse
+- Show parser rules
+- Show "compiler" rules
+-->
+
+<slide>slides/internals/title-parsing.xml</slide>
+<slide>slides/internals/parse-state-machine.xml</slide>
+<slide>slides/internals/parse-tokenization.xml</slide>
+<slide>slides/internals/scanner.xml</slide>
+<slide>slides/internals/scanner-rules.xml</slide>
+<slide>slides/internals/ast.xml</slide>
+<slide>slides/internals/ast1.xml</slide>
+<slide>slides/internals/scanner-ast.xml</slide>
+<slide>slides/internals/scanner-ast2.xml</slide>
+<slide>slides/internals/bytecode0.xml</slide>
+<slide>slides/internals/bytecode½.xml</slide>
+<slide>slides/internals/bytecode1.xml</slide>
+
+<slide>slides/internals/jumps.xml</slide>
+
+<!--
+AST
+- Show AST for various control structures
+
+Opcodes
+- Show AST for the same control structures
+-->
+
+<slide>slides/internals/jumps-if.xml</slide>
+<slide>slides/internals/jumps-if-else.xml</slide>
+
+<slide>slides/internals/rings.xml</slide>
+<slide>slides/internals/jumps-for.xml</slide>
+<slide>slides/internals/jumps-for-rewritten.xml</slide>
+<slide>slides/internals/jumps-while.xml</slide>
+<slide>slides/internals/jumps-do-while.xml</slide>
+<slide>slides/internals/jumps-foreach.xml</slide>
+<slide>slides/internals/jumps-complex.xml</slide>
+<slide>slides/internals/loops.xml</slide>
+<slide>slides/internals/jumps-complex-dot.xml</slide>
+
+<!--
+Try/Catch nonsense
+- FASTCALL/FASTRET
+<slide>slides/internals/catch.xml</slide>
+<slide>slides/internals/jumps-try-catch.xml</slide>
+-->
+
+<!--
+Dead code analysis
+- Show how Xdebug does it through VLD
+-->
+<slide>slides/internals/deadcode.xml</slide>
+<slide>slides/internals/deadcode-vld.xml</slide>
+
+<!--
+Path analysis
+- Branch and Path
+
+<slide>slides/internals/branches.xml</slide>
+<slide>slides/xdebug/vld-path-2-paths.xml</slide>
+<slide>slides/xdebug/vld-path-4-code.xml</slide>
+<slide>slides/xdebug/vld-path-4-output.xml</slide>
+
+<slide>slides/xdebug/vld-path-3-code.xml</slide>
+<slide>slides/xdebug/vld-path-3-output.xml</slide>
+<slide>slides/xdebug/vld-path-3-paths.xml</slide>
+-->
+
+<!-- Conclusion
+
+Code -> Tokens -> AST -> opode
+
+Transformation of control structures
+
+Useful implementations 
+
+-->
+<slide>slides/internals/recap.xml</slide>
+<slide>slides/internals/recap-content.xml</slide>
+
+
+
+<slide>slides/mongodb/questions.xml</slide>
+
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>
diff --git a/slides/internals/bytecode1.xml b/slides/internals/bytecode1.xml
index 58fc01cc..dfc56222 100644
--- a/slides/internals/bytecode1.xml
+++ b/slides/internals/bytecode1.xml
@@ -1,7 +1,7 @@
 <slide>
 <title>AST is converted to bytecode</title>
 
-<example inline="1">
+<example class="medium" inline="1">
 1: AST_METHOD
     flags: MODIFIER_PUBLIC (256)
     name: |00dd00|__construct|
@@ -18,7 +18,7 @@
                 name: |0000dd|"name"|
 </example>
 <br/>
-<example inline="1">
+<example class="medium" inline="1">
 compiled vars:  |0000dd|!0 = $name|
 line     #* E I O op                           fetch          ext  return  operands
 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
diff --git a/slides/internals/exercise-short-open-tag.xml b/slides/internals/exercise-short-open-tag.xml
index 4c1709c1..18f0ea6f 100644
--- a/slides/internals/exercise-short-open-tag.xml
+++ b/slides/internals/exercise-short-open-tag.xml
@@ -2,14 +2,14 @@
 <title>Exercise: Deprecate Short Open Tags</title>
 
 <blurb>Compiling PHP:</blurb>
-<example>
+<example class="medium">
 ./buildconf
 ./configure --disable-all --prefix=/usr/local/php/deep-dive
 make clean &amp;&amp; make -j 4 &amp;&amp; make install
 </example>
 
 <blurb>In %Zend/zend_language_scanner.l%, find:</blurb>
-<example><![CDATA[<INITIAL>"<?" {
+<example class="medium"><![CDATA[<INITIAL>"<?" {
     if (CG(short_tags)) {
         BEGIN(ST_IN_SCRIPTING);
         if (PARSER_MODE()) {
@@ -24,6 +24,6 @@ make clean &amp;&amp; make -j 4 &amp;&amp; make install
 
 <blurb>Make it an error with:</blurb>
 <example>
-zend_error(E_COMPILE_ERROR, "Short Open Tags are no more on line %d", CG(zend_lineno));
+zend_error(E_COMPILE_ERROR, "{message} on line %d", CG(zend_lineno));
 </example>
 </slide>
diff --git a/slides/internals/jumps-complex-dot.xml b/slides/internals/jumps-complex-dot.xml
index 3b4503a1..2f21dd7a 100644
--- a/slides/internals/jumps-complex-dot.xml
+++ b/slides/internals/jumps-complex-dot.xml
@@ -3,7 +3,7 @@
 
 <image align="right" filename="complex-dot.png"/>
 
-<example inline="1">&amp;lt;?php
+<example class="medium" inline="1">&amp;lt;?php
 $a = [ 2.7, 4.9 ];
 |dd0000|foreach ( $a as $key => $value )| {
 	|00dd00|if ( $value &amp;lt; 3 ) {|
@@ -16,7 +16,7 @@ $a = [ 2.7, 4.9 ];
 }
 </example>
 
-<example inline="1">
+<example class="medium" inline="1">
 line     #* E I O op            return  operands
    2     0  E >   ASSIGN                !0, &amp;lt;array>
    3     1      > |dd0000|FE_RESET_R    $4      !0, ->12|
diff --git a/slides/internals/jumps-complex.xml b/slides/internals/jumps-complex.xml
index 816efaaf..f7fa28d6 100644
--- a/slides/internals/jumps-complex.xml
+++ b/slides/internals/jumps-complex.xml
@@ -1,7 +1,7 @@
 <slide>
 <title>Complex Loops</title>
 
-<example inline="1">&amp;lt;?php
+<example class="medium" inline="1">&amp;lt;?php
 $a = [ 2.7, 4.9 ];
 foreach ( $a as $key => $value ) {
 	if ( $value &amp;lt; 3 ) {
@@ -14,7 +14,7 @@ foreach ( $a as $key => $value ) {
 }
 </example>
 
-<example inline="1">line     #* E I O op                           fetch          ext  return  operands
+<example class="medium" inline="1">line     #* E I O op                           fetch          ext  return  operands
    2     0  E >   ASSIGN                                                   !0, &amp;lt;array>
    3     1      > FE_RESET_R                                       $4      !0, ->12
          2    > > FE_FETCH_R                                       ~5      $4, !1, ->12
diff --git a/slides/internals/jumps-do-while.xml b/slides/internals/jumps-do-while.xml
index 9a445e2c..16d39b23 100644
--- a/slides/internals/jumps-do-while.xml
+++ b/slides/internals/jumps-do-while.xml
@@ -9,14 +9,14 @@ do {
 </example>
 
 <example inline="1">compiled vars:  !0 = $i
-line     #* E I O op                           fetch          ext  return  operands
-   2     0  E >   EXT_STMT                                                 
-         1        |dd0000|ASSIGN                                                   !0, 10|
-   3     2        NOP                                                      
-   4     3    >   EXT_STMT                                                 
-         4        |0000dd|ECHO                                                     !0|
-   5     5        |00dd00|PRE_DEC                                          $2      !0|
-         6      > |00dd00|JMPNZ                                                    $2, ->3|
-         7    > > RETURN                                                   1
+line     #* E I O op                           fetch  return  operands
+   2     0  E >   EXT_STMT                                    
+         1        |dd0000|ASSIGN                                      !0, 10|
+   3     2        NOP                                         
+   4     3    >   EXT_STMT                                    
+         4        |0000dd|ECHO                                        !0|
+   5     5        |00dd00|PRE_DEC                             $2      !0|
+         6      > |00dd00|JMPNZ                                       $2, ->3|
+         7    > > RETURN                                      1
 </example>
 </slide>
diff --git a/slides/internals/jumps-for-rewritten.xml b/slides/internals/jumps-for-rewritten.xml
index 98a3ee0c..90de1e55 100644
--- a/slides/internals/jumps-for-rewritten.xml
+++ b/slides/internals/jumps-for-rewritten.xml
@@ -1,13 +1,13 @@
 <slide>
 <title>FOR (rewritten)</title>
 
-<example inline="1">
+<example class="medium" inline="1">
 for ( |dd0000|$i = 0|; |00dd00|$i &amp;lt; 42|; |0000dd|++$i| ) {
     |dd00dd|echo $i;|
 }
 </example>
 
-<example inline="1">
+<example class="medium" inline="1">
 	|dd0000|$i = 0;|
 	goto COND;
 STMT:
@@ -20,7 +20,7 @@ COND:
 	|00dd00|}|
 </example>
 
-<example inline="1">compiled vars:  !0 = $i
+<example class="medium" inline="1">compiled vars:  !0 = $i
 line     #* E I O op                           fetch          ext  return  operands
    2     0  E >   EXT_STMT                                                 
          1        |dd0000|ASSIGN                                                   !0, 0|
diff --git a/slides/internals/jumps-for.xml b/slides/internals/jumps-for.xml
index e51dc1a3..cc55f631 100644
--- a/slides/internals/jumps-for.xml
+++ b/slides/internals/jumps-for.xml
@@ -5,7 +5,7 @@
 <tr>
 
 <td>
-<example inline="1">
+<example class="medium" inline="1">
 &amp;lt;?php
 for ( |dd0000|$i = 0|; |00dd00|$i &amp;lt; 42|; |0000dd|++$i| ) {
     |dd00dd|echo $i;|
@@ -14,7 +14,7 @@ for ( |dd0000|$i = 0|; |00dd00|$i &amp;lt; 42|; |0000dd|++$i| ) {
 </td>
 
 <td>
-<example inline="1">
+<example class="medium" inline="1">
         |dd0000|init: AST_EXPR_LIST|
             0: AST_ASSIGN
                 var: AST_VAR
@@ -34,7 +34,7 @@ for ( |dd0000|$i = 0|; |00dd00|$i &amp;lt; 42|; |0000dd|++$i| ) {
 </td>
 </tr></table>
 
-<example inline="1">compiled vars:  !0 = $i
+<example class="medium" inline="1">compiled vars:  !0 = $i
 line     #* E I O op                           fetch          ext  return  operands
    2     0  E >   EXT_STMT                                                 
          1        |dd0000|ASSIGN                                                   !0, 0|
diff --git a/slides/internals/jumps-foreach.xml b/slides/internals/jumps-foreach.xml
index 430a7d02..62e22496 100644
--- a/slides/internals/jumps-foreach.xml
+++ b/slides/internals/jumps-foreach.xml
@@ -1,8 +1,7 @@
 <slide>
 <title>FOREACH</title>
 
-<example inline="1">&amp;lt;?php
-|dd0000|$a = [ 2.7, 4.9 ];|
+<example inline="1">|dd0000|$a = [ 2.7, 4.9 ];|
 |00dd00|foreach ( $a as $key => $value )| {
     echo $key, $value;
 }
@@ -10,19 +9,19 @@
 
 <example inline="1">
 compiled vars:  !0 = $a, !1 = $value, !2 = $key
-line     #* E I O op                           fetch          ext  return  operands
-   2     0  E >   EXT_STMT                                                 
-         1        |dd0000|ASSIGN                                                   !0, &amp;lt;array>|
-   3     2        EXT_STMT                                                 
-         3      > |00dd00|FE_RESET_R                                       $4      !0,| |dd00dd|->11|
-         *4*    > > |00dd00|FE_FETCH_R                                       ~5      $4, !1,| |dd00dd|->11|
-         5    >   |00dd00|ASSIGN                                                   !2, ~5|
-   4     6        EXT_STMT                                                 
-         7        ECHO                                                     !2
-         8        EXT_STMT                                                 
-         9        ECHO                                                     !1
-        10      > *JMP                                                      ->4*
-        |dd00dd|11    >   FE_FREE                                                  $4|
-        12      > RETURN                                                   1
+line     #* E I O op                        fetch  return  operands
+   2     0  E >   EXT_STMT                                 
+         1        |dd0000|ASSIGN                                   !0, &amp;lt;array>|
+   3     2        EXT_STMT                                 
+         3      > |00dd00|FE_RESET_R                       $4      !0,| |dd00dd|->11|
+         *4*    > > |00dd00|FE_FETCH_R                       ~5      $4, !1,| |dd00dd|->11|
+         5    >   |00dd00|ASSIGN                                   !2, ~5|
+   4     6        EXT_STMT                                 
+         7        ECHO                                     !2
+         8        EXT_STMT                                 
+         9        ECHO                                     !1
+        10      > *JMP                                      ->4*
+        |dd00dd|11    >   FE_FREE                                  $4|
+        12      > RETURN                                   1
 </example>
 </slide>
diff --git a/slides/internals/jumps-if-else.xml b/slides/internals/jumps-if-else.xml
index d2df699d..48e0593c 100644
--- a/slides/internals/jumps-if-else.xml
+++ b/slides/internals/jumps-if-else.xml
@@ -15,7 +15,7 @@ if ( |0000dd|$a| == |00dd00|3.1415926| ) {
 </td>
 
 <td>
-<example inline="1">AST_STMT_LIST
+<example class="medium" inline="1">AST_STMT_LIST
     0: AST_IF
         0: AST_IF_ELEM
             cond: AST_BINARY_OP
@@ -34,7 +34,7 @@ if ( |0000dd|$a| == |00dd00|3.1415926| ) {
 </td>
 </tr></table>
 
-<example inline="1">
+<example class="medium" inline="1">
 compiled vars:  |0000dd|!0 = $a|
 line     #* E I O op            return  operands
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
diff --git a/slides/internals/jumps-if.xml b/slides/internals/jumps-if.xml
index 4e2e8128..6a81f44d 100644
--- a/slides/internals/jumps-if.xml
+++ b/slides/internals/jumps-if.xml
@@ -1,14 +1,14 @@
 <slide>
 <title>IF</title>
 
-<example inline="1">
+<example class="medium" inline="1">
 if ( |0000dd|$a| == |00dd00|42| )
 {
     echo "To life, the universe, and everything.\n";
 }
 </example>
 
-<example inline="1">
+<example class="medium" inline="1">
 AST_STMT_LIST
     0: AST_IF
         0: AST_IF_ELEM
@@ -22,7 +22,7 @@ AST_STMT_LIST
                     expr: "To life, the universe, and everything.
 </example>
 
-<example inline="1">
+<example class="medium" inline="1">
 compiled vars:  |0000dd|!0 = $a|
 line     #* E I O op            return  operands
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
diff --git a/slides/internals/jumps-try-catch.xml b/slides/internals/jumps-try-catch.xml
index 68c7c849..1b66f40c 100644
--- a/slides/internals/jumps-try-catch.xml
+++ b/slides/internals/jumps-try-catch.xml
@@ -1,7 +1,7 @@
 <slide>
 <title>TRY … CATCH … FINALLY</title>
 
-<example inline="1">&amp;lt;?php
+<example class="medium" inline="1">&amp;lt;?php
 try {
     echo "in try";
 } *catch* ( Exception1 $e ) {
@@ -14,7 +14,7 @@ try {
 echo "after";
 </example>
 
-<example inline="1">
+<example class="medium" inline="1">
 line     #* E I O op            return  operands
    3     0  E >   ECHO                  'in+try'
          1      > JMP                   |00dd00|->7|
diff --git a/slides/internals/jumps-while.xml b/slides/internals/jumps-while.xml
index 3946dde3..f22a23e0 100644
--- a/slides/internals/jumps-while.xml
+++ b/slides/internals/jumps-while.xml
@@ -9,15 +9,15 @@
 </example>
 
 <example inline="1">compiled vars:  !0 = $i
-line     #* E I O op                           fetch          ext  return  operands
-   2     0  E >   EXT_STMT                                                 
-         1        |dd0000|ASSIGN                                                   !0, 10|
-   3     2        EXT_STMT                                                 
-         3      > *JMP*                                                      ->|dd00dd|6|
-   4     4    >   EXT_STMT                                                 
-         5        |0000dd|ECHO                                                     !0|
-   3     |dd00dd|6|    >   |00dd00|PRE_DEC                                          $2      !0|
-         7      > |00dd00|JMPNZ                                                    $2, ->4|
-         8    > > RETURN                                                   1
+line     #* E I O op                           fetch   return  operands
+   2     0  E >   EXT_STMT                                     
+         1        |dd0000|ASSIGN                                       !0, 10|
+   3     2        EXT_STMT                                     
+         3      > *JMP*                                          ->|dd00dd|6|
+   4     4    >   EXT_STMT                                     
+         5        |0000dd|ECHO                                         !0|
+   3     |dd00dd|6|    >   |00dd00|PRE_DEC                              $2      !0|
+         7      > |00dd00|JMPNZ                                        $2, ->4|
+         8    > > RETURN                                       1
 </example>
 </slide>
diff --git a/slides/internals/parse-tokenization.xml b/slides/internals/parse-tokenization.xml
index 32db5096..7eec2cc2 100644
--- a/slides/internals/parse-tokenization.xml
+++ b/slides/internals/parse-tokenization.xml
@@ -7,8 +7,6 @@
 namespace DramIO;
 class Whisky
 {
-    private $name;
-
     public function __construct( $name )
     {
         $this->name = $name;
@@ -28,8 +26,6 @@ class Whisky
 namespace DramIO;
 class Whisky
 {
-    private $name;
-
     public function __construct($name)
     {
         $this->name = $name;␃]]></example>
@@ -38,8 +34,6 @@ class Whisky
 *T_NAMESPACE* |777777|T_WS| *T_STRING* DramIO ; |777777|T_WS| 
 *T_CLASS* |777777|T_WS| *T_STRING* Whisky |777777|T_WS|
 { |777777|T_WS| 
-    *T_PRIVATE* |777777|T_WS| *T_VARIABLE* $name ; |777777|T_WS| 
-
     *T_PUBLIC* |777777|T_WS| *T_FUNCTION* |777777|T_WS| *T_STRING* __construct ( *T_VARIABLE* $name ) |777777|T_WS| 
     { |777777|T_WS| 
        *T_VARIABLE* $this *T_OBJECT_OPERATOR* -> *T_STRING* name |777777|T_WS| = |777777|T_WS| *T_VARIABLE* $name ;
diff --git a/slides/internals/scanner-ast2.xml b/slides/internals/scanner-ast2.xml
index 1a05cc39..5f366687 100644
--- a/slides/internals/scanner-ast2.xml
+++ b/slides/internals/scanner-ast2.xml
@@ -63,7 +63,7 @@
 
 <br/>
 
-<example inline="1">
+<example class="medium" inline="1">
 1: AST_METHOD
     flags: MODIFIER_PUBLIC (256)
     name: |00dd00|__construct|
diff --git a/slides/internals/scanner-rules.xml b/slides/internals/scanner-rules.xml
index 21fd79fb..a36f4b5f 100644
--- a/slides/internals/scanner-rules.xml
+++ b/slides/internals/scanner-rules.xml
@@ -8,9 +8,6 @@
         class_modifiers T_CLASS |dd00dd|{ $&amp;lt;num>$ = CG(zend_lineno); }|
         T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}'
             { $$ = *zend_ast_create_decl*(ZEND_AST_CLASS, $1, $&amp;lt;num>3, $7, *zend_ast_get_str*($4), $5, $6, $9, NULL); }
-    |
-…
-;
 </example>
     <example inline="1">
   case 167:
diff --git a/slides/internals/scanner.xml b/slides/internals/scanner.xml
index c8982e47..cc9dfa59 100644
--- a/slides/internals/scanner.xml
+++ b/slides/internals/scanner.xml
@@ -5,9 +5,6 @@
         statement                           { $$ = $1; }
     |   function_declaration_statement      { $$ = $1; }
     |   |0000dd|class_declaration_statement|         { $$ = $1; }
-    |   trait_declaration_statement         { $$ = $1; }
-…
-;
 
 |0000dd|class_declaration_statement|:
         |dd00dd|class_modifiers| T_CLASS { $&amp;lt;num>$ = CG(zend_lineno); }
@@ -16,16 +13,13 @@
     |   T_CLASS { $&amp;lt;num>$ = CG(zend_lineno); }
         T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}'
             { $$ = *zend_ast_create_decl*(ZEND_AST_CLASS, 0, $&amp;lt;num>2, $6, *zend_ast_get_str*($3), $4, $5, $8, NULL); }
-;
 
 |dd00dd|class_modifiers|:
         |00dddd|class_modifier|                  { $$ = $1; }
     |   |dd00dd|class_modifiers| |00dddd|class_modifier|  { $$ = *zend_add_class_modifier*($1, $2); }
-;
 
 |00dddd|class_modifier|:
         T_ABSTRACT      { $$ = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; }
     |   T_FINAL         { $$ = ZEND_ACC_FINAL; }
-;
 </example>
 </slide>
diff --git a/slides/internals/switch-followup.xml b/slides/internals/switch-followup.xml
index fc3e44ed..80d614b4 100644
--- a/slides/internals/switch-followup.xml
+++ b/slides/internals/switch-followup.xml
@@ -1,7 +1,7 @@
 <slide>
 <title>Switch follow-up</title>
 
-<example inline="1">&amp;lt;?php
+<example class="medium" inline="1">&amp;lt;?php
 function foo()
 {
     return '42';
@@ -19,7 +19,7 @@ switch (foo()) {
 }</example>
 
 <div effect="fade-in">
-<example inline="2">
+<example class="medium" inline="2">
 line     #* E I O op              return  operands
    2     0  E >   NOP                     
    7     1        INIT_FCALL              'foo'
diff --git a/slides/internals/switch.xml b/slides/internals/switch.xml
index 9fe7c1c0..30b3619c 100644
--- a/slides/internals/switch.xml
+++ b/slides/internals/switch.xml
@@ -1,7 +1,7 @@
 <slide>
 <title>Switch</title>
 
-<example inline="1">&amp;lt;?php
+<example class="medium" inline="1">&amp;lt;?php
 $variable = '42';
 
 switch ($variable) {
@@ -16,7 +16,7 @@ switch ($variable) {
 }
 </example>
 
-<example inline="1">
+<example class="medium" inline="1">
 compiled vars:  !0 = $variable
 line     #* E I O op              return  operands
 
diff --git a/slides/xdebug/breakpoint-behaviour.xml b/slides/xdebug/breakpoint-behaviour.xml
index 0b0b7e45..e71fe2bc 100644
--- a/slides/xdebug/breakpoint-behaviour.xml
+++ b/slides/xdebug/breakpoint-behaviour.xml
@@ -4,54 +4,48 @@
 <div effect="fade-out">
 <table class="two">
 <tr><td>
-<example><![CDATA[
- 1: <?php
- 2: function scoped()
- 3: {
- 4:     $func = function()
- 5:     {
- 6:         $a = array( // breakpoint
- 7:             1 => "first",
- 8:             2 => "second",
- 9:         );
-10:     };
-11: 
-12:     $func();
-13: }
-14: 
-15: scoped();
-16: scoped();
-17: ?>
+<example inline="2"><![CDATA[
+  1: &lt;?php
+  2: function scoped()
+  3: {
+  4:     $func = function()
+  5:     {
+*● 6:         $a = array(*
+  7:             1 => "first",
+  8:             2 => "second",
+  9:         );
+ 10:     };
+ 11: 
+ 12:     $func();
+ 13: }
+ 14: 
+ 15: scoped();
+ 16: scoped();
+ 17: ?>
 ]]></example>
 </td><td>
 <example>
 function name:  scoped
 compiled vars:  !0 = $func
-line     #* E I O op                           return  operands
-
-   2     0  E >   EXT_NOP                              
-   4     1        EXT_STMT                             
-         2        DECLARE_LAMBDA_FUNCTION              '%00…closure.php0x7f295f0c207e'
-
-  12     3        EXT_STMT                             
-         4        INIT_DYNAMIC_CALL                    !0
-         5        EXT_FCALL_BEGIN                      
-         6        DO_FCALL                             
-         7        EXT_FCALL_END                        
-  13     8        EXT_STMT                             
-         9      > RETURN                               null
+line  #* op                       operands
+   4  1  EXT_STMT                 
+      2  DECLARE_LAMBDA_FUNCTION  '%00…closure.php0x7f2…'
 
+  12  3  EXT_STMT                 
+      4  INIT_DYNAMIC_CALL        !0
+      5  EXT_FCALL_BEGIN          
+      6  DO_FCALL                 
+      7  EXT_FCALL_END            
+  13  8  EXT_STMT                 
+      9  RETURN                   null
 
 function name:  {closure}
 
-line     #* E I O op                           return  operands
-
-   4     0  E >   EXT_NOP                              
-   7     1        EXT_STMT                             
-
-  10     2        EXT_STMT                             
-         3      > RETURN                               null
+line  #* op                       operands
+   7  1  EXT_STMT                 
 
+  10  2  EXT_STMT                 
+      3  RETURN                   null
 </example>
 </td></tr></table>
 
@@ -59,60 +53,52 @@ line     #* E I O op                           return  operands
 <div effect="fade-in">
 <table class="two">
 <tr><td>
-<example><![CDATA[
- 1: <?php
- 2: function scoped()
- 3: {
- 4:     $func = function()
- 5:     {
- 6:         $a = array( // breakpoint
- 7:             1 => "first",
- 8:             2 => "second",
- 9:         );
-10:     };
-11: 
-12:     $func();
-13: }
-14: 
-15: scoped();
-16: scoped();
-17: ?>
+<example inline="2"><![CDATA[
+  1: &lt;?php
+  2: function scoped()
+  3: {
+  4:     $func = function()
+  5:     {
+*● 6:         $a = array(*
+  7:             1 => "first",
+  8:             2 => "second",
+  9:         );
+ 10:     };
+ 11: 
+ 12:     $func();
+ 13: }
+ 14: 
+ 15: scoped();
+ 16: scoped();
+ 17: ?>
 ]]></example>
 <break/>
 <blurb>Turned off OPcache's optimiser →</blurb>
 </td><td>
 <example inline="2">
 function name:  scoped
-*compiled vars:  !0 = $func*
-line     #* E I O op                           return  operands
-
-   2     0  E >   EXT_NOP                              
-   4     1        EXT_STMT                             
-         2        DECLARE_LAMBDA_FUNCTION              '%00…closure.php0x7efeba02b07e'
-*  10     3        ASSIGN                               !0, ~1*
-  12     4        EXT_STMT                             
-         5        INIT_DYNAMIC_CALL                    !0
-         6        EXT_FCALL_BEGIN                      
-         7        DO_FCALL                             
-         8        EXT_FCALL_END                        
-  13     9        EXT_STMT                             
-        10      > RETURN                               null
-
+compiled vars:  !0 = $func
+line  #* op                       operands
+   4  1  EXT_STMT                 
+      2  DECLARE_LAMBDA_FUNCTION  '%00…closure.php0x7e…'
+*  10  3  ASSIGN                   !0, ~1*
+  12  4  EXT_STMT                 
+      5  INIT_DYNAMIC_CALL        !0
+      6  EXT_FCALL_BEGIN          
+      7  DO_FCALL                 
+      8  EXT_FCALL_END            
+  13  9  EXT_STMT                 
+     10  RETURN                   null
 
 function name:  {closure}
-compiled vars:  !0 = $a
-line     #* E I O op                           return  operands
-
-   4     0  E >   EXT_NOP                              
-   7     1        EXT_STMT                             
-*         2        ASSIGN                               !0, &amp;lt;array>*
-  10     3        EXT_STMT                             
-         4      > RETURN                               null
+*compiled vars:  !0 = $a*
+line  #* op                       operands
+   7  1  EXT_STMT                 
+*      2  ASSIGN                   !0, &amp;lt;array>*
+  10  3  EXT_STMT                 
+      4  RETURN                   null
 </example>
 </td></tr>
 </table>
 </div>
-<div effect="fade-in">
-<blurb class="big-centre">demo</blurb>
-</div>
 </slide>
diff --git a/slides/xdebug/breakpoints-2.xml b/slides/xdebug/breakpoints-2.xml
index 04c932d4..35b39cc4 100644
--- a/slides/xdebug/breakpoints-2.xml
+++ b/slides/xdebug/breakpoints-2.xml
@@ -27,21 +27,21 @@
 function name:  demo
 number of ops:  14
 compiled vars:  !0 = $a, !1 = $b, !2 = $c, !3 = $d
-line     #* E I O op          return  operands
-   2     0  E >   EXT_NOP
-         1        RECV        !0
-         2        RECV        !1
-         3        RECV        !2
-         4        RECV        !3
-   5     5        EXT_STMT
-         6      > JMPZ                !0, ->12
-   6     7    > > JMPZ                !1, ->12
-   7     8    > > JMPNZ               !2, ->10
-         9    > > JMPZ                !3, ->12
-   9    10    >   EXT_STMT
-        11        ECHO                'It%27s+true%21'
-  11    12    >   EXT_STMT
-        13      > RETURN              null
+line     #* op          return  operands
+   2     0  EXT_NOP
+         1  RECV        !0
+         2  RECV        !1
+         3  RECV        !2
+         4  RECV        !3
+   5     5  EXT_STMT
+         6  JMPZ                !0, ->12
+   6     7  JMPZ                !1, ->12
+   7     8  JMPNZ               !2, ->10
+         9  JMPZ                !3, ->12
+   9    10  EXT_STMT
+        11  ECHO                'It\%27s+true\%21'
+  11    12  EXT_STMT
+        13  RETURN              null
 ]]>
 </example>
 </div>
diff --git a/slides/xdebug/business-support.xml b/slides/xdebug/business-support.xml
index 474f8e1b..de2f5e25 100644
--- a/slides/xdebug/business-support.xml
+++ b/slides/xdebug/business-support.xml
@@ -2,6 +2,18 @@
 <title>Business Support</title>
 
 <image filename="support-business.png"/>
-<blurb class="big-centre">https://xdebug.org/support</blurb>
+<break/>
+
+<blurb class="centre">%https://xdebug.org/support%</blurb>
+<break/>
+
+<blurb class="centre">
+Automattic,
+Intracto,
+JetBrains,
+php[architect],
+Tideways,
+TYPO3 GmbH,
+</blurb>
 
 </slide>
diff --git a/slides/xdebug/code-reorgnisation.xml b/slides/xdebug/code-reorgnisation.xml
index 0c0b46e7..fe234199 100644
--- a/slides/xdebug/code-reorgnisation.xml
+++ b/slides/xdebug/code-reorgnisation.xml
@@ -4,44 +4,49 @@
 <div effect="fade-out">
 <example inline="2">
 *derick@singlemalt:~/dev/php/xdebug-xdebug$ ls ***.[hc]*
-config.h                xdebug_filter.c        xdebug_monitor.c       xdebug_superglobals.h
-php_xdebug.h            xdebug_filter.h        xdebug_monitor.h       xdebug_trace_computerized.c
-usefulstuff.c           xdebug_gc_stats.c      xdebug_private.c       xdebug_trace_computerized.h
-usefulstuff.h           xdebug_gc_stats.h      xdebug_private.h       xdebug_trace_html.c
-xdebug_branch_info.c    xdebug_handler_dbgp.c  xdebug_profiler.c      xdebug_trace_html.h
-xdebug_branch_info.h    xdebug_handler_dbgp.h  xdebug_profiler.h      xdebug_trace_textual.c
-xdebug.c                xdebug_handlers.c      xdebug_set.c           xdebug_trace_textual.h
-xdebug_code_coverage.c  xdebug_handlers.h      xdebug_set.h           xdebug_tracing.c
-xdebug_code_coverage.h  xdebug_hash.c          xdebug_stack.c         xdebug_tracing.h
-xdebug_com.c            xdebug_hash.h          xdebug_stack.h         xdebug_var.c
-xdebug_com.h            xdebug_llist.c         xdebug_str.c           xdebug_var.h
-xdebug_compat.c         xdebug_llist.h         xdebug_str.h           xdebug_xml.c
-xdebug_compat.h         xdebug_mm.h            xdebug_superglobals.c  xdebug_xml.h
+config.h                xdebug_handler_dbgp.h xdebug_str.c
+php_xdebug.h            xdebug_handlers.c     xdebug_str.h
+usefulstuff.c           xdebug_handlers.h     xdebug_superglobals.c
+usefulstuff.h           xdebug_hash.c         xdebug_superglobals.h
+xdebug_branch_info.c    xdebug_hash.h         xdebug_trace_computerized.c
+xdebug_branch_info.h    xdebug_llist.c        xdebug_trace_computerized.h
+xdebug.c                xdebug_llist.h        xdebug_trace_html.c
+xdebug_code_coverage.c  xdebug_mm.h           xdebug_trace_html.h
+xdebug_code_coverage.h  xdebug_monitor.c      xdebug_trace_textual.c
+xdebug_com.c            xdebug_monitor.h      xdebug_trace_textual.h
+xdebug_com.h            xdebug_private.c      xdebug_tracing.c
+xdebug_compat.c         xdebug_private.h      xdebug_tracing.h
+xdebug_compat.h         xdebug_profiler.c     xdebug_var.c
+xdebug_filter.c         xdebug_profiler.h     xdebug_var.h
+xdebug_filter.h         xdebug_set.c          xdebug_xml.c
+xdebug_gc_stats.c       xdebug_set.h          xdebug_xml.h
+xdebug_gc_stats.h       xdebug_stack.c
+xdebug_handler_dbgp.c   xdebug_stack.h
 </example>
 </div>
 
 <div effect="fade-in">
 <example inline="2">
-*derick@gargleblaster:~/dev/php/derickr-xdebug/src$ ls -v ../\*.[ch] \*/\*.[ch]*
-../config.h                       debugger/com.h              lib/str.c
-../php_xdebug.h                   debugger/handlers.c         lib/str.h
-../xdebug.c                       debugger/handlers.h         lib/usefulstuff.c
-base/base.c                       debugger/handler_dbgp.c     lib/usefulstuff.h
-base/base.h                       debugger/handler_dbgp.h     lib/var.c
-base/filter.c                     gcstats/gc_stats.c          lib/var.h
-base/filter.h                     gcstats/gc_stats.h          lib/xml.c
-base/monitor.c                    gcstats/gc_stats_private.h  lib/xml.h
-base/monitor.h                    lib/compat.c                profiler/profiler.c
-base/stack.c                      lib/compat.h                profiler/profiler.h
-base/stack.h                      lib/hash.c                  tracing/trace_computerized.c
-base/superglobals.c               lib/hash.h                  tracing/trace_computerized.h
-base/superglobals.h               lib/llist.c                 tracing/trace_html.c
-coverage/branch_info.c            lib/llist.h                 tracing/trace_html.h
-coverage/branch_info.h            lib/mm.h                    tracing/trace_textual.c
-coverage/code_coverage.c          lib/private.c               tracing/trace_textual.h
-coverage/code_coverage.h          lib/private.h               tracing/tracing.c
-coverage/code_coverage_private.h  lib/set.c                   tracing/tracing.h
-debugger/com.c                    lib/set.h                   tracing/tracing_private.h
+*derick@gargleblaster:~/src$ ls -v ../\*.[ch] \*/\*.[ch]*
+../config.h            debugger/com.h          lib/str.c
+../php_xdebug.h        debugger/handlers.c     lib/str.h
+../xdebug.c            debugger/handlers.h     lib/usefulstuff.c
+base/base.c            debugger/handler_dbgp.c lib/usefulstuff.h
+base/base.h            debugger/handler_dbgp.h lib/var.c
+base/filter.c          gcstats/gcstats.c       lib/var.h
+base/filter.h          gcstats/gcstats.h       lib/xml.c
+base/monitor.c         gcstats/gc…private.h    lib/xml.h
+base/monitor.h         lib/compat.c            profiler/profiler.c
+base/stack.c           lib/compat.h            profiler/profiler.h
+base/stack.h           lib/hash.c              tracing/t…e_computerized.c
+base/superglobals.c    lib/hash.h              tracing/t…e_computerized.h
+base/superglobals.h    lib/llist.c             tracing/t…e_html.c
+coverage/branch_info.c lib/llist.h             tracing/t…e_html.h
+coverage/branch_info.h lib/mm.h                tracing/t…e_textual.c
+coverage/coverage.c    lib/private.c           tracing/t…e_textual.h
+coverage/coverage.h    lib/private.h           tracing/tracing.c
+coverage/cov…private.h lib/set.c               tracing/tracing.h
+debugger/com.c         lib/set.h               tracing/tracing_private.h
 </example>
 </div>
 </slide>
diff --git a/slides/xdebug/config-settings-2.xml b/slides/xdebug/config-settings-2.xml
index 4bd4263f..bfdc7c43 100644
--- a/slides/xdebug/config-settings-2.xml
+++ b/slides/xdebug/config-settings-2.xml
@@ -5,72 +5,73 @@
 <tr>
 <td>
 <example inline="2">
-|aaaaaa|xdebug.|auto_trace
-|aaaaaa|xdebug.|cli_color
-|aaaaaa|xdebug.|collect_assignments
-|aaaaaa|xdebug.|collect_includes
-|aaaaaa|xdebug.|collect_params
-|aaaaaa|xdebug.|collect_return
-|aaaaaa|xdebug.|collect_vars
-*|0000ff|xdebug.coverage_enable|*
-|aaaaaa|xdebug.|default_enable
-|aaaaaa|xdebug.|dump.COOKIE
-|aaaaaa|xdebug.|dump.ENV
-|aaaaaa|xdebug.|dump.FILES
-|aaaaaa|xdebug.|dump.GET
-|aaaaaa|xdebug.|dump.POST
-|aaaaaa|xdebug.|dump.REQUEST
-|aaaaaa|xdebug.|dump.SERVER
-|aaaaaa|xdebug.|dump.SESSION
-|aaaaaa|xdebug.|dump_globals
-|aaaaaa|xdebug.|dump_once
-|aaaaaa|xdebug.|dump_undefined
-*xdebug.extended_info*
-|aaaaaa|xdebug.|file_link_format
-|aaaaaa|xdebug.|filename_format
-|aaaaaa|xdebug.|force_display_errors
-|aaaaaa|xdebug.|force_error_reporting
-|aaaaaa|xdebug.|gc_stats_enable
-*|00cc00|xdebug.gc_stats_output_dir|*
-*|00cc00|xdebug.gc_stats_output_name|*
-|aaaaaa|xdebug.|halt_level
-|aaaaaa|xdebug.|idekey
-|aaaaaa|xdebug.|max_nesting_level
-|aaaaaa|xdebug.|max_stack_frames
-|aaaaaa|xdebug.|overload_var_dump
+|aaaaaa|x.|auto_trace
+|aaaaaa|x.|cli_color
+|aaaaaa|x.|collect_assignments
+|aaaaaa|x.|collect_includes
+|aaaaaa|x.|collect_params
+|aaaaaa|x.|collect_return
+|aaaaaa|x.|collect_vars
+*|0000ff|x.coverage_enable|*
+|aaaaaa|x.|default_enable
+|aaaaaa|x.|dump.COOKIE
+|aaaaaa|x.|dump.ENV
+|aaaaaa|x.|dump.FILES
+|aaaaaa|x.|dump.GET
+|aaaaaa|x.|dump.POST
+|aaaaaa|x.|dump.REQUEST
+|aaaaaa|x.|dump.SERVER
+|aaaaaa|x.|dump.SESSION
+|aaaaaa|x.|dump_globals
+|aaaaaa|x.|dump_once
+|aaaaaa|x.|dump_undefined
+*x.extended_info*
+|aaaaaa|x.|file_link_format
 </example></td><td><example inline="2">
-|aaaaaa|xdebug.|profiler_aggregate
-|aaaaaa|xdebug.|profiler_append
-*|0000ff|xdebug.profiler_enable|*
-|aaaaaa|xdebug.|profiler_enable_trigger
-|aaaaaa|xdebug.|profiler_enable_trigger_value
-*|00cc00|xdebug.profiler_output_dir|*
-*|00cc00|xdebug.profiler_output_name|*
-|aaaaaa|xdebug.|remote_addr_header
-|aaaaaa|xdebug.|remote_autostart
-|aaaaaa|xdebug.|remote_connect_back
-|aaaaaa|xdebug.|remote_cookie_expire_time
-*|0000ff|xdebug.remote_enable|*
-*xdebug.remote_handler*
-|aaaaaa|xdebug.|remote_host
-|aaaaaa|xdebug.|remote_log
-|aaaaaa|xdebug.|remote_mode
-|aaaaaa|xdebug.|remote_port
-|aaaaaa|xdebug.|remote_timeout
-|aaaaaa|xdebug.|scream
-|aaaaaa|xdebug.|show_error_trace
-|aaaaaa|xdebug.|show_exception_trace
-|aaaaaa|xdebug.|show_local_vars
-*xdebug.show_mem_delta*
-|aaaaaa|xdebug.|trace_enable_trigger
-|aaaaaa|xdebug.|trace_enable_trigger_value
-|aaaaaa|xdebug.|trace_format
-|aaaaaa|xdebug.|trace_options
-*|00cc00|xdebug.trace_output_dir|*
-*|00cc00|xdebug.trace_output_name|*
-|aaaaaa|xdebug.|var_display_max_children
-|aaaaaa|xdebug.|var_display_max_data
-|aaaaaa|xdebug.|var_display_max_depth
+|aaaaaa|x.|filename_format
+|aaaaaa|x.|force_display_errors
+|aaaaaa|x.|force_error_reporting
+|aaaaaa|x.|gc_stats_enable
+*|00cc00|x.gc_stats_output_dir|*
+*|00cc00|x.gc_stats_output_name|*
+|aaaaaa|x.|halt_level
+|aaaaaa|x.|idekey
+|aaaaaa|x.|max_nesting_level
+|aaaaaa|x.|max_stack_frames
+|aaaaaa|x.|overload_var_dump
+|aaaaaa|x.|profiler_aggregate
+|aaaaaa|x.|profiler_append
+*|0000ff|x.profiler_enable|*
+|aaaaaa|x.|profiler_enable_trigger
+|aaaaaa|x.|profiler_enable_trigger_value
+*|00cc00|x.profiler_output_dir|*
+*|00cc00|x.profiler_output_name|*
+|aaaaaa|x.|remote_addr_header
+|aaaaaa|x.|remote_autostart
+|aaaaaa|x.|remote_connect_back
+|aaaaaa|x.|remote_cookie_expire_time
+</example></td><td><example inline="2">
+*|0000ff|x.remote_enable|*
+*x.remote_handler*
+|aaaaaa|x.|remote_host
+|aaaaaa|x.|remote_log
+|aaaaaa|x.|remote_mode
+|aaaaaa|x.|remote_port
+|aaaaaa|x.|remote_timeout
+|aaaaaa|x.|scream
+|aaaaaa|x.|show_error_trace
+|aaaaaa|x.|show_exception_trace
+|aaaaaa|x.|show_local_vars
+*x.show_mem_delta*
+|aaaaaa|x.|trace_enable_trigger
+|aaaaaa|x.|trace_enable_trigger_value
+|aaaaaa|x.|trace_format
+|aaaaaa|x.|trace_options
+*|00cc00|x.trace_output_dir|*
+*|00cc00|x.trace_output_name|*
+|aaaaaa|x.|var_display_max_children
+|aaaaaa|x.|var_display_max_data
+|aaaaaa|x.|var_display_max_depth
 
 </example>
 </td></tr></table>
diff --git a/slides/xdebug/config-settings-3.xml b/slides/xdebug/config-settings-3.xml
index 93cd7233..d3a1a74d 100644
--- a/slides/xdebug/config-settings-3.xml
+++ b/slides/xdebug/config-settings-3.xml
@@ -5,72 +5,73 @@
 <tr>
 <td>
 <example inline="2">
-|aaaaaa|xdebug.|auto_trace
-|aaaaaa|xdebug.|cli_color
-|aaaaaa|xdebug.|collect_assignments
-|aaaaaa|xdebug.|collect_includes
-|aaaaaa|xdebug.|collect_params
-|aaaaaa|xdebug.|collect_return
-|aaaaaa|xdebug.|collect_vars
-|aaaaaa|xdebug.|coverage_enable
-|aaaaaa|xdebug.|default_enable
-|aaaaaa|xdebug.|dump.COOKIE
-|aaaaaa|xdebug.|dump.ENV
-|aaaaaa|xdebug.|dump.FILES
-|aaaaaa|xdebug.|dump.GET
-|aaaaaa|xdebug.|dump.POST
-|aaaaaa|xdebug.|dump.REQUEST
-|aaaaaa|xdebug.|dump.SERVER
-|aaaaaa|xdebug.|dump.SESSION
-|aaaaaa|xdebug.|dump_globals
-|aaaaaa|xdebug.|dump_once
-|aaaaaa|xdebug.|dump_undefined
-|aaaaaa|xdebug.|extended_info
-|aaaaaa|xdebug.|file_link_format
-|aaaaaa|xdebug.|filename_format
-|aaaaaa|xdebug.|force_display_errors
-|aaaaaa|xdebug.|force_error_reporting
-|aaaaaa|xdebug.|gc_stats_enable
-|aaaaaa|xdebug.|gc_stats_output_dir
-|aaaaaa|xdebug.|gc_stats_output_name
-|aaaaaa|xdebug.|halt_level
-|aaaaaa|xdebug.|idekey
-|aaaaaa|xdebug.|max_nesting_level
-|aaaaaa|xdebug.|max_stack_frames
-|aaaaaa|xdebug.|overload_var_dump
+|aaaaaa|x.|auto_trace
+|aaaaaa|x.|cli_color
+|aaaaaa|x.|collect_assignments
+|aaaaaa|x.|collect_includes
+|aaaaaa|x.|collect_params
+|aaaaaa|x.|collect_return
+|aaaaaa|x.|collect_vars
+|aaaaaa|x.|coverage_enable
+|aaaaaa|x.|default_enable
+|aaaaaa|x.|dump.COOKIE
+|aaaaaa|x.|dump.ENV
+|aaaaaa|x.|dump.FILES
+|aaaaaa|x.|dump.GET
+|aaaaaa|x.|dump.POST
+|aaaaaa|x.|dump.REQUEST
+|aaaaaa|x.|dump.SERVER
+|aaaaaa|x.|dump.SESSION
+|aaaaaa|x.|dump_globals
+|aaaaaa|x.|dump_once
+|aaaaaa|x.|dump_undefined
+|aaaaaa|x.|extended_info
+|aaaaaa|x.|file_link_format
 </example></td><td><example inline="2">
-|aaaaaa|xdebug.|profiler_aggregate
-|aaaaaa|xdebug.|profiler_append
-|aaaaaa|xdebug.|pprofiler_enable
-|aaaaaa|xdebug.|profiler_enable_trigger
-|aaaaaa|xdebug.|profiler_enable_trigger_value
-|aaaaaa|xdebug.|profiler_output_dir
-|aaaaaa|xdebug.|profiler_output_name
-|aaaaaa|xdebug.|remote_addr_header
-|aaaaaa|xdebug.|remote_autostart
-|aaaaaa|xdebug.|remote_connect_back
-|aaaaaa|xdebug.|remote_cookie_expire_time
-|aaaaaa|xdebug.|remote_enable
-|aaaaaa|xdebug.|remote_handler
-|aaaaaa|xdebug.|remote_host
-|aaaaaa|xdebug.|remote_log
-|aaaaaa|xdebug.|remote_mode
-|aaaaaa|xdebug.|remote_port
-|aaaaaa|xdebug.|remote_timeout
-|aaaaaa|xdebug.|scream
-|aaaaaa|xdebug.|show_error_trace
-|aaaaaa|xdebug.|show_exception_trace
-|aaaaaa|xdebug.|show_local_vars
-|aaaaaa|xdebug.|show_mem_delta
-|aaaaaa|xdebug.|trace_enable_trigger
-|aaaaaa|xdebug.|trace_enable_trigger_value
-|aaaaaa|xdebug.|trace_format
-|aaaaaa|xdebug.|trace_options
-|aaaaaa|xdebug.|trace_output_dir
-|aaaaaa|xdebug.|trace_output_name
-|aaaaaa|xdebug.|var_display_max_children
-|aaaaaa|xdebug.|var_display_max_data
-|aaaaaa|xdebug.|var_display_max_depth
+|aaaaaa|x.|filename_format
+|aaaaaa|x.|force_display_errors
+|aaaaaa|x.|force_error_reporting
+|aaaaaa|x.|gc_stats_enable
+|aaaaaa|x.|gc_stats_output_dir
+|aaaaaa|x.|gc_stats_output_name
+|aaaaaa|x.|halt_level
+|aaaaaa|x.|idekey
+|aaaaaa|x.|max_nesting_level
+|aaaaaa|x.|max_stack_frames
+|aaaaaa|x.|overload_var_dump
+|aaaaaa|x.|profiler_aggregate
+|aaaaaa|x.|profiler_append
+|aaaaaa|x.|pprofiler_enable
+|aaaaaa|x.|profiler_enable_trigger
+|aaaaaa|x.|profiler_enable_trigger_value
+|aaaaaa|x.|profiler_output_dir
+|aaaaaa|x.|profiler_output_name
+|aaaaaa|x.|remote_addr_header
+|aaaaaa|x.|remote_autostart
+|aaaaaa|x.|remote_connect_back
+|aaaaaa|x.|remote_cookie_expire_time
+</example></td><td><example inline="2">
+|aaaaaa|x.|remote_enable
+|aaaaaa|x.|remote_handler
+|aaaaaa|x.|remote_host
+|aaaaaa|x.|remote_log
+|aaaaaa|x.|remote_mode
+|aaaaaa|x.|remote_port
+|aaaaaa|x.|remote_timeout
+|aaaaaa|x.|scream
+|aaaaaa|x.|show_error_trace
+|aaaaaa|x.|show_exception_trace
+|aaaaaa|x.|show_local_vars
+|aaaaaa|x.|show_mem_delta
+|aaaaaa|x.|trace_enable_trigger
+|aaaaaa|x.|trace_enable_trigger_value
+|aaaaaa|x.|trace_format
+|aaaaaa|x.|trace_options
+|aaaaaa|x.|trace_output_dir
+|aaaaaa|x.|trace_output_name
+|aaaaaa|x.|var_display_max_children
+|aaaaaa|x.|var_display_max_data
+|aaaaaa|x.|var_display_max_depth
 
 </example>
 </td></tr></table>
diff --git a/slides/xdebug/config-settings-3b.xml b/slides/xdebug/config-settings-3b.xml
index 924a4038..d2315a57 100644
--- a/slides/xdebug/config-settings-3b.xml
+++ b/slides/xdebug/config-settings-3b.xml
@@ -5,73 +5,77 @@
 <tr>
 <td>
 <example inline="2">
-*|aaaaaa|xdebug.|auto_trace*                     ~xdebug.always_start~
-*|aaaaaa|xdebug.|cli_color*
-|aaaaaa|xdebug.||0000ff|base|.collect_assignments
-|aaaaaa|xdebug.||0000ff|base|.collect_includes
-|aaaaaa|xdebug.||0000ff|base|.collect_params
-|aaaaaa|xdebug.||0000ff|base|.collect_return
-|aaaaaa|xdebug.||0000ff|base|.collect_vars
-*|aaaaaa|xdebug.|coverage_enable*                ~xdebug.mode~
-*|aaaaaa|xdebug.|default_enable*                 ~xdebug.mode~
-|aaaaaa|xdebug.||0000ff|display|.dump.COOKIE
-|aaaaaa|xdebug.||0000ff|display|.dump.ENV
-|aaaaaa|xdebug.||0000ff|display|.dump.FILES
-|aaaaaa|xdebug.||0000ff|display|.dump.GET
-|aaaaaa|xdebug.||0000ff|display|.dump.POST
-|aaaaaa|xdebug.||0000ff|display|.dump.REQUEST
-|aaaaaa|xdebug.||0000ff|display|.dump.SERVER
-|aaaaaa|xdebug.||0000ff|display|.dump.SESSION
-|aaaaaa|xdebug.||0000ff|display|.dump_globals
-*|aaaaaa|xdebug.|dump_once*
-|aaaaaa|xdebug.||0000ff|display|.dump_undefined
----*|00cc00|xdebug.extended_info|*---                  ~removed in Xdebug 2.8~
-|aaaaaa|xdebug.||0000ff|base|.file_link_format
-|aaaaaa|xdebug.||0000ff|base|.filename_format
-|aaaaaa|xdebug.||0000ff|base|.force_display_errors
-|aaaaaa|xdebug.||0000ff|base|.force_error_reporting
-|aaaaaa|xdebug.||0000ff|base|.gc_stats_enable
-*|aaaaaa|xdebug.|gc_stats_output_dir*            ~xdebug.output_dir~
-*|aaaaaa|xdebug.|gc_stats_output_name*           ~xdebug.output_name~
-|aaaaaa|xdebug.||0000ff|base|.halt_level
-*|aaaaaa|xdebug.|idekey*
-|aaaaaa|xdebug.||0000ff|base|.max_nesting_level
-|aaaaaa|xdebug.||0000ff|display|.max_stack_frames
-|aaaaaa|xdebug.||0000ff|display|.overload_var_dump
+*|aaaaaa|x.|auto_trace*          ~x.always_start~
+*|aaaaaa|x.|cli_color*
+|aaaaaa|x.||0000ff|base|.collect_assignments
+|aaaaaa|x.||0000ff|base|.collect_includes
+|aaaaaa|x.||0000ff|base|.collect_params
+|aaaaaa|x.||0000ff|base|.collect_return
+|aaaaaa|x.||0000ff|base|.collect_vars
+*|aaaaaa|x.|coverage_enable*             ~x.mode~
+*|aaaaaa|x.|default_enable*              ~x.mode~
+|aaaaaa|x.||0000ff|display|.dump.COOKIE
+|aaaaaa|x.||0000ff|display|.dump.ENV
+|aaaaaa|x.||0000ff|display|.dump.FILES
+|aaaaaa|x.||0000ff|display|.dump.GET
+|aaaaaa|x.||0000ff|display|.dump.POST
+|aaaaaa|x.||0000ff|display|.dump.REQUEST
+|aaaaaa|x.||0000ff|display|.dump.SERVER
+|aaaaaa|x.||0000ff|display|.dump.SESSION
+|aaaaaa|x.||0000ff|display|.dump_globals
+*|aaaaaa|x.|dump_once*
+|aaaaaa|x.||0000ff|display|.dump_undefined
+---*|00cc00|x.extended_info|*---         ~gone already~
+|aaaaaa|x.||0000ff|base|.file_link_format
 </example></td><td><example inline="2">
-*|aaaaaa|xdebug.|profiler_aggregate*
-*|aaaaaa|xdebug.|profiler_append*
-*|aaaaaa|xdebug.|profiler_enable*                ~xdebug.mode~
-*|aaaaaa|xdebug.|profiler_enable_trigger*        ~xdebug.enable_trigger~
-*|aaaaaa|xdebug.|profiler_enable_trigger_value*  ~xdebug.enable_trigger_value~
-*|aaaaaa|xdebug.|profiler_output_dir*            ~xdebug.output_dir~
-*|aaaaaa|xdebug.|profiler_output_name*           ~xdebug.output_name~
-|aaaaaa|xdebug.||0000ff|debugger|.addr_header
-*|aaaaaa|xdebug.|remote.autostart*               ~xdebug.always_start~
-|aaaaaa|xdebug.||0000ff|debugger|.connect_back
-|aaaaaa|xdebug.||0000ff|debugger|.cookie_expire_time
-*|aaaaaa|xdebug.|remote_enable*                  ~xdebug.mode~
-*|aaaaaa|xdebug.|remote_handler*
-|aaaaaa|xdebug.||0000ff|debugger|.host
-|aaaaaa|xdebug.||0000ff|debugger|.log
-|aaaaaa|xdebug.||0000ff|debugger|.mode
-|aaaaaa|xdebug.||0000ff|debugger|.port
-|aaaaaa|xdebug.||0000ff|debugger|.timeout
-*|aaaaaa|xdebug.|scream*                         ~always on ☺~
-|aaaaaa|xdebug.||0000ff|display|.show_error_trace
-|aaaaaa|xdebug.||0000ff|display|.show_exception_trace
-|aaaaaa|xdebug.||0000ff|display|.show_local_vars
-*|aaaaaa|xdebug.|show_mem_delta*                 ~always on~
-*|aaaaaa|xdebug.|trace_enable_trigger*           ~xdebug.enable_trigger~
-*|aaaaaa|xdebug.|trace_enable_trigger_value*     ~xdebug.enable_trigger_value~
-|aaaaaa|xdebug.||0000ff|tracing|.format
-|aaaaaa|xdebug.||0000ff|tracing|.options
-*|aaaaaa|xdebug.|trace_output_dir*               ~xdebug.output_dir~
-*|aaaaaa|xdebug.|trace_output_name*              ~xdebug.output_name~
-|aaaaaa|xdebug.||0000ff|display|.max_children
-|aaaaaa|xdebug.||0000ff|display|.max_data
-|aaaaaa|xdebug.||0000ff|display|.max_depth
-
+|aaaaaa|x.||0000ff|base|.filename_format
+|aaaaaa|x.||0000ff|base|.force_display_errors
+|aaaaaa|x.||0000ff|base|.force_error_reporting
+|aaaaaa|x.||0000ff|base|.gc_stats_enable
+*|aaaaaa|x.|gc_stats_output_dir*            ~x.output_dir~
+*|aaaaaa|x.|gc_stats_output_name*           ~x.output_name~
+|aaaaaa|x.||0000ff|base|.halt_level
+*|aaaaaa|x.|idekey*
+|aaaaaa|x.||0000ff|base|.max_nesting_level
+|aaaaaa|x.||0000ff|display|.max_stack_frames
+|aaaaaa|x.||0000ff|display|.overload_var_dump
+*|aaaaaa|x.|profiler_aggregate*
+*|aaaaaa|x.|profiler_append*
+*|aaaaaa|x.|profiler_enable*                ~x.mode~
+*|aaaaaa|x.|profiler_enable_trigger*        ~x.enable_trigger~
+*|aaaaaa|x.|profiler_enable_trigger_value*  ~x.enable_…_value~
+*|aaaaaa|x.|profiler_output_dir*            ~x.output_dir~
+*|aaaaaa|x.|profiler_output_name*           ~x.output_name~
+|aaaaaa|x.||0000ff|debugger|.addr_header
+*|aaaaaa|x.|remote.autostart*               ~x.always_start~
+|aaaaaa|x.||0000ff|debugger|.connect_back
+|aaaaaa|x.||0000ff|debugger|.cookie_expire_time
+</example></td>
+<!--
+<td><example inline="2">
+*|aaaaaa|x.|remote_enable*                  ~x.mode~
+*|aaaaaa|x.|remote_handler*
+|aaaaaa|x.||0000ff|debugger|.host
+|aaaaaa|x.||0000ff|debugger|.log
+|aaaaaa|x.||0000ff|debugger|.mode
+|aaaaaa|x.||0000ff|debugger|.port
+|aaaaaa|x.||0000ff|debugger|.timeout
+*|aaaaaa|x.|scream*                         ~always on ☺~
+|aaaaaa|x.||0000ff|display|.show_error_trace
+|aaaaaa|x.||0000ff|display|.show_exception_trace
+|aaaaaa|x.||0000ff|display|.show_local_vars
+*|aaaaaa|x.|show_mem_delta*                 ~always on~
+*|aaaaaa|x.|trace_enable_trigger*           ~x.enable_trigger~
+*|aaaaaa|x.|trace_enable_trigger_value*     ~x.enable_trigger_value~
+|aaaaaa|x.||0000ff|tracing|.format
+|aaaaaa|x.||0000ff|tracing|.options
+*|aaaaaa|x.|trace_output_dir*               ~x.output_dir~
+*|aaaaaa|x.|trace_output_name*              ~x.output_name~
+|aaaaaa|x.||0000ff|display|.max_children
+|aaaaaa|x.||0000ff|display|.max_data
+|aaaaaa|x.||0000ff|display|.max_depth
 </example>
-</td></tr></table>
+</td>
+-->
+</tr></table>
 </slide>
diff --git a/slides/xdebug/debugger-connection-log.xml b/slides/xdebug/debugger-connection-log.xml
index acb22231..69332ad7 100644
--- a/slides/xdebug/debugger-connection-log.xml
+++ b/slides/xdebug/debugger-connection-log.xml
@@ -4,9 +4,11 @@
 <blurb>Logging debugging communication:</blurb>
 <example>xdebug.remote_log=/tmp/remote.log</example>
 
-<div effect="fade-in">
+<break/>
 <blurb>Also shows connection attempts and failures:</blurb>
 
+<div effect="fade-out">
+
 <example inline="2">
 xdebug.remote_connect_back=0
 xdebug.remote_port=9991
@@ -16,7 +18,7 @@ I: Connected to client. *|009900|:-)|*
 </example>
 </div>
 
-<div effect="fade-in">
+<div effect="fade-in-out">
 <example inline="2">
 xdebug.remote_connect_back=1
 |777777|xdebug.remote_host=SomethingEntirelyDifferent|
diff --git a/slides/xdebug/donate.xml b/slides/xdebug/donate.xml
index 8b404a8f..81b8a0e1 100644
--- a/slides/xdebug/donate.xml
+++ b/slides/xdebug/donate.xml
@@ -2,16 +2,18 @@
 <title>Supporting Xdebug</title>
 
 <blurb align="center">It's Open Source and free (as in "free beer")</blurb>
-<blurb align="center">Using Xdebug saves you a lot of time</blurb>
 <blurb align="center">I would like to work more on Xdebug, to help *you*</blurb>
 
-<break lines="2"/>
+<break lines="1"/>
 <blurb align="center">*Features and Bugs*</blurb>
 <blurb align="center">%https://bugs.xdebug.org%</blurb>
 
-<break lines="2"/>
+<break lines="1"/>
 <image align="center" filename="patreon.png" pdf-scale="0.8" y-offset="4"/>
-
 <blurb align="center">%https://www.patreon.com/derickr%</blurb>
 
+<break lines="1"/>
+<image align="center" filename="github-sponsor.png" pdf-scale="0.8" y-offset="4"/>
+<blurb align="center">%https://github.com/sponsors/derickr%</blurb>
+
 </slide>
diff --git a/slides/xdebug/github-sponsor.png b/slides/xdebug/github-sponsor.png
new file mode 100644
index 00000000..ac7d8a5e
Binary files /dev/null and b/slides/xdebug/github-sponsor.png differ
diff --git a/slides/xdebug/test-with-many-versions.xml b/slides/xdebug/test-with-many-versions.xml
index 3d2e5212..7a5e3ddd 100644
--- a/slides/xdebug/test-with-many-versions.xml
+++ b/slides/xdebug/test-with-many-versions.xml
@@ -1,7 +1,7 @@
 <slide>
 <title>Various Versions</title>
 
-<example inline="2">
+<example class="small" inline="2">
               7.1.15        7.1.23-zts    7.1.32-zts    7.2.10-32bit  7.2.19-zts    7.2.7         7.3.4-zts
               7.1.15-32bit  7.1.24        7.1.3-32bit   7.2.10-zts    7.2.1-zts     7.2.7-32bit   7.3.5
               7.1.15-zts    7.1.24-32bit  7.1.3-zts     7.2.11        7.2.2         7.2.7-zts     7.3.5-32bit
diff --git a/slides/xdebug/vld-path-3-paths.xml b/slides/xdebug/vld-path-3-paths.xml
index 7bd1560a..1cfd5590 100644
--- a/slides/xdebug/vld-path-3-paths.xml
+++ b/slides/xdebug/vld-path-3-paths.xml
@@ -4,7 +4,7 @@
 <image align="right" filename="vld-path-3-paths.png"/>
 
 <blurb>test.php</blurb>
-<example>
+<example class="medium">
 <![CDATA[  1 <?php
   2 function ifthenelse( $a, $b )
   3 {
@@ -19,7 +19,7 @@
 </example>
 
 <blurb>branch.php</blurb>
-<example><![CDATA[…
+<example class="medium"><![CDATA[…
 xdebug_start_code_coverage(
     XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE | XDEBUG_CC_BRANCH_CHECK
 );
diff --git a/slides/xdebug/vld-path-4-code.xml b/slides/xdebug/vld-path-4-code.xml
index 76f026b4..9a6440a7 100644
--- a/slides/xdebug/vld-path-4-code.xml
+++ b/slides/xdebug/vld-path-4-code.xml
@@ -1,7 +1,7 @@
 <slide>
 <title>Xdebug code coverage</title>
 
-<example>
+<example class="medium">
 <![CDATA[<?php
 function ifthenelse( $a, $b )
 {
@@ -13,7 +13,7 @@ function ifthenelse( $a, $b )
     }
 }]]>
 </example>
-<example>
+<example class="medium">
 <![CDATA[<?php
 require 'vendor/autoload.php';
 include 'test.php';
diff --git a/slides/xdebug/xdebug-ci.xml b/slides/xdebug/xdebug-ci.xml
index 5e3baf3f..3b44c28d 100644
--- a/slides/xdebug/xdebug-ci.xml
+++ b/slides/xdebug/xdebug-ci.xml
@@ -8,5 +8,6 @@
 	<bullet>I have a local machine with plenty of cores and memory</bullet>
 	<bullet>Nightly builds of PHP 7.4 and 8.0</bullet>
 </list>
-<blurb class="big-centre">https://xdebug.org/ci</blurb>
+<break/>
+<blurb class="big-centre">%https://xdebug.org/ci%</blurb>
 </slide>
diff --git a/xdebug-scotland19.xml b/xdebug-scotland19.xml
new file mode 100644
index 00000000..feecb3e8
--- /dev/null
+++ b/xdebug-scotland19.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="derick.css">
+<topic>Debugging</topic>
+<title>Xdebug 3.0</title>
+<event>ScotlandPHP</event>
+<location>Edinburgh, Scotland, UK</location>
+<date>November 9th, 2019</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>https://derickrethans.nl/talks/xdebug-scotland19</url>
+<joindin>https://joind.in/XXXXX</joindin>
+<slide>slides/xdebug/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/xdebug/focus-on-xdebug.xml</slide>
+The Xdebug Experience
+17 years
+
+<slide>slides/xdebug/config-settings-2.xml</slide>
+<slide>slides/xdebug/breakpoints-2.xml</slide>
+<slide>slides/xdebug/port9000.xml</slide>
+<!-- <slide>slides/xdebug/connect1.xml</slide> -->
+<!-- <slide>slides/xdebug/connect2.xml</slide> -->
+<slide>slides/xdebug/debugger-activation.xml</slide>
+<slide>slides/xdebug/debugger-connection-log.xml</slide>
+<slide>slides/xdebug/xdebug-slow.xml</slide>
+<slide>slides/xdebug/test-with-many-versions.xml</slide>
+
+<slide>slides/xdebug/focus-on-xdebug2.xml</slide>
+
+<slide>slides/xdebug/focus-on-xdebug3.xml</slide>
+breakpoint behaviour
+New versions (7.4)
+CI
+
+<slide>slides/xdebug/xdebug-2.8.xml</slide>
+<slide>slides/xdebug/breakpoint-behaviour.xml</slide>
+<slide>slides/xdebug/xdebug-ci.xml</slide>
+
+<slide>slides/xdebug/xdebug-3.xml</slide>
+Code reorganisation
+Modes
+- only do what is needed
+Reduce Configuration Options
+Code Improvements (algorithms, memory, etc)
+<slide>slides/xdebug/code-reorgnisation.xml</slide>
+<slide>slides/xdebug/modes.xml</slide>
+<slide>slides/xdebug/config-settings-3.xml</slide>
+<slide>slides/xdebug/config-settings-3b.xml</slide>
+<slide>slides/xdebug/xdebug-slow.xml</slide>
+<slide>slides/xdebug/xdebug-hard.xml</slide>
+
+<slide>slides/xdebug/donate.xml</slide>
+<slide>slides/xdebug/business-support.xml</slide>
+<slide>slides/xdebug/transparency.xml</slide>
+<slide>slides/xdebug/phpinternalsnews.xml</slide>
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/xdebug/resources.xml</slide>
+
+</presentation>