<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.politiballwiki.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hurstbergn</id>
	<title>Politiball Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.politiballwiki.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hurstbergn"/>
	<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/wiki/Special:Contributions/Hurstbergn"/>
	<updated>2026-04-28T00:43:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=File:Italy-icon.png&amp;diff=807</id>
		<title>File:Italy-icon.png</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=File:Italy-icon.png&amp;diff=807"/>
		<updated>2025-05-26T20:55:28Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Vatican_City&amp;diff=793</id>
		<title>Vatican City</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Vatican_City&amp;diff=793"/>
		<updated>2025-05-25T02:54:29Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: Create&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Country|&lt;br /&gt;
|themecolor = #FFE000&lt;br /&gt;
|textcolor = #012169&lt;br /&gt;
|title = {{I|Vatican}} Vatican City {{I|Vatican}}&lt;br /&gt;
|image = &lt;br /&gt;
|caption =  Habemus Papam!&lt;br /&gt;
|aliases = *{{I|Vatican}} Vatican&lt;br /&gt;
*{{I|Vatican}} Holy See&lt;br /&gt;
|period = 1929 - &lt;br /&gt;
|pre = {{I|Italy}} [[Italy]]&lt;br /&gt;
|post = &lt;br /&gt;
|gov = *{{I|Theocracy}}{{I|Christian}} Unitary [[Theocracy|theocratic]] Catholic elective absolute monarchy&lt;br /&gt;
|ruling = {{I|404}} No ruling parties&lt;br /&gt;
|affil = *{{I|Italy}} [[Italy]] (Military protection)&lt;br /&gt;
*{{I|UN}} [[United Nations]] (observing member) &lt;br /&gt;
|likes = *Church&lt;br /&gt;
*Spreading the Gospel&lt;br /&gt;
|dislikes = *Atheists&lt;br /&gt;
}}&lt;br /&gt;
The {{I|Vatican}} &#039;&#039;&#039;Vatican City State&#039;&#039;&#039;, colloquially referred to as &#039;&#039;&#039;Vatican City&#039;&#039;&#039;, is a landlocked micronation located within Rome, {{I|Italy}} [[Italy]], which it is protected by. It is the centre of the Catholic Church; and although the smallest sovereign country in the world by both land area (49 hectares) and population, it exercises a massive amount of soft power worldwide.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
== Politics ==&lt;br /&gt;
&lt;br /&gt;
== Personality ==&lt;br /&gt;
&lt;br /&gt;
== How to Draw ==&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Countries]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Polish_Beer_Lovers%27_Party&amp;diff=661</id>
		<title>Polish Beer Lovers&#039; Party</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Polish_Beer_Lovers%27_Party&amp;diff=661"/>
		<updated>2025-05-12T22:13:38Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: + colors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = FAB43A&lt;br /&gt;
|textcolor = FFF&lt;br /&gt;
|title = {{I|PPPP}} &#039;&#039;&#039;{{PAGENAME}}&#039;&#039;&#039; {{I|PPPP}}&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Polska Partia Przyjaciół Piwa&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|image = &lt;br /&gt;
|caption = &amp;quot;Piwo Piwo Piwo musi być!&amp;quot;&lt;br /&gt;
|aliases = PPPP&lt;br /&gt;
|country = {{I|Poland}} [[Poland]]&lt;br /&gt;
|period = 1990-1993&lt;br /&gt;
|status = Dissolved&lt;br /&gt;
|influences = &lt;br /&gt;
*{{I|Beer}} [[Beer Politics]]&lt;br /&gt;
|pre = &lt;br /&gt;
|affil = &lt;br /&gt;
|likes = &lt;br /&gt;
{{I|Beer}} Beer&lt;br /&gt;
|dislikes =&lt;br /&gt;
{{I|Vodka}} Vodka&lt;br /&gt;
|song =&lt;br /&gt;
}}&lt;br /&gt;
The {{I|PPPP}} &#039;&#039;&#039;Polish Beer-Lovers&#039; Party&#039;&#039;&#039; (&#039;&#039;&#039;PPPP&#039;&#039;&#039;; Polish: &#039;&#039;Polska Partia Przyjaciół Piwa&#039;&#039;, literally &#039;&#039;Polish Party of Friends of Beer&#039;&#039;) was a satirical political party that existed in {{I|Poland}} [[Poland]] from 1990 to 1993. Formed at the end of communist rule; the {{I|PPPP}} PPPP was originally used to promote the consumption of beer instead of vodka, but had shifted towards {{I|Reformism}} [[Reformism]] and {{I|Green}} [[Green Politics]] by the time of its demise.&lt;br /&gt;
&lt;br /&gt;
[[Category:Parties]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Polish_Beer_Lovers%27_Party&amp;diff=659</id>
		<title>Polish Beer Lovers&#039; Party</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Polish_Beer_Lovers%27_Party&amp;diff=659"/>
		<updated>2025-05-11T22:41:56Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: + cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{I|PPPP}} &#039;&#039;&#039;Polish Beer-Lovers&#039; Party&#039;&#039;&#039; (&#039;&#039;&#039;PPPP&#039;&#039;&#039;; Polish: &#039;&#039;Polska Partia Przyjaciół Piwa&#039;&#039;, literally &#039;&#039;Polish Party of Friends of Beer&#039;&#039;) was a satirical political party that existed in {{I|Poland}} [[Poland]] from 1990 to 1993. Formed at the end of communist rule; the {{I|PPPP}} PPPP was originally used to promote the consumption of beer instead of vodka, but had shifted towards {{I|Reformism}} [[Reformism]] and {{I|Green}} Green Politics by the time of its demise.&lt;br /&gt;
&lt;br /&gt;
[[Category:Parties]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Australian_Greens&amp;diff=658</id>
		<title>Australian Greens</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Australian_Greens&amp;diff=658"/>
		<updated>2025-05-11T22:41:31Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: icon fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = #009C3D&lt;br /&gt;
|textcolor = #1E1C1C&lt;br /&gt;
|title = [[File:AustraliaGreens-icon.png]] &#039;&#039;&#039;Australian Greens&#039;&#039;&#039; [[File:AustraliaGreens-icon.png]]&lt;br /&gt;
|image = AustraliaGreens-art.png&lt;br /&gt;
|caption = &amp;quot;A Future for All of Us&amp;quot;&lt;br /&gt;
|aliases = *[[File:AustraliaGreens-icon.png]] AG, Greens&lt;br /&gt;
|country = [[File:Australia-icon.png]] [[Australia|Commonwealth of Australia]]&lt;br /&gt;
|period = 1992-&lt;br /&gt;
|status = Crossbench, third biggest in Parliament.&lt;br /&gt;
|influences = *[[File:Progressivism-icon.png]] [[Progressivism|Social Progressivism]] (most)&lt;br /&gt;
|pre = *[[File:UnitedTasmaniaGroup-icon.png]] [[United Tasmania Group]]&lt;br /&gt;
|affil = *[[File:GlobalGreens-icon.png]] [[Global Greens]]&lt;br /&gt;
|likes = ENVIRONMENT! Also thejuicemedia&lt;br /&gt;
|dislikes = [[File:LiberalAustralia-icon.png]] [[Liberal (Australia)|The Shit Party]], the [[File:NationalAustralia-icon.png]] [[National (Australia)|Very Shit Party]], and the [[File:LabourAustralia-icon.png]] [[Labour (Australia)|Shit-Lite Party]].&lt;br /&gt;
|song = [[File:AustraliaGreens-icon.png]]&lt;br /&gt;
}}&lt;br /&gt;
The {{I|AustraliaGreens}} &#039;&#039;&#039;Australian Greens&#039;&#039;&#039; are a party in Australia. Created in 1992, the Greens grew to be the third-largest political party in Australia by vote and the fourth-largest by elected representation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Parties]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Polish_Beer_Lovers%27_Party&amp;diff=657</id>
		<title>Polish Beer Lovers&#039; Party</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Polish_Beer_Lovers%27_Party&amp;diff=657"/>
		<updated>2025-05-11T22:39:14Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: intro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{I|PPPP}} &#039;&#039;&#039;Polish Beer-Lovers&#039; Party&#039;&#039;&#039; (&#039;&#039;&#039;PPPP&#039;&#039;&#039;; Polish: &#039;&#039;Polska Partia Przyjaciół Piwa&#039;&#039;, literally &#039;&#039;Polish Party of Friends of Beer&#039;&#039;) was a satirical political party that existed in {{I|Poland}} [[Poland]] from 1990 to 1993. Formed at the end of communist rule; the {{I|PPPP}} PPPP was originally used to promote the consumption of beer instead of vodka, but had shifted towards {{I|Reformism}} [[Reformism]] and {{I|Green}} Green Politics by the time of its demise.&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Niue&amp;diff=521</id>
		<title>Niue</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Niue&amp;diff=521"/>
		<updated>2025-05-09T13:31:48Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: /* History */ yes Athena I did.... sounds like you have a Skill issuee mwahahahah&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Country|&lt;br /&gt;
|themecolor = #FEDD00&lt;br /&gt;
|textcolor = #012169&lt;br /&gt;
|title = {{I|Niue}} Niue {{I|Niue}}&lt;br /&gt;
|image = Niue-art.png&lt;br /&gt;
|caption = It&#039;s about drive, It&#039;s about power, WE STAY HUNGRY, WE DEVOUR&lt;br /&gt;
|aliases = *{{I|Niue}} The Rock&lt;br /&gt;
*{{I|Niue}} The Rock of Polynesia&lt;br /&gt;
|period = 1974 - &lt;br /&gt;
|pre = {{I|NZ}} [[New Zealand]]&lt;br /&gt;
|post = &lt;br /&gt;
|gov = *{{I|Parliament}} Parliamentary Democracy with a Constitutional Monarch&lt;br /&gt;
|ruling = {{I|404}} No ruling parties&lt;br /&gt;
|affil = *{{I|NZ}} [[New Zealand]] (Free association)&lt;br /&gt;
*{{I|Commonwealth}} [[Commonwealth of Nations]]&lt;br /&gt;
|likes = *Drive&lt;br /&gt;
*Power&lt;br /&gt;
*Staying Hungry&lt;br /&gt;
*Devouring&lt;br /&gt;
|dislikes = Hurricanes&lt;br /&gt;
}}&lt;br /&gt;
{{I|Niue}} &#039;&#039;&#039;Niue&#039;&#039;&#039; is a country in the Pacific Ocean, on the island of Niue. It is not a member of the {{I|UN}} [[United Nations]] and is instead in free association with {{I|NZ}} [[New Zealand]]. It is often called &amp;quot;The Rock&amp;quot;, or &amp;quot;The Rock of Polynesia&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The island was native to Polynesians at least from the year 900s. It was first seen by Europeans under {{I|JamesCook}} James Cook in 1774. &amp;lt;br&amp;gt;&lt;br /&gt;
Niue became a territory of the UK voluntarily, with the many chiefs of the island sending a letter to {{I|Victoria}} Queen Victoria in 1889 asking for protection in the form of annexation, to which the british agreed (although disagreeing at first) in 1900, and Niue was incorporated into the {{I|UK}} [[United Kingdom|British Empire]], being integrated into {{I|NZ}} [[New Zealand]].&amp;lt;br&amp;gt;&lt;br /&gt;
Niue became independent in a self-governing from New Zealand in 1974 following a referendum, however remained in free association.&lt;br /&gt;
&lt;br /&gt;
== Political Parties == &lt;br /&gt;
Niue has no political parties, and all members of the government are independent politicians. The only party to exist on Niue was the {{I|Niue}} Niue People&#039;s Party, which disbanded in 2003.&lt;br /&gt;
&lt;br /&gt;
== Personality == &lt;br /&gt;
Associates itself with Dwayne &amp;quot;The Rock&amp;quot; Johnson a lot. Believes itself to be &#039;&#039;very&#039;&#039; strong and has a lot of drive to get better, while being rather weak. Very scared of {{I|UN}} [[Untied Nations|UN]].&lt;br /&gt;
&lt;br /&gt;
== How to Draw ==&lt;br /&gt;
*Fill a ball with yellow&lt;br /&gt;
*Draw the Union Jack in the corner&lt;br /&gt;
*Add four stars to the flag on each stripe of the England section&lt;br /&gt;
*Add a blue circle in the middle with a big yellow star.&lt;br /&gt;
&lt;br /&gt;
== Relations ==&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Niue-art.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Countries]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=User:Hurstbergn&amp;diff=518</id>
		<title>User:Hurstbergn</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=User:Hurstbergn&amp;diff=518"/>
		<updated>2025-05-07T21:15:10Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{User&lt;br /&gt;
|title = {{I|Hurstbergn}} &#039;&#039;&#039;Hurstbergn&#039;&#039;&#039; {{I|Hurstbergn}}&lt;br /&gt;
|image = Hurstbergn.png&lt;br /&gt;
|aliases = &lt;br /&gt;
*&#039;&#039;&#039;glove&#039;&#039;&#039;&lt;br /&gt;
|gender = Female&lt;br /&gt;
|sexuality = Ew sex eughhh...&lt;br /&gt;
|birthday = 24 September&lt;br /&gt;
|profession = Student at the University of Nebraska-Lincoln (from August 2025)&lt;br /&gt;
|interests =&lt;br /&gt;
*Anything related to Nebraska&lt;br /&gt;
*Balls (like Politiballs trust me bro)&lt;br /&gt;
|textcolor = #fff&lt;br /&gt;
|themecolor = #9C8752&lt;br /&gt;
}}&lt;br /&gt;
The least most political person you&#039;ve ever met. Ik spreek Nederlands (erg eng). Als je deze taal &amp;quot;grappig&amp;quot; vindt dan gaan we een heel serieus probleem hebben. :3&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Module:Arguments&amp;diff=511</id>
		<title>Module:Arguments</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Module:Arguments&amp;diff=511"/>
		<updated>2025-05-06T22:15:17Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: import from miraheze dev&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module provides easy processing of arguments passed to Scribunto from&lt;br /&gt;
-- #invoke. It is intended for use by other Lua modules, and should not be&lt;br /&gt;
-- called from #invoke directly.&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
&lt;br /&gt;
local arguments = {}&lt;br /&gt;
&lt;br /&gt;
-- Generate four different tidyVal functions, so that we don&#039;t have to check the&lt;br /&gt;
-- options every time we call it.&lt;br /&gt;
&lt;br /&gt;
local function tidyValDefault(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		val = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
		if val == &#039;&#039; then&lt;br /&gt;
			return nil&lt;br /&gt;
		else&lt;br /&gt;
			return val&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValTrimOnly(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		return val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValRemoveBlanksOnly(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		if val:find(&#039;%S&#039;) then&lt;br /&gt;
			return val&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValNoChange(key, val)&lt;br /&gt;
	return val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function matchesTitle(given, title)&lt;br /&gt;
	local tp = type( given )&lt;br /&gt;
	return (tp == &#039;string&#039; or tp == &#039;number&#039;) and mw.title.new( given ).prefixedText == title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local translate_mt = { __index = function(t, k) return k end }&lt;br /&gt;
&lt;br /&gt;
function arguments.getArgs(frame, options)&lt;br /&gt;
	checkType(&#039;getArgs&#039;, 1, frame, &#039;table&#039;, true)&lt;br /&gt;
	checkType(&#039;getArgs&#039;, 2, options, &#039;table&#039;, true)&lt;br /&gt;
	frame = frame or {}&lt;br /&gt;
	options = options or {}&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up argument translation.&lt;br /&gt;
	--]]&lt;br /&gt;
	options.translate = options.translate or {}&lt;br /&gt;
	if getmetatable(options.translate) == nil then&lt;br /&gt;
		setmetatable(options.translate, translate_mt)&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate == nil then&lt;br /&gt;
		options.backtranslate = {}&lt;br /&gt;
		for k,v in pairs(options.translate) do&lt;br /&gt;
			options.backtranslate[v] = k&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate and getmetatable(options.backtranslate) == nil then&lt;br /&gt;
		setmetatable(options.backtranslate, {&lt;br /&gt;
			__index = function(t, k)&lt;br /&gt;
				if options.translate[k] ~= k then&lt;br /&gt;
					return nil&lt;br /&gt;
				else&lt;br /&gt;
					return k&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Get the argument tables. If we were passed a valid frame object, get the&lt;br /&gt;
	-- frame arguments (fargs) and the parent frame arguments (pargs), depending&lt;br /&gt;
	-- on the options set and on the parent frame&#039;s availability. If we weren&#039;t&lt;br /&gt;
	-- passed a valid frame object, we are being called from another Lua module&lt;br /&gt;
	-- or from the debug console, so assume that we were passed a table of args&lt;br /&gt;
	-- directly, and assign it to a new variable (luaArgs).&lt;br /&gt;
	--]]&lt;br /&gt;
	local fargs, pargs, luaArgs&lt;br /&gt;
	if type(frame.args) == &#039;table&#039; and type(frame.getParent) == &#039;function&#039; then&lt;br /&gt;
		if options.wrappers then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- The wrappers option makes Module:Arguments look up arguments in&lt;br /&gt;
			-- either the frame argument table or the parent argument table, but&lt;br /&gt;
			-- not both. This means that users can use either the #invoke syntax&lt;br /&gt;
			-- or a wrapper template without the loss of performance associated&lt;br /&gt;
			-- with looking arguments up in both the frame and the parent frame.&lt;br /&gt;
			-- Module:Arguments will look up arguments in the parent frame&lt;br /&gt;
			-- if it finds the parent frame&#039;s title in options.wrapper;&lt;br /&gt;
			-- otherwise it will look up arguments in the frame object passed&lt;br /&gt;
			-- to getArgs.&lt;br /&gt;
			--]]&lt;br /&gt;
			local parent = frame:getParent()&lt;br /&gt;
			if not parent then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			else&lt;br /&gt;
				local title = parent:getTitle():gsub(&#039;/sandbox$&#039;, &#039;&#039;)&lt;br /&gt;
				local found = false&lt;br /&gt;
				if matchesTitle(options.wrappers, title) then&lt;br /&gt;
					found = true&lt;br /&gt;
				elseif type(options.wrappers) == &#039;table&#039; then&lt;br /&gt;
					for _,v in pairs(options.wrappers) do&lt;br /&gt;
						if matchesTitle(v, title) then&lt;br /&gt;
							found = true&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- We test for false specifically here so that nil (the default) acts like true.&lt;br /&gt;
				if found or options.frameOnly == false then&lt;br /&gt;
					pargs = parent.args&lt;br /&gt;
				end&lt;br /&gt;
				if not found or options.parentOnly == false then&lt;br /&gt;
					fargs = frame.args&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- options.wrapper isn&#039;t set, so check the other options.&lt;br /&gt;
			if not options.parentOnly then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			end&lt;br /&gt;
			if not options.frameOnly then&lt;br /&gt;
				local parent = frame:getParent()&lt;br /&gt;
				pargs = parent and parent.args or nil&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if options.parentFirst then&lt;br /&gt;
			fargs, pargs = pargs, fargs&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		luaArgs = frame&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the order of precedence of the argument tables. If the variables are&lt;br /&gt;
	-- nil, nothing will be added to the table, which is how we avoid clashes&lt;br /&gt;
	-- between the frame/parent args and the Lua args.&lt;br /&gt;
	local argTables = {fargs}&lt;br /&gt;
	argTables[#argTables + 1] = pargs&lt;br /&gt;
	argTables[#argTables + 1] = luaArgs&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Generate the tidyVal function. If it has been specified by the user, we&lt;br /&gt;
	-- use that; if not, we choose one of four functions depending on the&lt;br /&gt;
	-- options chosen. This is so that we don&#039;t have to call the options table&lt;br /&gt;
	-- every time the function is called.&lt;br /&gt;
	--]]&lt;br /&gt;
	local tidyVal = options.valueFunc&lt;br /&gt;
	if tidyVal then&lt;br /&gt;
		if type(tidyVal) ~= &#039;function&#039; then&lt;br /&gt;
			error(&lt;br /&gt;
				&amp;quot;bad value assigned to option &#039;valueFunc&#039;&amp;quot;&lt;br /&gt;
					.. &#039;(function expected, got &#039;&lt;br /&gt;
					.. type(tidyVal)&lt;br /&gt;
					.. &#039;)&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	elseif options.trim ~= false then&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValDefault&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValTrimOnly&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValRemoveBlanksOnly&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValNoChange&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up the args, metaArgs and nilArgs tables. args will be the one&lt;br /&gt;
	-- accessed from functions, and metaArgs will hold the actual arguments. Nil&lt;br /&gt;
	-- arguments are memoized in nilArgs, and the metatable connects all of them&lt;br /&gt;
	-- together.&lt;br /&gt;
	--]]&lt;br /&gt;
	local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}&lt;br /&gt;
	setmetatable(args, metatable)&lt;br /&gt;
&lt;br /&gt;
	local function mergeArgs(tables)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Accepts multiple tables as input and merges their keys and values&lt;br /&gt;
		-- into one table. If a value is already present it is not overwritten;&lt;br /&gt;
		-- tables listed earlier have precedence. We are also memoizing nil&lt;br /&gt;
		-- values, which can be overwritten if they are &#039;s&#039; (soft).&lt;br /&gt;
		--]]&lt;br /&gt;
		for _, t in ipairs(tables) do&lt;br /&gt;
			for key, val in pairs(t) do&lt;br /&gt;
				if metaArgs[key] == nil and nilArgs[key] ~= &#039;h&#039; then&lt;br /&gt;
					local tidiedVal = tidyVal(key, val)&lt;br /&gt;
					if tidiedVal == nil then&lt;br /&gt;
						nilArgs[key] = &#039;s&#039;&lt;br /&gt;
					else&lt;br /&gt;
						metaArgs[key] = tidiedVal&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Define metatable behaviour. Arguments are memoized in the metaArgs table,&lt;br /&gt;
	-- and are only fetched from the argument tables once. Fetching arguments&lt;br /&gt;
	-- from the argument tables is the most resource-intensive step in this&lt;br /&gt;
	-- module, so we try and avoid it where possible. For this reason, nil&lt;br /&gt;
	-- arguments are also memoized, in the nilArgs table. Also, we keep a record&lt;br /&gt;
	-- in the metatable of when pairs and ipairs have been called, so we do not&lt;br /&gt;
	-- run pairs and ipairs on the argument tables more than once. We also do&lt;br /&gt;
	-- not run ipairs on fargs and pargs if pairs has already been run, as all&lt;br /&gt;
	-- the arguments will already have been copied over.&lt;br /&gt;
	--]]&lt;br /&gt;
&lt;br /&gt;
	metatable.__index = function (t, key)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Fetches an argument when the args table is indexed. First we check&lt;br /&gt;
		-- to see if the value is memoized, and if not we try and fetch it from&lt;br /&gt;
		-- the argument tables. When we check memoization, we need to check&lt;br /&gt;
		-- metaArgs before nilArgs, as both can be non-nil at the same time.&lt;br /&gt;
		-- If the argument is not present in metaArgs, we also check whether&lt;br /&gt;
		-- pairs has been run yet. If pairs has already been run, we return nil.&lt;br /&gt;
		-- This is because all the arguments will have already been copied into&lt;br /&gt;
		-- metaArgs by the mergeArgs function, meaning that any other arguments&lt;br /&gt;
		-- must be nil.&lt;br /&gt;
		--]]&lt;br /&gt;
		if type(key) == &#039;string&#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		local val = metaArgs[key]&lt;br /&gt;
		if val ~= nil then&lt;br /&gt;
			return val&lt;br /&gt;
		elseif metatable.donePairs or nilArgs[key] then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		for _, argTable in ipairs(argTables) do&lt;br /&gt;
			local argTableVal = tidyVal(key, argTable[key])&lt;br /&gt;
			if argTableVal ~= nil then&lt;br /&gt;
				metaArgs[key] = argTableVal&lt;br /&gt;
				return argTableVal&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		nilArgs[key] = &#039;h&#039;&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__newindex = function (t, key, val)&lt;br /&gt;
		-- This function is called when a module tries to add a new value to the&lt;br /&gt;
		-- args table, or tries to change an existing value.&lt;br /&gt;
		if type(key) == &#039;string&#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		if options.readOnly then&lt;br /&gt;
			error(&lt;br /&gt;
				&#039;could not write to argument table key &amp;quot;&#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &#039;&amp;quot;; the table is read-only&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif options.noOverwrite and args[key] ~= nil then&lt;br /&gt;
			error(&lt;br /&gt;
				&#039;could not write to argument table key &amp;quot;&#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &#039;&amp;quot;; overwriting existing arguments is not permitted&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif val == nil then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- If the argument is to be overwritten with nil, we need to erase&lt;br /&gt;
			-- the value in metaArgs, so that __index, __pairs and __ipairs do&lt;br /&gt;
			-- not use a previous existing value, if present; and we also need&lt;br /&gt;
			-- to memoize the nil in nilArgs, so that the value isn&#039;t looked&lt;br /&gt;
			-- up in the argument tables if it is accessed again.&lt;br /&gt;
			--]]&lt;br /&gt;
			metaArgs[key] = nil&lt;br /&gt;
			nilArgs[key] = &#039;h&#039;&lt;br /&gt;
		else&lt;br /&gt;
			metaArgs[key] = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function translatenext(invariant)&lt;br /&gt;
		local k, v = next(invariant.t, invariant.k)&lt;br /&gt;
		invariant.k = k&lt;br /&gt;
		if k == nil then&lt;br /&gt;
			return nil&lt;br /&gt;
		elseif type(k) ~= &#039;string&#039; or not options.backtranslate then&lt;br /&gt;
			return k, v&lt;br /&gt;
		else&lt;br /&gt;
			local backtranslate = options.backtranslate[k]&lt;br /&gt;
			if backtranslate == nil then&lt;br /&gt;
				-- Skip this one. This is a tail call, so this won&#039;t cause stack overflow&lt;br /&gt;
				return translatenext(invariant)&lt;br /&gt;
			else&lt;br /&gt;
				return backtranslate, v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__pairs = function ()&lt;br /&gt;
		-- Called when pairs is run on the args table.&lt;br /&gt;
		if not metatable.donePairs then&lt;br /&gt;
			mergeArgs(argTables)&lt;br /&gt;
			metatable.donePairs = true&lt;br /&gt;
		end&lt;br /&gt;
		return translatenext, { t = metaArgs }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function inext(t, i)&lt;br /&gt;
		-- This uses our __index metamethod&lt;br /&gt;
		local v = t[i + 1]&lt;br /&gt;
		if v ~= nil then&lt;br /&gt;
			return i + 1, v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__ipairs = function (t)&lt;br /&gt;
		-- Called when ipairs is run on the args table.&lt;br /&gt;
		return inext, t, 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return arguments&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Template:Mbox&amp;diff=510</id>
		<title>Template:Mbox</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Template:Mbox&amp;diff=510"/>
		<updated>2025-05-06T22:14:23Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: import from miraheze dev&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Message box|mbox}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Module:Message_box/configuration&amp;diff=509</id>
		<title>Module:Message box/configuration</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Module:Message_box/configuration&amp;diff=509"/>
		<updated>2025-05-06T22:13:13Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: import from miraheze dev&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
--                          Message box configuration                         --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
-- This module contains configuration data for [[Module:Message box]].        --&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	ambox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;ambox-speedy&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ambox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ambox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;ambox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;ambox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;ambox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;ambox-notice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default                     = &#039;notice&#039;,&lt;br /&gt;
		allowBlankParams            = {&#039;talk&#039;, &#039;sect&#039;, &#039;date&#039;, &#039;issue&#039;, &#039;fix&#039;, &#039;hidden&#039;},&lt;br /&gt;
		allowSmall                  = true,&lt;br /&gt;
		smallParam                  = &#039;left&#039;,&lt;br /&gt;
		smallClass                  = &#039;mbox-small-left&#039;,&lt;br /&gt;
		classes                     = {&#039;metadata&#039;, &#039;ambox&#039;},&lt;br /&gt;
		imageEmptyCell              = true,&lt;br /&gt;
		imageCheckBlank             = true,&lt;br /&gt;
		imageSmallSize              = &#039;20x20px&#039;,&lt;br /&gt;
		imageCellDiv                = true,&lt;br /&gt;
		useCollapsibleTextFields    = true,&lt;br /&gt;
		imageRightNone              = true,&lt;br /&gt;
		sectionDefault              = &#039;article&#039;,&lt;br /&gt;
		allowMainspaceCategories    = true,&lt;br /&gt;
		templateCategory            = &#039;Article message templates&#039;,&lt;br /&gt;
	        templateCategoryRequireName = true,&lt;br /&gt;
		templateErrorCategory       = &#039;Article message templates with missing parameters&#039;,&lt;br /&gt;
		templateErrorParamsToCheck  = {&#039;issue&#039;, &#039;fix&#039;},&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	cmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;cmbox-speedy&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;cmbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;cmbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;cmbox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;cmbox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;cmbox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;cmbox-notice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;cmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = true&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	fmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			warning = {&lt;br /&gt;
				class = &#039;fmbox-warning&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			editnotice = {&lt;br /&gt;
				class = &#039;fmbox-editnotice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			system = {&lt;br /&gt;
				class = &#039;fmbox-system&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;system&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;fmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = false,&lt;br /&gt;
		imageRightNone       = false&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	imbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;imbox-speedy&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;imbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;imbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;imbox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;imbox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;imbox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			license = {&lt;br /&gt;
				class = &#039;imbox-license licensetpl&#039;,&lt;br /&gt;
				image = &#039;Imbox license.png&#039; -- @todo We need an SVG version of this&lt;br /&gt;
			},&lt;br /&gt;
			featured = {&lt;br /&gt;
				class = &#039;imbox-featured&#039;,&lt;br /&gt;
				image = &#039;Cscr-featured.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;imbox-notice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;imbox&#039;},&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		below                = true,&lt;br /&gt;
		templateCategory     = &#039;File message boxes&#039;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	ombox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;ombox-speedy&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ombox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ombox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;ombox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;ombox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;ombox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;ombox-notice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;ombox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		imageRightNone       = true&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	tmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;tmbox-speedy&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;tmbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;tmbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;tmbox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;tmbox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;tmbox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;tmbox-notice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;tmbox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		imageEmptyCellStyle  = true,&lt;br /&gt;
		templateCategory     = &#039;Talk message boxes&#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Module:Message_box&amp;diff=508</id>
		<title>Module:Message box</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Module:Message_box&amp;diff=508"/>
		<updated>2025-05-06T22:12:12Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: Port from Miraheze dev wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This is a meta-module for producing message box templates, including&lt;br /&gt;
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.&lt;br /&gt;
&lt;br /&gt;
-- Load necessary modules.&lt;br /&gt;
require(&#039;strict&#039;)&lt;br /&gt;
local getArgs&lt;br /&gt;
local yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Get a language object for formatDate and ucfirst.&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
-- Define constants&lt;br /&gt;
local CONFIG_MODULE = &#039;Module:Message box/configuration&#039;&lt;br /&gt;
local DEMOSPACES = {user = &#039;tmbox&#039;, talk = &#039;tmbox&#039;, image = &#039;imbox&#039;, file = &#039;imbox&#039;, category = &#039;cmbox&#039;, article = &#039;ambox&#039;, main = &#039;ambox&#039;}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getTitleObject(...)&lt;br /&gt;
	-- Get the title object, passing the function through pcall&lt;br /&gt;
	-- in case we are over the expensive function count limit.&lt;br /&gt;
	local success, title = pcall(mw.title.new, ...)&lt;br /&gt;
	if success then&lt;br /&gt;
		return title&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
	-- Returns the union of two arrays.&lt;br /&gt;
	local vals = {}&lt;br /&gt;
	for i, v in ipairs(t1) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	for i, v in ipairs(t2) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k in pairs(vals) do&lt;br /&gt;
		table.insert(ret, k)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(ret)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(args, prefix)&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local num = mw.ustring.match(tostring(k), &#039;^&#039; .. prefix .. &#039;([1-9]%d*)$&#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			table.insert(nums, tonumber(num))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Box class definition&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local MessageBox = {}&lt;br /&gt;
MessageBox.__index = MessageBox&lt;br /&gt;
&lt;br /&gt;
function MessageBox.new(boxType, args, cfg)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	local obj = {}&lt;br /&gt;
&lt;br /&gt;
	-- Set the title object and the namespace.&lt;br /&gt;
	obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Set the config for our box type.&lt;br /&gt;
	obj.cfg = cfg[boxType]&lt;br /&gt;
	if not obj.cfg then&lt;br /&gt;
		local ns = obj.title.namespace&lt;br /&gt;
		-- boxType is &amp;quot;mbox&amp;quot; or invalid input&lt;br /&gt;
		if args.demospace and args.demospace ~= &#039;&#039; then&lt;br /&gt;
			-- implement demospace parameter of mbox&lt;br /&gt;
			local demospace = string.lower(args.demospace)&lt;br /&gt;
			if DEMOSPACES[demospace] then&lt;br /&gt;
				-- use template from DEMOSPACES&lt;br /&gt;
				obj.cfg = cfg[DEMOSPACES[demospace]]&lt;br /&gt;
			elseif string.find( demospace, &#039;talk&#039; ) then&lt;br /&gt;
				-- demo as a talk page&lt;br /&gt;
				obj.cfg = cfg.tmbox&lt;br /&gt;
			else&lt;br /&gt;
				-- default to ombox&lt;br /&gt;
				obj.cfg = cfg.ombox&lt;br /&gt;
			end&lt;br /&gt;
		elseif ns == 0 then&lt;br /&gt;
			obj.cfg = cfg.ambox -- main namespace&lt;br /&gt;
		elseif ns == 6 then&lt;br /&gt;
			obj.cfg = cfg.imbox -- file namespace&lt;br /&gt;
		elseif ns == 14 then&lt;br /&gt;
			obj.cfg = cfg.cmbox -- category namespace&lt;br /&gt;
		else&lt;br /&gt;
			local nsTable = mw.site.namespaces[ns]&lt;br /&gt;
			if nsTable and nsTable.isTalk then&lt;br /&gt;
				obj.cfg = cfg.tmbox -- any talk namespace&lt;br /&gt;
			else&lt;br /&gt;
				obj.cfg = cfg.ombox -- other namespaces or invalid input&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the arguments, and remove all blank arguments except for the ones&lt;br /&gt;
	-- listed in cfg.allowBlankParams.&lt;br /&gt;
	do&lt;br /&gt;
		local newArgs = {}&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			if v ~= &#039;&#039; then&lt;br /&gt;
				newArgs[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for i, param in ipairs(obj.cfg.allowBlankParams or {}) do&lt;br /&gt;
			newArgs[param] = args[param]&lt;br /&gt;
		end&lt;br /&gt;
		obj.args = newArgs&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Define internal data structure.&lt;br /&gt;
	obj.categories = {}&lt;br /&gt;
	obj.classes = {}&lt;br /&gt;
&lt;br /&gt;
	return setmetatable(obj, MessageBox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addClass(class)&lt;br /&gt;
	if not class then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(self.classes, class)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setParameters()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Get type data.&lt;br /&gt;
	self.type = args.type&lt;br /&gt;
	local typeData = cfg.types[self.type]&lt;br /&gt;
	self.invalidTypeError = cfg.showInvalidTypeError&lt;br /&gt;
		and self.type&lt;br /&gt;
		and not typeData&lt;br /&gt;
	typeData = typeData or cfg.types[cfg.default]&lt;br /&gt;
	self.typeClass = typeData.class&lt;br /&gt;
	self.typeImage = typeData.image&lt;br /&gt;
&lt;br /&gt;
	-- Find whether we are using a small message box.&lt;br /&gt;
	self.isSmall = cfg.allowSmall and (&lt;br /&gt;
		cfg.smallParam and args.small == cfg.smallParam&lt;br /&gt;
		or not cfg.smallParam and yesno(args.small)&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	-- Add attributes, classes and styles.&lt;br /&gt;
	self.id = args.id&lt;br /&gt;
	self.name = args.name&lt;br /&gt;
	if self.name then&lt;br /&gt;
		self:addClass(&#039;box-&#039; .. string.gsub(self.name,&#039; &#039;,&#039;_&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	if yesno(args.plainlinks) ~= false then&lt;br /&gt;
		self:addClass(&#039;plainlinks&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	for _, class in ipairs(cfg.classes or {}) do&lt;br /&gt;
		self:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self:addClass(cfg.smallClass or &#039;mbox-small&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	self:addClass(self.typeClass)&lt;br /&gt;
	self:addClass(args.class)&lt;br /&gt;
	self.style = args.style&lt;br /&gt;
	self.attrs = args.attrs&lt;br /&gt;
&lt;br /&gt;
	-- Set text style.&lt;br /&gt;
	self.textstyle = args.textstyle&lt;br /&gt;
&lt;br /&gt;
	-- Find if we are on the template page or not. This functionality is only&lt;br /&gt;
	-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory&lt;br /&gt;
	-- and cfg.templateCategoryRequireName are set.&lt;br /&gt;
	self.useCollapsibleTextFields = cfg.useCollapsibleTextFields&lt;br /&gt;
	if self.useCollapsibleTextFields&lt;br /&gt;
		or cfg.templateCategory&lt;br /&gt;
		and cfg.templateCategoryRequireName&lt;br /&gt;
	then&lt;br /&gt;
		if self.name then&lt;br /&gt;
			local templateName = mw.ustring.match(&lt;br /&gt;
				self.name,&lt;br /&gt;
				&#039;^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$&#039;&lt;br /&gt;
			) or self.name&lt;br /&gt;
			templateName = &#039;Template:&#039; .. templateName&lt;br /&gt;
			self.templateTitle = getTitleObject(templateName)&lt;br /&gt;
		end&lt;br /&gt;
		self.isTemplatePage = self.templateTitle&lt;br /&gt;
			and mw.title.equals(self.title, self.templateTitle)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Process data for collapsible text fields. At the moment these are only&lt;br /&gt;
	-- used in {{ambox}}.&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- Get the self.issue value.&lt;br /&gt;
		if self.isSmall and args.smalltext then&lt;br /&gt;
			self.issue = args.smalltext&lt;br /&gt;
		else&lt;br /&gt;
			local sect&lt;br /&gt;
			if args.sect == &#039;&#039; then&lt;br /&gt;
				sect = &#039;This &#039; .. (cfg.sectionDefault or &#039;page&#039;)&lt;br /&gt;
			elseif type(args.sect) == &#039;string&#039; then&lt;br /&gt;
				sect = &#039;This &#039; .. args.sect&lt;br /&gt;
			end&lt;br /&gt;
			local issue = args.issue&lt;br /&gt;
			issue = type(issue) == &#039;string&#039; and issue ~= &#039;&#039; and issue or nil&lt;br /&gt;
			local text = args.text&lt;br /&gt;
			text = type(text) == &#039;string&#039; and text or nil&lt;br /&gt;
			local issues = {}&lt;br /&gt;
			table.insert(issues, sect)&lt;br /&gt;
			table.insert(issues, issue)&lt;br /&gt;
			table.insert(issues, text)&lt;br /&gt;
			self.issue = table.concat(issues, &#039; &#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get the self.talk value.&lt;br /&gt;
		local talk = args.talk&lt;br /&gt;
		-- Show talk links on the template page or template subpages if the talk&lt;br /&gt;
		-- parameter is blank.&lt;br /&gt;
		if talk == &#039;&#039;&lt;br /&gt;
			and self.templateTitle&lt;br /&gt;
			and (&lt;br /&gt;
				mw.title.equals(self.templateTitle, self.title)&lt;br /&gt;
				or self.title:isSubpageOf(self.templateTitle)&lt;br /&gt;
			)&lt;br /&gt;
		then&lt;br /&gt;
			talk = &#039;#&#039;&lt;br /&gt;
		elseif talk == &#039;&#039; then&lt;br /&gt;
			talk = nil&lt;br /&gt;
		end&lt;br /&gt;
		if talk then&lt;br /&gt;
			-- If the talk value is a talk page, make a link to that page. Else&lt;br /&gt;
			-- assume that it&#039;s a section heading, and make a link to the talk&lt;br /&gt;
			-- page of the current page with that section heading.&lt;br /&gt;
			local talkTitle = getTitleObject(talk)&lt;br /&gt;
			local talkArgIsTalkPage = true&lt;br /&gt;
			if not talkTitle or not talkTitle.isTalkPage then&lt;br /&gt;
				talkArgIsTalkPage = false&lt;br /&gt;
				talkTitle = getTitleObject(&lt;br /&gt;
					self.title.text,&lt;br /&gt;
					mw.site.namespaces[self.title.namespace].talk.id&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			if talkTitle and talkTitle.exists then&lt;br /&gt;
				local talkText = &#039;Relevant discussion may be found on&#039;&lt;br /&gt;
				if talkArgIsTalkPage then&lt;br /&gt;
					talkText = string.format(&lt;br /&gt;
						&#039;%s [[%s|%s]].&#039;,&lt;br /&gt;
						talkText,&lt;br /&gt;
						talk,&lt;br /&gt;
						talkTitle.prefixedText&lt;br /&gt;
					)&lt;br /&gt;
				else&lt;br /&gt;
					talkText = string.format(&lt;br /&gt;
						&#039;%s the [[%s#%s|talk page]].&#039;,&lt;br /&gt;
						talkText,&lt;br /&gt;
						talkTitle.prefixedText,&lt;br /&gt;
						talk&lt;br /&gt;
					)&lt;br /&gt;
				end&lt;br /&gt;
				self.talk = talkText&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get other values.&lt;br /&gt;
		self.fix = args.fix ~= &#039;&#039; and args.fix or nil&lt;br /&gt;
		local date&lt;br /&gt;
		if args.date and args.date ~= &#039;&#039; then&lt;br /&gt;
			date = args.date&lt;br /&gt;
		elseif args.date == &#039;&#039; and self.isTemplatePage then&lt;br /&gt;
			date = lang:formatDate(&#039;F Y&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if date then&lt;br /&gt;
			self.date = string.format(&amp;quot; &amp;lt;small class=&#039;date-container&#039;&amp;gt;&#039;&#039;(&amp;lt;span class=&#039;date&#039;&amp;gt;%s&amp;lt;/span&amp;gt;)&#039;&#039;&amp;lt;/small&amp;gt;&amp;quot;, date)&lt;br /&gt;
		end&lt;br /&gt;
		self.info = args.info&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the non-collapsible text field. At the moment this is used by all box&lt;br /&gt;
	-- types other than ambox, and also by ambox when small=yes.&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self.text = args.smalltext or args.text&lt;br /&gt;
	else&lt;br /&gt;
		self.text = args.text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the below row.&lt;br /&gt;
	self.below = cfg.below and args.below&lt;br /&gt;
&lt;br /&gt;
	-- General image settings.&lt;br /&gt;
	self.imageCellDiv = not self.isSmall and cfg.imageCellDiv&lt;br /&gt;
	self.imageEmptyCell = cfg.imageEmptyCell&lt;br /&gt;
	if cfg.imageEmptyCellStyle then&lt;br /&gt;
		self.imageEmptyCellStyle = &#039;border:none;padding:0px;width:1px&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Left image settings.&lt;br /&gt;
	local imageLeft = self.isSmall and args.smallimage or args.image&lt;br /&gt;
	if cfg.imageCheckBlank and imageLeft ~= &#039;blank&#039; and imageLeft ~= &#039;none&#039;&lt;br /&gt;
		or not cfg.imageCheckBlank and imageLeft ~= &#039;none&#039;&lt;br /&gt;
	then&lt;br /&gt;
		self.imageLeft = imageLeft&lt;br /&gt;
		if not imageLeft then&lt;br /&gt;
			local imageSize = self.isSmall&lt;br /&gt;
				and (cfg.imageSmallSize or &#039;30x30px&#039;)&lt;br /&gt;
				or &#039;40x40px&#039;&lt;br /&gt;
			self.imageLeft = string.format(&#039;[[File:%s|%s|link=|alt=]]&#039;, self.typeImage&lt;br /&gt;
				or &#039;Imbox notice.png&#039;, imageSize)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Right image settings.&lt;br /&gt;
	local imageRight = self.isSmall and args.smallimageright or args.imageright&lt;br /&gt;
	if not (cfg.imageRightNone and imageRight == &#039;none&#039;) then&lt;br /&gt;
		self.imageRight = imageRight&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:export()&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	-- Create the box table.&lt;br /&gt;
	local boxTable = root:tag(&#039;table&#039;)&lt;br /&gt;
	boxTable:attr(&#039;id&#039;, self.id or nil)&lt;br /&gt;
	for i, class in ipairs(self.classes or {}) do&lt;br /&gt;
		boxTable:addClass(class or nil)&lt;br /&gt;
	end&lt;br /&gt;
	boxTable&lt;br /&gt;
		:cssText(self.style or nil)&lt;br /&gt;
		:attr(&#039;role&#039;, &#039;presentation&#039;)&lt;br /&gt;
&lt;br /&gt;
	if self.attrs then&lt;br /&gt;
		boxTable:attr(self.attrs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the left-hand image.&lt;br /&gt;
	local row = boxTable:tag(&#039;tr&#039;)&lt;br /&gt;
	if self.imageLeft then&lt;br /&gt;
		local imageLeftCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-image&#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageLeftCell so that the image&lt;br /&gt;
			-- is inside it. Divs use style=&amp;quot;width: 52px;&amp;quot;, which limits the&lt;br /&gt;
			-- image width to 52px. If any images in a div are wider than that,&lt;br /&gt;
			-- they may overlap with the text or cause other display problems.&lt;br /&gt;
			imageLeftCell = imageLeftCell:tag(&#039;div&#039;):css(&#039;width&#039;, &#039;52px&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageLeftCell:wikitext(self.imageLeft or nil)&lt;br /&gt;
	elseif self.imageEmptyCell then&lt;br /&gt;
		-- Some message boxes define an empty cell if no image is specified, and&lt;br /&gt;
		-- some don&#039;t. The old template code in templates where empty cells are&lt;br /&gt;
		-- specified gives the following hint: &amp;quot;No image. Cell with some width&lt;br /&gt;
		-- or padding necessary for text cell to have 100% width.&amp;quot;&lt;br /&gt;
		row:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(&#039;mbox-empty-cell&#039;)&lt;br /&gt;
			:cssText(self.imageEmptyCellStyle or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the text.&lt;br /&gt;
	local textCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-text&#039;)&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- The message box uses advanced text parameters that allow things to be&lt;br /&gt;
		-- collapsible. At the moment, only ambox uses this.&lt;br /&gt;
		textCell:cssText(self.textstyle or nil)&lt;br /&gt;
		local textCellDiv = textCell:tag(&#039;div&#039;)&lt;br /&gt;
		textCellDiv&lt;br /&gt;
			:addClass(&#039;mbox-text-span&#039;)&lt;br /&gt;
			:wikitext(self.issue or nil)&lt;br /&gt;
		if (self.talk or self.fix) and not self.isSmall then&lt;br /&gt;
			textCellDiv:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:wikitext(self.talk and (&#039; &#039; .. self.talk) or nil)&lt;br /&gt;
				:wikitext(self.fix and (&#039; &#039; .. self.fix) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		textCellDiv:wikitext(self.date and (&#039; &#039; .. self.date) or nil)&lt;br /&gt;
		if self.info and not self.isSmall then&lt;br /&gt;
			textCellDiv&lt;br /&gt;
				:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:wikitext(self.info and (&#039; &#039; .. self.info) or nil)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- Default text formatting - anything goes.&lt;br /&gt;
		textCell&lt;br /&gt;
			:cssText(self.textstyle or nil)&lt;br /&gt;
			:wikitext(self.text or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the right-hand image.&lt;br /&gt;
	if self.imageRight then&lt;br /&gt;
		local imageRightCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-imageright&#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageRightCell so that the image&lt;br /&gt;
			-- is inside it.&lt;br /&gt;
			imageRightCell = imageRightCell:tag(&#039;div&#039;):css(&#039;width&#039;, &#039;52px&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageRightCell&lt;br /&gt;
			:wikitext(self.imageRight or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the below row.&lt;br /&gt;
	if self.below then&lt;br /&gt;
		boxTable:tag(&#039;tr&#039;)&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:attr(&#039;colspan&#039;, self.imageRight and &#039;3&#039; or &#039;2&#039;)&lt;br /&gt;
				:addClass(&#039;mbox-text&#039;)&lt;br /&gt;
				:cssText(self.textstyle or nil)&lt;br /&gt;
				:wikitext(self.below or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add error message for invalid type parameters.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		root:tag(&#039;div&#039;)&lt;br /&gt;
			:css(&#039;text-align&#039;, &#039;center&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;This message box is using an invalid &amp;quot;type=%s&amp;quot; parameter and needs fixing.&#039;,&lt;br /&gt;
				self.type or &#039;&#039;&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p, mt = {}, {}&lt;br /&gt;
&lt;br /&gt;
function p._exportClasses()&lt;br /&gt;
	-- For testing.&lt;br /&gt;
	return {&lt;br /&gt;
		MessageBox = MessageBox&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(boxType, args, cfgTables)&lt;br /&gt;
	local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))&lt;br /&gt;
	box:setParameters()&lt;br /&gt;
	return box:export()&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
function mt.__index(t, k)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		if not getArgs then&lt;br /&gt;
			getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
		end&lt;br /&gt;
		return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return setmetatable(p, mt)&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Module:Yesno&amp;diff=507</id>
		<title>Module:Yesno</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Module:Yesno&amp;diff=507"/>
		<updated>2025-05-06T22:11:03Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: Create&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Function allowing for consistent treatment of boolean-like wikitext input.&lt;br /&gt;
-- It works similarly to the template {{yesno}}.&lt;br /&gt;
&lt;br /&gt;
return function (val, default)&lt;br /&gt;
	-- If your wiki uses non-ascii characters for any of &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, etc., you&lt;br /&gt;
	-- should replace &amp;quot;val:lower()&amp;quot; with &amp;quot;mw.ustring.lower(val)&amp;quot; in the&lt;br /&gt;
	-- following line.&lt;br /&gt;
	val = type(val) == &#039;string&#039; and val:lower() or val&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	elseif val == true &lt;br /&gt;
		or val == &#039;yes&#039;&lt;br /&gt;
		or val == &#039;y&#039;&lt;br /&gt;
		or val == &#039;true&#039;&lt;br /&gt;
		or val == &#039;t&#039;&lt;br /&gt;
		or val == &#039;on&#039;&lt;br /&gt;
		or tonumber(val) == 1&lt;br /&gt;
	then&lt;br /&gt;
		return true&lt;br /&gt;
	elseif val == false&lt;br /&gt;
		or val == &#039;no&#039;&lt;br /&gt;
		or val == &#039;n&#039;&lt;br /&gt;
		or val == &#039;false&#039;&lt;br /&gt;
		or val == &#039;f&#039;&lt;br /&gt;
		or val == &#039;off&#039;&lt;br /&gt;
		or tonumber(val) == 0&lt;br /&gt;
	then&lt;br /&gt;
		return false&lt;br /&gt;
	else&lt;br /&gt;
		return default&lt;br /&gt;
	end&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=User:Hurstbergn&amp;diff=504</id>
		<title>User:Hurstbergn</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=User:Hurstbergn&amp;diff=504"/>
		<updated>2025-05-06T20:02:23Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{User&lt;br /&gt;
|title = {{I|Hurstbergn}} &#039;&#039;&#039;Hurstbergn&#039;&#039;&#039; {{I|Hurstbergn}}&lt;br /&gt;
|image = Hurstbergn.png&lt;br /&gt;
|aliases = &lt;br /&gt;
*&#039;&#039;&#039;glove&#039;&#039;&#039;&lt;br /&gt;
|gender = Female&lt;br /&gt;
|sexuality = Ew sex eughhh...&lt;br /&gt;
|birthday = 24 September&lt;br /&gt;
|profession = Student at the University of Nebraska-Lincoln&lt;br /&gt;
|interests =&lt;br /&gt;
*Anything related to Nebraska&lt;br /&gt;
*Balls (like Politiballs trust me bro)&lt;br /&gt;
|textcolor = #fff&lt;br /&gt;
|themecolor = #9C8752&lt;br /&gt;
}}&lt;br /&gt;
The least most political person you&#039;ve ever met. Ik spreek Nederlands (erg eng). Als je deze taal &amp;quot;grappig&amp;quot; vindt dan gaan we een heel serieus probleem hebben. :3&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=File:Hurstbergn-art.png&amp;diff=503</id>
		<title>File:Hurstbergn-art.png</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=File:Hurstbergn-art.png&amp;diff=503"/>
		<updated>2025-05-06T19:54:37Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Workers%27_Party_of_Korea&amp;diff=500</id>
		<title>Workers&#039; Party of Korea</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Workers%27_Party_of_Korea&amp;diff=500"/>
		<updated>2025-05-06T18:21:46Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: Create&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = #CE1126&lt;br /&gt;
|textcolor = #FFF&lt;br /&gt;
|title = {{I|WPK}} &#039;&#039;&#039;Workers&#039; Party of Korea&#039;&#039;&#039; {{I|WPK}}&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;조선로동당&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|image = &lt;br /&gt;
|caption = &lt;br /&gt;
|aliases = WPK&lt;br /&gt;
|country = {{I|North Korea}} [[North Korea]]&lt;br /&gt;
|period = 2013-present&lt;br /&gt;
|status = Second-largest party in Germany (as of 2025)&lt;br /&gt;
|influences = &lt;br /&gt;
*{{I|Communism}} [[Communism]]&lt;br /&gt;
*{{I|Juche}} [[Juche]]&lt;br /&gt;
|pre =&lt;br /&gt;
|affil = &lt;br /&gt;
|likes = &lt;br /&gt;
|dislikes = &lt;br /&gt;
|song =&lt;br /&gt;
}}&lt;br /&gt;
The {{I|WPK}} &#039;&#039;&#039;Workers&#039; Party of Korea&#039;&#039;&#039; (&#039;&#039;&#039;WPK&#039;&#039;&#039;), also referred to as the Korean Workers&#039; Party (KWP), is the sole ruling party of {{I|North Korea}} [[North Korea]]. Founded in 1949 from a merger between the Workers&#039; Party of North Korea and the Workers&#039; Party of South Korea, the WPK is the oldest active party in Korean Peninsula. The WPK is the largest party represented in the Supreme People&#039;s Assembly and coexists with two other legal parties that are completely subservient to the WPK and must accept the party&#039;s &amp;quot;leading role&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Parties]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Niue&amp;diff=499</id>
		<title>Niue</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Niue&amp;diff=499"/>
		<updated>2025-05-06T16:06:20Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: Per Nastya&amp;#039;s wish :3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{I|Niue}} &#039;&#039;&#039;Niue&#039;&#039;&#039; is a self-governing island country in free association with {{I|New Zealand}} [[New Zealand]]. It is situated in the South Pacific Ocean and is part of Polynesia, and predominantly inhabited by Polynesians. One of the world&#039;s largest coral islands, Niue is commonly referred to as &amp;quot;The Rock&amp;quot;, which comes from the traditional name &amp;quot;Rock of Polynesia&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The politics of Niue take place in a parliamentary representative democratic dependency, whereby the Chief Minister is the head of government, and of a de-facto non-partisan system.&lt;br /&gt;
&lt;br /&gt;
== Political Parties == &lt;br /&gt;
&lt;br /&gt;
In Niue, political parties have never played an important role. There is, at present, no political party, and candidates to elections therefore run as independents. The only party ever to have existed, the [[Niue People&#039;s Party]], disbanded in 2003. As there are no political parties, there is no formal parliamentary opposition, though there are members of parliament who oppose the government.&lt;br /&gt;
&lt;br /&gt;
[[Category:Countries]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=496</id>
		<title>Alternative for Germany</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=496"/>
		<updated>2025-05-06T15:10:41Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = #00A2DE&lt;br /&gt;
|textcolor = #FFF&lt;br /&gt;
|title = {{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; {{I|AfD}}&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|image = &lt;br /&gt;
|caption = &amp;quot;Zeit für Deutschland...&amp;quot;&lt;br /&gt;
|aliases = AfD (German abbreviation)&lt;br /&gt;
|country = [[File:Germany-icon.png]] [[Germany|Federal Republic of Germany]]&lt;br /&gt;
|period = 2013-present&lt;br /&gt;
|status = Second-largest party in Germany (as of 2025)&lt;br /&gt;
|influences = *[[File:RightWingPop-icon.png]] [[Right-Wing Populism]]&lt;br /&gt;
|pre = *[[File:CDU-icon.png]] [[Christian Democratic Union (Germany)|Christian Democratic Union]] (factions)&lt;br /&gt;
|affil = &lt;br /&gt;
|likes = {{I|Germany}} Deutschland, {{I|RepublicansUSA}} [[Republican Party (USA)|Mein Bruder!]]&lt;br /&gt;
|dislikes = Being compared to the {{I|Nazi}} Nazis, immigrants&lt;br /&gt;
|song =&lt;br /&gt;
}}&lt;br /&gt;
{{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; (German: &#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;, &#039;&#039;&#039;AfD&#039;&#039;&#039;) is a far-right political party in Germany. Founded in 2013 as a resistance movement to Angela Merkel and mainstream policies, it has seen a sharp rise in popularity. As of 2025, it is the second-largest party in the country and is the largest opposition party in the 21st Bundestag.&lt;br /&gt;
&lt;br /&gt;
The party&#039;s popularity is most dominant in the territory of the former {{I|Communism}} Communist East Germany.&lt;br /&gt;
&lt;br /&gt;
== Personality ==&lt;br /&gt;
&lt;br /&gt;
{{I|AfD}} Alternative for Germany is right-wing and national-conservative in both socioeconomic and sociocultural terms. He seeks the betterment of his country and to break away from &amp;quot;weights taking Germany down&amp;quot; (i.e. the {{I|USA}} United States and the {{I|EU}} European Union. He is often chastised by parties both inside and outside of Germany as a &amp;quot;typical right-wing party&amp;quot; and a &amp;quot;wannabe Nazi&amp;quot;; but Alternative for Germany disagrees, and calls them woke and establishment suckers.&lt;br /&gt;
&lt;br /&gt;
He can be viewed as partially bi-polar, with segments of party leaning more conservative and some being out-right {{I|Nazi}} Nazi sympathizers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Parties]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=485</id>
		<title>Alternative for Germany</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=485"/>
		<updated>2025-05-06T13:37:29Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: + personality&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = #00A2DE&lt;br /&gt;
|textcolor = #FFF&lt;br /&gt;
|title = {{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; {{I|AfD}}&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|image = &lt;br /&gt;
|caption = &amp;quot;Zeit für Deutschland...&amp;quot;&lt;br /&gt;
|aliases = AfD (German abbreviation)&lt;br /&gt;
|country = [[File:Germany-icon.png]] [[Germany|Federal Republic of Germany]]&lt;br /&gt;
|period = 2013-present&lt;br /&gt;
|status = Second-largest party in Germany (as of 2025)&lt;br /&gt;
|influences = *[[File:RightWingPop-icon.png]] [[Right-Wing Populism]]&lt;br /&gt;
|pre = &lt;br /&gt;
|affil = &lt;br /&gt;
|likes = {{I|Germany}} Deutschland, {{I|RepublicansUSA}} [[Republican Party (USA)|Mein Bruder!]]&lt;br /&gt;
|dislikes = Being compared to the {{I|Nazi}} Nazis, immigrants&lt;br /&gt;
|song =&lt;br /&gt;
}}&lt;br /&gt;
{{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; (German: &#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;, &#039;&#039;&#039;AfD&#039;&#039;&#039;) is a far-right political party in Germany. Founded in 2013 as a resistance movement to Angela Merkel and mainstream policies, it has seen a sharp rise in popularity. As of 2025, it is the second-largest party in the country and is the largest opposition party in the 21st Bundestag.&lt;br /&gt;
&lt;br /&gt;
The party&#039;s popularity is most dominant in the territory of the former {{I|Communism}} Communist East Germany.&lt;br /&gt;
&lt;br /&gt;
== Personality ==&lt;br /&gt;
&lt;br /&gt;
{{I|AfD}} Alternative for Germany is right-wing and national-conservative in both socioeconomic and sociocultural terms. He seeks the betterment of his country and to break away from &amp;quot;weights taking Germany down&amp;quot;. He is often chastised by parties both inside and outside of Germany as a &amp;quot;typical right-wing party&amp;quot; and a &amp;quot;wannabe Nazi&amp;quot;; but Alternative for Germany disagrees, and calls them woke and establishment suckers.&lt;br /&gt;
&lt;br /&gt;
He can be viewed as partially bi-polar, with segments of party leaning more conservative and some being out-right Nazi sympathizers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Parties]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=464</id>
		<title>Alternative for Germany</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=464"/>
		<updated>2025-05-06T02:27:45Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: change aliases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = #00A2DE&lt;br /&gt;
|textcolor = #FFF&lt;br /&gt;
|title = {{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; {{I|AfD}}&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|image = &lt;br /&gt;
|caption = &amp;quot;Zeit für Deutschland...&amp;quot;&lt;br /&gt;
|aliases = AfD (German abbreviation)&lt;br /&gt;
|country = [[File:Germany-icon.png]] [[Germany]]&lt;br /&gt;
|period = 2013-present&lt;br /&gt;
|status = Second-largest party in Germany (as of 2025)&lt;br /&gt;
|influences = * [[Right-wing populism]]&lt;br /&gt;
|pre = &lt;br /&gt;
|affil = &lt;br /&gt;
|likes = &lt;br /&gt;
|dislikes = &lt;br /&gt;
|song =&lt;br /&gt;
}}&lt;br /&gt;
{{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; (German: &#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;, &#039;&#039;&#039;AfD&#039;&#039;&#039;) is a far-right political party in Germany. Founded in 2013 as a resistance movement to Angela Merkel and mainstream policies, it has seen a sharp rise in popularity. As of 2025, it is the second-largest party in the country and is the largest opposition party in the 21st Bundestag.&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Longism&amp;diff=463</id>
		<title>Longism</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Longism&amp;diff=463"/>
		<updated>2025-05-06T02:21:43Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: /* History */ grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ideology&lt;br /&gt;
|title = [[File:Longism-icon.png]] Longism [[File:Longism-icon.png]]&lt;br /&gt;
|image = Longism-art.png&lt;br /&gt;
|caption = &#039;&#039;&amp;quot;Every man a king!&amp;quot;&#039;&#039;&lt;br /&gt;
|aliases = Huey Long&#039;s political views&lt;br /&gt;
|influences = &#039;&#039;&#039;Values:&#039;&#039;&#039;&lt;br /&gt;
[[File:Authoritarianism-icon.png]] [[Authoritarianism]] &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:WelfareState-icon.png]] [[Welfare State]]  &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Isolationism-icon.png]] [[Isolationism]] &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Populism-icon.png]] [[Populism]] &amp;lt;br&amp;gt;&lt;br /&gt;
|likes = Sharing Our Wealth, the poor, Louisiana, [[File:UnitedStates-icon.png]] [[United States of America|AMERICA!]]&lt;br /&gt;
|dislikes = Corporations, Communists, Fascists, people who disagree with him.&lt;br /&gt;
|song = [https://www.youtube.com/watch?v=UePByx_jq44 Every Man A King]&lt;br /&gt;
|themecolor = #2841D3&lt;br /&gt;
|textcolor = #FFFFFF&lt;br /&gt;
}}&lt;br /&gt;
[[File:Longism-icon.png]]&#039;&#039;&#039;Longism&#039;&#039;&#039; is the ideology of former [[File:DemocratsUS-icon.png]] [[Democratic Party (U.S.)|Democratic Party]] U.S. senator and governor of Louisiana &#039;&#039;&#039;Huey Long&#039;&#039;&#039;. According to his values, Longism is centre-left/left economically, [[File:Anti-Communism-icon.png]] [[Anti-Communism|anti-Communist]], [[File:WelfareState-icon.png]] [[Welfare State|welfarist]], [[File:Populism-icon.png]] [[Populism|populist]], [[File:Isolationism-icon.png]] [[Isolationism|isolationist]] and [[File:Authoritarianism-icon.png]] [[Authoritarianism|authoritarian]]. &lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
During the 1920s and 1930s, [[File:Longism-icon.png]]Huey Long had an authoritarian grip over the state of Louisiana, firing people who go against him and scaring them away from politics. During his tenure, he punished oil companies such as Standard Oil and introduced many laws and benefits to the poorest of Louisiana&#039;s citizens, his prominent voter base.&lt;br /&gt;
&lt;br /&gt;
Long intended to run for President in 1936 on an independent ticket under the name &amp;quot;Share Our Wealth&amp;quot; against FDR, however, he was assassinated in 1935. Many of his policies around social programs were continued by his brother Earl Long.&lt;br /&gt;
&lt;br /&gt;
==Personality== &lt;br /&gt;
[[File:Longism-icon.png]]Longism finds camaraderie in the lower classes and often blends in with them, seeing himself as the representation of them in politics. He does not get along with Socialists or Fascists however, and is very American.&lt;br /&gt;
&lt;br /&gt;
==How to Draw==&lt;br /&gt;
#Draw a ball.&lt;br /&gt;
#Fill it with blue.&lt;br /&gt;
#Draw a silhouette of the [https://en.wikipedia.org/wiki/Louisiana_State_Capitol Louisiana State Capitol building] in white.&lt;br /&gt;
#Give the silhouette a thick red outline.&lt;br /&gt;
#Draw on two blue fins and a fish tail.&lt;br /&gt;
#Draw on a crown and add the eyes and you&#039;re done!&lt;br /&gt;
&lt;br /&gt;
==Gallery==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Longism-art.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ideologies]]&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=462</id>
		<title>Alternative for Germany</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=462"/>
		<updated>2025-05-06T01:49:32Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: icons&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = #00A2DE&lt;br /&gt;
|textcolor = #FFF&lt;br /&gt;
|title = {{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; {{I|AfD}}&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|image = &lt;br /&gt;
|caption = &amp;quot;Zeit für Deutschland...&amp;quot;&lt;br /&gt;
|aliases = * AfD&lt;br /&gt;
|country = [[File:Germany-icon.png]] [[Germany]]&lt;br /&gt;
|period = 2013-present&lt;br /&gt;
|status = Second-largest party in Germany (as of 2025)&lt;br /&gt;
|influences = * [[Right-wing populism]]&lt;br /&gt;
|pre = &lt;br /&gt;
|affil = &lt;br /&gt;
|likes = &lt;br /&gt;
|dislikes = &lt;br /&gt;
|song =&lt;br /&gt;
}}&lt;br /&gt;
{{I|AfD}} &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; (German: &#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;, &#039;&#039;&#039;AfD&#039;&#039;&#039;) is a far-right political party in Germany. Founded in 2013 as a resistance movement to Angela Merkel and mainstream policies, it has seen a sharp rise in popularity. As of 2025, it is the second-largest party in the country and is the largest opposition party in the 21st Bundestag.&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=File:AfD-icon.png&amp;diff=460</id>
		<title>File:AfD-icon.png</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=File:AfD-icon.png&amp;diff=460"/>
		<updated>2025-05-06T01:46:26Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Labour_Party_(Netherlands)&amp;diff=459</id>
		<title>Labour Party (Netherlands)</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Labour_Party_(Netherlands)&amp;diff=459"/>
		<updated>2025-05-06T01:35:47Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: create summary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Labour Party&#039;&#039;&#039; (Dutch: &#039;&#039;&#039;Partij van de Arbeid&#039;&#039;&#039;, &#039;&#039;&#039;PvdA&#039;&#039;&#039;, or &#039;&#039;&#039;P van de A&#039;&#039;&#039;) is a social democratic political party in the Netherlands. After the 2021 general election, the party intensified cooperation with the [[GreenLeft]] (GroenLinks) in a coalition called GroenLinks–PvdA. The two parties participated in the 2023 general election with a joint candidate list, and currently have a joint parliamentary group of 25 seats.&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=458</id>
		<title>Alternative for Germany</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=458"/>
		<updated>2025-05-06T01:24:36Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: expand&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Party&lt;br /&gt;
|themecolor = #00A2DE&lt;br /&gt;
|textcolor = #FFF&lt;br /&gt;
|title = &#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|image = &lt;br /&gt;
|caption = &amp;quot;Zeit für Deutschland...&amp;quot;&lt;br /&gt;
|aliases = * AfD&lt;br /&gt;
|country = [[File:Germany-icon.png]] [[Germany]]&lt;br /&gt;
|period = 2013-present&lt;br /&gt;
|status = Second-largest party in Germany (as of 2025)&lt;br /&gt;
|influences = * [[Right-wing populism]]&lt;br /&gt;
|pre = &lt;br /&gt;
|affil = &lt;br /&gt;
|likes = &lt;br /&gt;
|dislikes = &lt;br /&gt;
|song =&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; (German: &#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;, &#039;&#039;&#039;AfD&#039;&#039;&#039;) is a far-right political party in Germany. Founded in 2013 as a resistance movement to Angela Merkel and mainstream policies, it has seen a sharp rise in popularity. As of 2025, it is the second-largest party in the country and is the largest opposition party in the 21st Bundestag.&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=457</id>
		<title>Alternative for Germany</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=457"/>
		<updated>2025-05-06T01:17:03Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; (German: &#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;, &#039;&#039;&#039;AfD&#039;&#039;&#039;) is a far-right political party in Germany. Founded in 2013 as a resistance movement to Angela Merkel and mainstream policies, it has seen a sharp rise in popularity. As of 2025, it is the second-largest party in the country and is the largest opposition party in the 21st Bundestag.&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=456</id>
		<title>Alternative for Germany</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=Alternative_for_Germany&amp;diff=456"/>
		<updated>2025-05-06T01:16:42Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: create&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Alternative for Germany&#039;&#039;&#039; (German: &#039;&#039;&#039;Alternative für Deutschland&#039;&#039;&#039;, &#039;&#039;&#039;AfD&#039;&#039;&#039;) is a far-right political party in Germany. Founded in 2013 as a resistance movement to Angela Merkel and mainstream policies, it has seen a sharp rise in popularity. As of 2025, it is the second-largest party and is the largest opposition party in the 21st Bundestag.&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=User:Hurstbergn&amp;diff=120</id>
		<title>User:Hurstbergn</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=User:Hurstbergn&amp;diff=120"/>
		<updated>2025-04-30T01:51:50Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: creëren&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The least most political person you&#039;ve ever met. Ik spreek Nederlands (erg eng). Als je deze taal &amp;quot;grappig&amp;quot; vindt dan gaan we een heel serieus probleem hebben. :3&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
	<entry>
		<id>https://www.politiballwiki.net/w/index.php?title=UserWiki:Hurstbergn&amp;diff=119</id>
		<title>UserWiki:Hurstbergn</title>
		<link rel="alternate" type="text/html" href="https://www.politiballwiki.net/w/index.php?title=UserWiki:Hurstbergn&amp;diff=119"/>
		<updated>2025-04-30T01:49:39Z</updated>

		<summary type="html">&lt;p&gt;Hurstbergn: import user wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hurstbergn</name></author>
	</entry>
</feed>