<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.you107657.duckdns.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AHistoryTable</id>
	<title>Module:HistoryTable - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.you107657.duckdns.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AHistoryTable"/>
	<link rel="alternate" type="text/html" href="https://wiki.you107657.duckdns.org/index.php?title=Module:HistoryTable&amp;action=history"/>
	<updated>2026-09-25T21:23:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.you107657.duckdns.org/index.php?title=Module:HistoryTable&amp;diff=5338&amp;oldid=prev</id>
		<title>imported&gt;Merge: merge.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.you107657.duckdns.org/index.php?title=Module:HistoryTable&amp;diff=5338&amp;oldid=prev"/>
		<updated>2026-09-25T10:55:52Z</updated>

		<summary type="html">&lt;p&gt;merge.py&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local tableHead&lt;br /&gt;
local mode = nil&lt;br /&gt;
local currentVersion = nil&lt;br /&gt;
local currentExpVersion = nil&lt;br /&gt;
local currentConsoleVersions = {&lt;br /&gt;
    xbox360 = nil,&lt;br /&gt;
    xbone = nil,&lt;br /&gt;
    ps3 = nil,&lt;br /&gt;
    ps4 = nil,&lt;br /&gt;
    psvita = nil,&lt;br /&gt;
    wiiu = nil,&lt;br /&gt;
    switch = nil&lt;br /&gt;
}&lt;br /&gt;
local consoleRowspanIndexes&lt;br /&gt;
local consoleRowspans&lt;br /&gt;
local rowspanIndex&lt;br /&gt;
local rowspans&lt;br /&gt;
local versionLink = require(&amp;#039;Module:Version link&amp;#039;).main&lt;br /&gt;
&lt;br /&gt;
local editionAlias = {&lt;br /&gt;
[&amp;#039;java pre-classic&amp;#039;] = &amp;quot;java pre-Classic&amp;quot;,&lt;br /&gt;
[&amp;#039;java classic&amp;#039;] = &amp;quot;java Classic&amp;quot;,&lt;br /&gt;
[&amp;#039;java indev&amp;#039;] = &amp;quot;java Indev&amp;quot;,&lt;br /&gt;
[&amp;#039;java infdev&amp;#039;] = &amp;quot;java Infdev&amp;quot;,&lt;br /&gt;
[&amp;#039;java alpha&amp;#039;] = &amp;quot;java Alpha&amp;quot;, [&amp;#039;java edition alpha&amp;#039;] = &amp;quot;java Alpha&amp;quot;,&lt;br /&gt;
[&amp;#039;java beta&amp;#039;] = &amp;quot;java Beta&amp;quot;, [&amp;#039;java edition beta&amp;#039;] = &amp;quot;java Beta&amp;quot;,&lt;br /&gt;
[&amp;#039;java combat&amp;#039;] = &amp;quot;java Combat Test&amp;quot;, [&amp;#039;combat java&amp;#039;] = &amp;quot;java Combat Test&amp;quot;, [&amp;#039;java edition combat&amp;#039;] = &amp;quot;java Combat Test&amp;quot;,&lt;br /&gt;
je = &amp;quot;java&amp;quot;, java = &amp;quot;java&amp;quot;, [&amp;#039;java edition&amp;#039;] = &amp;quot;java&amp;quot;,&lt;br /&gt;
[&amp;#039;java edition upcoming&amp;#039;] = &amp;quot;java upcoming&amp;quot;, [&amp;#039;java upcoming&amp;#039;] = &amp;quot;java upcoming&amp;quot;, [&amp;#039;upcoming java&amp;#039;] = &amp;quot;java upcoming&amp;quot;, [&amp;#039;upcoming java edition&amp;#039;] = &amp;quot;java upcoming&amp;quot;,&lt;br /&gt;
[&amp;#039;pe alpha&amp;#039;] = &amp;quot;pocket Alpha&amp;quot;, [&amp;#039;pocket alpha&amp;#039;] = &amp;quot;pocket Alpha&amp;quot;, [&amp;#039;pocket edition alpha&amp;#039;] = &amp;quot;pocket Alpha&amp;quot;,&lt;br /&gt;
pe = &amp;quot;pocket&amp;quot;, pocket = &amp;quot;pocket&amp;quot;, [&amp;#039;pocket edition&amp;#039;] = &amp;quot;pocket&amp;quot;,&lt;br /&gt;
ce = &amp;quot;console&amp;quot;, lce = &amp;quot;console&amp;quot;, console = &amp;quot;console&amp;quot;, [&amp;#039;legacy console&amp;#039;] = &amp;quot;console&amp;quot;, [&amp;#039;console edition&amp;#039;] = &amp;quot;console&amp;quot;, [&amp;#039;legacy console edition&amp;#039;] = &amp;quot;console&amp;quot;,&lt;br /&gt;
be = &amp;quot;bedrock&amp;quot;, bedrock = &amp;quot;bedrock&amp;quot;, [&amp;#039;bedrock edition&amp;#039;] = &amp;quot;bedrock&amp;quot;,&lt;br /&gt;
[&amp;#039;be upcoming&amp;#039;] = &amp;quot;bedrock upcoming&amp;quot;, [&amp;#039;bedrock upcoming&amp;#039;] = &amp;quot;bedrock upcoming&amp;quot;, [&amp;#039;bedrock edition upcoming&amp;#039;] = &amp;quot;bedrock upcoming&amp;quot;, [&amp;#039;upcoming bedrock&amp;#039;] = &amp;quot;bedrock upcoming&amp;quot;, [&amp;#039;upcoming bedrock edition&amp;#039;] = &amp;quot;bedrock upcoming&amp;quot;,&lt;br /&gt;
[&amp;#039;3ds&amp;#039;] = &amp;quot;new3ds&amp;quot;, new3ds = &amp;quot;new3ds&amp;quot;, [&amp;#039;new 3ds&amp;#039;] = &amp;quot;new3ds&amp;quot;, [&amp;#039;new nintendo 3ds edition&amp;#039;] = &amp;quot;new3ds&amp;quot;,&lt;br /&gt;
realms = &amp;quot;realms&amp;quot;,&lt;br /&gt;
pi = &amp;quot;pi&amp;quot;, [&amp;#039;pi edition&amp;#039;] = &amp;quot;pi&amp;quot;, [&amp;#039;raspberry pi&amp;#039;] = &amp;quot;pi&amp;quot;,&lt;br /&gt;
edu = &amp;quot;minecraftedu&amp;quot;, minecraftedu = &amp;quot;minecraftedu&amp;quot;,&lt;br /&gt;
education = &amp;quot;education&amp;quot;, [&amp;#039;education edition&amp;#039;] = &amp;quot;education&amp;quot;,&lt;br /&gt;
[&amp;#039;education upcoming&amp;#039;] = &amp;quot;education upcoming&amp;quot;, [&amp;#039;education edition upcoming&amp;#039;] = &amp;quot;education upcoming&amp;quot;, [&amp;#039;upcoming education&amp;#039;] = &amp;quot;education upcoming&amp;quot;, [&amp;#039;upcoming education edition&amp;#039;] = &amp;quot;education upcoming&amp;quot;,&lt;br /&gt;
xbox360 = &amp;quot;xbox360&amp;quot;, [&amp;#039;xbox 360&amp;#039;] = &amp;quot;xbox360&amp;quot;, [&amp;#039;xbox 360 edition&amp;#039;] = &amp;quot;xbox360&amp;quot;,&lt;br /&gt;
xbone = &amp;quot;xbone&amp;quot;, xboxone = &amp;quot;xbone&amp;quot;, [&amp;#039;xbox one&amp;#039;] = &amp;quot;xbone&amp;quot;, [&amp;#039;xbox one edition&amp;#039;] = &amp;quot;xbone&amp;quot;,&lt;br /&gt;
ps3 = &amp;quot;ps3&amp;quot;, playstation3 = &amp;quot;ps3&amp;quot;, [&amp;#039;playstation 3&amp;#039;] = &amp;quot;ps3&amp;quot;, [&amp;#039;playstation 3 edition&amp;#039;] = &amp;quot;ps3&amp;quot;,&lt;br /&gt;
ps4 = &amp;quot;ps4&amp;quot;, playstation4 = &amp;quot;ps4&amp;quot;, [&amp;#039;playstation 4&amp;#039;] = &amp;quot;ps4&amp;quot;, [&amp;#039;playstation 4 edition&amp;#039;] = &amp;quot;ps4&amp;quot;,&lt;br /&gt;
psvita = &amp;quot;psvita&amp;quot;, psv = &amp;quot;psvita&amp;quot;, playstationvita = &amp;quot;psvita&amp;quot;, [&amp;#039;playstation vita&amp;#039;] = &amp;quot;psvita&amp;quot;, [&amp;#039;playstation vita edition&amp;#039;] = &amp;quot;psvita&amp;quot;,&lt;br /&gt;
wiiu = &amp;quot;wiiu&amp;quot;, [&amp;#039;wii u&amp;#039;] = &amp;quot;wiiu&amp;quot;, [&amp;#039;wii u edition&amp;#039;] = &amp;quot;wiiu&amp;quot;,&lt;br /&gt;
switch = &amp;quot;switch&amp;quot;, nsw = &amp;quot;switch&amp;quot;, nintendoswitch = &amp;quot;switch&amp;quot;, [&amp;#039;nintendo switch&amp;#039;] = &amp;quot;switch&amp;quot;, [&amp;#039;nintendo switch edition&amp;#039;] = &amp;quot;switch&amp;quot;,&lt;br /&gt;
earth = &amp;quot;earth&amp;quot;, [&amp;#039;minecraft earth&amp;#039;] = &amp;quot;earth&amp;quot;,&lt;br /&gt;
dungeons = &amp;quot;dungeons&amp;quot;, [&amp;#039;minecraft dungeons&amp;#039;] = &amp;quot;dungeons&amp;quot;,&lt;br /&gt;
[&amp;#039;dungeons arcade&amp;#039;] = &amp;quot;dungeons arcade&amp;quot;, [&amp;#039;minecraft dungeons arcade&amp;#039;] = &amp;quot;dungeons arcade&amp;quot;,&lt;br /&gt;
legends = &amp;quot;legends&amp;quot;, [&amp;#039;minecraft legends&amp;#039;] = &amp;quot;legends&amp;quot;,&lt;br /&gt;
blast = &amp;quot;blast&amp;quot;, [&amp;#039;minecraft blast&amp;#039;] = &amp;quot;blast&amp;quot;,&lt;br /&gt;
china = &amp;quot;china&amp;quot;, [&amp;#039;china edition&amp;#039;] = &amp;quot;china&amp;quot;,&lt;br /&gt;
bs = &amp;quot;bedrock server&amp;quot;, bds = &amp;quot;bedrock server&amp;quot;, [&amp;#039;bedrock server&amp;#039;] = &amp;quot;bedrock server&amp;quot;, [&amp;#039;bedrock dedicated server&amp;#039;] = &amp;quot;bedrock server&amp;quot;,&lt;br /&gt;
[&amp;#039;?&amp;#039;] = &amp;quot;unknown&amp;quot;, unknown = &amp;quot;unknown&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local headerText = {&lt;br /&gt;
    [&amp;#039;java pre-Classic&amp;#039;]    = &amp;#039;[[Java Edition pre-Classic]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;java Classic&amp;#039;]        = &amp;#039;[[Java Edition Classic]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;java Indev&amp;#039;]          = &amp;#039;[[Java Edition Indev]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;java Infdev&amp;#039;]         = &amp;#039;[[Java Edition Infdev]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;java Alpha&amp;#039;]          = &amp;#039;[[Java Edition Alpha]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;java Beta&amp;#039;]           = &amp;#039;[[Java Edition Beta]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;java&amp;#039;]                = &amp;quot;[[Java Edition version history|&amp;#039;&amp;#039;Java Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;java Combat Test&amp;#039;]    = &amp;quot;[[Java Edition Combat Tests]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;java upcoming&amp;#039;]       = &amp;quot;[[Planned versions#Java Edition|Upcoming &amp;#039;&amp;#039;Java Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket Alpha&amp;#039;]        = &amp;#039;[[Pocket Edition Alpha]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;pocket&amp;#039;]              = &amp;quot;&amp;#039;&amp;#039;[[Pocket Edition]]&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock&amp;#039;]             = &amp;quot;[[Bedrock Edition version history|&amp;#039;&amp;#039;Bedrock Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock upcoming&amp;#039;]    = &amp;quot;[[Planned versions#Bedrock Edition|Upcoming &amp;#039;&amp;#039;Bedrock Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;minecraftedu&amp;#039;]        = &amp;quot;[[MinecraftEdu#Versions|&amp;#039;&amp;#039;MinecraftEdu&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;education&amp;#039;]           = &amp;quot;[[Minecraft Education version history|&amp;#039;&amp;#039;Minecraft Education&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;education upcoming&amp;#039;]  = &amp;quot;[[Planned versions#Minecraft Education|Upcoming &amp;#039;&amp;#039;Minecraft Education&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;china&amp;#039;]               = &amp;quot;[[China Edition#History|&amp;#039;&amp;#039;China Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock server&amp;#039;]      = &amp;#039;[[Bedrock Dedicated Server#History|Realms Plus &amp;amp; Bedrock Dedicated Server]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;console&amp;#039;]             = &amp;#039;[[Legacy Console Edition version history|Legacy Console Edition]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;realms&amp;#039;]              = &amp;#039;[[Realms#History|Realms]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;new3ds&amp;#039;]              = &amp;quot;[[New Nintendo 3DS Edition version history|&amp;#039;&amp;#039;New Nintendo 3DS Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;pi&amp;#039;]                  = &amp;quot;[[Pi Edition#Release|&amp;#039;&amp;#039;Pi Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;xbox360&amp;#039;]             = &amp;quot;[[Legacy Console Edition version history|&amp;#039;&amp;#039;Xbox 360 Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;xbone&amp;#039;]               = &amp;quot;[[Legacy Console Edition version history|&amp;#039;&amp;#039;Xbox One Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;ps3&amp;#039;]                 = &amp;quot;[[Legacy Console Edition version history|&amp;#039;&amp;#039;PlayStation 3 Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;ps4&amp;#039;]                 = &amp;quot;[[Legacy Console Edition version history|&amp;#039;&amp;#039;PlayStation 4 Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;psvita&amp;#039;]              = &amp;quot;[[Legacy Console Edition version history|&amp;#039;&amp;#039;PlayStation Vita Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;wiiu&amp;#039;]                = &amp;quot;[[Legacy Console Edition version history|&amp;#039;&amp;#039;Wii U Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;switch&amp;#039;]              = &amp;quot;[[Legacy Console Edition version history|&amp;#039;&amp;#039;Nintendo Switch Edition&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;earth&amp;#039;]               = &amp;quot;[[Earth:Version history|&amp;#039;&amp;#039;Minecraft Earth&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;dungeons&amp;#039;]            = &amp;quot;[[Dungeons:Version history|&amp;#039;&amp;#039;Minecraft Dungeons&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;dungeons arcade&amp;#039;]     = &amp;quot;[[Dungeons:Arcade|&amp;#039;&amp;#039;Minecraft Dungeons Arcade&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;legends&amp;#039;]             = &amp;quot;[[Legends:Version history|&amp;#039;&amp;#039;Minecraft Legends&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;blast&amp;#039;]               = &amp;quot;[[Minecraft Blast#Version history|&amp;#039;&amp;#039;Minecraft Blast&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;launcher&amp;#039;]            = &amp;quot;[[Launcher version history|&amp;#039;&amp;#039;Minecraft Launcher&amp;#039;&amp;#039;]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;unknown&amp;#039;]             = &amp;quot;Unknown&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local headerCategories = {&lt;br /&gt;
    [&amp;#039;java upcoming&amp;#039;]       = &amp;quot;[[Category:Java Edition upcoming]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock upcoming&amp;#039;]    = &amp;quot;[[Category:Bedrock Edition upcoming]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;education upcoming&amp;#039;]  = &amp;quot;[[Category:Minecraft Education upcoming]]&amp;quot;,&lt;br /&gt;
    [&amp;#039;unknown&amp;#039;]             = &amp;quot;[[Category:Unknown version history]]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local versionLinks = {&lt;br /&gt;
    [&amp;#039;java upcoming&amp;#039;] = &amp;#039;java&amp;#039;,&lt;br /&gt;
    [&amp;#039;bedrock upcoming&amp;#039;] = &amp;#039;bedrock&amp;#039;,&lt;br /&gt;
    [&amp;#039;education upcoming&amp;#039;] = &amp;#039;education&amp;#039;,&lt;br /&gt;
    [&amp;#039;bedrock server&amp;#039;] = &amp;#039;Bedrock Dedicated Server&amp;#039;,&lt;br /&gt;
    [&amp;#039;dungeons arcade&amp;#039;] = &amp;#039;Dungeons:&amp;#039; -- This is needed or else version link module doesn&amp;#039;t correctly link to the arcade&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local experimentLinks = {&lt;br /&gt;
    [&amp;#039;Minecart Improvements&amp;#039;] = &amp;#039;[[Minecart Improvements]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Redstone Experiments&amp;#039;] = &amp;#039;[[Redstone Experiments]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Villager Trade Rebalance&amp;#039;] = &amp;#039;[[Villager Trade Rebalance]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Villager Trade Rebalancing&amp;#039;] = &amp;#039;[[Villager Trade Rebalance|Villager Trade Rebalancing]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Drop 1 of 2026&amp;#039;] = &amp;#039;[[First Drop 2026|Drop 1 of 2026]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Beta APIs&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators|Beta APIs]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Experimental Creator Camera Features&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators|Experimental Creator Camera Features]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Render Dragon Features for Creators&amp;#039;] = &amp;#039;[[Vibrant Visuals#Render Dragon Features for Creators|Render Dragon Features for Creators]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Upcoming Creator Features&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators|Upcoming Creator Features]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Bundles&amp;#039;] = &amp;#039;[[Bundle]]s&amp;#039;,&lt;br /&gt;
    [&amp;#039;Locator Bar&amp;#039;] = &amp;#039;[[Locator Bar]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Update 1.20&amp;#039;] = &amp;#039;[[Trails &amp;amp; Tales|Update 1.20]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Update 1.21&amp;#039;] = &amp;#039;[[Tricky Trials|Update 1.21]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Winter Drop&amp;#039;] = &amp;#039;[[The Garden Awakens|Winter Drop]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Additional Modding Capabilities&amp;#039;] = &amp;#039;[[Bedrock Edition 1.16.100|Additional Modding Capabilities]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Aim Assist&amp;#039;] = &amp;#039;[[Commands/aimassist|Aim Assist]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Armadillo and Wolf Armor&amp;#039;] = &amp;#039;[[Armored Paws|Armadillo and Wolf Armor]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Caves and Cliffs&amp;#039;] = &amp;#039;[[Bedrock Edition 1.18.0|Caves and Cliffs]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Creator Cameras: Focus Target Camera&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators|Creator Cameras: Focus Target Camera]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Creation of Custom Biomes&amp;#039;] = &amp;#039;[[Bedrock Edition 1.16.100|Creation of Custom Biomes]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Creator Cameras: New Third-Person Presets&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators|Creator Cameras: New Third-Person Presets]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Custom biomes&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators#Custom biomes]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Custom Components V2&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators|Custom Components V2]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Data-Driven Jigsaw Structures&amp;#039;] = &amp;#039;[[Experiments#Add-On Creators|Data-Driven Jigsaw Structures]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Drop 1 2025&amp;#039;] = &amp;#039;[[Spring to Life|Drop 1 2025]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Drop 2 2025&amp;#039;] = &amp;#039;[[Chase the Skies|Drop 2 2025]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Drop 3 2025&amp;#039;] = &amp;#039;[[The Copper Age|Drop 3 2025]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Experimental Cameras&amp;#039;] = &amp;#039;[[Bedrock Edition 1.20.0|Experimental Cameras]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Holiday Creator Features&amp;#039;] = &amp;#039;[[Bedrock Edition 1.16.100|Holiday Creator Features]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Next Major Update&amp;#039;] = &amp;#039;[[Trails &amp;amp; Tales|Next Major Update]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Short Sneaking and Crawling&amp;#039;] = &amp;#039;[[Sneaking|Short Sneaking]] and [[Crawling]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Sniffer&amp;#039;] = &amp;#039;[[Sniffer]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Spectator Mode&amp;#039;] = &amp;#039;[[Spectator|Spectator Mode]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Vanilla Experiments&amp;#039;] = &amp;#039;[[Bedrock Edition 1.18.0|Vanilla Experiments]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Vibrant Visuals&amp;#039;] = &amp;#039;[[Vibrant Visuals]]&amp;#039;,&lt;br /&gt;
    [&amp;#039;Wild Update&amp;#039;] = &amp;#039;[[The Wild Update|Wild Update]]&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local sortKeys = {&lt;br /&gt;
	-- is this still needed? why is it not updated since 2020/1.16 then?&lt;br /&gt;
    [&amp;#039;java 1.0.0&amp;#039;] = &amp;quot;A&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.1&amp;#039;] = &amp;quot;B&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.2.1&amp;#039;] = &amp;quot;C&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.3.1&amp;#039;] = &amp;quot;D&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.4.2&amp;#039;] = &amp;quot;E&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.5&amp;#039;] = &amp;quot;F&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.6.1&amp;#039;] = &amp;quot;G&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.7.2&amp;#039;] = &amp;quot;F&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.8&amp;#039;] = &amp;quot;G&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.9&amp;#039;] = &amp;quot;H&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.10&amp;#039;] = &amp;quot;I&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.11&amp;#039;] = &amp;quot;J&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.12&amp;#039;] = &amp;quot;K&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.13&amp;#039;] = &amp;quot;L&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.14&amp;#039;] = &amp;quot;M&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.15&amp;#039;] = &amp;quot;N&amp;quot;,&lt;br /&gt;
    [&amp;#039;java 1.16&amp;#039;] = &amp;quot;O&amp;quot;,&lt;br /&gt;
    [&amp;#039;java texture update&amp;#039;] = &amp;quot;_&amp;quot;,&lt;br /&gt;
    [&amp;#039;java indev 0.31&amp;#039;] = &amp;quot;0&amp;quot;,&lt;br /&gt;
    [&amp;#039;java alpha v1.2.0&amp;#039;] = &amp;quot;2&amp;quot;,&lt;br /&gt;
    [&amp;#039;java beta 1.6&amp;#039;] = &amp;quot;6&amp;quot;,&lt;br /&gt;
    [&amp;#039;java beta 1.8&amp;#039;] = &amp;quot;8&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.8.0&amp;#039;] = &amp;quot;A&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.8.0&amp;#039;] = &amp;quot;A&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.9.0&amp;#039;] = &amp;quot;B&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.9.0&amp;#039;] = &amp;quot;B&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.10.0&amp;#039;] = &amp;quot;C&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.10.0&amp;#039;] = &amp;quot;C&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.11.0&amp;#039;] = &amp;quot;D&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.11.0&amp;#039;] = &amp;quot;D&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.12.1&amp;#039;] = &amp;quot;E&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.12.1&amp;#039;] = &amp;quot;E&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.13.0&amp;#039;] = &amp;quot;F&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.13.0&amp;#039;] = &amp;quot;F&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.14.0&amp;#039;] = &amp;quot;G&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.14.0&amp;#039;] = &amp;quot;G&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.15.0&amp;#039;] = &amp;quot;H&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.15.0&amp;#039;] = &amp;quot;H&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha v0.16.0&amp;#039;] = &amp;quot;I&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket alpha 0.16.0&amp;#039;] = &amp;quot;I&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket 1.0.0&amp;#039;] = &amp;quot;X&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket 1.1.0&amp;#039;] = &amp;quot;Y&amp;quot;,&lt;br /&gt;
    [&amp;#039;pocket 1.1.3&amp;#039;] = &amp;quot;Z&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.2.0&amp;#039;] = &amp;quot;A&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.2.13&amp;#039;] = &amp;quot;B&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.4.0&amp;#039;] = &amp;quot;C&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.5.0&amp;#039;] = &amp;quot;D&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.6.0&amp;#039;] = &amp;quot;E&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.7.0&amp;#039;] = &amp;quot;F&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.8.0&amp;#039;] = &amp;quot;G&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.9.0&amp;#039;] = &amp;quot;H&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.10.0&amp;#039;] = &amp;quot;I&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.11.0&amp;#039;] = &amp;quot;J&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.12.0&amp;#039;] = &amp;quot;K&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.13.0&amp;#039;] = &amp;quot;L&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.14.0&amp;#039;] = &amp;quot;M&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.14.60&amp;#039;] = &amp;quot;M&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.16.0&amp;#039;] = &amp;quot;N&amp;quot;,&lt;br /&gt;
    [&amp;#039;bedrock 1.16.100&amp;#039;] = &amp;quot;N&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function isInMainspace()&lt;br /&gt;
	return mw.title.getCurrentTitle().namespace == 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getUnknownCat()&lt;br /&gt;
    if (mode==nil or mode==&amp;#039;unknown&amp;#039;) then return &amp;#039;&amp;#039; end&lt;br /&gt;
    if (mode==&amp;#039;xbox360&amp;#039; or mode==&amp;#039;xbone&amp;#039; or mode==&amp;#039;ps3&amp;#039; or mode==&amp;#039;ps4&amp;#039; or mode==&amp;#039;psvita&amp;#039; or mode==&amp;#039;wiiu&amp;#039; or mode==&amp;#039;switch&amp;#039;) then mode = &amp;#039;console&amp;#039; end&lt;br /&gt;
    local sortKey = sortKeys[mode .. (currentVersion or &amp;#039;&amp;#039;)] or &amp;quot;*&amp;quot;&lt;br /&gt;
    if isInMainspace() then&lt;br /&gt;
    	return &amp;#039;[[Category:Unknown &amp;#039; .. string.gsub(mode, &amp;#039;^%l&amp;#039;, string.upper) .. &amp;#039; version history|&amp;#039; .. sortKey .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function resetConsole()&lt;br /&gt;
    currentConsoleVersions.xbox360 = nil&lt;br /&gt;
    currentConsoleVersions.xbone = nil&lt;br /&gt;
    currentConsoleVersions.ps3 = nil&lt;br /&gt;
    currentConsoleVersions.ps4 = nil&lt;br /&gt;
    currentConsoleVersions.psvita = nil&lt;br /&gt;
    currentConsoleVersions.wiiu = nil&lt;br /&gt;
    currentConsoleVersions.switch = nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function reset()&lt;br /&gt;
    currentVersion = nil&lt;br /&gt;
    currentExpVersion = nil&lt;br /&gt;
    resetConsole()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function footReset()&lt;br /&gt;
    mode = nil&lt;br /&gt;
    reset()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getVersionLink(link,text,isDev)&lt;br /&gt;
    if (link==&amp;#039;none&amp;#039;) then &lt;br /&gt;
      	if (text==&amp;#039;unknown&amp;#039; or text==&amp;#039;?&amp;#039;) then return &amp;#039;?&amp;#039;..getUnknownCat() end&lt;br /&gt;
		if (isDev and text==&amp;#039;java&amp;#039;) then return &amp;#039;&amp;#039; end&lt;br /&gt;
      	return text&lt;br /&gt;
    end&lt;br /&gt;
    if (link==&amp;#039;ver&amp;#039;) then &lt;br /&gt;
      	if (text==&amp;#039;unknown&amp;#039; or text==&amp;#039;?&amp;#039;) then&lt;br /&gt;
      		return &amp;#039;[[:Category:Unknown version history|?]]&amp;#039; .. (isInMainspace() and getUnknownCat() or &amp;#039;&amp;#039;)&lt;br /&gt;
  		end&lt;br /&gt;
		if (isDev and text==&amp;#039;java&amp;#039;) then&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
      	if ((not isDev) and (mode==&amp;#039;realms&amp;#039;)) then&lt;br /&gt;
      		return text&lt;br /&gt;
  		end&lt;br /&gt;
      	local c&lt;br /&gt;
		if (not isDev) then&lt;br /&gt;
			if (text==&amp;#039;Pre-release&amp;#039; and mode == &amp;#039;pocket Alpha&amp;#039;) then c = &amp;#039;pocket Pre-release&amp;#039;&lt;br /&gt;
			else c = (versionLinks[mode] or mode)..&amp;#039; &amp;#039;..text&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
            c=text:lower()&lt;br /&gt;
            if (c:match(&amp;#039;^test build&amp;#039;) or c:match(&amp;#039;^pre%-release&amp;#039;) or c:match(&amp;#039;^build&amp;#039;) or c:match(&amp;#039;^20[01]&amp;#039;) or c:match(&amp;#039;^release candidate&amp;#039;) or c:match(&amp;#039;^experimental snapshot&amp;#039;)) then c=currentVersion..&amp;#039; &amp;#039;..text&lt;br /&gt;
            elseif (c:match(&amp;#039;^preview [0-9]&amp;#039;)) then c=text -- Bedrock edition previews&lt;br /&gt;
            elseif (c:match(&amp;#039;^pre&amp;#039;)) then c=currentVersion..&amp;#039;-&amp;#039;..text&lt;br /&gt;
            elseif (c:match(&amp;#039;^snapshot&amp;#039;)) then c=currentVersion..&amp;#039; Snapshot &amp;#039;..text:gsub(&amp;#039;^snapshot&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
            elseif (c:match(&amp;#039;^snap&amp;#039;)) then c=currentVersion..&amp;#039; Snapshot &amp;#039;..text:gsub(&amp;#039;^snap&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
            elseif (c:match(&amp;#039;^rc&amp;#039;)) then c=currentVersion..&amp;#039;-&amp;#039;..text&lt;br /&gt;
            elseif (c:match(&amp;#039;^release&amp;#039;)) then c=currentVersion&lt;br /&gt;
            else c = text&lt;br /&gt;
            end&lt;br /&gt;
			c=(versionLinks[mode] or mode)..&amp;#039; &amp;#039;..c&lt;br /&gt;
		end&lt;br /&gt;
      	return versionLink({c,text:gsub( &amp;#039;^%((.*)%)$&amp;#039;, &amp;#039;%1&amp;#039;)})&lt;br /&gt;
    end&lt;br /&gt;
    local cat = &amp;#039;&amp;#039;&lt;br /&gt;
    if (text==&amp;#039;unknown&amp;#039; or text==&amp;#039;?&amp;#039;) then&lt;br /&gt;
    	cat = getUnknownCat()&lt;br /&gt;
	end&lt;br /&gt;
    if (link:find(&amp;#039;//&amp;#039;,1,true)) then&lt;br /&gt;
    	return &amp;#039;[&amp;#039;..link..&amp;#039; &amp;#039;..text..&amp;#039;]&amp;#039;..(isInMainspace() and cat or &amp;#039;&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;[[&amp;#039;..link..&amp;#039;|&amp;#039;..text..&amp;#039;]]&amp;#039;..cat&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function consoleVersionLink(platform,version,link)&lt;br /&gt;
    if (version==&amp;#039;none&amp;#039;) then return &amp;#039; &amp;#039; end&lt;br /&gt;
    if (version==&amp;#039;unknown&amp;#039; or version==&amp;#039;?&amp;#039;) then&lt;br /&gt;
    	return &amp;#039;?&amp;#039;..(isInMainspace() and getUnknownCat() or &amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
    if (link) then&lt;br /&gt;
    	if (link==&amp;#039;none&amp;#039;) then return version end&lt;br /&gt;
    	if (link:find(&amp;#039;//&amp;#039;,1,true)) then return &amp;#039;[&amp;#039;..link..&amp;#039; &amp;#039;..version..&amp;#039;]&amp;#039; else return &amp;#039;[[&amp;#039;..link..&amp;#039;|&amp;#039;..version..&amp;#039;]]&amp;#039; end&lt;br /&gt;
    end&lt;br /&gt;
    local r=platform..&amp;#039; &amp;#039;..version&lt;br /&gt;
    return versionLink({r,version})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addConsoleVersions(platform,version,link,prnt)&lt;br /&gt;
    if (((version~=nil and version~=&amp;#039;&amp;#039;) and version == currentConsoleVersions[platform]) or ((version==nil or version==&amp;#039;&amp;#039;) and currentConsoleVersions[platform]~=nil))&lt;br /&gt;
    then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    prnt(&amp;#039;&amp;lt;th class=&amp;quot;nowrap&amp;quot; rowspan=&amp;quot;&amp;#039;)&lt;br /&gt;
    currentConsoleVersions[platform] = version or &amp;quot;none&amp;quot;&lt;br /&gt;
    consoleRowspanIndexes[platform] = consoleRowspanIndexes[platform] + 1&lt;br /&gt;
    prnt(consoleRowspans[platform][consoleRowspanIndexes[platform]]..&amp;#039;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
    prnt(consoleVersionLink(platform,version or &amp;#039;none&amp;#039;,link))&lt;br /&gt;
    prnt(&amp;#039;&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function consoleSubHeader(content, prnt)&lt;br /&gt;
	prnt(&amp;quot;&amp;lt;th style=\&amp;quot;border-style: none dashed\&amp;quot;&amp;gt;&amp;quot; .. content .. &amp;quot;&amp;lt;/th&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processLine(args, prnt)&lt;br /&gt;
    local snapRows = 1&lt;br /&gt;
    for i,_ in ipairs(args) do if (i&amp;gt;3) then snapRows = snapRows+1 end end&lt;br /&gt;
&lt;br /&gt;
    --Header or Foot&lt;br /&gt;
    if (args[1] ~= nil and args[1] ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
        local temp = (args[1]):lower()&lt;br /&gt;
        if (temp == &amp;#039;foot&amp;#039;) then&lt;br /&gt;
            prnt(&amp;#039;&amp;lt;/table&amp;gt;&amp;#039;)&lt;br /&gt;
            footReset()&lt;br /&gt;
            tableHead = 0&lt;br /&gt;
            return&lt;br /&gt;
        end&lt;br /&gt;
        mode = editionAlias[temp] or args[1]&lt;br /&gt;
        reset()&lt;br /&gt;
        prnt(&amp;#039;&amp;lt;tr class=&amp;quot;collapsible collapsible-rows&amp;quot;&amp;gt;&amp;lt;th colspan=&amp;quot;8&amp;quot; style=&amp;quot;border-bottom: none&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
        prnt(headerText[mode] or mode)&lt;br /&gt;
        if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        	prnt(headerCategories[mode] or &amp;#039;&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
        prnt(&amp;#039;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;)&lt;br /&gt;
        if mode == &amp;#039;console&amp;#039; then&lt;br /&gt;
        	prnt(&amp;#039;&amp;lt;tr style=&amp;quot;font-size: smaller&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;[[Xbox 360 Edition|Xbox&amp;amp;nbsp;360]]&amp;quot;, prnt)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;[[Xbox One Edition|Xbox&amp;amp;nbsp;One]]&amp;quot;, prnt)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;[[PlayStation 3 Edition|PS3]]&amp;quot;, prnt)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;[[PlayStation 4 Edition|PS4]]&amp;quot;, prnt)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;[[PlayStation Vita Edition|PS&amp;amp;nbsp;Vita]]&amp;quot;, prnt)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;[[Wii U Edition|Wii U]]&amp;quot;, prnt)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;[[Nintendo Switch Edition|Switch]]&amp;quot;, prnt)&lt;br /&gt;
	        consoleSubHeader(&amp;quot;&amp;quot;, prnt)&lt;br /&gt;
	        prnt(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    --Content rows&lt;br /&gt;
&lt;br /&gt;
    prnt(&amp;#039;&amp;lt;tr&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    if ((mode == &amp;#039;console&amp;#039;) and (args.xbox or args.xbone or args.ps3 or args.ps4 or args.psvita or args.wiiu or args.switch )) then&lt;br /&gt;
        currentVersion = nil&lt;br /&gt;
&lt;br /&gt;
        if (args[3] ~= nil and args[3] ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
            snapRows = snapRows+1&lt;br /&gt;
        end&lt;br /&gt;
  &lt;br /&gt;
        addConsoleVersions(&amp;quot;xbox360&amp;quot;,args.xbox,args.xboxlink,prnt)&lt;br /&gt;
        addConsoleVersions(&amp;quot;xbone&amp;quot;,args.xbone,args.xbonelink,prnt)&lt;br /&gt;
        addConsoleVersions(&amp;quot;ps3&amp;quot;,args.ps3,args.ps3link,prnt)&lt;br /&gt;
        addConsoleVersions(&amp;quot;ps4&amp;quot;,args.ps4,args.ps4link,prnt)&lt;br /&gt;
        addConsoleVersions(&amp;quot;psvita&amp;quot;,args.psvita,args.psvitalink,prnt)&lt;br /&gt;
        addConsoleVersions(&amp;quot;wiiu&amp;quot;,args.wiiu,args.wiiulink,prnt)&lt;br /&gt;
        addConsoleVersions(&amp;quot;switch&amp;quot;,args.switch,args.switchlink,prnt)&lt;br /&gt;
  &lt;br /&gt;
        prnt(&amp;#039;&amp;lt;td&amp;gt;&amp;#039;..args[2]..&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;)&lt;br /&gt;
  &lt;br /&gt;
        for k,v in ipairs(args) do if (k&amp;gt;2) then prnt(&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039;..v..&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;) end end&lt;br /&gt;
&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    --Other versions:&lt;br /&gt;
&lt;br /&gt;
    resetConsole()&lt;br /&gt;
    if ((args.dev == nil) or (args[2] and args[2]~=&amp;#039;&amp;#039;) or (args.exp and args.exp~=&amp;#039;&amp;#039; and args.exp ~= currentExpVersion)) then&lt;br /&gt;
  	    currentVersion = nil&lt;br /&gt;
  	    currentExpVersion = nil&lt;br /&gt;
        prnt(&amp;#039;&amp;lt;th &amp;#039;)&lt;br /&gt;
        if (not (args.link or args[2]:find(&amp;#039;(&amp;#039;,1,true))) then prnt(&amp;#039;class=&amp;quot;nowrap&amp;quot;&amp;#039;) end&lt;br /&gt;
        prnt(&amp;#039; rowspan=&amp;quot;&amp;#039;)&lt;br /&gt;
        if (args.exp ~= nil) then&lt;br /&gt;
        	currentExpVersion = args.exp&lt;br /&gt;
        end&lt;br /&gt;
        if (args.dev ~= nil) then&lt;br /&gt;
            currentVersion = args[2]&lt;br /&gt;
            rowspanIndex = rowspanIndex + 1&lt;br /&gt;
            prnt(rowspans[rowspanIndex]..&amp;#039;&amp;quot; colspan=&amp;quot;3&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            prnt(snapRows .. &amp;#039;&amp;quot; colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
        prnt(getVersionLink(args.link or &amp;#039;ver&amp;#039;, args[2],false))&lt;br /&gt;
        if (args.exp ~= nil or args.experiment ~= nil) then&lt;br /&gt;
        	local experiment = (args.exp or args.experiment)&lt;br /&gt;
        	prnt(&amp;quot;&amp;lt;div class=\&amp;quot;historytable-experiment\&amp;quot;&amp;gt;&amp;lt;div&amp;gt;Experiment&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;span&amp;gt;&amp;quot;..(experimentLinks[experiment] or experiment)..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;)	&lt;br /&gt;
        end&lt;br /&gt;
        prnt(&amp;#039;&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if (args.dev ~= nil) then&lt;br /&gt;
        prnt(&amp;#039;&amp;lt;th colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;&amp;#039; .. snapRows ..&amp;#039;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
        prnt(getVersionLink(args.slink or &amp;#039;ver&amp;#039;, args.dev,true))&lt;br /&gt;
        prnt(&amp;#039;&amp;lt;/th&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	if args[3] then&lt;br /&gt;
    	prnt(&amp;#039;&amp;lt;td&amp;gt;&amp;#039;..args[3]..&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    for k,v in ipairs(args) do if (k&amp;gt;3) then prnt(&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039;..v..&amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;) end end&lt;br /&gt;
&lt;br /&gt;
    return&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Takes all args and puts them into a json string&lt;br /&gt;
function p.printArgs(frame)&lt;br /&gt;
	return mw.text.jsonEncode(frame:getParent().args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Undo the serialization for parsing&lt;br /&gt;
local function deserialize(args)&lt;br /&gt;
	local e&lt;br /&gt;
	local out = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		e, out[k] = pcall( mw.text.jsonDecode, v )&lt;br /&gt;
		if not e then&lt;br /&gt;
			local errorCat = &amp;#039;&amp;#039;&lt;br /&gt;
			local errorMsg = mw.message.new( &amp;#039;scribunto-common-error-category&amp;#039; )&lt;br /&gt;
			if not errorMsg:isDisabled() then&lt;br /&gt;
				errorCat = &amp;#039;[[Category:&amp;#039;..errorMsg:plain()..&amp;#039;]]&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			out[k] = { &amp;#039;&amp;#039;, &amp;#039;unknown&amp;#039;, v..&amp;#039; &amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Lua error: &amp;#039;..out[k]..errorCat..&amp;#039; Input:&amp;#039;.. v ..&amp;#039;&amp;lt;/strong&amp;gt;&amp;#039; }&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function countConsoleRowspans(platform,version,snapRows)&lt;br /&gt;
    if (((version~=nil and version~=&amp;#039;&amp;#039;) and version == currentConsoleVersions[platform]) or ((version==nil or version==&amp;#039;&amp;#039;) and currentConsoleVersions[platform]~=nil))&lt;br /&gt;
    then&lt;br /&gt;
        consoleRowspans[platform][consoleRowspanIndexes[platform]] = consoleRowspans[platform][consoleRowspanIndexes[platform]] + snapRows&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    currentConsoleVersions[platform] = version or &amp;quot;none&amp;quot;&lt;br /&gt;
    consoleRowspanIndexes[platform] = consoleRowspanIndexes[platform] + 1&lt;br /&gt;
    consoleRowspans[platform][consoleRowspanIndexes[platform]] = (consoleRowspans[platform][consoleRowspanIndexes[platform]] or 0) + snapRows&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function countRowspan(args)&lt;br /&gt;
    local snapRows = 1&lt;br /&gt;
    for i,_ in ipairs(args) do if (i&amp;gt;3) then snapRows = snapRows+1 end end&lt;br /&gt;
&lt;br /&gt;
    --Header or Foot&lt;br /&gt;
    if (args[1] ~= nil and args[1] ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
        local temp = (args[1]):lower()&lt;br /&gt;
        if (temp == &amp;#039;foot&amp;#039;) then&lt;br /&gt;
            footReset()&lt;br /&gt;
            return&lt;br /&gt;
        end&lt;br /&gt;
        mode = editionAlias[temp] or args[1]&lt;br /&gt;
        reset()&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    --Content rows&lt;br /&gt;
&lt;br /&gt;
    if ((mode == &amp;#039;console&amp;#039;) and (args.xbox or args.xbone or args.ps3 or args.ps4 or args.psvita or args.wiiu or args.switch )) then&lt;br /&gt;
        currentVersion = nil&lt;br /&gt;
&lt;br /&gt;
        if (args[3] ~= nil and args[3] ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
            snapRows = snapRows+1&lt;br /&gt;
        end&lt;br /&gt;
  &lt;br /&gt;
        countConsoleRowspans(&amp;quot;xbox360&amp;quot;,args.xbox,snapRows)&lt;br /&gt;
        countConsoleRowspans(&amp;quot;xbone&amp;quot;,args.xbone,snapRows)&lt;br /&gt;
        countConsoleRowspans(&amp;quot;ps3&amp;quot;,args.ps3,snapRows)&lt;br /&gt;
        countConsoleRowspans(&amp;quot;ps4&amp;quot;,args.ps4,snapRows)&lt;br /&gt;
        countConsoleRowspans(&amp;quot;psvita&amp;quot;,args.psvita,snapRows)&lt;br /&gt;
        countConsoleRowspans(&amp;quot;wiiu&amp;quot;,args.wiiu,snapRows)&lt;br /&gt;
        countConsoleRowspans(&amp;quot;switch&amp;quot;,args.switch,snapRows)&lt;br /&gt;
  &lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    --Other versions:&lt;br /&gt;
&lt;br /&gt;
    resetConsole()&lt;br /&gt;
    if ((args.dev == nil) or (args[2] and args[2]~=&amp;#039;&amp;#039;) or (args.exp and args.exp~=&amp;#039;&amp;#039; and args.exp ~= currentExpVersion)) then&lt;br /&gt;
  	    currentVersion = nil&lt;br /&gt;
  	    currentExpVersion = nil&lt;br /&gt;
  	    if (args.dev ~= nil) then&lt;br /&gt;
            currentVersion = args[2]&lt;br /&gt;
            rowspanIndex = rowspanIndex + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if (args.dev ~= nil) then&lt;br /&gt;
        rowspans[rowspanIndex] = (rowspans[rowspanIndex] or 0) + snapRows&lt;br /&gt;
    end&lt;br /&gt;
    return&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function initRowspans()&lt;br /&gt;
    rowspans = {}&lt;br /&gt;
    consoleRowspans = {&lt;br /&gt;
        xbox360 = {},&lt;br /&gt;
        xbone = {},&lt;br /&gt;
        ps3 = {},&lt;br /&gt;
        ps4 = {},&lt;br /&gt;
        psvita = {},&lt;br /&gt;
        wiiu = {},&lt;br /&gt;
        switch = {}&lt;br /&gt;
    }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function resetRowspanIndexes()&lt;br /&gt;
	rowspanIndex = 0&lt;br /&gt;
	consoleRowspanIndexes = {&lt;br /&gt;
		xbox360 = 0,&lt;br /&gt;
		xbone = 0,&lt;br /&gt;
		ps3 = 0,&lt;br /&gt;
		ps4 = 0,&lt;br /&gt;
		psvita = 0,&lt;br /&gt;
		wiiu = 0,&lt;br /&gt;
		switch = 0&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	return p._main(frame:getParent().args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
    local lines = deserialize(args)&lt;br /&gt;
&lt;br /&gt;
    initRowspans()&lt;br /&gt;
    resetRowspanIndexes()&lt;br /&gt;
	for _,v in ipairs(lines) do&lt;br /&gt;
		countRowspan(v)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	resetRowspanIndexes()&lt;br /&gt;
    tableHead=0&lt;br /&gt;
    local result = {}&lt;br /&gt;
	for _,v in ipairs(lines) do&lt;br /&gt;
		if (tableHead~=1) then&lt;br /&gt;
        	table.insert(result, &amp;#039;&amp;lt;table class=&amp;quot;wikitable pixel-image&amp;quot; data-description=&amp;quot;History&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
        	tableHead = 1&lt;br /&gt;
		end&lt;br /&gt;
		processLine(v,function(a) table.insert(result, a) end)&lt;br /&gt;
	end&lt;br /&gt;
	if tableHead~=0 then&lt;br /&gt;
        table.insert(result, &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;)&lt;br /&gt;
        footReset()&lt;br /&gt;
        tableHead = 0&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Merge</name></author>
	</entry>
</feed>